Softwaresystemmaße am Beispiel von CoCoMo II

14
1 Softwaresystemmaße am Beispiel von CoCoMo II Dr. Bernhard Schätz Fakultät für Informatik TU München CoCoMo II - Dr. B.Schätz 2 Messung von Softwaresystemen „Was man nicht misst, das kann man nicht steuern.“ Tom de Marco

Transcript of Softwaresystemmaße am Beispiel von CoCoMo II

Page 1: Softwaresystemmaße am Beispiel von CoCoMo II

1

Softwaresystemmaßeam Beispiel von CoCoMo II

Dr. Bernhard SchätzFakultät für Informatik

TU München

CoCoMo II - Dr. B.Schätz 2

Messung von Softwaresystemen

„Was man nicht misst, das kann man nicht steuern.“

Tom de Marco

Page 2: Softwaresystemmaße am Beispiel von CoCoMo II

2

CoCoMo II - Dr. B.Schätz 3

Schätzen von Software

• Ziel des Schätzen:– Bestimmung „Systemumfang“

• Systemkomplexität• Realisierungsaufwand• Realisierungszeit

– Möglichst vor Systemrealisierung

• Prinzipielle Strategie: per Analogie• Schätzen:

– Black-Box/White-Box– Mischformen– Modellbasiert

CoCoMo II - Dr. B.Schätz 4

Güte der Schätzung

• Genauigkeit Schätzung @Genauigkeit Produkt/Prozessbeschreibung

Page 3: Softwaresystemmaße am Beispiel von CoCoMo II

3

CoCoMo II - Dr. B.Schätz 5

Übersicht

• Grundlagen der Softwareschätzung– Schätzung von Systemkomplexität– Komplexität, Aufwand, Laufzeit– Modellparameter: Projekt vs. Prozess

CoCoMo II - Dr. B.Schätz 6

Softwarekomplexität

• Software = Programmcode• Softwareumfang = Anzahl Programmzeilen

/* Name: decrArgs: counterFunction: decrements counter if not zeroAuthor: XXX */

int decr(p_int counter) { if(counter->value !=O) --counter->value,}

/* Name: decrArgs: counterFunction: decrements counter if not zeroAuthor: XXX */

int decr(p_int counter) { if(counter->value !=O) --counter->value,}

123...

Page 4: Softwaresystemmaße am Beispiel von CoCoMo II

4

CoCoMo II - Dr. B.Schätz 7

Code als Komplexitätsmaß

• Komplexität– Größe– Struktur

• Verbesserung: Standardisierte Code-Zeilen– Größe: Zählregeln– Struktur: Sprachebene (Assembler, Prozedural,

Objektorientiert)

/* Name: decrArgs: counterFunction: decrements counter if not zeroAuthor: XXX */

int decr(p_int counter) { if(counter->value !=O) --counter->value,}

CoCoMo II - Dr. B.Schätz 8

Komplexität und Prozess

• Verschiedene Maße in verschiedenen Phasen– Implementierung: Codezeilen– Post-Architektur (Feindesign): Abstrakter Code– Prä-Architektur: Funktionspunkte

Analyse

Entwurf

Umsetzung

Code

Lasten-heft

Funkt.Architektur

Page 5: Softwaresystemmaße am Beispiel von CoCoMo II

5

CoCoMo II - Dr. B.Schätz 9

Funktionspunktanalyse

• Verfahren:– Analyse aus Sicht der Systemumgebung– Messung über funktionale Schnittstellen:

• Externe Eingabe• Externe Ausgabe• Externe Anfrage• Interne Logische Daten• Externe Logische Daten

CoCoMo II - Dr. B.Schätz 10

Funktionspunktanalyse

• Analyse Systemkomplexität über Funktionalität:– Analyse aus Sicht der Systemumgebung– Messung über funktionale Schnittstellen:

• Externe Eingabe• Externe Ausgabe/Externe Anfrage• Interne Logische Daten/Externe Logische Daten

• Vorteile:– Auf hohem Niveau (Funktionspunkte)– Frühzeitig (Systemspezifikation)

Interne LogischeDateien

System-um-

gebung

System

Benutzer

Externe LogischeDateien

Page 6: Softwaresystemmaße am Beispiel von CoCoMo II

6

CoCoMo II - Dr. B.Schätz 11

FPA: Externe Ein-/Ausgabe

• Ein- bzw. Ausgabe von Umgebung an System– Logisch zusammenhängend– Benutzer- oder Kontrollein- bzw. Ausgabe– Eingabe: Verändert /erweitert internen Datenzustand

