Projektmanagement: Schätzverfahren - WS 2006/07 Martin Wirsing Institut für Informatik Ludwig-Maximilians-Universität München - PST

Die Seite wird erstellt Susanne Heine
 
WEITER LESEN
Projektmanagement: Schätzverfahren - WS 2006/07 Martin Wirsing Institut für Informatik Ludwig-Maximilians-Universität München - PST
Projektmanagement:
 Schätzverfahren

Martin Wirsing
Institut für Informatik
Ludwig-Maximilians-Universität München

WS 2006/07
Projektmanagement: Schätzverfahren - WS 2006/07 Martin Wirsing Institut für Informatik Ludwig-Maximilians-Universität München - PST
Ziele

 ƒ Generelles Vorgehen bei Schätzungen kennen lernen
 ƒ Grundlegende Schätzmuster und Maße zur Systemkomplexität
   kennen lernen
 ƒ Schätzverfahren für den Aufwand eines Software-Projekts kennen
   lernen und beurteilen
    ƒ Delphi-Methode
    ƒ Function Points
    ƒ CoCoMo

                           Projektmanagement V5 - Schätzverfahren   2
Schätzverfahren
                          „Was man nicht misst, das kann man nicht steuern.“
                         [Tom de Marco, Controlling Software Projects, 1982.]

ƒ   Messung von Softwaresystemen:
     ƒ Zu Projektbeginn: Projektplanung (Schätzung)
     ƒ Bei Durchführung: Projektstatus/Projektsteuerung
ƒ   Ziel des Schätzens:
     ƒ Bestimmung des Entwicklungsaufwands
         ƒ Realisierungsaufwand
         ƒ Realisierungszeit
     ƒ Abhängig von Systemkomplexität und Produktivität
     ƒ Möglichst vor Systemrealisierung
ƒ   Prinzipielle Strategie beim Schätzen: per Analogie
ƒ Schätzungen sind „unfair“:
     ƒ Passieren zu einem sehr frühen Zeitpunkt
     ƒ Man weiß wenig über die Aufgabe
     ƒ Auf die Zahlen wird man später festgenagelt

                                   Projektmanagement V5 - Schätzverfahren       3
Herangehensweisen

ƒ Von den Arbeitspaketen zur Aufwandszahl
   ƒ Schätzung der einzelnen Arbeitspakete
   ƒ Summe ergibt Gesamtaufwand
   ¾ Schätzung als Grundlage für Aufwand

ƒ Vom fixierten Aufwand zu den Arbeitspaketen
   ƒ   Frage: Was darf es denn insgesamt kosten?
   ƒ   Projekt so aussteuern, dass es im Kostenrahmen bleibt
   ƒ   Aufgaben werden nur so „gut“ erledigt, wie Geld da ist
   ¾   Schätzung zur Prüfung der Machbarkeit

                             Projektmanagement V5 - Schätzverfahren   4
Auswirkungen einer „falschen“ Schätzung

ƒ Zu hohe Schätzung
    ƒ Ist kaum festzustellen. Jedes Projekt schöpft den Kostenrahmen
      voll aus.
    ƒ Gefahr: Business Case rechnet sich nicht, bzw. Projekt wird an
      Mitbewerber verloren.
ƒ Zu geringe Schätzung
    ƒ Geld reicht nicht, Projekt kann im Budget nicht durchgeführt
      werden
ƒ Das Projektmanagement hat extrem großen Einfluss auf die
  verbrauchten Aufwände eines Projekts. Im Nachhinein ist schwer
  festzustellen, ob der geschätzte Kostenrahmen realistisch war.

                             Projektmanagement V5 - Schätzverfahren    5
Motivation für eine Schätzung

ƒ Wenn eine Schätzung so
  fehlerbehaftet und schwierig
  ist, warum schätzt man dann
  überhaupt?
   ƒ Auch eine „falsche“
     Schätzung ist besser als
     ein kompletter Blindflug
   ƒ Auch Schätzen ist ein
     Prozess: sobald erste
     Erfahrungen und
     ermittelte Aufwände im
     Projekt vorliegen, wird
     nachgeschätzt und die
     Schätzung korrigiert
   ƒ Die Schätzung wird im
     Laufe des Projekts immer
     genauer.

                           Projektmanagement V5 - Schätzverfahren   6
Einflussfaktoren auf den Aufwand
(wichtigste Faktoren)

ƒ   Umzusetzende Fachlichkeit
                                                     ƒ     Projektmanagement-Faktoren
    (funktional)
                                                            ƒ Team
    ƒ Masken
                                                                    ƒ Mitarbeiterqualifikation
    ƒ Druckstücke                                                   ƒ Erfahrung
    ƒ Berechnungen                                                  ƒ Eingespieltes Team
    ƒ zu berücksichtigende                                  ƒ Projektorganisation
      Fehlersituationen                                     ƒ Projektvorgehen, Methodik
    ƒ Migrationen aus Altsystemen                           ƒ Unterstützung durch Tools
    ƒ Abhängigkeit von anderen                       ƒ     Sonstige Faktoren
      Systemen
                                                            ƒ Auftraggeber
