Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost...

26
Universität Zürich Institut für Informatik Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 Software-Aufwandschätzung

Transcript of Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost...

Page 1: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Universität ZürichInstitut für Informatik

Software Engineering IProf. Dr. Martin Glinz

Kapitel 5

Software-Aufwandschätzung

Page 2: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 2

Wie man es nicht machen sollte

6 12 18 24

800

1600

2400

3200

4000

360

Geschätzte Kosten

TatsächlicheKosten

TausendUS Dollar

Monate

Page 3: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 3

Probleme der Aufwandschätzung

Software-Entwicklung ist Kopfarbeit

Kernfunktionen werden mit dem Produkt verwechselt

Erfahrungen aus Kleinprojekten werden linear extrapoliert

Programmierer programmieren nicht zu 100%

Page 4: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 4

Empirische Schätzverfahren

Schätzung basiert auf

Erfahrung der Schätzenden

Vergleich mit abgewickelten Projekten

Expertenschätzung

Gut bei genug Erfahrung mit gleichartigen ProjektenKrasse Fehler möglich

Einfach und billig

Delphi-Methode

Schätzung mit mehreren unabhängigen Experten

Mehrere Runden

Konvergiert (hoffentlich); eliminiert AusreißerNachteil: Aufwand

Page 5: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 5

Techniken für die Expertenschätzung

Direkte Analogieschätzung

Vergleich mit möglichst ähnlichem abgewickeltem Projekt

Abschätzung der Mehr- bzw. Minderaufwendungen

Schätzung durch Zerlegung

Zerlegung in Teilaufgaben oder TeilschritteSchätzung der Teile

Achtung: Einzelaufwendungen nicht einfach addierbar!

Vorteil: Ableitung von Meilensteinen möglich

Zu beachten:

Einfluss der Produktivität der Projektbeteiligten

Geschätzte Werte sind faktisch statistische Verteilungen

Page 6: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 6

Algorithmische Schätzverfahren

Berechnung von Kosten- und Durchlaufzeit-Funktionen

Eingangsvariablen müssen zutreffend geschätzt werden

Modell muss kalibriert werdenLiefert bei richtiger Kalibrierung die besten Prognosen

Ohne Maßzahlen über abgewickelte Projekte keine zuverlässigenPrognosen!

Zwei bekannte Verfahren:

COCOMOFunction Point

Page 7: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 7

Was mit algorithmishen Verfahren möglich ist

Schätzung

tatsäch-licherAufwand

Page 8: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 8

COCOMO (Constructive Cost Model)

Bekanntes algorithmisches Schätzverfahren

Geht von der Schätzung der Produktgröße aus

Grundgleichungen: MM = 2.4 KDSI1.05

TDEV = 2.5 MM0.38

KDSI: Kilo delivered source instructions (Anzahl ausgelieferte Codezeilen in 1000)

MM: Man month (Personenmonat)

TDEV: Time to develop (Durchlaufzeit)

Gilt für einfache Anwendungssoftware (organic mode) ...

... in einer stabilen Umgebung

Page 9: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 9

COCOMO: Größe vs. Aufwand

Page 10: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 10

COCOMO: Berechnungsgrundlagen

RandbedingungenSchätzungen schließen den Aufwand für die Anforderungsdefinitionnicht mit ein

Gleichungen müssen unternehmensspezifisch kalibriert werden

Grundgleichungen für andere Software

Programmsysteme (semi-detached mode)

MM = 3.0 KDSI1.12 TDEV = 2.5 MM0.35

Eingebettete Systeme (embedded mode)

MM = 3.6 KDSI1.2 TDEV = 2.5 MM0.32

Page 11: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 11

COCOMO: Präzisierung der Schätzung

Durch Berücksichtigung unternehmensspezifischer undprojektspezifischer Kostenfaktoren (cost drivers)

Bestimmung des Nominalwerts für den Aufwand

Bestimmung der Kostenfaktoren

Multiplikation des Nominalwerts mit dem Produkt der Kostenfaktoren:

MM Korr = Produkt der Kostenfaktoren x MM nominal

Page 12: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 12

COCOMO: Kostenfaktoren

Page 13: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 13

COCOMO II

Weiterentwicklung von COCOMO

Publiziert in Boehm et al. (2000)

Wird im Rahmen dieser Vorlesung nicht behandelt

Page 14: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 14

Das Function-Point-Verfahren

Relatives Maß zur Bewertung der Funktionalität

Von A. Albrecht 1979 bei IBM entwickelt

Falls Erfahrungszahlen (Kosten pro Function Point) vorhanden Kostenschätzung möglich

Anwendung primär für Informationssysteme

Idee: Zähle in geeigneter Weise

Dateneingaben (External input)Datenausgaben (External output)

Anfragen (External inquiry)

Schnittstellen zu externen Datenbeständen (External interface file)

Interne Datenbestände (Logical internal file)

Page 15: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 15

Zählung und Gewichtung der Function Points

Eingaben, Ausgaben, Anfragen:

Zählen anhand der logischen Transaktionen des SystemsGleiche Daten in verschiedenen Transaktionen werden mehrmals

gezählt

Externe / interne Datenbestände: logische Dateien bzw. Datengruppenin Datenbanken (Gegenstandstypen oder Relationen) zählen

Zählung ist in der Anforderungsspezifikation möglich

Werte werden gewichtet:

Schwierigkeitsgrad pro Element: einfach – mittel – komplex

Gewichtung der Summe mit dem Wertkorrekturfaktor VAF

