software engineering für softwaretechniker (sefst) · pdf filefsp = e / t = 15,20 em /...

23
/ 23 Übung 4 zur Vorlesung SEfST WS 2009/10 © M.Wetzel 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 Wetzel [email protected]

Upload: phamdan

Post on 20-Mar-2018

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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]

Page 2: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 3: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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)

Page 4: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 5: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 6: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 7: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 8: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 9: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 10: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 11: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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!)

Page 12: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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 )

Page 13: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

... ?

Page 14: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 15: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 16: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 17: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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)

Page 18: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 19: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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% - -

Page 20: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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?

Page 21: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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.

Page 22: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

Page 23: Software Engineering für Softwaretechniker (SEfST) · PDF fileFSP = E / T = 15,20 EM / 7,03 Monate = 2,16 Entwickler ... Early Design Model ... COCOMO II arbeitet mit Source Instructions:

/ 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

... ?