ƒ   Technologische Umsetzung,
                                                            ƒ Aufwände steigen mit Größe der
    ƒ nicht-funktionale Anforderungen                         Aufgabe
        ƒ Performance, Antwortzeitverhalten
    ƒ Architektur
    ƒ Systemplattform, Basis-
      Technologien

                                   Projektmanagement V5 - Schätzverfahren                        7
Generelles Vorgehen bei der Schätzung

ƒ Eine gute Vorbereitung ist elementar für die Schätzung
   ƒ Komplettieren und Strukturieren der Schätzgrundlage
       ƒ (osintots – oh shit, I never thought of this)
   ƒ Sammeln aller Faktoren
ƒ Nachschätzen und aus Projekterfahrungen lernen ist ein stetiger
  Kreislauf während des Projekts

                                  Projektmanagement V5 - Schätzverfahren   8
Schätzmuster

ƒ Schätzungen werden fast immer aus einer Kombinationen der
  folgenden grundlegenden Schätzmuster hergeleitet
ƒ Insbesondere beruhen auch ausgefeilte Schätzmethoden wie
  Function Points, CoCoMo oder Delphi auf diesen Mustern, meist
  ergänzt um konkrete Zahlenwerte für Schätzformeln.

ƒ Schätzmuster:
   ƒ Schätzen durch Vergleich                                 Schema für Schätzmuster:
   ƒ Schätzen durch Zerlegung                                   ƒ    Problem/Kontext
       ƒ Anforderungen                                          ƒ    Vorgehensidee
       ƒ des Entwurfs                                           ƒ    Vorteile, Nachteile
   ƒ Expertenschätzung                                          ƒ    evtl. Varianten,
                                                                     Anmerkungen
   ƒ Schätzen mit Korrekturfaktoren
   ƒ Schätzen mit Stellvertretergröße

                            Projektmanagement V5 - Schätzverfahren                         9
Schätzen durch Vergleich

ƒ Problem/Kontext:
     Wenn keine bessere Schätzmethode verfügbar ist,
     aber Erfahrungen mit Entwicklung ähnlicher Dinge
     und deren Aufwände noch bekannt sind.
ƒ Vorgehensidee:
     Wähle aus dem Erfahrungsschatz das ähnlichste Ding aus und benutze
     dessen Aufwand als Schätzung
ƒ Vorteile:    Einfach, schnell
ƒ Nachteile:   Evtl. zu wenig Erfahrung; Ähnlichkeitsmaß unklar
ƒ Variante:
       Wähle mehrere Ähnlichste und mittele die Schätzung
ƒ Anmerkung:
       Alle anderen Schätzverfahren basieren letzten Endes auf
       Vergleich (explizit oder intuitiv)

                             Projektmanagement V5 - Schätzverfahren       10
Schätzen durch Zerlegung (Anforderungen)

ƒ Problem/Kontext:
      Wenn Anforderungen wenig voneinander abhängen,
      d.h. das System nur einen kleinen Kern aufweist
ƒ Vorgehensidee:
      Schätze Aufwand pro Anforderung einzeln; summiere
ƒ Vorteile:
      Starke Reduktion der Komplexität
ƒ Nachteile:
      Nur in wenigen Anwendungsgebieten sinnvoll,
      Meist ist der Kern für den Aufwand sehr relevant,
      Aufwandsmessungen liegen selten in dieser Form vor.
ƒ Anmerkung:
      Das „Function Point" Schätzverfahren beruht auf diesem Muster und ist
      für einfache Informationssysteme sehr bewährt.

                             Projektmanagement V5 - Schätzverfahren           11
Schätzen durch Zerlegung (Entwurf)

ƒ Problem/Kontext:
       Wenn die Architektur des Systems bereits erkennbar ist
ƒ Vorgehensidee:
       Schätze den Aufwand für die Subsysteme und addiere
ƒ Vorteile:
       Im Prinzip ist eine sehr genaue Zerlegung und Schätzung möglich
ƒ Nachteile:
       Irrtümer über Architektur möglich (insbes. Teile übersehen)
       Vernachlässigt Aufwand für Integration und nichtfunktionale
       Anforderungen
ƒ Anmerkung:
       Zumindest grobe Zerlegung wird in der Praxis fast immer eingesetzt.
       Oft läuft ein großer Teil der Zerlegung auf bloße Zählung hinaus,
       z.B. Anzahl "Dialoge" (Bildschirmmasken)

                              Projektmanagement V5 - Schätzverfahren         12
