Was ist das Function-Point-Verfahren?

Die Funktionspunktanalyse zur Messung der Komplexität

Die Funktionspunktanalyse hat sich als zuverlässige Methode zur Messung der Größe von Computersoftware bewährt. Zusätzlich zur Messung der Ergebnisse ist die Funktionspunktanalyse äußerst nützlich bei der Schätzung von Projekten, bei der Verwaltung von Änderungen, bei der Messung der Produktivität und der Kommunikation von Funktionsanforderungen. Da Funktionspunkte das resultierende Arbeitsprodukt aus Sicht des Benutzers in Bezug auf die Funktionalität ausdrücken, sind die verwendeten Werkzeuge und Technologien unabhängig von der Programmiersprache und dem Zielsystem.

Was ist das Function-Point-Verfahren (FPA)?

Das Function-Point-Verfahren (englisch Function Point Analysis, FPA) ist ein Mittel, um die Anzahl der funktionalen Anforderungen an eine Software zu bewerten. Um diese Bewertung zu erreichen, wird eine Technik verwendet, die in früheren Zeiten als “funktionale Zerlegung” bezeichnet wurde. Dieses Konzept kommt der Beschreibung von Anforderungen mit “Use Cases” sehr nahe, auch wenn die detaillierten Regeln und Notationen sehr unterschiedlich sind.

Beim Function-Point-Verfahren werden die funktionalen Anforderungen in elementare Funktionen zerlegt, die dann jeweils mit einem Punktwert bewertet werden. Die Summe der Punkte für alle elementaren Funktionen wird als Indikator für die Größe oder die Anzahl der Anforderungen verwendet. Dies wird als “funktionale Größe” bezeichnet, ausgedrückt in der Einheit der “Funktionspunkte” (fp).

Darstellung einer funktionalen Zerlegung

Die natürliche Darstellung einer funktionalen Zerlegung ist der Funktionsbaum.

FPA: Norm für funktionale Dimensionierung

Die Function Point Analysis (FPA) ist eine von derzeit fünf Normen für die funktionale Dimensionierung, die von der ISO als Standard anerkannt sind (siehe ISO/IEC 14143). FPA ist derzeit der weitverbreitete Kurzbegriff für die ISO/IEC 20926 Norm mit dem Titel “IFPUG Functional Size Measurement”.

FPA für die Bewertung der Anpassung bestehender Systeme

Der FPA-Standard hat auch eine Reihe von Regeln für Bewertungsänderungen an bestehenden Anwendungen, sodass er zur Bewertung der funktionalen Anforderungen für die Anpassung von Erweiterungen bestehender Systeme (“Erweiterungen” oder “Releases”) verwendet werden kann.

FPA ist keine eigenständige Technik zur Aufwandschätzung. Offensichtlich ist das Verhältnis zwischen der Größe der funktionalen Anforderungen und dem Implementierungsaufwand eher lose. Funktionspunkte können als (eine) Eingabe in komplexere Schätzmodelle (wie COCOMO) verwendet werden, die alle anderen Aufwandsfaktoren berücksichtigen müssen.

FPA ist keine “Softwaremetrik” – die Funktionsgröße hängt immer von den Benutzeranforderungen ab, die die Software erfüllt. Während Sie Zeilen von Code oder Codekomplexität zählen und messen können, ist die funktionale Größe das Ergebnis eines Analyseprozesses.

Wie funktioniert das Function-Point-Verfahren?

Beim Function-Point-Verfahren machst Du eine Analyse auf die verschiedenen Arten, wie Benutzer mit dem System interagieren. Aus Anwendersicht unterstützt das System sie bei ihrer Arbeit, indem es fünf Grundfunktionen bereitstellt. Zwei davon befassen sich mit den Datenanforderungen eines Endbenutzers und werden als Datenfunktionen bezeichnet. Die restlichen drei befassen sich mit dem Bedürfnis des Benutzers, auf Daten zuzugreifen, und werden als Transaktionsfunktionen bezeichnet.

Die fünf Komponenten von Funktionspunkten (in Datenfunktionen und transaktionale Funktionen geglieder)

1) Datenfunktionen

  • Interne logische Dateien
  • Dateien der externen Schnittstelle

    2) Transaktionale Funktionen

  • Externe Eingänge
  • Externe Ausgänge
  • Externe Anfragen

Zusätzlich zu den fünf oben beschriebenen Funktionskomponenten gibt es zwei Anpassungsfaktoren, die bei der Funktionspunktanalyse berücksichtigt werden müssen.

Funktionale Komplexität