Interne LogischeDateien

System-um-

gebung

System

Benutzer

Externe LogischeDateien

CoCoMo II - Dr. B.Schätz 12

FPA: Externe Anfrage

• Ein-/Ausgabekombination– Logisch zusammenhängend– Von Benutzer oder Systemumgebung– Eingabe löst sofortige Reaktion aus

Interne LogischeDateien

System-um-

gebung

System

Benutzer

Externe LogischeDateien

Page 7: Softwaresystemmaße am Beispiel von CoCoMo II

7

CoCoMo II - Dr. B.Schätz 13

FPA: Interne Logische Dateien

• Gruppe von intern bzw. extern verarbeiteter Daten– Logisch Zusammenhängend– Benutzer- oder Kontrolldaten– Interne: Erzeugt, verwaltet oder bearbeitet– Externe: Von Außen zur Verfügung gestellt

Interne LogischeDateien

System-um-

gebung

System

Benutzer

Externe LogischeDateien

CoCoMo II - Dr. B.Schätz 14

Berechnung Funktionspunkte

• Berechnung:– Ermittlung Liste aller Funktionsarten nach Typ

• Beispiel: EI: Eingabe Kundendaten mit 5 Feldern– Bestimmung Komplexität pro Funktionsart

• Beispiel: 1 ILF, 5 Elemente = LOW

– Berechnung der Funktionspunkte pro Funktionsart

Page 8: Softwaresystemmaße am Beispiel von CoCoMo II

8

CoCoMo II - Dr. B.Schätz 15

Berechnung Funktionspunkte (2)

• Berechnung:– Bestimmung Anzahl/Art Funktionspunkte:

• Z.B. 3 EI Low + 2 EI Average = 3*3 + 2*4 = 17

– Bestimmung Unangepasste Funktionspunkte:• Summe aller gewichteten Funktionstypen

– Umrechnung in KLOC:• 1 FP = ca. 320 Ass.-LOC, 130 C-LOC, 90 Pascal-LOC

CoCoMo II - Dr. B.Schätz 16

CoCoMo

• Verfahren: Constructive Cost Modeling• Entwickler: Barry Boehm• Anwendungsgebiete:

– Informationssysteme (Honeywell, IBM,US Army)– Eingebettete System (AT&T, Boeing, Motorola)

• Ansatz:– Eingabe:

• Abschätzung der Systemkomplexität• Abschätzung von Prozessparametern

– Ausgabe:• Abschätzung des Realisierungsaufwands• Abschätzung der minimalen Realisierungszeit

Page 9: Softwaresystemmaße am Beispiel von CoCoMo II

9

CoCoMo II - Dr. B.Schätz 17

Modellbasiertes Schätzen

• Schematisiertes Analogieverfahren• Ansatz: Aus Projektdaten math. Modell

– Definition geeigneter Modellparameter• Projekt (Größe, Komplexität, Randbedingungen)• Projektumfeld (Team, Infrastruktur)

– Bestimmung von Modellgleichungen• Berechnung Projektaufwand aus Parameter• Berechnung Projektlaufzeit aus Parameter

– Überprüfung Modell– Anwendung

• Bestimmung Parameter• Berechnung Aufwand/Laufzeit

CoCoMo II - Dr. B.Schätz 18

Einfaches CoCoMo-Modell

• Eingaben:– Ermittlung Systemgröße (KLOC)– Systemklasse:

• Organic: Vertrautes Problem, erfahrenes Team• Semi-Detached: Zwischenform• Embedded: Schwere Randbedingungen, neues Problem,

wenig Erfahrung

• Ausgaben:– Realisierungsaufwand (PM)– Entwicklungszeit (TDEV)

Page 10: Softwaresystemmaße am Beispiel von CoCoMo II

10

CoCoMo II - Dr. B.Schätz 19

CoCoMo-Gleichungen

• Aufwand:– OM: PM = 2,4 * (KLOC)^1,05– SDM: PM = 3,0 * (KLOC)^1,12– EM: PM = 3,6 * (KLOC) ^1,2

• Entwicklungszeit:– OM: TDEV = 2,5 * (PM)^0,38– SDM: TDEV = 2,5 (PM)^0,35– EM: TDEV = 2,5 (PM)^0,32

CoCoMo II - Dr. B.Schätz 20

Modellparameter

• Gleichung:– Aufwand: PM = A * (KLOC)^B– Entwicklungszeit: TDEV = C * (PM)^D

• Parameterarten: F(P) = L * P^E– Linear: Unkritisch (“Balance of Scales”)– Polynomial: Polynomial: Unkritisch (Eingabeparameter)– Exponential: Exponentiell: (“Diseconomy of Scales”)

