cocomo ii - inhalt einführung –geschichte von cocomo –konzept hinter cocomo ii cocomo 2.0...

34
CoCoMo II - Inhalt Einführung Geschichte von CoCoMo Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles Szenario Erstellung einer Aufwandsanalyse mit CoCoMo II Weiterführendes Fazit

Upload: jutta-raphael

Post on 05-Apr-2015

131 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II - Inhalt

• Einführung– Geschichte von CoCoMo– Konzept hinter CoCoMo II

• CoCoMo 2.0 anhand eines Beispieles– Szenario– Erstellung einer Aufwandsanalyse mit CoCoMo II

• Weiterführendes• Fazit

Page 2: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II - Inhalt

Angenommen...

Man erhält die Aufgabe, den Aufwand eines Softwareprojektes im Vorfeld

abzuschätzen.

Dann wäre es sehr hilfreich, auf die Erfahrung von hunderten anderer Projekte

anderer Unternehmen sowie eigene, bereits abgeschlossene Projekte des eigenen

Unternehmens zugreifen zu können.

Der Erfinder von CoCoMo 81, Barry W. Boehm, hatte 1981 diese Idee und

entwickelte ein Vorgehensmodell in das die Analyse von über 100 Projekten einfloss.

Unter sunset.usc.edu (University Of Southern California) wird CoCoMo als offenes

Modell verwaltet.

Page 3: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II - Einführung

CoCoMo 81oder

CoCoMo II

Abschätzung der Systemgröße(KLOC oder KDSI)

Produkt-, Prozess-, Plattform- und Personal-Attribute

Wiederverwertbarkeits- und Wartbarkeitsparameter

Daten bereits abgeschlossener Projekte

Abschätzung für Entwicklungs- und Wartungskostenfür verschiedene Entwicklungsphasen

Iterative Aktualisierung

Kalibrierung auf eigeneOrganisation

Page 4: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II - Merkmale

Merkmale:

CoCoMo ist ein Modell zur Kosten- & Aufwandsschätzung von Software, die mit

einer Basisformel agiert, welche mit Parametern aus vergangenen und aktuellen

Projekten und deren Charakteristiken festgelegt wird.

Die Parameter werden anhand von Kosten- und Skalenfaktoren bestimmt:„Bei der Schätzung der Projektkosten gilt es die wichtigsten Kostenfaktoren

(costdrivers) besonders zu betrachten. Zu diesen zählen die Variablen, die, die

Anzahlder, für das Projekt aufzuwendenden Säcke an Geld, beeinflussen.“

Zentraler Kostenfaktor ist die Größe des Softwareproduktes (Size-Driven Model)

Page 5: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Von CoCoMo 81 zu CoCoMo II

CoCoMo 81 wurde zu CoCoMo II weiterentwickelt, da sich auch die Entwicklung

von Software weiterentwickelte:

• Einführung neuer Lifecycle-Prozesse• Wiederverwendung von Software-Komponenten• Reengineering• Objektorientierte Programmierung• Benutzung von Standard Middleware• Wasserfall-Modell, das COCOMO 81 zu Grunde liegt, ist

veraltet. Neuer istz.B. das Iterative- oder das Spiral-Modell

• Vierte Generation Sprachen (Sehr komfortabel, teils Visuell)• Mehr und damit differenziertere Kostenfaktoren als CocoMo 81• Process Maturity wird berücksichtigt

Page 6: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Submodelle (1)

CoCoMo II besteht aus drei Submodellen, die jeweils verschiedene Faktoren für

verschiedene Phasen der Abschätzung bieten:

1 - Application Composition Model• Früheste Phase der Abschätzung : Prototypisierung

2 - Early Design Model• Abschätzung zur Analyse und Prototyping-Phasen• Vor der Systemarchitektur• Wenig von der Architektur bekannt, daher sind eingehende

Schätzungen grob• 7 Kostenfaktoren werden berücksichtigt

3 - Post-Architecture Model• Abschätzung nach Festlegung der Softwarearchitektur, vor und

beim Kodieren • 17 Kostenfaktoren werden berücksichtigt

Page 7: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Wie funktioniert CoCoMo II ?

Szenario:Es soll ein Frontend für eine Kundendatenbank erstellt werden.

Das Frontend soll inC++ für WIN32 geschrieben werden. Das Backend ist eine SQL-

