I SWT - Die Planungsphase - Function Point
LE 31
Software-Technik
1 Die PlanungsphaseDie Function Point-Methode
Prof. Dr. Helmut BalzertLehrstuhl für Software-TechnikRuhr-Universität Bochum
© Helmut Balzert 1998
I SWT - Die Planungsphase - Function Point
LE 32
Einführung und ÜberblickLE 1
V Unternehmensmodellierung
2 LE
1 Grundlagen
LE 24
2 ObjektorientierteUnternehmensmodellierung
LE 25
I SW-Entwicklung
32 LE
6 Die Wartungs- & Pflegephase
LE 33
5 Die Abnahme- undEinführungsphase
LE 33
4 Die Implementierungsphase
LE 32
3 Die Entwurfsphase
LE 23 – 31
2 Die Definitionsphase
LE 4 – 22
1 Die Planungsphase
LE 2 – 3
III SW-Qualitäts-sicherung
11 LE
6 Produktqualität– Systeme
LE 18 – 19
5 Produktqualität– Komponenten
LE 14 – 17
4 Prozeßqualität
LE 12 – 13
3 ManuellePrüfmethoden
LE 11
2 Qualitäts-sicherung
LE 10
1 Grundlagen
LE 9
II SW-Management
8 LE
6 Kontrolle
LE 8
5 Leitung
LE 6 – 7
4 Personal
LE 5
3 Organisation
LE 3 – 4
2 Planung
LE 2
1 Grundlagen
LE 1
IV Querschnitte und Ausblicke
4 LE
4 Sanierung
LE 23
1 Prinzipien& Methoden
LE 20
3 Wieder-verwendung
LE 22
2
LE 21
I SWT - Die Planungsphase - Function Point
LE 33
Lernziele▲ Die Function Point-Methode auf gegebene
kommerzielle Problemstellungen anwenden können.
I SWT - Die Planungsphase - Function Point
LE 34
Inhalt1.5 Die Function Point-Methode allgemein1.6 Die Function Point-Methode konkret1.7 Function Point-Beispiel:
Lastenheft Seminarorganisation.
I SWT - Die Planungsphase - Function Point
LE 35
1.5 Die Function Point-Methode allgemein▲ Zur Historie
� Allan J. Albrecht* 6.2.1927 in Pittston, PA., USAIBM 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).
I SWT - Die Planungsphase - Function Point
LE 36
1.5 Die Function Point-Methode allgemein
Datenbestände
Referenzdateien
Abfragen
Ausgabedaten
Eingabedaten
Funktion
Kategorien der Function Points
1. Schritt: Jede Anforderung einer Kategorie zuordnen.
I SWT - Die Planungsphase - Function Point
LE 37
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.
I SWT - Die Planungsphase - Function Point
LE 38
1.5 Die Function Point-Methode allgemein2. 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.
I SWT - Die Planungsphase - Function Point
LE 39
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 =
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 =
Que
lle:I
BM
85,S
.12
I SWT - Die Planungsphase - Function Point
LE 310
1.5 Die Function Point-Methode allgemein3. 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.
I SWT - Die Planungsphase - Function Point
LE 311
1.5 Die Function Point-Methode allgemein4. Schritt: Bewertung der Einflußfaktoren5. Schritt: Berechnung der bewerteten
Function Points6. Schritt: Ablesen des Aufwands in MM
� Voraussetzung: Empirische Ermittlung der Zuordnung FP ↔↔↔↔ MM
7. Schritt: Aktualisierung der empirischen Daten.
I SWT - Die Planungsphase - Function Point
LE 312
1. Schritt:Kategorisierung fürjede Anforderung
Eingabedaten Abfragen Ausgabedaten Datenbestände Referenzdaten
Produktanforderungen
einfachmittelkomplex
einfachmittelkomplex
einfachmittelkomplex
einfachmittelkomplex
einfachmittelkomplex
2. Schritt:Klassifizierung jederAnforderung
EingabenAbfragenAusgabenDatenbeständeReferenzdaten ∑
3. Schritt: Eintragder jeweiligenAnzahl in dasBerechnungs-formular undErmittlung derunbewerteten FPs
4. Schritt:Bewertung derEinflußfaktorenEinflußfaktoren 0 bis 60
FPs ± 30%
5. Schritt:Berechnung derbewerteten FPs
6. Schritt: Ablesendes Aufwandes
MM
FP
7. Schritt:Aktualisierung derWertepaare, Neu-berechnung derAufwandskurve
Wertepaare »FPs Aufwand« ausabgeschlossenen Entwicklungen
Aufwand 7
6
6
6
5
4
1
2 2 2 2 2
3 3 3 3 3
I SWT - Die Planungsphase - Function Point
LE 313
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.
I SWT - Die Planungsphase - Function Point
LE 314
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).
I SWT - Die Planungsphase - Function Point
LE 315
1.5 Die Function Point-Methode allgemein+ Verfeinerung der Schätzung entsprechend
dem Entwicklungsfortschritt (iterative Methode)� Beispiel
1. Schätzung auf der Grundlage des Lastenheftes2. Schätzung auf der Grundlage des Pflichtenheftes3. Schätzung nach Erstellung des formalen Modells
+ Erste Schätzung bereits zu einem sehr frühen Zeitpunkt möglich (Planungsphase).
I SWT - Die Planungsphase - Function Point
LE 316
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.
I SWT - Die Planungsphase - Function Point
LE 317
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.
I SWT - Die Planungsphase - Function Point
LE 318
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.
I SWT - Die Planungsphase - Function Point
LE 319
1.6 Die Function Point-Methode konkretVoraussetzungen▲ Kriterium IBM VW
Überwiegend zentrale interne Online-AnwendungenX XVerwendung von PL/1 X Verwendung von COBOL XEinsatz von TSO/SPF X XSeparates Testsystem X XDurchschnittliche Personalqualität X XAnwenderbeteiligung bei Projektentwicklungen X XZentrale Projektorganisation X XOptimale Entwickl.-dauer-Aufwands-Kombination X X
▲ Verwendung folgender Methoden und TechnikenStrukturierte Programmierung X Normierte Programmierung XHIPO X Doku-, Steuerungs- und Info-System XNetzplantechnik usw. X
I SWT - Die Planungsphase - Function Point
LE 320
1.6 Die Function Point-Methode konkret▲ Klassifizierung der Eingaben▲ Kriterium einfach mittel komplex
Anzahl unterschiedlicher 1-5 6-10 >10Datenelemente
Eingabeprüfung formal formal formallogisch logisch
DB-ZugriffAnsprüche an die Bedienerführung gering normal hoch.
I SWT - Die Planungsphase - Function Point
LE 321
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.
I SWT - Die Planungsphase - Function Point
LE 322
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.
I SWT - Die Planungsphase - Function Point
LE 323
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
I SWT - Die Planungsphase - Function Point
LE 324
1.6 Die Function Point-Methode konkret▲ Klassifizierung der Referenzdaten▲ Kriterium einfach mittel komplex
Read-Only-DateienAnzahl unterschiedlicher 1-5 6-10 >10 DatenelementeAnzahl Schlüssel/ Satzarten 1 2 >2
TabellenAnzahl unterschiedlicher 1-5 6-10 >10 DatenelementeDimension 1 2 3.
I SWT - Die Planungsphase - Function Point
LE 325
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).
I SWT - Die Planungsphase - Function Point
LE 326
1.6 Die Function Point-Methode konkret4. 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
I SWT - Die Planungsphase - Function Point
LE 327
1.6 Die Function Point-Methode konkret5. 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
I SWT - Die Planungsphase - Function Point
LE 328
1.6 Die Function Point-Methode konkret▲ IBM-Kurve: FP → → → → MM
5000
4000
3000
2000
1000
100 200 300 400 500 600 700 800 900 1000
MM
F
I SWT - Die Planungsphase - Function Point
LE 329
1.6 Die Function Point-Methode konkret▲ Function Point-Wertepaare
I SWT - Die Planungsphase - Function Point
LE 330
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.
I SWT - Die Planungsphase - Function Point
LE 331
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.
I SWT - Die Planungsphase - Function Point
LE 332
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.
I SWT - Die Planungsphase - Function Point
LE 333
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.
I SWT - Die Planungsphase - Function Point
LE 334
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.
I SWT - Die Planungsphase - Function Point
LE 335
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.
I SWT - Die Planungsphase - Function Point
LE 336
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.
I SWT - Die Planungsphase - Function Point
LE 337
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.
I SWT - Die Planungsphase - Function Point
LE 338
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.
I SWT - Die Planungsphase - Function Point
LE 339
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.
I SWT - Die Planungsphase - Function Point
LE 340
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.
I SWT - Die Planungsphase - Function Point
LE 341
1.7 Beispiel: Lastenheft »Seminarorganisation«Ergebnis:
Eingaben: 11 x mittel (4) = 444 x komplex (6) = 24
Ausgaben:5 x mittel (5) = 254 x komplex (7) = 28
Datenbestände:6 x einfach (7) = 42
Summe Function Points E1 = 163.
I SWT - Die Planungsphase - Function Point
LE 342
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. Verarbeitungslogika. Rechenoperationen (0-10):
3b. Kontrollverfahren (0-5):
3c. Ausnahmeregelungen (0-10):
I SWT - Die Planungsphase - Function Point
LE 343
1.7 Beispiel: Lastenheft »Seminarorganisation«Einflußbewertung E3:
E2/100+0,7=18/100+0,7 = 0,88Bewertete FPs:
E1 * E3 = 163 * 0,88 = 143 FPAufwand nach IBM-Tabelle (interpoliert):
≅ ≅ ≅ ≅ 8,5 MMOptimale 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.
I SWT - Die Planungsphase - Function Point
LE 344
▲ 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