Page 11: Softwaresystemmaße am Beispiel von CoCoMo II

11

CoCoMo II - Dr. B.Schätz 21

CoCoMo II

• Beobachtung:– Schätzung stark abhängig von

• Eigenschaften zu erstellendes System• Eigenschaften erstellendes Unternehmen

– Unterschiedliche Parameter:• Linear (Frühes Design): Projektorientiert

– Mensch: Qualifikation Personal– Technik: Produktgüte, Legacy, Plattform,

Entwicklungsumgebung, Zeitplan• Exponentiell: Prozessorientiert

– Technik: Randbedingungen, Risikomanagement, Prozessreife– Mensch: Erfahrung, Kohäsion

CoCoMo II - Dr. B.Schätz 22

CoCoMo II Modellgleichungen

– Parameter:• Aufwandsfaktor EM aus Einzelfaktoren EMi

• Skalierfaktor B aus Einzelgewichten Wi

• Grundfaktor A• Zeitplanfaktor SCED%

– Gleichungen• Skalierfaktor: B = 0,91 + 0,01 * Summe(Wi)• Grundaufwand: PMGrund = A * Größe(FPA) ^ B• Aufwandsfaktor: EM = Produkt(EMi)• Gesamtaufwand: PMGesamt = EM * PMGrund

• Laufzeit: TDEV = [3,67 * PMGesamt ^(0,28+0,2*(B-1,01))] *SCED%/100

Page 12: Softwaresystemmaße am Beispiel von CoCoMo II

12

CoCoMo II - Dr. B.Schätz 23

CoCoMo II - Aufwand

0

10

20

30

40

50

60

70

80

90

100

2 4 6 8 10 12 14 16

Systemgröße (KLOC DSI)

Au

fwa

nd

(P

M)

Linear Eing./Inno.

• Generell:– Auswirkung des exponentiellen Faktors Prozess

• Faktor > 1• “Diseconomy of Scales”

CoCoMo II - Dr. B.Schätz 24

Komplexität und Produktivität

• Produktivität beeinflußt:– Durch administrativen Aufwand– Durch personellen Aufwand– Durch Abstimmungsaufwand

Produktivität/Komplexität

0

2

4

6

8

1 0

1 2

1 4

1 6

1 8

1 0 2 0 4 0 8 0 160 320 640 1280 2560

Größe in PM

FP

/PM

Page 13: Softwaresystemmaße am Beispiel von CoCoMo II

13

CoCoMo II - Dr. B.Schätz 25

Realisierungsaufwand und Laufzeit

• Laufzeit beeinflusst Aufwand:– Durchschnittliche Laufzeit minimiert Aufwand– Zusätzlicher Aufwand erlaubt Kürzung (70%)– Erhöhte Laufzeit verringert Aufwand nicht

0

2 0

4 0

6 0

8 0

100

120

140

160

180

200

7 0 7 5 8 0 8 5 9 0 9 5 100 105 110 115 120

Laufzeit/opt.Laufzeit

Au

fwa

nd

/min

.Au

fwa

nd

CoCoMo II - Dr. B.Schätz 26

Aufwandsfaktoren

• Projektparameter– Parameter wirken linear auf Aufwand– Arten von Parameter:

• Produktfaktoren, z.B.:– Zuverlässigkeit– Anforderungen an Dokumentation– Vorbereitung Wiederverwendung

• Personalfaktoren, z.B.:– Fluktuation– Anwendungserfahrung

• Projektfaktoren:– Werkzeugeinsatz– Zeitplan

Page 14: Softwaresystemmaße am Beispiel von CoCoMo II

14

CoCoMo II - Dr. B.Schätz 27

Skalierfaktoren

• Prozessparameter– Faktoren wirken exponentiell auf Aufwand/Laufzeit– Arten von Faktoren:

• Portfolio: Projektdomäne vs. Unternehmensknowhow• Prozess: Vorgaben, Reife, Risikomanagement• Personal: Teamkohäsion

CoCoMo II - Dr. B.Schätz 28

Zusammenfassung

• Drei Merksätze zur Schätzung– Funktionelle Abhängigkeit kann Code als Komplexitätsmaß

ersetzen.– Entwicklungsaufwand wird von Projektfaktoren linear, von

Prozessfaktoren exponentiell beeinflusst.

• Zwei Warnungen zur Schätzung:– Detaillierung bestimmt Genauigkeit (20-50%)– Modelle benötigen Kalibrierung