Aufwands- und Kostenschätzung

Slides:



Advertisements
Ähnliche Präsentationen
Erstellen von Raumgrundrissen mit Vorlagen
Advertisements

Fast Fourier Transformation
Das V - Modell - Überblick
V - Modell Anwendung auf große Projekte
Phasen und ihre Workflows
Programmieren im Großen von Markus Schmidt und Benno Kröger.
1 Workshop: Grundlagen des IT-Projektmanagements - Version /2004Modul: Aufwand – Ergänzung FP Copyright: Dr. Klaus Röber Modul Ergänzungen zur.
Modul Grundlagen der Aufwandschätzung
DANSY Dynamische Analyse von Systemen
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Von David Keß, Heinrich Wölk, Daniel Hauck
V-Modell XT - Ein Überblick
3. Kapitel: Komplexität und Komplexitätsklassen
Seminar „Extrapolationsmethoden für zufällige Felder“
Datenbankzugriff im WWW (Kommerzielle Systeme)
Anwendungsverteilung und räumliche Ausdehnung
Werdegang, aktueller Stand,
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Konzeption und prototypische Implementierung eines zentralen Informationssystems für Systemmanagement Motivation Oft wird es schwierig, die benötigten.
Management großer Softwareprojekte
Prozessmodelle als Teil des Management-Prozesses
Beispiel: Wasserfallmodell als einfaches Phasenmodell
RUP-Elemente (Schlüsselkonzepte)
Das V - Modell - Überblick
Java: Objektorientierte Programmierung
Gliederung Tabellarische und grafische Darstellung von Rohwerten mittels Histogramme und Polygone Statistische Kennwertbeschreibung mittels Tendenz- und.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Computerkurs: Quantitative Auswertung biochemischer Experimente Guten Morgen.
Software-Engineering
– Team 2 Aktueller Projektleiter: Christian Krapp
eXtreme Programming (XP)
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
Experimentaufbau und -design
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Projektplan:
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
Vorgehensmodelle: Schwergewichtige Modelle
Software Engineering WS 2009
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Daten auswerten Boxplots
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
Entwurf und Realisierung des Add-On’s Projektmanagement in SiSy
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
Die Planungsphase Durchführbarkeitsuntersuchung: fachlich, personell und wirtschaftlich Lastenheft (grobes Pflichtenheft) Glossar Projektkalkulation Projektplan.
IT-Projektmanagement SS 2013 Prof. Dr. Herrad Schmidt
Bestimmen von Prozentwert, Grundwert und Prozentsatz
Seminar Softwareentwicklung Programmierstil Helmut Schmidauer
Strukturierter Entwurf (und Realisierung)
HORIZONT 1 XINFO ® Das IT - Informationssystem Assembler HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Innovator Die Komponenten.
Wasserfallmodell und Einzelbegriffe
SPODAT - Blick nach vorn
Keynote for SCI/ISAS 99 on Automated Modification of Legacy Assets Chris Verhoef University of Amsterdam Deutsche Version von Monika Schneider, sd&m.
PRO:CONTROL Ziel des Moduls Arbeitspakete
Content Management System
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Anleitung Top-Down Planung
Software Engineering Grundlagen
Das IT - Informationssystem
Interoperabilität in Digitalen
Detaillierte Beschreibung der Vorgehensweise in der Ablaufplanung und Terminplanung Abbildung: Vorgehensweise bei der Ablauf- und Terminplanung.
Kosten- und Finanzmittelplanung
Schätzmethoden: CoCoMo und FPA
CoCoMo&FPA Nils Reiners Matrknr
 Präsentation transkript:

Aufwands- und Kostenschätzung Management von Software-Systemen Aufwands- und Kostenschätzung

Aufwandsschätzung Wie viel Aufwand ist für die Erledigung einer Aufgabe erforderlich? Wie viel Zeit ist für die Erledigung einer Aufgabe erforderlich? Wie hoch sind die für eine Aufgabe anfallenden Gesamtkosten?

Drei Parameter sind für die Berechnung der Gesamtkosten eines Softwareentwicklungsprojekts von Bedeutung: Hardware- und Softwarekosten, einschließlich Wartung Reise- und Schulungskosten Personalkosten