Der erste Anpassungsfaktor berücksichtigt die Komplexität für jede einzelne Funktion. Die Funktionskomplexität wird basierend auf der Kombination von Datengruppierungen und Datenelementen einer bestimmten Funktion bestimmt. Die Anzahl der Datenelemente und eindeutigen Gruppierungen wird gezählt und mit einer Komplexitätsmatrix verglichen, die die Funktion als niedrige, durchschnittliche oder hohe Komplexität bewertet. Jede der fünf funktionalen Komponenten besitzt ihre eigene, einzigartige Komplexitätsmatrix.
Alle Funktionskomponenten werden auf diese Weise analysiert und zu einer Funktionspunktzahl zusammengefasst.

Wertberichtigungsfaktor

Die Anzahl der unangepassten Funktionspunkte wird mit dem zweiten Berichtigungsfaktor, dem sogenannten Wertberichtigungsfaktor, multipliziert. Dieser Faktor berücksichtigt die technischen und betrieblichen Eigenschaften des Systems.

Jeder dieser Faktoren wird nach seinem Einfluss auf das zu zählende System bewertet. Die resultierende Punktzahl erhöht oder verringert die Anzahl der unangepassten Funktionspunkte um 35 %. Diese Berechnung liefert Dir die Anzahl der angepassten Funktionspunkte.

Eigenschaften und Besonderheiten der Function-Point-Analyse

Die Function-Point-Analyse kann hilfreich sein, um den Aufwand für ein Softwareprojekt in einem frühen Stadium abzuschätzen, wenn die Anforderungen bekannt sind, die Details der Implementierung aber noch nicht festgelegt oder bewertet wurden. Die funktionalen Anforderungen spiegeln sich in der Funktionsgröße wider. Die nicht-funktionalen Anforderungen müssen in ein Schätzmodell eingegeben werden. Du musst für FPA ein gutes und bewährtes (und vertrauenswürdiges) Modell haben und verwenden, denn sonst ist die Funktionsgröße für diesen Zweck nutzlos.

Die Function-Point-Analyse kann Dir auch dabei helfen, den Wert einer Anwendung im Sinne von “Wiederherstellungskosten” zu bewerten.
Schließlich kann im Rahmen von IT-Kunden-Lieferanten-Beziehungen die Function-Point-Analyse als Grundlage für die Preisgestaltung verwendet werden. Die Abrechnung erfolgt nach einem vereinbarten “Preis pro fp” anstelle eines Stundensatzes.

Wofür ist FPA nicht geeignet?

Per Definition erfordert FPA ein grundlegendes Verständnis der funktionalen Anforderungen. Wenn Du also die funktionalen Anforderungen nicht hast oder kennst, wird es schwierig, wenn nicht gar unmöglich sein, FPA zu verwenden.
FPA ist auch nicht geeignet, die Leistung von Einzelpersonen zu bewerten. Es handelt sich hierbei vielmehr um ein ganzheitliches Rating für eine Anwendung. Die Function-Point-Analyse kann nicht dazu verwendet werden, nur einzelne Teile einer Anwendung zu bewerten.

Wie kann ich die Function-Point-Methode beim Entwickeln nutzen?

Es gibt mehrere Ansätze, um Funktionspunkte zu zählen. Eine in der Praxis bewährte Möglichkeit ist ein strukturierter Workshop mit Teilnehmern, die mit der durch die Anwendung bereitgestellten Funktionalität vertraut sind. Der Workshop-Ansatz ermöglicht, eine Darstellung der Anwendung aus einer funktionalen Perspektive zu entwickeln und die Teilnehmer über Funktionspunkte aufzuklären.

Die Function-Point-Methode kann mit minimaler Dokumentation durchgeführt werden. Die Genauigkeit und Effizienz der Zählung verbessert sich jedoch durch eine entsprechende Dokumentation. Beispiele für eine entsprechende Dokumentation sind:

  • Designspezifikationen
  • GUI-Designs
  • Datenanforderungen (intern und extern)
  • Beschreibung der Benutzeroberflächen

Die Funktionspunktzahlen werden während des Workshops berechnet und mit einem Diagramm, das die Anwendung darstellt, sowie Arbeitsblättern dokumentiert, die die Details der einzelnen besprochenen Funktionen enthalten.

Fazit

Zusammenfassend lässt sich sagen, dass sich die Funktionspunktanalyse als eine genaue Technik zur Dimensionierung, Dokumentation und Kommunikation der Fähigkeiten eines Systems erwiesen hat. Die Function-Point-Methode wird erfolgreich eingesetzt, um die Funktionalität von Echtzeit- und Embedded-Code in roboterbasierten Lagern und Avionik sowie der traditionellen Datenverarbeitung zu bewerten. Da Computerumgebungen immer komplexer werden, erweist sie sich als ein wertvolles Werkzeug, das die von Dir erstellten und gewarteten Systeme präzise widerspiegelt.

Rückmeldungen