software engineering für softwaretechniker (sefst) · pdf filefsp = e / t = 15,20 em /...
TRANSCRIPT
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
1
Universität Stuttgart 03.12.09
Abteilung Software Engineering
Software Engineering für Software Engineering für Softwaretechniker (SEfST)Softwaretechniker (SEfST)
- Übung 4: Kostenschätzung mit CoCoMo-
Matthias [email protected]
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
2
Agenda
Inhalt der heutigen Veranstaltung: Besprechung Übungsblatt 4 Aufwände und Kostenschätzungen aus abgeschlossenen
Projekten Sonstiges: Begriffsdefinitionen zu Kostenschätzungsmaßen
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
3
COCOMO fürs Softwarepraktikum (1)
Basic COCOMO im Organic Mode: Ein einfaches Entwicklungsprojekt, wenig Neuland Größe (S: Size) rund 5.800 LOC Aufwand (E: Effort):
E = 2,4 × (S / KDSI)1,05 = 2,4 ⋅ 5,81,05 = 15,20 EM (2432 Eh)
Entwicklungsdauer (T: Time): T = 2,5 × (E / EM)0,38 = 2,5 × 15,200,38 = 7,03 Monate
Personal (FSP: Full Software Personnel): FSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler
Achtung: COCOMO-1 deutlich veraltet („Kompilierzeit“ = 1 Nacht etc.)
→ E um ~ 300% zu hoch (EReal
= 600h)
Keine Vollzeitstellen im SoPra (drei ca. 30%-Teilzeitstellen)
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
4
COCOMO fürs Softwarepraktikum (2)
Intermediate-1 COCOMO (1981) im Organic Mode: Größe (Size S) rund 5.800 LOC Nominaler Aufwand:
ENom
= 3,2×(S / KDSI)1,05 = 3,2 × 5,81,05 = 20,27 EM (3242 Eh)
Einflussfaktoren● RELY (Zuverlässigkeit): Low (keine Anforderungen)● TURN (Compilezeit): Low (schnell)● VIRT (Virtuelle Maschine): Low (stabil)● MODP (Moderne Sprachen): High (UML/Java) ● TOOL (Werkzeuge) : High (Innovator)
→ Einflussfaktor f = f1 × f2 × f3 × ... f15 = 0,55
Aufwand: E = ENom
× f = 20,27 EM×0,55 =11,14 EM (1783 Eh)
→ alte COCOMO-Daten: E noch um ~ 200% zu hoch
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
5
COCOMO fürs Softwarepraktikum (3)
Verteilung des Aufwands E (1783 Eh) auf einzelne Phasen:
Entwicklungsdauer: T = 2,5 × (E/EM)0,38 = 2,5 × 11,140,38 = 6,25 Monate
Personal: FSP = E / T = 11,14 EM / 6,25 Monate = 1,78 Entwickler
Phase
6 107
16 285
68 1212
26 464
42 749
16 285
Total 106 1783 + 107
Aufwand Phase (Ep) in % E
p in Eh
(Plans & requirements)
Product design
Programming
Detail. design
Code & unit test
Integration & test
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
6
COCOMO fürs Softwarepraktikum (4)
Verteilung der Dauer T (6,25 Monate) auf einzelne Phasen:
Verteilung der Mitarbeiter auf die einzelnen Phasen:
Phasenaufwand Ep / Phasendauer T
p
● Umrechnung Ep von Eh in EM notwendig: 160 Eh = 1 EM
● z.B. Product Design: Ep = 285 Eh = 1,78 EM; T
p = 1,2 M
→ 1,78 EM / 1,2 M = 1,48 FSP in dieser Phase
Phase
10 0,6
19 1,2
63 3,9
18 1,1
Total 110 6,25 + 0,6
Dauer Phase (Tp) % T
p in Monaten
(Plans & requirements)
Product design
Programming
Integration & test
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
7
COCOMO II
COCOMO II (2000): Weiterentwicklung von COCOMO 81 Einbeziehung aktueller Techniken
● Technologische Entwicklungen● Explizite Unterstützung „moderner“ Prozessmodelle
Aktuelle Datenbasis (2000: 161 Projekte)
Verfügbare Modelle: Early Design Model Post-Architecture Model
Webseite: http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
8
COCOMO II: Grundgleichungen
Early Design / Post-Architecture models: Aufwand (PM: Person-months)
● PMNS
= A × SizeE × ∏ EMi
– E = B + 0,01 × ∑ SFj
– EM: Effort Multiplier ● Early Design: n = 6 factors; Post-A: n = 16 factors
– SF: Exponential Scaling Factor (n = 5 factors) Dauer (TDEV: Time for development)
● TDEVNS
= C × (PMNS
)F ;
– F = D + 0,2 × 0,01 × ∑ SFj
– NS: Nominal-schedule estimate → Stretch-Out SCED Size: Größenschätzung in SLOC, z.B. mit Function Points
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
9
COCOMO II: Faktoren (1)
Kalibrierung: Ausgangswerte für Kalibrierungsfaktoren in COCOMO II:
● A = 2,94; B = 0,91; C = 3,67; D = 0,28● A & C sollten unternehmensspezifisch angepasst werden
Exponential Scale Factors: PREC: Precedentedness FLEX: Development Flexibility RESL: Architecture / Risk Resolution TEAM: Team Cohesion PMAT: Process Maturity
→ Scale Factor „Extra high“ = 0
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
10
COCOMO II: Faktoren (2)
Effort Multipliers: Post-Architecture Model Product Factors
● RELY: Required Software Reliability● DATA: Database Size● CPLX: Product Complexity● RUSE: Developed for Reusability● DOCU: Documentation Match to Life-Cycle Needs
Platform Factors● TIME: Execution Time Constraint● STOR: Main Storage Constraint● PVOL: Platform Volatility
→ Effort Multiplier „Nominal“ = 1
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
11
COCOMO II: Faktoren (3)
Effort Multipliers: Post-Architecture Model contd. Personnel Factors
● ACAP: Analyst Capability● PCAP: Programmer Capability● PCON: Personnel Continuity● APEX: Applications Experience● PLEX: Platform Experience● LTEX: Language and Tool Experience
Project Factors● TOOL: Use of Software Tools● SITE: Multisite Development● SCED: Required Development Schedule (→ Dauer!)
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
12
SoPra-Schätzung mit COCOMO II
Nachschätzung des SoPra: COCOMO II arbeitet mit Source Instructions: 3.135 SIs Effort Adjustment Factor: 0,6
● Estimate for Elaboration and Construction:– Effort: 5,1 EM (= 816 Eh)– Schedule: 5,9 Monate
→ deutlich besser als COCOMO I / Intermediate
(Tool: Web-Software Expert COCOMO II with Risk Assessment http://sunset.usc.edu/research/COCOMOII/expert_cocomo/expert_cocomo2000.html )
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
13
Fragen
Gibt es Fragen zu...
Anwendung
COCOMO-Verfahren
auf Beispiel SoPra
COCOMO II
... ?
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
14
Planung bei Festpreisprojekten (1)
Softwarepraktikum mit fester Dauer und festem Aufwand: Die Dauer ist ein Semester mit 26 Wochen
● davon 6 Wochen für Praktika, Prüfungen, Urlaub● 1 SWS = 2 Std. Aufwand pro Woche (→ 40 Eh pro SWS)
– je 6 SWS für 3 Personen Aufwand ist festgelegt durch die Semesterwochenstunden:
● 6 SWS × 3 Personen = 18 SWS = 18 x 40 Eh = 720 Eh 720 Eh - 120 Eh für SESAM = 600 Eh = 3,75 EM
Die möglichen Function Points können dann mit der Tabelle ermittelt werden oder aus Erfahrungswerten anderer Projekte: 72 AFP sind möglich → auch LOC schätzbar
Kosten: mit 100 Euro pro Eh ergeben sich 60.000 Euro
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
15
Planung bei Festpreisprojekten (2)
Steht der Aufwand fest, kann die Dauer und das benötigte Personal mit COCOMO (Basic / Intermediate COCOMO, COCOMO II) geschätzt werden:
Aufwand 3,75 EM, Schätzung mit Basic COCOMO● Berechnung der Größe S in KDSI:
E = 2,4 × (S / KDSI)1,05 S = (E / 2,4)1 / 1,05 = (3,75 / 2,4)0,95 = 1,53 KDSI
● Berechnung der Entwicklungsdauer und der benötigten Mitarbeiter
– T = 2,5 (E/EM)0,38 = 2,5 × 3,750,38 = 4,13 Monate– FSP = E / T = 3,75 EM / 4,13 M = 0,9 Entwickler
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
16
Verteilung Aufwand / Mitarbeiterzahl
Ideale Verteilung des Aufwandes und der Entwickler möglich: Auf der Schätzung mit AFP oder COCOMO aufbauen
● Verteilung auf einzelne Phasen und Aktivitäten im Projekt● COCOMO: Tabellen für Aufwandsverteilung und
Zeitplanung
→ daraus ergibt sich die Anzahl benötigter Entwickler
Mitarbeiter sind vorgegeben: Die Dauer ergibt sich aus dem Aufwand und den beteiligten
Entwicklern
→ keine ideale Verteilung
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
17
Partnerarbeit
Vergleichen Sie das
Function-Point-Verfahren
mit COCOMO.
Welche Gemeinsamkeiten
und welche Unterschiede
bestehen?
(5 Minuten)
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
18
Aufwände aus Studienprojekten
Quelle: Studienarbeit Armin Thumm, abrufbar unter http://www.informatik.uni-stuttgart.de/iste/se/people/hampp/stuprometrics/
Projekt Aufwand (Eh)1) Teilnehmer Source Statements Lines of Code UFP AFP Sprache
1 3300 7 7600 12600 181 168 C++
6 4108 10 9300 13200 202 196 Java
7 1430 4 7200 12800 126 125 Java
13 5250 10 11940 23197 193 189 Java
14 2539 6 12300 24623 271 260 Ada95
15 8156 8 29134 47521 541 530 Ada95
16 4300 9 17012 32184 265 268 Java
17 5595 9 25739 33841 269 272 Ada95
19 5600 7 13290 21000 226 219 Java
20 3648 9 10700 26000 225 227 Java
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
19
Aufwandsverteilungen in Studienprojekten
Quelle: Studienarbeit Armin Thumm, abrufbar unter http://www.informatik.uni-stuttgart.de/iste/se/people/hampp/stuprometrics/
Projektphase Anteil am Gesamtaufwand
Mittelwert Median Minimum Maximum
Vorprojekt 11% 11% 4% 19%
Spezifikation 16% 16% 9% 29%
Entwurf 15% 15% 9% 40%
Implementierung 42% 39% 25% 59%
Test 10% 8% 4% 19%
Handbuch 3% 4% 0% 7%
Sonstiges 3% - -
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
20
Hinweise zur Kostenschätzung
Empfohlene Vorgehensweise: Bei der Analyse viel über das Projekt in Erfahrung bringen,
damit die Schätzverfahren kalibrieren Function-Point-Verfahren zur Aufwandsschätzung verwenden COCOMO Intermediate-1 oder COCOMO II mit
Einflussfaktoren verwenden (Merkmale des Produkts, Personals, Rechner und Projekt)
Kostenschätzung im Projektverlauf periodisch wiederholen
Wichtige zu klärende Punkte: Ähnliche Projekte der Organisation in der Vergangenheit:
Welcher Aufwand war für welchen Umfang notwendig? Bezahlt der Kunde notwendige Schulungen? Wer stellt die Entwicklungsumgebung, muss sie noch
eingerichtet werden?
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
21
Kostenschätzungsmaße (1)
Physische Größenmaße: Merkmal: Anzahl Carriage-Returns Typisches Maß: LOC (Lines of Code)
● Achtung: unterschiedliche Berücksichtigung von Leer- und Kommentarzeilen möglich
Als Größenmaß in Basic COCOMO und COCOMO Intermediate werden DSI (= Delivered Source Instructions) verwendet und in „Software Engineering Economics“, Boehm 1981, S.59 als Lines of Code ohne Leer- und Kommentarzeilen definiert.
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
22
Kostenschätzungsmaße (2)
Logische Größenmaße: Merkmal: Anzahl syntaktischer Einheiten Typisches Maß: Statements
● Achtung: unterschiedliche Behandlung z.B. von begin/end in Ada oder { } in Java möglich
Als Größenmaß in COCOMO II werden SLOC (= Source Lines of Code) verwendet und in „Software Cost Estimation with COCOMO II“, Boehm 2001, S.15 als Logical Source Statements definiert.
Weiterführende Literatur: SEI-Standard für Größenmaße unter ftp://ftp.sei.cmu.edu/pub/documents/92.reports/pdf/tr20.92.pdf
/ 23
Übu
ng 4
zur
Vor
lesu
ng S
EfS
T
W
S 2
009/
10
© M
.Wet
zel
23
Fragen
Gibt es Fragen zu...
Schätzung Festpreisprojekte
Allgemeines
Hinweise
... ?