Datenbank. Das

Projekt ist eine Übergangslösung, daher nicht wieder zu verwerten.

F10: Erstellen, Ändern und Löschen der Kundendaten

F20: Ausgabe einer Liste aller Namen

Aufgabe:

Aufwandsschätzung nach CoCoMo II – Early Design Model für zwei

Informatikstudenten und zum Vergleich einem professionellen Entwicklerteam von

SUN Microsystems.

Page 8: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Wie funktioniert CoCoMo II ?

1. Function Point Analyse (oder äquivalente Systemgrößen Abschätzung)-> ergibt Größe (LOC – Lines Of Code)

2. Ermitteln der Skalenfaktoren-> Berechnung des nominalen Aufwandes in Personen Monaten (PM)

3. Ermitteln der Aufwands Faktoren (Cost Drivers)-> Berechnen des adjustierten Aufwandes in PM

Page 9: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Function Point Analyse (1)

Ermitteln der Roh Function Points

Daten Eingaben Mittel 1 x 3

F10 – Etwa 10 syntaktisch und semantisch zu prüfende Eingabefelder

Daten Ausgaben Mittel 1 x 5

F20 – Eine Liste mit etwa 3-4 Spalten

Interne Daten Mittel 1 x 10

Daten werden in mehreren Tabellen separat gespeichert

Externe Schnittstellen

Komplex

1 x 10

SQL, liefert bei verschiedenen Abfragen jeweils verschiedene Datenstrukturen

Externe Datenabfragen

Komplex

1 x 6

Die nötigen INSERT, UPDATE und SELECT Anweisungen gehen über mehrere Tabellen

  Summe :

34 Roh Function Points (RFP)

Page 10: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Function Point Analyse (2)

Ermitteln des Einflusses der System-Infrastruktur

Kommunikationseinrichtung

3 SQL über Netzwerk

Verteilte Funktionen 3 Clients und Datenbanken

Antwortzeitverhalten 4 Antworten sollten schnell sein

Lastverhalten 2 Wenige Leute nutzen das Programm

Transaktionsrate 3  

Online Eingabe 5 Eingaben über das Netzwerk

Usereffizienz 4 Anwendung für User effizient

Online Update 4 Daten werden über Netzwerk aktualisiert

Komplexe Verarbeitung

2 Verarbeitung im Formular ist simpel

Wiederverwertbarkeit 1 Nicht nötig

Portier- & Installierbarkeit

2 Konkret WIN32

Usability 5  

Mandantenfähigkeit 3  

Änder- und Wartbarkeit

4 Schnelle Änderungen und unkompliziertes Warten

Summe: 45 SI

Page 11: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Function Point Analyse (3)

Ermitteln der Function Points

FP = RFP x ( 0,65 + ( 0,01 x SI ) )

FP = 34 x ( 0,65 + 0,01 x 45 ) = 37,4 FP

Ermitteln der Lines Of Code für C++ (LOC) 

37,4 FP x 91 LOC / FP = 3403,4 LOC

Page 12: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Skalenfaktoren (1)

Mit den Skalenfaktoren werden die Projektrahmenbedingungen in der

Aufwandsberechnung berücksichtigt.

Page 13: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Skalenfaktoren (2)

Für jedes Submodell existiert eine eigene Skalenfaktorentabelle, die durch

Erfahrungen vergangener Projekte angepasst werden können.

Beispiel für die Default-Skalenfaktoren für das Early Design Model

Page 14: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Skalenfaktoren (3)

Mit den Skalenfaktoren können die nominalen Personen Monate berechnet werden.

Sie beziehen sich auf den Aufwand, der unter durchschnittlichen Bedingungen zu

Stande käme.

PM nominal = A x KLOC ^ B A = COCOMO2 spezifische Konstante, abhängig vom

SubmodellB = C + 0,01 x Summe der SkalenfaktorenC = COCOMO2 spezifische Konstante, abhängig vom

Submodell

Page 15: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Faktoren (1)

Ermitteln der Skalenfaktoren für die Studenten

Vorkenntnisse Nominal

3,72

Etwas Erfahrung in C++, viel in SQL

Flexibilität bei Entwicklung

Very High

1,01

Vorgegebene fixe Datenbank, fixe Interfaces

Kenntnisse in Architektur

Nominal

4,25

Noch Studenten, aber immerhin Informatik