Es gibt unterschiedliche Zählverfahren für Function Points

Hier: Verfahren der International Function Point Users Group (IFPUG)

Page 16: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 16

Beispiel: Gewichtung für Dateneingaben

Anzahl bearbeiteter Anzahl unterscheidbarer Datenelemente in der Eingabe

Datenbestände 1–4 5–15 >15

0–1 einfach einfach mittel

2 einfach mittel komplex

>2 mittel komplex komplex

gemäß IFPUG (1994)

Page 17: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 17

Zählschema für Function Point

Element Schwierigkeitsgrad

einfach mittel komplex Summe

Dateneingaben _____ x 3 = _____ _____ x 4 = _____ _____ x 6 = _____ _____

Datenausgaben _____ x 4 = _____ _____ x 5 = _____ _____ x 7 = _____ _____

Anfragen _____ x 3 = _____ _____ x 4 = _____ _____ x 6 = _____ _____

Ext. Schnittstellen _____ x 5 = _____ _____ x 7 = _____ _____ x10 = _____ _____

Int. Datenbestände _____ x 7 = _____ _____ x10 = _____ _____ x15 = _____ _____

Function Point Rohwert (UFP)

gemäß IFPUG (1994)

Page 18: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 18

Anpassung – 1: Der Gesamt-Einflussfaktor TDI

Nr. Faktor Wert Einzusetzen sind Wertezwischen 0 und 5

1 Datenkommunikation2 Verteilte Funktionen 0 nicht vorhanden, kein Einfluss3 Leistungsanforderungen 1 unbedeutender Einfluss4 Belastung der Hardware 2 mäßiger Einfluss5 Verlangte Transaktionsrate 3 durchschnittlicher Einfluss6 Online-Dateneingabe 4 erheblicher Einfluss7 Effiziente Benutzerschnittstelle 5 starker Einfluss8 Online-Datenänderungen9 Komplexe Verarbeitungen

10 Wiederverwendbarkeit11 Einfache Installation12 Einfache Benutzbarkeit13 Installation an mehreren Orten14 Änder- und Erweiterbarkeit

Summe der Faktoren (TDI

Page 19: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 19

Anpassung – 2: Berechnung des Korrekturfaktors

Berechnung des Gesamt-Einflussfaktors TDI

VAF = 0,65 + 0,01 x TDI

FP = UFP x VAF

DI Degree of influence

TDI Total degree of influence

UFP Unadjusted function points

VAF Value adjustment factor

Page 20: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 20

Function Points zur Aufwandschätzung

Mittlerer Aufwand pro Function Point muss bekannt sein

Umrechnungsfaktoren müssen unternehmensspezifisch kalibriert undprojektspezifisch angepasst werden

Umrechnungstabellen und Faustregeln sind mit Vorsicht anzuwenden

Faustregeln von Jones:

Durchlaufzeit [in Monaten] = FP 0.4

Anzahl Mitarbeiter = FP / 150

Aufwand = Durchlaufzeit x Anzahl Mitarbeiter = FP 0.4 x FP / 150

Page 21: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 21

Bestimmung des Aufwand aus den Function Points

100

200

300

400

500

1000 2000 3000

Personen-monate

Function Points

IBM (1983)

IBM (nach Noth undKretzschmar 1984)

Page 22: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 22

Function Point vs. Codezeilen

+ Eingangsgrößen für Function Points genauer bestimmbar als Programmgröße in Codezeilen schätzbar

– Function Points sind nicht additiv

Umrechnung abhängig von Programmiersprache:

Sprache Mittlere Anzahl Codezeilen pro Function Point

Assembler 320C 128FORTRAN 107COBOL 197Pascal 91C++ 53Ada95 49Smalltalk 21SQL 12

Page 23: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 23

Sonstige Methoden zur Aufwandschätzung

«Koste es, was es wolle»-Schätzung

Schmerzschwellen-Schätzung

Schätzung nach dem Parkinson'schen Gesetz

Page 24: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 24

Schätzung von Pflegekosten

Kostenverhältnis Entwicklung zu Pflege:

etwa 40:60 bis (bestenfalls) 50:50

Faustregel für die Kostenverteilung von Pflegekosten:60% Verbesserungen

20% Anpassungen

20% Fehlerbehebung

Faustregel von C. Jones für den Pflegeaufwand:Benötigtes Pflegepersonal = FP / 500

oder = KDSI / 50

KDSI/Person-Raten aus verschiedenen Projekten sehr unterschiedlich

Page 25: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 25

Pflegekosten: Einige Zahlen

Zeile/Person-Raten in der Software-Pflege

Quelle: Boehm (1981)

Medianwert liegt bei etwa 20 KDSI/FSPM

Pro 20 KDSI wird eine Person (Vollzeit) für die Pflege benötigt

Page 26: Software Engineering I Prof. Dr. Martin Glinz Kapitel 5 · PDF fileCOCOMO (Constructive Cost Model) Bekanntes algorithmisches Schätzverfahren Geht von der Schätzung der Produktgröße

Software Engineering I Kapitel 5 © 2002, 2004 by Martin Glinz 26

Einfluss der Schätzung auf den Aufwand

Schätzung und tatsächlicher Aufwand nicht voneinander unabhängig

Parkinson-Effekt: Korrelation von geschätztem und effektivem Aufwand:

Aufwand

100%20%Sicherheitszuschlag zur Schätzung

[Kurve durch Simulationenberechnet;Quelle: Abdel-Hamid, 1986]

erwarteter Verlauf

tatsächlicherVerlauf