Folgende Kostenfaktoren sind auch Teil des Gesamtaufwands: 1. Kosten für die Bereitstellung, Beheizung und Beleuchtung der Büroräume 2. Kosten für unterstützendes Personal 3. Kosten für Netz und Kommunikation 4. Kosten für zentrale Einrichtungen wie Bibliotheken, Erholungseinrichtungen 5. Kosten für Sozialversicherungen, Krankenversicherungsanteile und Mitarbeiterzuwendungen wie Erfolgsbeteiligungen und Betriebsrenten

Folgende Faktoren haben einen Einfluss auf den Preis von Software: Marktchancen Unsicherheit der Aufwandsschätzung Vertragsbedingungen Unbeständigkeit der Anforderungen Wirtschaftliche Bonität

Produktivität (1) Die Produktivität in einem Fertigungssystem wird gemessen, indem man die produzierte Stückzahl durch die Anzahl der für die Produktion erforderlichen Personenstunden teilt.

Produktivität (2) Folgende Faktoren haben einen Einfluss auf die Produktivität der Softwareentwicklung: - Erfahrung im Anwendungsgebiet - Prozessqualität - Projektgröße - Technische Unterstützung - Arbeitsumgebung

Produktivität (3) Zur Produktivitätsschätzung werden einige Softwareattribute verwendet, deren Wert an der Entwicklung des erforderlichen Gesamtaufwands in zwei Arten von Maßen beteiligt. 1. Größenspezifische Maße: Das gebräuchlichste größenspezifische Maß sind die Zeilen gelieferten Quellcodes. 2. Funktionsspezifische Maße: ~ Function Points ~ Object Points

Dauer der Systementwicklung: Analyse Entwurf Codierung Testen Dokumen tation Assemblercode 3 W 5 W 8 W 10 W 2 W Höhere Programmier- 3 W 5 W 8 W 6 W 2 W sprache Größe Aufwand Produktivität Assemblercode 5000 Zeilen 28 W 714 Zeilen/Monat Höhere Programmier- 1500 Zeilen 20 W 300 Zeilen/Monat

Function Points (1) Entstehung Function Points wurden in den 70er Jahren von A.J. Albrecht (IBM) entwickelt und seither von verschiedenen Autoren und Gremien ergänzt und weiterentwickelt. Idee Die Grösse eines Informationssystems kann gemessen werden durch eine geeignete Quantifizierung der Funktionalität. Unabhängig von der Realisierung Können bereits ermittelt werden, wenn Anforderungen vorliegen Weniger anschaulich als Lines of Code Verfahren ist auf Informationssysteme zugeschnitten

Function Points (2) Bestimmung der Anzahl Function Points(1) Zur Berechnung der Gesamtanzahl der Function Points eines Programms misst man die folgenden Programmfunktionen: Gewichtungsfaktoren Komplexität niedrig Komplexität mitttel Komplexität hoch Dateneingaben 3 4 6 Datenausgaben 5 7 Benutzerinteraktionen Externe Schnittstellen 10 Vom System verwendete Dateien 15  „Unadjusted Function Point Count“

Function Points (3) Unadjusted Function Point Count Der sogenannte Function-Point-Rohwert wird berechnet, indem die einzelnen Häufigkeiten mit dem geschätzten Gewicht multipliziert und alle Werte aufsummiert werden. UFC=∑ (Anzahl der Elemente eines bestimmten Typs) * Gewicht

Function Points (4) Adjusted Function Point Count Durch die Multiplikation von „Unadjusted Function Point Count“ mit einem Korrekturfaktor, der die technische Komplexität des Systems reflektiert, berechnet man den Wert von „Adjusted Function Point Count“ Adjusted Function Point Count = Korrekturfaktor * „Unadjusted Function Point Count“

