1 Software-Technik I SWT - Die Planungsphase - Function Point 1 Die Planungsphase Die Function Point-Methode Prof. Dr. Helmut Balzert Lehrstuhl für Software-Technik Ruhr-Universität Bochum Helmut Balzert 1998
2 Einführung und Überblick LE 1 V Unternehmensmodellierung 1 Grundlagen LE 24 2 Objektorientierte Unternehmensmodellierung LE 25 2 LE II SW-Management 1 Grundlagen I SW-Entwicklung 1 Die Planungsphase III SW-Qualitätssicherung 1 Grundlagen LE 1 LE 2 3 LE 9 2 Planung LE 2 2 Die Definitionsphase LE 4 22 2 Qualitätssicherung LE 10 3 Organisation 4 3 Die Entwurfsphase LE 23 31 3 Manuelle Prüfmethoden LE 11 4 Personal 4 Die Implementierungsphase 4 Prozeßqualität LE 5 2 LE 12 13 5 Leitung LE 6 7 5 Die Abnahme- und Einführungsphase 3 5 Produktqualität Komponenten LE 14 17 6 Kontrolle LE 8 6 Die Wartungs- & Pflegephase 3 6 Produktqualität Systeme LE 18 19 8 LE 32 LE 11 LE IV Querschnitte und Ausblicke 1 Prinzipien & Methoden LE 20 2 LE 21 3 Wiederverwendung LE 22 4 Sanierung LE 23 4 LE
3 Lernziele Die Function Point-Methode auf gegebene kommerzielle Problemstellungen anwenden können.
4 Inhalt 1.5 Die Function Point-Methode allgemein 1.6 Die Function Point-Methode konkret 1.7 Function Point-Beispiel: Lastenheft Seminarorganisation.
5 1.5 Die Function Point-Methode allgemein Zur Historie Allan J. Albrecht * 6.2.1927 in Pittston, PA., USA IBM Senior Engineer and Program Manager (im Ruhestand) Erfinder der Function Point- Methode zur Aufwandsschätzung von Software-Entwicklungen im Rahmen seiner Tätigkeiten bei IBM (1979).
6 1.5 Die Function Point-Methode allgemein Kategorien der Function Points Eingabedaten Abfragen Funktion Datenbestände Referenzdateien Ausgabedaten 1. Schritt: Jede Anforderung einer Kategorie zuordnen.
7 1.5 Die Function Point-Methode allgemein /LF 20/:»Benachrichtigung der Kunden (Anmeldebestätigung, Abmeldebestätigung, Änderungsmitteilungen, Rechnung, Werbung)«Diese Anforderung ist der Kategorie»Ausgabedaten«zuzuordnen Da es sich um 5 verschiedene Ausgaben handelt, wird im folgenden von 5 Ausgaben ausgegangen.
8 1.5 Die Function Point-Methode allgemein 2. Schritt: Klassifizierung Jede Anforderung in eine der Klassen»einfach«,»mittel«oder»komplex«einordnen Beispiel: Da im Lastenheft noch keine genaueren Angaben über die Ausgaben gemacht werden, werden sie in die Klasse»mittel«eingeordnet.
9 Kategorie Anzahl Klassifizierung Gewichtung Zeilensumme Eingabedaten einfach x 3 = mittel x 4 = komplex x 6 = Abfragen einfach x 3 = mittel x 4 = komplex x 6 = Ausgaben einfach x 4 = mittel x 5 = komplex x 7 = Datenbestände einfach x 7 = mittel x 10 = komplex x 15 = Referenzdaten einfach x 5 = mittel x 7 = komplex x 10 = Summe E1 = I SWT - Die Planungsphase - Function Point Quelle: IBM 85, S. 12 Einflußfaktoren 1 Verflechtung mit anderen (ändern den Function Anwendungssystemen (0 5) = Point-Wert um ± 30%) 2 Dezentrale Daten, dezentrale Verarbeitung (0 5) = 3 Transaktionsrate (0 5) = 4 Verarbeitungslogik a Rechenoperationen (0 10) = b Kontrollverfahren (0 5) = c Ausnahmeregelungen (0 10) = d Logik (0 5) = 5 Wiederverwendbarkeit (0 5) = 6 Datenbestands- Konvertierungen (0 5) = 7 Anpaßbarkeit (0 5) = Summe der 7 Einflüsse E2 = Faktor Einflußbewertung = E2 100 + 0,7 E3 = Bewertete Function Points: E1 * E3 =
10 1.5 Die Function Point-Methode allgemein 3. Schritt: Eintrag in Berechnungsformular Die Anforderung /LF 20/ enthält 5 mittlere Ausgaben In der 2. Zeile von Ausgaben wird in die Spalte Anzahl der Tabelle die Zahl 5 eingetragen. Diese Zahl wird mit der Zahl 5 (Einflußfaktor für»mittel«) multipliziert Es ergeben sich 25 Function Points.
11 1.5 Die Function Point-Methode allgemein 4. Schritt: Bewertung der Einflußfaktoren 5. Schritt: Berechnung der bewerteten Function Points 6. Schritt: Ablesen des Aufwands in MM Voraussetzung: Empirische Ermittlung der Zuordnung FP MM 7. Schritt: Aktualisierung der empirischen Daten.
12 Produktanforderungen Eingabedaten Abfragen Ausgabedaten Datenbestände Referenzdaten einfach mittel komplex Eingaben Abfragen Ausgaben Datenbestände Referenzdaten einfach mittel komplex 1 2 2 2 2 2 einfach mittel komplex I SWT - Die Planungsphase - Function Point einfach mittel komplex einfach mittel komplex 3 3 3 3 3 1. Schritt: Kategorisierung für jede Anforderung 2. Schritt: Klassifizierung jeder Anforderung 3. Schritt: Eintrag der jeweiligen Anzahl in das Berechnungsformular und Ermittlung der unbewerteten FPs 4 Einflußfaktoren 0 bis 60 5 FPs ± 30% FP 4. Schritt: Bewertung der Einflußfaktoren 5. Schritt: Berechnung der bewerteten FPs 6. Schritt: Ablesen des Aufwandes 6 6 Aufwand 6 7 MM Wertepaare»FPs Aufwand«aus abgeschlossenen Entwicklungen 7. Schritt: Aktualisierung der Wertepaare, Neuberechnung der Aufwandskurve
13 1.5 Die Function Point-Methode allgemein Voraussetzungen Die Methode wird erst eingesetzt, wenn die Produktanforderungen bekannt sind Frühestes Dokument: Lastenheft Das gesamte Produkt soll im Blickfeld stehen Das Produkt wird aus der Sicht des Auftraggebers betrachtet Die Bewertung erfolgt von Mitarbeitern, die ausreichendes Wissen über die Produktanforderungen haben Der Ist-Aufwand muß für die Nachkalkulation ermittelbar sein.
14 1.5 Die Function Point-Methode allgemein Vorteile + Ausgangspunkt sind Produktanforderungen, nicht LOC + Anpaßbar an verschiedene Anwendungsbereiche (Änderung der Kategorien) + Anpaßbar an neue Techniken (Änderung der Einflußfaktoren und der Einflußbewertung) + Anpaßbar an unternehmensspezifische Verhältnisse (Änderung der Einflußfaktoren, der Einflußbewertung und der Klassenfaktoren pro Klasse).
15 1.5 Die Function Point-Methode allgemein + Verfeinerung der Schätzung entsprechend dem Entwicklungsfortschritt (iterative Methode) Beispiel 1. Schätzung auf der Grundlage des Lastenheftes 2. Schätzung auf der Grundlage des Pflichtenheftes 3. Schätzung nach Erstellung des formalen Modells + Erste Schätzung bereits zu einem sehr frühen Zeitpunkt möglich (Planungsphase).
16 1.5 Die Function Point-Methode allgemein + Festgelegte methodische Schritte + Leicht erlernbar + Benötigt nur einen geringen Zeitaufwand + Gute Transparenz + Gute Schätzgenauigkeit + Werkzeugunterstützungen verfügbar.
17 1.5 Die Function Point-Methode allgemein Nachteile Es kann nur der Gesamtaufwand geschätzt werden Eine Umrechnung auf einzelne Phasen muß mit der Prozentsatzmethode erfolgen In der Originalform von Albrecht personalintensiv und nicht automatisierbar Zu stark funktionsbezogen Qualitätsanforderungen werden nicht berücksichtigt Mischung von Projekt- und Produkteigenschaften bei den Einflußfaktoren.
18 I SWT - Die Planungsphase - Function Point 1.5 Die Function Point-Methode allgemein Bedeutung Standardschätzverfahren in der Industrie Mehr als 500 große Unternehmen setzen weltweit diese Methode ein Sie wird als die beste verfügbare Methode zur Schätzung von kommerziellen Anwendungssystemen angesehen Weiterentwicklungen Es gibt ca. 14 Varianten Ziel: automatische Ermittlung Ziel: moderne Methoden wie OO berücksichtigen.
19 I SWT - Die Planungsphase - Function Point 1.6 Die Function Point-Methode konkret Voraussetzungen Kriterium IBM VW Überwiegend zentrale interne Online-Anwendungen X X Verwendung von PL/1 X Verwendung von COBOL X Einsatz von TSO/SPF X X Separates Testsystem X X Durchschnittliche Personalqualität X X Anwenderbeteiligung bei Projektentwicklungen X X Zentrale Projektorganisation X X Optimale Entwickl.-dauer-Aufwands-Kombination X X Verwendung folgender Methoden und Techniken Strukturierte Programmierung Normierte Programmierung HIPO Doku-, Steuerungs- und Info-System Netzplantechnik usw. X X X X X
20 I SWT - Die Planungsphase - Function Point 1.6 Die Function Point-Methode konkret Klassifizierung der Eingaben Kriterium einfach mittel komplex Anzahl unterschiedlicher 1-5 6-10 >10 Datenelemente Eingabeprüfung formal formal formal logisch logisch DB-Zugriff Ansprüche an die Bedienerführung gering normal hoch.
21 1.6 Die Function Point-Methode konkret Klassifizierung der Abfragen Kriterium einfach mittel komplex Anzahl unterschiedlicher Schlüssel 1 2 >2 Anspruch an die Bedienerführung gering normal hoch.
22 1.6 Die Function Point-Methode konkret Klassifizierung der Ausgaben Kriterium einfach mittel komplex Anzahl Spalten 1-6 7-15 >15 Unterschiedliche Datenelemente 1-5 6-10 >10 Gruppenwechsel 1 2-3 >3 Datenelemente Druckaufbereitung keine einige viele.
23 1.6 Die Function Point-Methode konkret Klassifizierung der Datenbestände Kriterium einfach mittel komplex Anzahl Schlüssel/Satzarten 1 2 >2 Unterschiedliche Datenelemente 1-20 21-40 >40 Datenbestand vorhanden ja nein (keine Neuarchitektur) Impl. Datenbestand/-struktur nein ja. wird verändert
24 1.6 Die Function Point-Methode konkret Klassifizierung der Referenzdaten Kriterium einfach mittel komplex Read-Only-Dateien Anzahl unterschiedlicher 1-5 6-10 >10 Datenelemente Anzahl Schlüssel/ Satzarten 1 2 >2 Tabellen Anzahl unterschiedlicher 1-5 6-10 >10 Datenelemente Dimension 1 2 3.
25 1.6 Die Function Point-Methode konkret Einflußfaktoren 1. Verflechtung mit anderen Anwendungssystemen (Bewertungsspanne 0-5) 2. Die Verwaltung der Daten oder die Verarbeitung wird dezentral durchgeführt (Bewertungsspanne 0-5) 3. Die Anwendung hat eine so hohe Transaktionsrate, daß besondere Maßnahmen bei der Entwicklung zu ergreifen sind (Bewertungsspanne 0-5).
26 1.6 Die Function Point-Methode konkret 4. Die Anwendung beinhaltet: a. Schwierige/komplexe Rechenoperationen (Bewertungsspanne 0-10) b. Umfangreiche Kontrollverfahren (Bewertungsspanne 0-5) c. Eine Vielzahl von Ausnahmeregelungen (Bewertungsspanne 0-10) d. Schwierige, komplexe Logik, z.b. Verknüpfung von verschiedenen logischen Datengruppen, die gleichzeitig verarbeitet werden
27 1.6 Die Function Point-Methode konkret 5. Die Anwendung wird entwickelt im Hinblick auf eine Wiederverwendung der Programme in einer anderen Anwendung Prozentualer Anteil der Wiederverwendung bis 10% = 0 von 30-40% = 3 von 10-20% = 1 von 40-50% = 4 von 20-30% = 2 über 50% = 5 6. Für Datenbestands-Konvertierungen sind besondere Maßnahmen in der Entwicklung zu ergreifen (Bewertungsspanne 0-5) 7. Die Anwendung kann vom Benutzer in einem bestimmten Rahmen an
28 1.6 Die Function Point-Methode konkret IBM-Kurve: FP MM F 5000 4000 3000 2000 1000 100 200 300 400 500 600 700 800 900 1000 MM
29 1.6 Die Function Point-Methode konkret Function Point-Wertepaare
30 I SWT - Die Planungsphase - Function Point 1.7 Beispiel: Lastenheft»Seminarorganisation«/LF10/: Ersterfassung, Änderung und Löschung von Kunden Es handelt sich um drei getrennte Eingaben (Ersterfassung, Änderung, Löschung) Ersterfassung ist am umfangreichsten: Wahrscheinlich mehr als 10 Datenelemente zu erfassen Auf die Datenbank muß schreibend zugegriffen werden Die Ansprüche an die Bedienerführung sind hoch Automatisches Positionieren des Cursors, feldweises Editieren, Konsistenzprüfung PLZ Ort Daher: komplexe Eingabe.
31 1.7 Beispiel: Lastenheft»Seminarorganisation«Änderung: Es wird auf die Datenbank lesend und schreibend zugegriffen Die Ansprüche an die Bedienerführung sind normal Die Anzahl der zu ändernden Datenelemente kann von gering bis hoch reichen Daher: mittlere Klassifizierung Löschen Erfordert logische Überprüfungen und einen Datenbankzugriff auf Seminarbuchungen /LF50/. Daher: mittlere Klassifizierung Ergebnis: 1 komplexe Eingabe, 2 mittlere Eingaben.
32 1.7 Beispiel: Lastenheft»Seminarorganisation«/LF20/: Benachrichtigung der Kunden (Anmeldebestätigung, Abmeldebestätigung, Änderungsmitteilungen, Rechnung, Werbung) Es handelt sich um fünf getrennte Ausgaben Kombination von einigen Daten mit Standardtexten Daher: Klassifizierung in»mittel«ergebnis: 5 mittlere Ausgaben.
33 1.7 Beispiel: Lastenheft»Seminarorganisation«/LF30/: Ersterfassung, Änderung und Löschung von Seminarveranstaltungen und Seminartypen Analog wie /LF10/ aber jeweils für Seminarveranstaltungen und für Seminartypen Ergebnis: 2 komplexe Eingaben, 4 mittlere Eingaben.
34 1.7 Beispiel: Lastenheft»Seminarorganisation«/LF40/: Ersterfassung, Änderung und Löschung von Dozenten sowie Zuordnung zu Seminarveranstaltungen und Seminartypen Analog wie /LF10/ Ergebnis: 1 komplexe Eingabe, 2 mittlere Eingaben.
35 1.7 Beispiel: Lastenheft»Seminarorganisation«/LF50/: Ersterfassung, Änderung und Löschung von Seminarbuchungen Bei Seminarbuchungen muß nur der Zusammenhang zwischen Kunden und Seminarveranstaltungen hergestellt werden Daher ist Anzahl der Datenelemente gering, jedoch ist eine logische Überprüfung mit DB-Zugriffen erforderlich Daher: drei Eingaben als»mittel«klassifiziert Ergebnis: 3 mittlere Eingaben.
36 1.7 Beispiel: Lastenheft»Seminarorganisation«/LF60/: Erstellung von Rechnungen Eine Rechnung muß Daten über den Kunden, die Seminarveranstaltung und den Seminartyp enthalten Dazu sind mehrere DB-Zugriffe erforderlich Es dürften mehr als 10 Datenelemente ausgegeben werden Ergebnis: 1 komplexe Ausgabe.
37 1.7 Beispiel: Lastenheft»Seminarorganisation«/LF70/: Erstellung verschiedener Listen (Teilnehmerliste, Umsatzliste, Teilnehmerbescheinigungen) Analog zu /LF60/ liegen hier drei komplexe Ausgaben vor Ergebnis: 3 komplexe Ausgaben.
38 1.7 Beispiel: Lastenheft»Seminarorganisation«/LF80/: Anfragen der folgenden Art sollen möglich sein: Wann findet das nächste Seminar X statt? usw. Es handelt sich um Abfragen mit Endbenutzersprachen Sie werden nicht gezählt.
39 1.7 Beispiel: Lastenheft»Seminarorganisation«/LD10/: Es sind relevante Daten über die Kunden zu speichern Einfacher Datenbestand 1 Schlüssel Anzahl unterschiedlicher Datenelemente < 20 Ergebnis: 1 einfacher Datenbestand /LD20/: Falls ein Kunde zu einer Firma gehört, dann sind relevante Daten über die Firma zu speichern Einfacher Datenbestand Ergebnis: 1 einfacher Datenbestand.
40 1.7 Beispiel: Lastenheft»Seminarorganisation«/LD30/: Es sind relevante Daten über Seminarveranstaltungen, Seminartypen & Dozenten zu speichern Analog zu /LD10/ jeweils für Seminarveranstaltung, Seminartyp und Dozenten Ergebnis: 3 einfache Datenbestände /LD40/: Bucht ein Kunde eine Seminarveranstaltung, dann sind entsprechende Buchungsdaten zu speichern Analog zu /LD10/ Ergebnis: 1 einfacher Datenbestand.
41 1.7 Beispiel: Lastenheft»Seminarorganisation«Ergebnis: Eingaben: 11 x mittel (4) = 44 4 x komplex (6) = 24 Ausgaben: 5 x mittel (5) = 25 4 x komplex (7) = 28 Datenbestände: 6 x einfach (7) = 42 Summe Function Points E1 = 163.
42 1.7 Beispiel: Lastenheft»Seminarorganisation«Bewertung der Einflußfaktoren 1. Verflechtung mit Anwendungssystemen (0-5): 0 2. dezentrale Daten / Verarbeitung (0-5): 0 3. Transaktionsrate: Wegen /LL10/ (0-5): 3 4. Verarbeitungslogik a. Rechenoperationen (0-10): 3 b. Kontrollverfahren (0-5): 3 c. Ausnahmeregelungen (0-10):
43 1.7 Beispiel: Lastenheft»Seminarorganisation«Einflußbewertung E3: E2/100+0,7=18/100+0,7 = 0,88 Bewertete FPs: E1 * E3 = 163 * 0,88 = 143 FP Aufwand nach IBM-Tabelle (interpoliert): 8,5 MM Optimale Dauer: 2,5 * 8,5 0,35 [Monate] = 5,2 [Monate] Durchschnittliche Größe des Entwicklungsteams: Anzahl Mitarbeiter = 8,5 MM / 5,2 Monate = 1,6 Mitarbeiter 2 Mitarbeiter.
44 Danke! Aufgaben Diese Präsentation bzw. Teile dieser Präsentation enthalten Inhalte und Grafiken des Lehrbuchs der Software-Technik (Band 1) von Helmut Balzert, Spektrum Akademischer Verlag, Heidelberg 1996