WerkzeugeAndere Sprachen |
COCOMOCOCOMO (COnstructive COst MOdel) ist ein algorithmisches Kostenmodell, das in der Softwareentwicklung zur Kosten- bzw. AufwandsschĂ€tzung verwendet wird. Mit Hilfe von Mathematischen Funktionen wird ein Zusammenhang zwischen gewissen Softwaremetriken und den Kosten eines Projekts dargestellt. Es flieĂen mehrere firmenspezifische Parameter in die Berechnung hinein, die feststellt, wie viele Personenmonate bzw. Personenjahre notwendig sind, um ein Softwareprojekt zu realisieren. Weiterhin kann die Gesamtdauer des Projekts abgeschĂ€tzt werden. COCOMO beruht auf vielfĂ€ltiger Erfahrung, die in der GroĂindustrie, z. B. bei Boeing, bei der Softwareentwicklung gemacht worden ist. Das Verfahren wurde bereits 1981 durch Barry W. Boehm, Softwareingenieur bei Boeing, entwickelt.
[Bearbeiten] Verfahren[Bearbeiten] Definitionen und Annahmen
Als Basis fĂŒr die Berechnung muss die Anzahl von auszuliefernden Codezeilen in KDSI (1000 (K) delivered source instructions [1 KDSI = 1000 Instruktionen]) ermittelt werden. Als Delivered wird nur Software bezeichnet, welche dem Kunden als Teil des Produkts auch ĂŒbergeben wird. Diese Definition schlieĂt Code, der fĂŒr Support-Software oder zum Testen geschrieben wurde, aus. Die AbschĂ€tzung dieser GröĂe ist von vielen Faktoren (z. B. Programmiersprache) abhĂ€ngig und wird von COCOMO nicht behandelt. Source Instructions entsprechen den von Entwicklern geschriebenen und ausfĂŒhrbaren Computeranweisungen. Neben den Kommentaren schlieĂt diese Definition also auch noch generierten Code aus. Instructions beruhen gröĂtenteils noch auf den damals gĂ€ngigen Lochkarten. So definiert Boehm Instructions in seinem Buch[1] als Card Images. Delivered Source Instructions sowie Codezeilen oder Function Points sind Softwaremetriken zur Messung der GröĂe der Software. [Bearbeiten] KomplexitĂ€t bestimmenDann muss man entscheiden, ob man an einem einfachen (âorganic modeâ), mittelschweren (âsemi-detachedâ) oder einem komplexen (âembeddedâ) Projekt arbeitet. Diese Projektmodi sind zentrale Punkte in COCOMO 81, welche die Unterschiede im Arbeitsprozess in den verschiedenen ArbeitsdomĂ€nen reprĂ€sentieren. Die Wahl des Projektmodus wirkt sich maĂgeblich auf das Ergebnis der Berechnung aus - wobei die Formel der Berechnung gleich bleibt und sich nur die Koeffizienten Ă€ndern.
Der Organic Mode entspricht kleinen bis mittelgroĂen Softwareprojekten. Die meisten am Projekt beteiligten Mitarbeiter haben bereits eingehende Erfahrungen mit Ă€hnlichen Projekten in diesem Unternehmen sowie der verwendeten Soft- und Hardware. Dies gewĂ€hrleistet einen geringen Overhead an Kommunikation, da die Beteiligten schon eine genaue Vorstellung von dem zu erstellenden Produkt, haben. Dokumentation von Spezifikationen und Schnittstellen wird nicht streng gehandhabt, wodurch diesbezĂŒgliche Verhandlungen schneller abgeschlossen werden und der dadurch entstehende Mehraufwand (diseconomies of scale) gering gehalten wird. Weitere Merkmale des Organic Modes sind stabile Entwicklungsumgebungen mit wenig neuen Technologien, minimaler Bedarf an neuen Innovationen und wenig Zeitdruck.
Der Semidetached Mode ist fĂŒr Projekte gedacht, deren GröĂe und KomplexitĂ€t zwischen Organic und Embedded Mode anzusiedeln sind. Es handelt sich um mittelgroĂe Projekte (zwischen 50 und 300 KDSI), deren Beteiligte bereits ein mittleres MaĂ an Erfahrung in der Entwicklung solcher Systeme haben oder in denen das Team aus erfahrenen sowie unerfahrenen Kollegen besteht oder das Team nur auf einem Teilgebiet Erfahrung besitzt. Projekte, welche diesem Modus entsprechen, sind komplexer, benötigen anspruchsvollere Interaktionsroutinen und flexible Schnittstellen.
Der Embedded Mode ist durch seine straffen, unflexiblen Strukturen und Richtlinien gekennzeichnet. Dies stellt auch den gröĂten Unterschied zu den beiden anderen, eher locker gefĂŒhrten Modi, dar. Es zielt gröĂtenteils auf sicherheitsrelevante Projekte (z. B. Flugassistenzsysteme, Systeme fĂŒr Banken) ab, welche dadurch sehr unflexibel bezĂŒglich Ănderungen in Spezifikationen und Schnittstellen sind. Des Weiteren sind Projekte im Embedded Mode in der Regel Neuentwicklungen mit wenig bis keinen vergleichbaren VorgĂ€ngerprojekten. Aus diesem Grund zeichnen sich diese Projekte auch dadurch aus, dass sie mit einer relativ langen Analyse- und Design-Phase beginnen. Sind diese Phasen abgeschlossen, werden möglichst viele Entwickler parallel damit beauftragt, das System zu implementieren und zu testen. Hier entspricht bereits der Testaufwand von intermediate Projekten (im Umfang von 8000 DSI) dem von groĂen Projekten (128000 DSI) im Organic Mode. [Bearbeiten] Aufwand errechnenDer Aufwand PM in Personenmonaten wird dann errechnet als ein Faktor m multipliziert mit einer Potenz n der Metrikzahl.
Beispiel: Bei 100 KDSI betragen die Personenmonate PM etwa 300 fĂŒr ein einfaches Projekt, etwa 500 fĂŒr ein mittelschweres und etwa 900 fĂŒr ein komplexes. [Bearbeiten] ProjektdauerMan kann die Personenmonate jedoch nicht durch eine beliebige Anzahl von Personen teilen, um das Produkt schneller fertig zu stellen. Als Beispiel dient oft das GebĂ€ren eines Kindes â dies kann nicht durch den Einsatz von neun Frauen auf einen Monat abgekĂŒrzt werden. Es gibt gewisse Prozesse, die sequentiell ablaufen mĂŒssen, und je mehr Menschen mit einem Projekt betraut sind, um so mehr muss in die Kommunikation investiert werden. COCOMO spricht von TDEV, time to develop (Entwicklungszeit). Auch hier werden drei KomplexitĂ€tsarten unterschieden:
FĂŒr ein einfaches Projekt mit 32 KDSI liefert die COCOMO-AbschĂ€tzung 91 PM und ein TDEV von 14 Monaten. Bei der COCOMO-Berechnung von TDEV ist die Mindestdauer acht Monate. Wenn man diese Werte anders herum auf die Anzahl von Codezeilen berechnet, die eine Person pro Tag produziert, bekommt man fĂŒr ein einfaches Projekt 16 DSI und fĂŒr ein komplexes 4 DSI/Person/Tag. [Bearbeiten] KostentreiberfaktorenDas erweiterte COCOMO-Verfahren (Intermediate COCOMO) berĂŒcksichtigt weitere sogenannte Kostentreiberfaktoren, die den errechneten Basiswert entweder verringern oder erhöhen. Diese basieren auf vielen Erfahrungen, die bei groĂen Firmen gemessen worden sind. Solche Faktoren sind unter anderem:
Als Beispiel dafĂŒr, wie sehr diese Faktoren das Ergebnis beeinflussen, dient folgende Berechnung: Komplex, 128 KDSI, entspricht 1216 PM (Basisberechnung nach COCOMO).
Diese Werte sind jedoch nur grobe Erfahrungswerte, jede Firma muss fĂŒr sich selbst die eigenen Faktoren durch KostenĂŒberwachung und Analyse von bisher erstellten Projekten bestimmen. [Bearbeiten] WeiterentwicklungBoehm weist darauf hin, dieses Modell nicht leichtfertig anzuwenden: âBasic COCOMO is good for rough order of magnitude estimates of software costs, but its accuracy is necessarily limited because of its lack of factors to account for differences in hardware constraints, personnel quality and experience, use of modern tools and techniques, and other project attributes known to have a significant influence on costs.â[1] (Das COCOMO-Basismodell ist gut geeignet fĂŒr eine grobe AbschĂ€tzung der GröĂenordnung der Softwarekosten. Die Genauigkeit des Modells ist notwendigerweise eingeschrĂ€nkt, weil es ihm an Faktoren fĂŒr Unterschiede bei der verwendeten Hardware, der PersonalqualitĂ€t und -erfahrung, dem Einsatz moderner Werkzeuge und Technologien und anderen Merkmalen fehlt, die bekanntermaĂen einen signifikanten Einfluss auf die Kosten haben.). Ein relativ genaues Ergebnis bekommt man erst unter BerĂŒcksichtigung mehrerer, auf das Projekt einwirkender Faktoren (siehe Intermediate und Detailed COCOMO). [Bearbeiten] ADA COCOMOADA COCOMO ist eine Weiterentwicklung von COCOMO 81 - welches sehr stark vom Batch-Processing und dem Wasserfall-Prozessmodell geprĂ€gt ist - zur Anpassung an die TRW Implementierung des ADA Prozessmodells. Dieses Modell beinhaltet Risk Management, Architektur Skeletons, Inkrementelles Implementieren und Testen und einheitliche Softwaremetriken. Hauptaugenmerk des Modells sind die Verringerung des Kommunikationsoverheads, Vermeidung spĂ€ten Ăberarbeitens aufgrund instabiler Anforderungen. Die Ănderungen zu COCOMO 81 können in drei Kategorien eingeteilt werden:
Der Rest von COCOMO 81 blieb unverĂ€ndert - die generelle Form mit den verschiedenen Modi, etc. [Bearbeiten] COCOMO IICOCOMO II wurde ebenfalls, wie seine beiden VorgĂ€nger, von Barry W. Boehm entwickelt und das erste Mal 1997 publiziert. Die offiziell bekannte Version ist jedoch 2000 mit dem Buch[2] veröffentlicht worden. COCOMO II reprĂ€sentiert die Ănderungen in der âmodernenâ Softwareentwicklung, mit Anpassungen an neue Softwareentwicklungs-Prozessmodelle sowie neuen Entwicklungsmethodiken (z. B. Objektorientiertes Programmieren). Es werden wieder, wie in COCOMO 81, drei verschiedene SchĂ€tzarten unterschieden, mit dem Unterschied jedoch, dass sich diese vermehrt auf den Entwicklungsstand des Projekts beziehen. Auf die Unterteilung in verschiedene Projektmodi wurde hier verzichtet. [Bearbeiten] Referenzen
[Bearbeiten] Literatur
[Bearbeiten] Siehe auch[Bearbeiten] Weblinks |