Schätzen durch Experten
ƒ   Problem/Kontext:
     Wenn es Erfahrungen und Aufwandsdaten nicht schriftlich,
     wohl aber im Kopf von Experten gibt
ƒ   Vorgehensidee:
     Bitte jede/n Experten/in separat um eine Schätzung
     Lasse die Experten Ihre Schätzungen und Begründungen diskutieren und modifzieren
     Resultat: Konsens über einen geschätzten Aufwandsbereich
ƒ   Vorteile:
     Sehr breitbandig, bezieht enorm viele Faktoren ein
     Unsicherheit der Schätzung wird ggf. klar sichtbar
ƒ   Nachteile:
         Kann bei "Groupthink" zu dramatisch falschen Ergebnissen führen, die scheinbar
        vertrauenswürdig sind
ƒ   Variante:
     Black-box-Schätzungnur eines/r Experten/in
ƒ   Anmerkung:
        Das „Delphi" Schätzverfahren beruht auf diesem Muster.

                                   Projektmanagement V5 - Schätzverfahren                 13
Kombination von Schätzungen

ƒ Problem/Kontext:
       Wenn mehrere Schätzungen verfügbar sind, deren Qualität aber unklar ist
ƒ Vorgehensidee:
       Kombiniere die Schätzungen zu einer (durch Bereichsbildung, Mittelung,
       Zurückweisung von Ausreißern etc.)•
•   Vorteile:
       Erhöht die Robustheit der Schätzung
ƒ Nachteile:
       Gibt es systematische Fehler in vielen der Schätzungen, dann führt das
       Kombinieren in die Irre
ƒ Anmerkung:
       Das „Delphi" Schätzverfahren wendet dieses Muster an.

                               Projektmanagement V5 - Schätzverfahren            14
Schätzen mit Korrekturfaktoren

ƒ Problem/Kontext:
   Wenn ein ähnliches Ding zum Vergleich verfügbar ist
   es aber zum jetzigen Ding (identifizierbare) Unterschiede gibt
ƒ Vorgehensidee:
      Benutze den Aufwand des ähnlichen Dings und korrigiere ihn für jeden
      Unterschied um einen prozentualen Faktor herauf/herunter.
      Die einzelnen Faktoren werden wiederum geschätzt oder aus Erfahrungen
      entnommen.
ƒ Vorteile:
      Recht flexibel
ƒ Nachteile:
      Bei zu vielen Korrekturen wird das Ergebnis dubios.
      Bei zu wenig Erfahrung über einzelnen Korrekturfaktor ebenfalls.
ƒ Anmerkung:
      Das „CoCoMo" Schätzverfahren beruht hauptsächlich auf diesem Muster.

                               Projektmanagement V5 - Schätzverfahren        15
Schätzen mit Stellvertretergrößen
ƒ   Problem/Kontext:
       Wir besitzen Aufwandsdaten nur über andere Erfahrungsgrößen als die, die wir
       schätzen wollen,
       z.B. Produktivität in Anzahl an Zeilen von Code (Lines of Code, LoC) pro
       Personenmonat,
       aber diese Erfahrungsgröße (oder etwas Verwandtes) lässt sich schätzen
ƒ   Vorgehensidee:
       Schätze nicht den Aufwand, sondern die schätzbare Größe und rechne dann um.
ƒ   Vorteile:
        Evtl. ist Stellvertretergröße anschaulicher und besser zu schätzen
ƒ   Nachteile:
       Evtl. wird Kontextabhängigkeit übersehen
       z.B. Abhängigkeit der Produktivität an Zeilen von Code von der Programmiersprache
ƒ   Anmerkung:
       Das „CoCoMo" Schätzverfahren verwendet „Anzahl der Zeilen von Code" als
       Ausgangspunkt

                                   Projektmanagement V5 - Schätzverfahren             16
Exkurs: Messen von Systemkomplexität

ƒ   Komplexitätsfaktoren
    ƒ Größe: Anzahl der Bausteine
    ƒ Diversität: Unterschiedlichkeit der Bausteine
    ƒ Vernetzung: Abhängigkeit der Bausteine
ƒ   Grundlagen der Softwareschätzung
    ƒ Messung/Schätzung von Systemkomplexität
    ƒ Komplexität, Aufwand, Laufzeit
ƒ   Softwaremetrik Code
    ƒ Ansatz: Software = Programmcode
    ƒ Einheit: Anzahl der Programmzeilen (Lines of Code – LoC)
    ƒ Messverfahren: Softwareumfang = Anzahl Programmzeilen
    ƒ Vorzug: Einfache Messung