Aufwandschätzung mit Function Points Sollen Function Points zur Aufwandschätzung verwendet werden, so muss der Aufwand pro Function Point bekannt sein. Faustregeln zur Aufwandberechnung: Kalenderzeit [Monate] = FP 0.4 Anzahl Mitarbeiter = FP/150 Aufwand [Personenmonate] = Kalenderzeit * Anzahl Mitarbeiter Sollen projektspezifische Faktoren (z.B. die Fähigkeiten der MitarbeiterInnen) berücksichtigt werden, so müssen zusätzliche Korrekturfaktoren verwendet werden.

Weitere Faustregeln mit FPs (1) 1 Function Point = 320 Statements in Basic Assembler 1 Function Point = 213 Statements in Makro Assembler 1 Function Point = 128 Statements in C 1 Function Point = 107 Statements in COBOL 1 Function Point = 107 Statements in FORTRAN 1 Function Point = 80 Statements in PL/I 1 Function Point = 71 Statements in ADA83 1 Function Point = 53 Statements in C++ 1 Function Point = 15 Statements in Smalltalk  für prozedurale Sprachen: 1 FP = 100 Statements  für objekt-orientierte Sprachen: 1 FP = 20 Statements

Weitere Faustregeln mit FPs (2) Dokumentationsumfang: Anzahl Seiten = FP 1.15 Schleichende Anforderungen wachsen während der Design bis zur Codierungsphase durchschnittlich um 2% pro Monat. Anzahl benötigter Test Cases = FP 1.2 Anzahl benötigter Personen für die Wartung der Software = FP/750

Object Points Bei der Anzahl der Object Points eines Programms handelt es sich um eine gewichtete Schätzung folgender Faktoren: - Die Anzahl der einzelnen angezeigten Bildschirmmasken - Die Anzahl der erzeugten Berichte - Die Anzahl der 3GL-Module, die zur Erzeugung des 4GL-Codes entwickelt werden müssen

Schätzverfahren Um den Aufwand und die Kosten für eine Software schätzen zu können, werden eines oder mehrere der unten beschriebenen Verfahren verwendet: - Analogieschätzung - Parkinsons Gesetz - price to win - Algorithmisches Aufwandsmodell - Expertenbeurteilung

Schätzverfahren (2) Expertenbeurteilung Vorgehen: Der Aufwand eines Projekts wird auf Grund des Aufwands eines möglichst ähnlichen früheren Projekts prognostiziert. Unterschiede werden so gut wie möglich berücksichtigt. Einfach und billig Kann sehr ungenau sein (Die Qualität der Schätzung ist von der Erfahrung der Schätzer und der Qualität der Erfahrungs-daten abhängig)

- Objektorientierte anstelle funktionsorientierter Die neuen Methoden und -verfahren wie - Objektorientierte anstelle funktionsorientierter Entwicklung - Client/Server-Systeme anstelle von Großrechnern - Entwicklung zur und unter Wiederverwendung anstelle von Neuentwicklung aller Systemteile - ….. erschweren den Experten die genauere Schätzung des Aufwands.

Top-down und Bottom-up Ansatz Er setzt auf Systemebene ein. Bottom-up Er setzt auf Komponentenebene ein ! Gefahr, dass projektübergreifende Aktivitäten vergessen werden ! Gefahr, dass Schätzung nicht genügend auf Details eingeht Top-down: wir häufig in den frühen Phasen eine Projektes durchgeführt Bottom-up: wird eher später ausgeführt

Algorithmische Schätzverfahren (1) Algorithmische Schätzverfahren berechnen den Aufwand mit Hilfe mathematischer Formeln. Die Formeln sind in der Regel aus der statistischen Analyse historischer Daten entstanden. Die Formeln verwenden Parameter, die das Produkt charakterisieren und Parameter, die die Bedingungen der Entwicklungsumgebung beschreiben Die meisten Verfahren basieren auf der folgenden Grundformel: Aufwand = A * Grösse B

Der Aufwand für die Erstellung von Software steigt mit wachsender Produktgrösse überproportional an.

y= a  xe Kurve 1: e>1 Kurve 2: e=1 Kurve 3: e<1

Algorithmische Schätzverfahren (2) Genauigkeit der Schätzung abhängig von der Genauigkeit der Eingangsgrössen der Qualität der Kalibrierung (Anpassung an die jeweilige Entwicklungsumgebung)