Team Zusammenarbeit

Very High

1,10

Zwei Personen, die sich bereits kennen

Prozessreife Nominal

4,68

Etwas Erfahrung durch Praktika an der FH

  Summe:

14,76

 

Page 16: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Faktoren (2)

Berechnen des nominalen Aufwandes (Personenmonate) für die Studenten

 PM nominal = A x KLOC ^ B

 A = 2,5 (CoCoMo II spezifische Konstante für Early Design

Model)B = C + 0,01 x Summe der Skalenfaktoren

= 1,01 + 0,01 x 14,76 = 1,1576C = 1,01 (CoCoMo II spezifische Konstante für Early Design

Model)

PM nominal = 2,5 x 3,4034 ^ 1,1576 = 10,32 PM

Page 17: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Kostenfaktoren (1)

Nun gibt es aber eine Reihe von verschiedenen Parametern, die sich positiv oder

negativ auf den zu leistenden Aufwand niederschlagen können.

Mit den Kostenfaktoren werden die für das Projekt relevanten Kosten ändernden

Faktoren in der Aufwandsberechnung berücksichtigt

PM adjustiert = PM nominal x Produktsumme der Kostenfaktoren

Page 18: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Kostenfaktoren (2)

Für jedes Submodell existiert eine eigene Kostenfaktorentabelle, die durch

Erfahrungen voran gegangener Projekte angepasst werden kann.

Beispiel für die Default-Kostenfaktoren für das Early Design Model

Page 19: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Kostenfaktoren (3)

Beispiel für die Default-Kostenfaktoren für das Post-Architecture Model

Page 20: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Faktoren (3)

Ermitteln der Kostenfaktoren für die Studenten

Produkt Komplexität

Low 0,83

Einfache Software

Wiederverwertbarkeit

Low 0,96

Nicht wichtig

Plattform Schwierigkeit

Nominal

1,00

Wegen C++

Team Fähigkeit High 0,83

 

Team Erfahrung Low 1,12

Wenig Erfahrung

Betriebsmittel Very Low

1,30

Kein Büro

Entwicklungs Zeitrahmen / -plan

Nominal

1,00

Abgabetermin stellt nicht zu sehr unter Druck

Page 21: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Faktoren (4)

Berechnen des adjustierten Aufwandes für die Studenten

PM adjustiert = PM nominal x Produktsumme der Kostenfaktoren

= 10,32 PM x 0,83 x 0,96 x 1 x 0,83 x 1,12 x 1,3 x 1

= 9,937 PM

Page 22: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Faktoren (1)

Ermitteln der Skalenfaktoren für das SUN Team

Vorkenntnisse High 2,48

Flexibilität bei Entwicklung

Very High

1,01

Kenntnisse in Architektur

Very High

1,01

Team Zusammenarbeit High 2,19

Prozessreife High 3,12

  Summe: 9,81

Page 23: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Faktoren (2)

Berechnen des nominalen Aufwandes (Personenmonate) für das SUN Team

B = 1,01 + 0,01 x Summe Skalenfaktoren= 1,01 + 0,01 x 9,81 = 1,1081

 PM nominal = A x KLOC ^ B

= 2,5 x 3,4034 ^ 1,1081 = 9,713 PM

Page 24: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Faktoren (3)

Ermitteln der Kostenfaktoren für das SUN Team

Produkt Komplexität Low 0,83

Wiederverwertbarkeit Low 0,96

Plattform Schwierigkeit Nominal 1,00

Team Fähigkeit High 0,83

Team Erfahrung Very High 0,74

Betriebsmittel Very High 0,73

Entwicklungs Zeitrahmen / -plan Nominal 1,00

Page 25: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Faktoren (4)

Berechnen des adjustierten Aufwandes für das SUN Team

PM adjustiert = PM nominal x Produktsumme der Kostenfaktoren

= 9,713 PM x 0,83 x 0,96 x 1 x 0,83 x 0,74 x 0,73 x 1

= 3,47 PM

Page 26: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II –Vergleichsfazit

Besonders die Kostenfaktoren fallen ins Gewicht

Während bei der Analyse durch die Skalenfaktoren das Resultat noch recht ähnlich

ausfällt (10,32 PM zu 9,713 PM) ändert sich das Ergebnis nach der Betrachtung der