ƒ   Verschiedene Maße in verschiedenen Phasen
    ƒ Implementierung: Codezeilen
    ƒ Feinentwurf: Abstrakter Code
    ƒ Analyse: Funktionspunkte

                                  Projektmanagement V5 - Schätzverfahren   17
Exkurs: Messen von Systemkomplexität
Lines-Of-Code (LoC) und Varianten

ƒ Lines-of-Code (LoC)
   ƒ zähle Zeilen, subtrahiere leere Zeilen

ƒ Non-Comment-Lines-of-Code (NCLoC)
   ƒ zähle LOC, subtrahiere reine Kommentarzeilen

ƒ Kommentardichte (KD)
   ƒ abgeleitet, daher kein eigenes Messverfahren nötig
   ƒ KD(P) = CLoC(P) / NCLoC(P)

ƒ Verteilung Deklarationen/ausführbare Befehle
   ƒ unterscheide NCLoC in DecLoC und ExecLoC
   ƒ z.B. Deklarationsanteil(P) = DecLoC / (DecLoC + NCLoC)

                              Projektmanagement V5 - Schätzverfahren   18
Exkurs: Messen von Systemkomplexität
Lines-Of-Code (LoC) Produktivitätsparadoxon

ƒ Die Benutzung einer höheren Programmiersprache scheint eine
  geringere Produktivität nach sich zu ziehen: für das gleiche
  Geld/in der gleichen Zeit bekommt man weniger Ergebnis.
       Sprache         Assembler                               Cobol
       Resultat        10.000 LoC                              3.000   LoC
       Aufwand         500     PT                              300     PT

       Kosten          125.000   €                            75.000   €
       Produktivität   12,50     €/Zeile                      25,50    €/Zeile
                       0,05      PT/Zeile                     0,1      PT/Zeile
                       20        Zeile/PT                     10       Zeile/PT

ƒ Die Abstraktionsebene der Programmiersprache geht in diese
  Berechnung nicht ein – in den Nutzen für den Anwender aber
  schon.

ƒ Daher das LoC-Maß nur für relative Produktivitätsbetrachtungen
  geeignet, also z.B. bei der Prozessverbesserung.
                            Projektmanagement V5 - Schätzverfahren                19
Exkurs: Messen von Systemkomplexität
Alternativen zu Lines-Of-Code (LoC)

ƒ Non-Comment-Source-Statements (NCSS)
     ƒ baue abstrakten Syntaxbaum auf, zähle geeignete Knotentypen
     ƒ z.B. im Eclipse-Plugin

ƒ Volumen
     ƒ Wird gemessen in Bit
     ƒ kein eigenes Messverfahren, Wert wird abgeleitet:                  V=N•log2η
     ƒ wobei
         ƒ N=Größe des Vokabulars
         ƒ η=benutzte Symbole

ƒ   Es zeigt sich aber empirisch:
    Für viele realistische Programme p gilt: V(p) = O(LoC(p)).

ƒ   Für eine Reihe weiterer Größenmaße gilt das gleiche.
                                 Projektmanagement V5 - Schätzverfahren               20
Exkurs: Messen von Systemkomplexität
Entwurfsmetriken

ƒ OO-Metriken:
   ƒ Attribute, Methoden, Anzahl Vererbungsstufen, Abhängigkeiten