COCOMO (Constructive Cost Model) COCOMO beruht auf einer Kombination von Gleichungen, statistischen Modellen, und Schätzungen von Parameterwerten Cocomo ist ein Drei-Stufen-Modell Ausgangspunkte der Schätzung sind: - Ermittlung der LOC/KDSI - Ermittlung der Berechnungsfaktoren

Basic COCOMO (1) Aufwand [in Personenmonaten] = A * Programmgrösse [inKDSC] B Entwicklungszeit [in Monaten] = C * Aufwand D Komplexität des Projekts A B C D Einfach („Organic Mode Projects“) 2.4 1.05 2.5 0.38 Mittelschwer (Semi-detached Mode Projects“) 3.0 1.12 0.35 Eingebettet („Embedded Mode Projects“) 3.6 1.2 0.32 2 Formeln Koeffizienten varieren je nach Systemtyp  Boehm unterscheidet 3 Typen: Organic: einfache Anwendungsprogramme Programmsysteme: ein erheblicher Anteil Interaktionmit Betriebssysteme, gerätetreibern etc. kommt hinzu Embedded: Erstellung noch einmal schwieriger

Basic COCOMO (2) eingebettet mittelschwer einfach

Basic COCOMO (3)

Intermediate COCOMO (1) Die mit dem Basic COCOMO ermittelten Werte können noch erheblich genauer gemacht werden, indem man den mit dem Basic COCOMO geschätzten Aufwand mit einer Reihe von Kostenfaktoren (sogenannten Cost Driver Attributes) multipliziert. Cost Driver Attributes Aufwand [in Personenmonaten]= K1 * ... * K15 * „Aufwand aus Basic COCOMO“

Einige Kostenfaktoren Produkt-abhängige Attribute -RELLY: Erforderliche Systemzuverlässigkeit zwischen 0.75-1.40 Rechner-abhängige Attribute -VIRT: Software Entwicklungsumgebung zwischen 0.87-1.30 Personen-abhängige Attribute -LEXP: Erfahrung mit der Programmiersprache zwischen 0.95-1.14 Projektumgebung-abhängige Attribute -MODP: Erfahrung mit modernen Programmiermethoden zwischen 0.82-1.24

Intermediate COCOMO (2) Vorgehen Den „Entwicklungsmodus“ des Projekts identifizieren Die Grösse des Projekts (in Anzahl Codezeilen) schätzen Die 15 „Cost Driver Attributes“ bestimmen Den Projektaufwand in Personenmonaten und die Projektdauer in Monaten berechnen Transparent („man versteht das Modell“) Modell ist anfällig auf falsches Zuweisen des Entwicklungsmodus Cost Driver Attributes und insbesondere die Software-Grösse müssen gut geschätzt werden

Detailed COCOMO Im Detailed COCOMO können die Cost Driver Attributes auf einzelne Phasen oder einzelne Subsysteme anstatt nur auf das System als Ganzes angewendet werden. Höherer Aufwand für seine Implementierung und Anwendung als bei Intermediate Cocomo

Das COCOMO 2.0 Modell (1) 1. Die frühe Prototypenstufe: Wie das ursprüngliche Modell ist auch das COCOMO 2-Modell ein Dreistufenmodell 1. Die frühe Prototypenstufe: - Die Größenschätzungen basieren auf Object Points, die durch eine Standardzahl für die geschätzte Produktivität dividiert wird. - Zur Schätzung des erforderlichen Aufwands wird eine einfache Größen-/Produktivitätsformel verwendet. PM=(NOP*(1-%reuse/100))/PROD

Das COCOMO 2.0 Modell (2) 2. Die frühe Entwurfsstufe: - Diese Stufe entspricht der abgeschlossenen Festlegung der Systemanforderungen und einem ersten Entwurf - Die Schätzungen basieren auf Function Points, die dann in die Anzahl der Quellcodezeilen umgewandelt werden. PM=A * GrößeB * M + PMm M=PERS * RCPX * RUSE * PDIF * PREX * FCIL * SCED PMm= (ASLOC * (AT/100)) / ATPROD

