Innehåll Vad är Objektorienterad Utveckling? OO vs Traditionell Vy

3URJUDPPHULQJVPHWRGLN+W
Vad är Objektorienterad
Utveckling?
Innehåll
◆
◆
◆
◆
◆
◆
◆
Några reflektioner om programvaruutveckling
(och OO i synnerhet)
Vad är vi ut efter i del2?
Repetition av viktigaste stoffet från del1
Grafik och grafiska användargränssnitt
Händelsehantering
Återanvändning och strukturering av program
Rekursion
³2EMHFWRULHQWHGVRIWZDUHFRQVWUXFWLRQLVWKHVRIWZDUH
GHYHORSPHQWPHWKRGZKLFKEDVHVWKHDUFKLWHFWXUHRIDQ\
VRIWZDUHV\VWHPRQPRGXOHVGHGXFHGIURPWKHW\SHVRIREMHFWVLW
PDQLSXODWHVUDWKHUWKDQWKHIXQFWLRQRUIXQFWLRQVWKDWWKH
V\VWHPLVLQWHQGHGWRHQVXUH´
◆
>0H\HU@
En (mycket kort) OO historia
❏
1966: Objektorienterad programmering
❏
1982: Objektorienterad design
❏
1988: Objektorienterad analys
❏
1997: Unificering av notationerna
Simula [Dahl och Nygaard]
with Ada [Booch]
OORA [Coad], OOSA [Shlaer och Mellor]
UML V1.0 [Booch, Jacobson, Rumbaugh]
PM (Java)--Ht99
[email protected] / [email protected]
1
PM (Java)--Ht99
Traditionell vy
➨ Operationer
och datat
är skilda enheter
➨ Datat är synlig
globalt
➨ Datat är passivt
...
;
A
func1(…)
func2(…)
B
func3(…)
C
...
◆
2
OO Tillåter en Mera Naturlig
Modellering
OO vs Traditionell Vy
◆
[email protected] / [email protected]
Player
OO vy
Field
uses
➨ Operationer
+ data = objekt
func1(…)
« A «
«
;
func2(…)
func2(…)
components
Club
« B «
«
Hole
Border
falls into
hits
Ball
rebounds
« C «
func3(…)
PM (Java)--Ht99
[email protected] / [email protected]
3
PM (Java)--Ht99
Men Hur Hittas de Rätta Objekten
och Klasserna?
◆
◆
◆
◆
◆
◆
Textuell analys (eller t o m grammatisk analys)
❏
❏
❏
❏
Människor
Platser
Reala ting
Abstrakta ting
Roller
Organisationer
Händelser
...
◆
Granska kandidatlistan
❏
❏
Linguistisk (språklig) analys
Rollspel (typ CRC kort)
Substantiv => objekt / klasser
Verb
=> metoder
Adjektiv
=> attribut
...
❏
❏
Synonymer
Grammatiken (t ex verb som används som
substantiv)
Behåll bara de som “passar” problemet
Kolla särskild för verb som uttrycker speciella
relationer som t ex
❍
❍
❍
PM (Java)--Ht99
8PHnXQLYHUVLWHW
[email protected] / [email protected]
4
Linguistisk Analys
Erfarenhet
Återanvändning av tidigare modell
Checklista
❏
❏
❏
❏
❏
❏
❏
❏
[email protected] / [email protected]
5
PM (Java)--Ht99
“vara” (lUHQLVD) ➜ arv?
“ha” verb (KDV) ➜ komposition?
...
[email protected] / [email protected]
6
3URJUDPPHULQJVPHWRGLN+W
Programvaruutvecklingsmodeller
◆
◆
◆
◆
Ad-hoc Utveckling
Stora programvarusystem kan inte utvecklas adhoc
Stora programvarusystem utvecklas i lag
Lagarbete kräver struktur och definierade
kommunikationssätt
Avsnitt 11 i kursboken (nja inte riktigt):
❏
❏
❏
Modifiera tills kunden
är nöjd
development
Vattenfallsmodellen
Kvalitet
PSP
PM (Java)--Ht99
maintenance
Drift
➨Fungerar detta även för stora system?
[email protected] / [email protected]
7
PM (Java)--Ht99
Vattenfallsmodellen
Krav
Bygg första
versionen
Krav
[email protected] / [email protected]
8
Relativa Kostnader för Olika Faser
.UDYLQVDPOLQJ
Analys
Design
Kodning
$QDO\V
3ODQHULQJ
'HVLJQ
.RGQLQJ
7HVWQLQJ
8QGHUKnOO
Testning
Installering
Drift och
Underhåll
&RPSLOHGGDWDIURP
6HH656FKDFK6RIWZDUH(QJLQHHULQJZLWK-DYD,UZLQ
PM (Java)--Ht99
[email protected] / [email protected]
Typiska Orsaker till Fel
9
PM (Java)--Ht99
Fler Orsaker till Fel
)HODNWLJDHOOHUPLVVWRONDGH
NUDY
)HODNWLJDHOOHUPLVVWRONDGH
VSHFLILNDWLRQHU
[email protected] / [email protected]
'HVLJQIHOVRPLQYROYHUD
IOHUDNRPSRQHQWHU
'HVLJQHOOHUNRGQLQJVIHOL
10
,QWHUIDFH
(QYLURQPHQW
'RFXPHQWDWLRQ
+XPDQ
5HTXLUHPHQWVWUDQVODWLRQ
HQNRPSRQHQW
8QFRPSOHWHUHTXLUHPHQWV
6WDYQLQJVIHORFKG\OLNW
'DWD
)HOUlWWQLQJ
/RJLFGHVLJQ
$QGUDXUVDNHU
6WXG\IURP
6HH$*ROGEHUJ.65XELQ6XFFHHGLQJZLWK2EMHFWV$GGLVRQ:HVOH\
PM (Java)--Ht99
8PHnXQLYHUVLWHW
[email protected] / [email protected]
2WKHU
6WXG\IURPWKH86$LU)RUFH
11
PM (Java)--Ht99
[email protected] / [email protected]
12
3URJUDPPHULQJVPHWRGLN+W
Relativa Kostnader för ett Fel
Hur Kan Kvalitén Förbättras?
◆
Processförbättring
Standardisering
“Best practices”
Ny (och bättre) teknologi
Återanvändning
Utbildning
…
➨
➨
Effekten måste kunna mätas
Definition av olika mått
◆
◆
Studies from 1974-1980
IBM AS/400 [94]
◆
◆
◆
◆
QJ
HUL
DQW
DYK
U
.
V
DO\
$Q
LQJ
QHU
3OD
Q
VLJ
'H
QJ
GQL
.R
VW
7H
O
KnO
GHU
8Q
6HH563UHVVPDQ6RIWZDUH(QJLQHHULQJ0F*UDZ+LOO
[email protected] / [email protected]
13
PM (Java)--Ht99
Motiveringar för
Processförbättringar
◆
◆
◆
◆
◆
◆
◆
◆
Bättre process ➾ bättre produkt ?
Högre produktivitet
Ökning av lönsamheten
Kortare time-to-market
Bättre kontroll
Noggrannare planering
Tydligare regler
Bättre arbetsmiljö ➾ bättre medarbetare
Certifiering
PM (Java)--Ht99
[email protected] / [email protected]
◆
◆
◆
◆
◆
◆
◆
15
❏
❏
❏
◆
[email protected] / [email protected]
.UDY
Väldefinierade steg (VFULSWV)
Formulär
Handledning för formulär
Standards
Planering
Plan
Design
Ramverk för analysen av arbetet
Hjälpmedel för individuella förbättringar
Scripts
➭ Utvecklare hittar fler fel
➭ Utvecklare gör exaktare upskattningar
➭ Utvecklare blir produktivare
Kodning
Kompilering
Testning
8PHnXQLYHUVLWHW
[email protected] / [email protected]
Logs
Logs
Resultat
Plan +
Sammanfattning
Post Mortem
3URGXNW
PM (Java)--Ht99
16
PSP Översikt
En process för den enskilde utvecklaren
❏
◆
QFD
Inspections
CMM
PSP
ISO9000 och TickIT
Cleanroom modellen
Statistiska ansatser
PM (Java)--Ht99
PSP
◆
14
Ansatser till Processförbättringar
guidning
◆
[email protected] / [email protected]
logning (tid och fel)
PM (Java)--Ht99
17
PM (Java)--Ht99
[email protected] / [email protected]
5DSSRUWHU
18
3URJUDPPHULQJVPHWRGLN+W
Exempel för ett Script
)DV
6\IWH
+DQGOHGQLQJI|U363SODQHULQJ
Inträdeskrav
Problembeskrivning
Projektplan sammanfattningsformuläret
Tidsloggning
1
Programkrav
Framställa eller skaffa ett kravdokument för
programmet
Säkerställa att kravdokumentet är klart och
motsägelsefritt
Lösa alla frågor ang kravdokumentet
2
Uppskatta resurser
Göra den bästa möjliga uppskattningen av
tiden som krävs för att utveckla programmet
Utträdeskrav
Dokumenterade krav
Fullständig projektplan sammanfattning med
tidsuppskattning för utvecklingstid
Fullständiga tidsloggar
PM (Java)--Ht99
8PHnXQLYHUVLWHW
[email protected] / [email protected]
19