ƒ Graph-basierte Maße (gut bei UML-Modellen)
   ƒ Zusammenhalt (auch: Kohäsion) eines Teilgraphen G: Anteil der
     Kanten innerhalb von G im Vergleich zur Anzahl aller Kanten, an denen
     G beteiligt ist.
   ƒ Kopplung zwischen zwei Teilgraphen G1 und G2 eines Graphen: Anteil
     existierender Verbindungen zwischen Knoten von G1 und G2 im
     Vergleich zur Anzahl aller möglichen Verbindungen
   ƒ McCabe‘s Cyclomatic Complexity (bei Flussgraphen : Anzahl der
     linear unabhängigen Pfade (= #Kanten - #Knoten +2)

                             Projektmanagement V5 - Schätzverfahren          21
Schätzverfahren: Delphi-Methode

ƒ Charakteristikum:
   ƒ Systematische Befragung von mindestens zwei Experten, die aus
     Erfahrung Voraussagen über den Zeit/Ressourcen-Bedarf einzelner
     Projektaktivitäten machen.
ƒ Varianten:
   ƒ Standard Delphi-Verfahren:
       ƒ Befragung anonym
   ƒ Breitband Delphi-Verfahren:
       ƒ Schätzergebnisse werden gegenseitig bekanntgegeben, damit Resultate
         diskutiert und ggf. korrigiert werden können
       ƒ Häufig Schätzung im Rahmen einer Schätzklausur

                             Projektmanagement V5 - Schätzverfahren            22
Schätzklausur

ƒ   Phase 1: Auftragsdefinition
     ƒ Auftraggeber, Kunde, Verantwortliche und Durchführende festlegen
     ƒ Ziel definieren
     ƒ Aufgaben analysieren (Prozesszerlegung)

ƒ   Phase 2: Schätzungsvorbereitung
     ƒ   Geeignete Leute einladen
     ƒ   Fachleute, Verantwortliche, Durchführende
     ƒ   2 Stunden ansetzen
     ƒ   Excel-Sheet vorbereiten

ƒ   Phase 3: Schätzung
     ƒ Projekt und Projektplan vorstellen, Aufwands- und Zeitplan austeilen, ggf.
       korrigieren (lassen)
     ƒ Jeder schreibt seine Schätzungen auf Ansage auf
     ƒ Jeder sagt seine Schätzungen auf Ansage an
     ƒ Extrema diskutieren, ggf. entfernen
     ƒ Mittelwerte bilden
     ƒ Summe bilden

                                   Projektmanagement V5 - Schätzverfahren           23
Schätzklausur

 Meistens gibt es anschließend noch eine Phase 4,
 in der die Schätzung interessengeleitet verändert wird.

                          Projektmanagement V5 - Schätzverfahren   24
Zwischenfazit

Sind Schätzungen notorisch
ungenau – wieso?

In wohlgeordneten Prozessen
sind Schätzungen von einem
zum nächsten Mal vergleichbar.

Man kann also aus Fehlern
lernen.

Nicht so bei ungeordneten
Prozessen.

Hier werden Fehler versteckt
oder verdeckt.

                               Projektmanagement V5 - Schätzverfahren   25
Schätzverfahren: Funktionspunkte (Function Points - FP)

ƒ Historie:
      Eingeführt 1979 von Alan Albrecht (IBM).
      Seit 1986 verwaltet und normiert durch die International Function Point User
      Group (IFPUG);
      Gegenstand der ISO-Standards 10926 und 14143-1:1998.
ƒ Idee:
      Schätzung des Arbeitsaufwands in Mann-Stunden anhand der vom Kunden
      gewünschten Funktionen
ƒ Vorgehen:
    ƒ Zähle und klassifiziere (als einfach, mittel, komplex) wenige Arten von
      Anforderungen, vergebe dafür jeweils Funktionspunkte (FP), summiere
      diese und bestimme Aufwand daraus per empirischem Umrechnungsfaktor
      (unangepasste FP)
      FP ist also ein Stellvertreterverfahren
    ƒ Anschließend kann man noch Projektumstände berücksichtigen, um die
      Schätzung anzupassen (angepasste FP)
      Hinzu kommt also ein Korrekturfaktorverfahren
                              Projektmanagement V5 - Schätzverfahren            26
Unangepasste FP (UFP)

ƒ Messverfahren: Klassifiziere Anforderungen in
   ƒ   Eingaben           Eingabemasken, für die Datensätze eingegeben werden können
   ƒ   Ausgaben           Datenpräsentationsdarstellung ("Report")
   ƒ   Abfragen           Eingabe eines Suchkriteriums plus Anzeige des Gefundenen
   ƒ   Datenbestände      Intern verwalteter Datenbestand (z.B. DB-Tabelle)
   ƒ   Referenzdaten      Schnittstelle/Datenformat zur Anbindung an anderes System

ƒ Bewerte jedes Element als einfach, mittel oder komplex und bilde die
  gewichtete Summe nach folgender Tabelle:

       Item            einfach    mittel         komplex
   ƒ   Eingaben           3            4             6
   ƒ   Ausgaben           4            5             7
   ƒ   Interaktionen      3            4             6
   ƒ   Datenbestände      7            10            15
   ƒ   Referenzdaten      5            7             10

                                 Projektmanagement V5 - Schätzverfahren          27
Angepasste FP

ƒ                 FP = UFP * TK
    wobei der Korrekturfaktor Technische Komplexität (TK) gebildet wird durch

                  TK = 0.65+0,01    Σ   i=1..14 Fi                  (d.h. 0.65
Technische Korrekturfaktoren
Übersetzung und Erläuterung

Faktor   Originalname                 Erläuterung

F1       Reliable back-up & recov.    Anforderungen an die Datenintegrität
F2       Data communications          Datenaustausch mit Umsystemen
F3       Distributed functions        Applikationen auf mehr als einem Rechner
F4       Performance                  Leistungsanforderungen

F5       Heavily used config.         Starke Konfigurationsabhängigkeiten
F6       Online data entry            Interaktive Benutzung
F7       Operational ease             Interaktionsqualität
F8       Online update                unmittelbare Aktualisierung (WYSIWYG)

F9       Complex interface            komplexe Benutzerschnittstelle
F10      Complex processing           algorithmisch komplexe Verarbeitung
F11      Reusability                  geplante Wiederverwendung/Wartung
F12      Installation ease            Installationskomfort

F13      Multiple sites               mehrere (unterschiedliche) Installationen
F14      Facilitate change            Unterstützung der Anpassung in der Wartung

                                Projektmanagement V5 - Schätzverfahren             29
Berechnung am Beispiel
„Ausleihmaske“

   Ausleihsystem
                                                                      Mögliche Interaktionen:
     Stammdaten          Kontodaten                                   1) Ausweis scannen
      Lesernummer        Titel       Signatur Frist                   2) Konto- und Stammdaten
                                                                      abfragen durch Eingabe der
      Name
                                                                      Lesernummer
                                                                      3) Stammdaten eingeben
      Vorname

      Geburtsdatum

       OK       Neu

     Stammdaten       Kontodaten              Bestand

                                   Projektmanagement V5 - Schätzverfahren                    30
