Upload
jutta-raphael
View
131
Download
0
Embed Size (px)
Citation preview
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
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.
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
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)
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
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
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.
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
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)
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
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
CoCoMo II – Skalenfaktoren (1)
Mit den Skalenfaktoren werden die Projektrahmenbedingungen in der
Aufwandsberechnung berücksichtigt.
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
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
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
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
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
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
CoCoMo II – Kostenfaktoren (3)
Beispiel für die Default-Kostenfaktoren für das Post-Architecture Model
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
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
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
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
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
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
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.
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.
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
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
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
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
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
CoCoMo II – Ausblick
• Die Kalibrierung von CoCoMo soll verbessert werden• Jährliche Kalibrierung soll erstellt und publiziert werden
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