Das COCOMO 2.0 Modell (3) 3. Die Stufe nach dem Architekturentwurf: - Die erste Aufwandsberechnung wird verfeinert. - Es werden 17 Attribute anstelle von 7 Attributen verwendet. - Die Schätzung der Gesamtanzahl der Zeilen an Quellcode wird so angepasst, zwei wichtige Projektfaktoren Berücksichtigung finden: ~ Die Unbeständigkeit der Anforderungen ~ Der Umfang einer möglichen Wiederverwendung

Das COCOMO 2.0 Modell (4) Im Vergleich zum ursprünglichen COCOMO-Modell wird hier der Exponent unter Berücksichtigung von Skalierungsfaktoren geschätzt: 1. Vorhandensein 2. Entwicklungsflexibilität 3. Architektur/Risikoauflösung 4. Teamzusammenhalt 5. Prozessausgereiftheit

Das COCOMO 2.0 Modell (5) Die Auswirkung von Skalierungsfaktoren auf die Aufwandsschätzung (1) Exponent 1.17 Systemgröße(einschließlich der Faktoren für die 128,0 DSIa Wiederverwendung und die Unbeständigkeit der Anforderungen) Erste COCOMO-Schätzung ohne Kostenfaktoren 730 PM Zuverlässigkeit Sehr hoch Komplexität Sehr hoch Speicherbeschränkungen Hoch Werkzeugverwendung Gering Zeitplan Beschleunigt Angepasste COCOMO-Schätzung 2306 PM

Das COCOMO 2.0 Modell (6) Die Auswirkung von Skalierungsfaktoren auf die Aufwandsschätzung (2) Zuverlässigkeit Sehr gering Komplexität Sehr gering Speicherbeschränkungen Keine Werkzeugverwendung Sehr hoch Zeitplan Normal Angepasste COCOMO-Schätzung 295 PM

Algorithmische Kostenmodelle bei der Projektplanung Bei der Aufwandsschätzung für ein Projekt sind drei Komponenten zu berücksichtigen: 1. Die Kosten der Zielhardware, auf der das System ausgeführt werden soll. 2. Die Kosten der Plattform, auf der das System entwickelt wird. 3. Die Kosten des für die Softwareentwicklung erforderlichen Aufwands.

Optionen für das Management Verwendung vorhandener Hardware, eines vorhandenen Entwicklungssystems und Entwicklungsteam B. Prozessor- und Speicheraufrüstung Hardwarekosten steigen Erfahrung sinkt C. Nur Speicher- Aufrüstung Hardwarekosten steigen D. Erfahrenes Personal E. Neues Entwicklungs- system Hardwarekosten steigen Erfahrung sinkt F. Personal mit Hardwareerfahrung

Kosten der Managementoptionen Option RELY STOR TIME TOOLS LTEX PM SK($) HK($) GK($) A 1,39 1,06 1,11 0,86 1 63 949.393 100.000 1.049.393 B 1,39 1 1 1,12 1,22 88 1.313.550 120.000 1.402.025 C 1,39 1 1,11 0,86 1 60 895.653 105.000 1.000.653 D 1,39 1,06 1,11 0,86 0,84 51 769.008 100.000 897.490 E 1,39 1 1 0,72 1,22 56 844.425 220.000 1.044.159 F 1,39 1 1 1,12 0,84 57 851.180 120.000 1.022.706 SK=Aufwandsschätzung*RELLY*TIME*STOR*TOOL*EXP*15.000$/PM

Projektdauer und Personalplanung (1) Das COCOMO- Modell enthält eine Formel zum Schätzen des Entwicklungszeitraums, der für die Fertigstellung eines Projekts erforderlich ist. Entwicklungszeit = 3 * (PM) (0.33+0.2*(B-1.01)

Projektdauer und Personalplanung (2) Die Nenn-Entwicklungszeit entspricht nicht unbedingt der für den Projektplan erforderlichen Zeit. Das wird im COCOMO 2-Modell berücksichtigt. Entwicklungszeit=3 * (PM) (0.33+0.2*(B-1.01)) * SCEDPercentage / 100

Danke für Ihre Aufmerksamkeit