Berechnung am Beispiel
„Ausleihmaske“

1.) Elemente zählen

                      (1)                        (2)                 (3)

Eingaben              1x einfach                 -                   1x mittel
Ausgaben              -                          1x mittel           -
Abfragen              -                          -                   -

Referenzdaten         1x einfach
Datenbestände         3x einfach

                            Projektmanagement V5 - Schätzverfahren               31
Berechnung am Beispiel
„Ausleihmaske“

2.) UFP berechnen

                      (1)                         (2)                 (3)

Eingaben              1x 3                        -                   1x 4
Ausgaben              -                           1x 5                 -
Abfragen              -                           -                   -
Referenzdaten         1x 5         -                  -
Datenbestände                      ------ 3x 7 ------

UFP = 3 + 4 +5 + 5 +21 = 38

                             Projektmanagement V5 - Schätzverfahren          32
Berechnung am Beispiel
„Ausleihmaske“

3.) Technische Faktoren
    schätzen                                      Technische Komplexität

2      F1 Reliable back-up & recovery             TK = 0,65+0,01         Σ   i=1..14 Fi
1      F2 Data communications
2      F3 Distributed functions                   hier also
1      F4 Performance                                 TK = 0,65+0,01 * 26
0      F5 Heavily used configuration                        = 0,91
3      F6 Online data entry
5      F7 Operational ease                           FP = TK * UFP
3      F8 Online update                           Also im Beispiel
2      F9 Complex interface                          FP = 0,91 * 38 = 34,58
0      F10 Complex processing
1      F11 Reusability                            Falls in einer Firma 1 FP 2,1 PT entspricht,
1      F12 Installation ease                          erhält man ca. 72 PT;
4      F13 Multiple sites                         d.h. bei 18 PT pro Monat (220 PT pro Jahr)
1      F14 Facilitate change                          einen Entwicklungsaufwand von etwa 3
                                                      PM

                                Projektmanagement V5 - Schätzverfahren                    33
Ist das Produktivitätsparadoxon
behoben?
Sprache          LoC / FP                       LoC / Mannmonat relativ
                                                  konstant.
Komplexität      niedrig mittel     hoch
                                                => In einer höheren
Assembler        200     320        450            Programmiersprache schafft
                                                   ein Programmierer mehr
C                60      128        170            Funktionalität pro Zeiteinheit.
Fortran          75      107        160
Cobol            65      107        150         => Es gibt Produktivitätsunter-
C++              30      53         125            schiede zwischen
Smalltalk        15      21         40             Programmiersprachen.

Damit ist ein Teil des Produktivitätsparadoxons behoben, aber es gibt noch
andere Einflussgrößen: Das Verhältnis LoC/FP hängt z.B. auch von der System-
komplexität insgesamt ab. Aber FPs sind schon deutlich besser als LoC.

Erfahrungswert: Die Erstellung eines Function Points kostet etwa 1.500 €.
                               Projektmanagement V5 - Schätzverfahren                34
Schätzverfahren: CoCoMo (Constructive Cost Modeling)

ƒ   Entwickler: Barry Boehm
ƒ   1981 CoCoMo I, ab 1995 CoCoMo II

ƒ   Idee:
     ƒ Schätzung der Projektgröße Size in LOC (Lines
       of Code) bzw. KDSI (Kilo Delivered Software
       Instructions), d. h. ohne Kommentare.
     ƒ Gleichungen:
         Aufwand: PMDEV = a * Sizeb * m
          Laufzeit:    TDEV = 2,5 * MMDEVd
                                                                                 Barry Boehm
            ƒ PMDEV Entwicklungsaufwand in PM und
                                                                                 *1935
            ƒ TDEV Projektlaufzeit
            ƒ a, b, d, m unternehmensspezifisch zu kalibrierende
                                                                                 PhD UCLA,
              Faktoren                                                           Prof. USC,
            ƒ b beschreibt überproportionale Auswirkung großer                   Erfinder von
              Projekte                                                           V- und
            ƒ m dient zur Berücksichtigung von Attributen für                    Spiralmodell,
              Produkt, Vorgehen und die Qualität von Entwicklern
                                                                                 CoCoMo

                                        Projektmanagement V5 - Schätzverfahren                   35