Kostenfaktoren rapide (9,937 PM zu 3,47 PM).

Hier schlägt vor allem der bessere Prozessreifegrad des Unternehmens SUN aus.

Page 27: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Weitere Funktionen (1)

Weiterhin kann mit CoCoMo II anhand der adjustierten Personenmonate folgendes

berechnet werden:

Entwicklungszeit - Time To Develop (TDEV)Die TDEV Formeln beziehen weitere Skaleneffekte mit ein, die nebensoftwaretechnischen Faktoren auch aus betriebswirtschaftlichen

Faktoren entstehenkönnen, wie z.B. Mitarbeiterfluktuation oder erhöhtes

Qualitätsmanagement beigrößerem Arbeitsaufwand

Effektivste Anzahl an Personal - Full Time Equivalen Software Personnel (FSP)

Mit der FSP Formel kann die effektivste Anzahl der für das Projekt benötigten

Fachkräfte ermittelt werden.

Page 28: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Weitere Funktionen (2)

Anpassen und Wiederverwerten von CodeIn der nominal Personenmonateformel wird vorausgesetzt, dass der

gesamte Codeselbst entwickelt werden muss.Mit entsprechenden Faktoren kann auch die Benutzung und

Anpassung bereitsvorhandenen Codes berücksichtigt werden.

Verteilung des Aufwandes auf die einzelnen Phasen des ProjektesHierbei kann anhand von Faktoren der Gesamtaufwand auf die

folgenden Projektphasenaufgeteilt werden• Analyse• Entwurf• Feinentwurf• Implementierung & Modultest• Integration & Test

Page 29: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Vorteile

Vorteile• Einfaches Verfahren• CoCoMo ist ein Industriestandard• CoCoMo ist ein offener Standard• Sehr fundierte Informationen sind einfach verfügbar• Wissen auswärtiger Experten ist verfügbar• Rückwärtskompatibilität• Verschiedene Erweiterungen für fast jeden Zweck• Frei wählbarer Detailgrad• Softwaretool Support• Bessere Abschätzungen, je länger Projektdatenbanken

gepflegt werden

Page 30: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Nachteile

Nachteile• CoCoMo II basiert noch größtenteils auf dem

Wasserfallmodell• Viele der Erweiterungen sind experimentell und noch nicht

ausreichend Kalibriert• Zeitabschätzung ist für kleine Projekte ungeeignet• Erfahrung ist nötig für das wählen der richtigen

Faktorbewertungen• Bewertungen bedürfen einer tiefgehenden Kenntnis des

Projektumfeldes und der Rahmenbedingungen

Page 31: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Software

Es gibt professionelle Software, welche die Analyse erleichtert

CoCoMo II http://www.spc.caCoStar http://www.softstarsystems.comCostXpert http://www.costxpert.comEffort Estimator http://qb0x.net/projects/EffortEstimator/

CoCoMo Estimate Software für PDAshttp://my.raex.com/FC/B1/phess/coco/

Online Formulare (Java oder Javascript)http://ch.twi.tudelft.nl/~arthur/cocomo/http://www.engin.umd.umich.edu/CIS/tinytools/cocomo.htmlhttp://tiefighter.et.tudelft.nl/~arthur/cocomo/http://www.siegfried-seibert.de/cocomo.htm

Page 32: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Derivate

Es gibt Modelle, die von CoCoMo abgeleitet wurden:

• COPSEMO – Constructive Phase Schedule & Effort Model

• CORADMO – Constructive Rapid Aplication Development Model

• COQUALMO – Constructive Quality Model• COPROMO - Constructive Productivity

Improvement Model• ExpertCOCOMO• COSYSMO - Constructive Systems Engineering

Cost Model

Page 33: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Ausblick

• Die Kalibrierung von CoCoMo soll verbessert werden• Jährliche Kalibrierung soll erstellt und publiziert werden

Page 34: CoCoMo II - Inhalt Einführung –Geschichte von CoCoMo –Konzept hinter CoCoMo II CoCoMo 2.0 anhand eines Beispieles –Szenario –Erstellung einer Aufwandsanalyse

CoCoMo II – Quellen

• http://sunset.usc.edu - Universität von Southern California• COCOMO Seminararbeit – von Klaus Werdenich• COCOMO II Model Definition Manual - sunset.usc.edu• COCOMO Seminararbeit von Nancy Merlo – Schett