CoCoMo I

Differenzierung in Projekt-Klassen
ƒ Einfach (Organic Mode)
   ƒ   einfache Anwendungssoftware, Größe
COCOMO: Größe vs. Aufwand

                   Projektmanagement V5 - Schätzverfahren   37
Einflussfaktoren, Kostentreiber
ƒ   Produkt
     ƒ RELY: geforderte Zuverlässigkeit der Software
     ƒ DATA: Größe der Datenbasis
     ƒ CPLX: Komplexität des Produktes
ƒ   Computer                                                 Der Korrekturfaktor m dient zur
     ƒ   TIME: benötigte Rechenzeit                          Berücksichtigung
     ƒ   STOR: Nutzung verfügbarer Speicherplatz             unternehmensspezifischer und
     ƒ   VIRT: Änderungshäufigkeit der Systembasis           projektspezifischer Kostenfaktoren
     ƒ   TURN: Bearbeitungszyklus                            (cost drivers):
ƒ   Projekt                                                  m = m1 * m2 * … * m15
     ƒ MODP: Verwendung moderner
        Entwicklungsmethoden                                 MMDEV = a * KDSIb * m
     ƒ TOOL: Verwendung von Tools
     ƒ SCED: Anforderungen an die Entwicklungszeit
ƒ   Personal
     ƒ ACAP: Analysefähigkeit der Projektmitarbeiter
     ƒ AEXP: Erfahrung der Mitarbeiter im Arbeitsgebiet
     ƒ PCAP: Programmierfähigkeit der Mitarbeiter
     ƒ VEXP: Erfahrung der Mitarbeiter in der
        Systemumgebung
     ƒ LEXP: Erfahrung der Mitarbeiter in der
        Programmiersprache
                                   Projektmanagement V5 - Schätzverfahren                    38
Kostenfaktoren m = m1 * m2 * … * m15

                     Projektmanagement V5 - Schätzverfahren   39
CoCoMo II

ƒ COCOMO II (Boehm et al. 2000) ist eine Weiterentwicklung von
  COCOMO zu einem 3-Stufen Modell, das bei Entwicklungsfortschritt
  immer genauere Schätzungen ermöglicht.

COCOMO II unterscheidet:
ƒ Frühe Entwicklungsphasen (Early prototyping level)
   ƒ Schätzung für Projekte mit Prototyperstellung und hoher
     Wiederverwendung basierend auf Anwendungspunkten (application
     points) und einfacher Formel für die Aufwandschätzung
ƒ Frühe Entwurfsphase (Early design level)
   ƒ Schätzung nach abgeschlossenen Festlegung der
     Systemanforderungen und einem ersten Entwurf basierend auf
     Funktionspunkten, die in LOC übersetzt werden.
ƒ Nach-Architektur-Phase (Post-architecture level)
   ƒ Schätzung nach Erstelleung der Architektur basierend auf LOC
                            Projektmanagement V5 - Schätzverfahren   40
Nach-Architektur-Phase (Post-architecture level)

ƒ Wir betrachten hier nur die Post-Architektur-Phase (für eine kurze
  Beschreibung der anderen Phasen siehe Anhang).
ƒ Neue universelle Grundgleichungen
   ƒ Aufwand                          PM = 2,45 * KSLOCB * M
   ƒ Entwicklungszeit                 T = 2,66 * PM 0,33 + 0,2·(B - 1,01)
     wobei
       ƒ   KSLOC: Kilo Source Lines of Code
       ƒ   Wachstumsfaktor B = 1,01 + 0,01 Σ SFi
       ƒ   SFi sind insgesamt fünf Skalierungsfaktoren (scaling factors)
       ƒ   M ist das Produkt der insgesamt 17 Kostenfaktoren (effort multipliers)

                                Projektmanagement V5 - Schätzverfahren              41
COCOMO II: Skalierungsfaktoren (scaling factors)

      Faktor          Sehr    Gering        Nominal           Hoch     Sehr   Extra
                     gering                                            hoch   hoch
      Erfahrung       4,05     3,24            2,43           1,62     0,81    0
      Flexibilität    6,07     4,86            3,64           2,43     1,21    0
      Risikoumgang    4,22     3,38            2,53           1,69     0,84    0
      Zusammen-       4,94     3,95            2,97           1,98     0,99    0
      arbeit
      Prozessreife    4,54     3,64            2,73           1,82     0,91    0

ƒ   Erfahrung: Vertrautheit des Entwicklungsteams mit dem Produkt
ƒ   Flexibilität bezüglich der Einhaltung von Anforderungen / Vorgaben
ƒ   Risiko-Umgang: Qualität des Risikomanagements
ƒ   Güte der Zusammenarbeit zwischen allen Projektbeteiligten
ƒ   Reife des Entwicklungsprozesses

                              Projektmanagement V5 - Schätzverfahren                  42
Beispiel

ƒ Eine Firma will ein Projekt in einem neuen Gebiet durchführen.
  Der Kunde hat keinen speziellen Entwicklungsprozess gefordert
  und Zeit für die Risikoanalyse eingeplant. Die Firma besitzt eine
  Prozessreife der Stufe 1 (nach CMM – siehe später).

ƒ Skalierungsfaktoren:
   ƒ   Erfahrung:                      neues Projekt                      S. gering (4,05)
   ƒ   Prozessflexibilität             Kunde lässt Freiheit               S. hoch (1,21)
   ƒ   Architecture/risk resolution    Keine Risikoanalyse                S. gering (4,22)
   ƒ   Teamzusammenhalt                Neues Team                         Nominal (2,97)
   ƒ   Prozessreife                    CMM Level 1                        Gering (3,64)
   ƒ   Summe                                                                       16,19

ƒ Der Skalierungsfaktor ist also 1,01 + 0,16 = 1.17

                                 Projektmanagement V5 - Schätzverfahren                      43
COCOMO II: Kostenfaktoren (effort multipliers)

                             Projektmanagement V5 - Schätzverfahren   44
Beispiel: 2,45 * KSLOC1.17 * M

                                                            SLOC

                       Projektmanagement V5 - Schätzverfahren      45
Schätzverfahren in der Praxis

ƒ Oft sind Schätzungen gefragt, noch bevor man auch nur halbwegs
  den Projektinhalt versteht
   ƒ und dennoch werden die Schätzergebnisse anschließend
     verbindlich
ƒ Viele Firmen sammeln Aufwandsdaten nicht
   ƒ Dann hat man sie nur in den Köpfen der Entwickler/Projektleiter
   ƒ Das ist sehr ungenau!
ƒ Oft wird das Ergebnis der Schätzung nicht akzeptiert
   ƒ sondern es gibt politischen Druck, die Schätzung zu verringern,
   ƒ aber die künstlich verminderte Schätzung wird trotzdem zur
     verbindlichen Vorgabe an das Projektteam.
   ƒ Dramatischste Ausprägung: "Todesmarsch-Projekte„
       ƒ Schätzung liegt 50% oder mehr unterhalb "vernünftiger" Werte

                              Projektmanagement V5 - Schätzverfahren    46
Zusammenfassung (1)

ƒ Ziel des Schätzens ist die Bestimmung des Entwicklungsaufwands
  abhängig von Systemkomplexität und Produktivität und zwar
  möglichst vor Systemrealisierung
ƒ Typische Maße zur Systemkomplexität sind Lines-Of-Code (LoC)
  und Non-Comment-Source-Statements. Weitere Komplexitätsmaße
  sind Zyklomatische Zahl, Kopplung/Kohäsion, Vererbungstiefe.
ƒ Schätzungen werden fast immer aus einer Kombinationen der
  grundlegenden Schätzmuster hergeleitet
   ƒ   Schätzen durch Vergleich
   ƒ   Schätzen durch Zerlegung (Anforderungen oder Entwurf)
   ƒ   Expertenschätzung
   ƒ   Schätzen mit Korrekturfaktoren
   ƒ   Schätzen mit Stellvertretergröße

                            Projektmanagement V5 - Schätzverfahren   47
Zusammenfassung (2)

ƒ Wichtige Schätzverfahren sind das Delphi-Verfahren, Function
  Points und CoCoMo
   ƒ Das Delphi-Schätzverfahren ist eine Expertenschätzung, bei der Experten
     aus Erfahrung Voraussagen über den Zeit/Ressourcen-Bedarf einzelner
     Projektaktivitäten machen.
   ƒ Mit Function Points schätzt man den Arbeitsaufwand in Mann-Stunden
     anhand der vom Kunden gewünschten Funktionen; dieses Verfahren ist bei
     einfachen (Informations-) Systemen gut anwendbar.
   ƒ CoCoMo dient zur Schätzung der Projektgröße Size in LOC (Lines of Code)
     bzw. KDSI (Kilo Delivered Software Instructions),
       ƒ CoCoMo I beruht auf der Schätzgleichung
                MMDEV = a * Sizeb * m
       ƒ COCOMO II ist ein 3-Stufen Modell, das bei Entwicklungsfortschritt immer
         genauere Schätzungen ermöglicht

                                Projektmanagement V5 - Schätzverfahren              48
Sie können auch lesen