zurück zum Artikel

Standard fĂŒr automatisierte Function-Point-Analyse

Paul Nash

In Softwareprojekten gelten Function Points als Maßstab, um sinnvoll den Umfang von Sourcecode zu ermitteln. Allerdings fehlte bislang ein Verfahren, mit dem sie sich automatisiert erfassen lassen. Das behebt die Spezifikation der Automated Function Points.

Standard fĂŒr automatisierte Function-Point-Analyse

In Softwareentwicklungsprojekten gelten Function Points als Maßstab, um sinnvoll den Umfang von Sourcecode zu ermitteln. Allerdings fehlte bislang ein Verfahren, mit dem sie sich automatisiert erfassen lassen. Das behebt die Spezifikation Automated Function Points (AFP) der Object Management Group (OMG) und des Consortium for IT Software Quality (CISQ).

Viele Softwareentwicklungsprojekte weisen MĂ€ngel auf: Das Zeit- und Finanzbudget wird ĂŒberschritten, und die QualitĂ€t der Anwendungen und des Sourcecodes ist unbefriedigend. Ein Grund fĂŒr solche Fehlentwicklungen ist oftmals, dass sich Teams darauf beschrĂ€nken, prozessorientierte Faktoren in den Vordergrund zu stellen, etwa die Termintreue und KonformitĂ€t mit Spezifikationen und Vorgehensmodellen. Punkte, die unmittelbar mit dem eigentlichen Produkt, dem Sourcecode, in Verbindung stehen, bleiben außen vor. Dazu zĂ€hlen Menge und QualitĂ€t des Codes und somit die ProduktivitĂ€t, also das VerhĂ€ltnis zwischen Ergebnis und Aufwand bei der Entwicklung einer Software.

Traditionelle Analyseverfahren im Rahmen von Softwareentwicklungsprojekten rÀumen dem eigentlichen Endprodukt, dem Sourcecode, zu wenig Raum ein.

Traditionelle Analyseverfahren im Rahmen von Softwareentwicklungsprojekten rÀumen dem eigentlichen Endprodukt, dem Sourcecode, zu wenig Raum ein.

Eine detaillierte und objektive Erfassung dieser GrĂ¶ĂŸen ist jedoch ein wertvolles Instrument, um die Kosten eines Entwicklungsvorhabens plausibel beurteilen zu können. Beispielsweise ist es möglich, das Volumen von Code mit einer Function Point Analysis (FPA) festzustellen. Sie ermittelt die "GrĂ¶ĂŸe" einer Anwendung anhand der Funktionen, die sie dem Anwender zur VerfĂŒgung stellt. Als Maßzahl dienen bei einer solchen Bewertung sogenannte Function Points. Sie sind ein Maß fĂŒr die "Schwere" beziehungsweise KomplexitĂ€t eines elementaren Prozesses (Funktion) einer Anwendung. Ein solcher Prozess entspricht grob einem Systemanwendungsfall in der Unified Modeling Language (UML).

Function-Point-Analysen wurden fĂŒr transaktionsorientierte, interaktive Systeme konzipiert. Eine FPA des Sourcecodes ermittelt die funktionale GrĂ¶ĂŸe, also den fachlich-funktionalen Umfang eines Softwaresystems, und zwar unabhĂ€ngig von der verwendeten Technik. Functions Points dienen als Maßstab fĂŒr die Zahl und den Umfang der fachlichen Funktionen der IT-Anwendung. Die FPA gemĂ€ĂŸ ISO 20926 [1] gliedert eine Anwendung in sogenannte "Elementary Processes" auf. Dasgeschieht auf Grundlage folgender Regeln:

In der Spezifikation IFPUG-CPM 4.3.1, die die International Function Point User Group (IFPUG) erarbeitet hat und als De-facto-Standard im FPA-Bereich gilt, sind folgende Elementarprozesse definiert:

Im Rahmen einer automatischen Function-Point-Analyse ist der Sourcecode von entscheidender Bedeutung, weil dessen Umfang und QualitĂ€t die Eigenschaften eines Systems fast vollstĂ€ndig bestimmen und dies das eigentliche "Deliverable" darstellt. Das Resultat einer "Vermessung" des Programmcodes sollte sinnvollerweise der funktionale Nutzen der Anwendung bei gleichzeitiger ErfĂŒllung der technischen Anforderungen sein.

In der Regel werden die Function Points manuell erfasst. Dabei konzentrieren sich die Fachleute auf die Funktionen einer Anwendung; eine Codeanalyse findet nicht statt. Das Verfahren hat mehrere Nachteile: Es kostet viel Zeit und hat daher jedes Mal Kosten fĂŒr den Nutzer zur Folge, das gilt insbesondere fĂŒr komplexe Anwendungen. Und die Resultate sind nur eingeschrĂ€nkt vergleichbar, weil sie durchaus auch von der Erfahrung des jeweiligen ZĂ€hlers abhĂ€ngen.

Diese Nachteile lassen sich durch eine Automatisierung der Function-Point-Analyse beseitigen. Die Grundlage der Automatisierung des FPA-Verfahrens ist die Vergleichbarkeit der funktionalen Elementarprozesse und der Transaktionen (im Sinne von Call-Beziehungen) durch das Anwendungssystem.

Im Februar 2013 veröffentlichten die Object Management Group (OMG) und das Consortium for IT Software Quality (CISQ) den ersten Entwurf einer Spezifikation fĂŒr Automated Function Points (AFP). An der Entwicklung der Norm wirkten zudem zwei Unternehmen mit: Die David Consulting Group, ein Dienstleister mit Erfahrung im Bereich FPA, und CAST, ein Softwarehersteller, der sich auf die automatisierte Messung von QualitĂ€t, GrĂ¶ĂŸe und ArchitekturkonformitĂ€t von Unternehmensanwendungen spezialisiert hat.

Die AFP-Norm ist mit IFPUG-CPM 4.3.1 konform. Dabei ist der Standard objektiv und konsistent in Bezug auf die Wiederholbarkeit und die Anwendung auf unterschiedliche Techniken, Architekturen und ApplikationsgrĂ¶ĂŸen.

Eine Automated-Function-Point-Analyse muss jede Transaktion gemĂ€ĂŸ den IFPUG-Regeln gewichten.

Eine Automated-Function-Point-Analyse muss jede Transaktion gemĂ€ĂŸ den IFPUG-Regeln gewichten.

Die relevante MessgrĂ¶ĂŸe ist der Sourcecode. Andere Faktoren wie das Fachwissen oder die Absichten eines Entwicklers werden naturgemĂ€ĂŸ nicht berĂŒcksichtigt. Laut dem AFP-Standard sind im Rahmen einer automatischen FP-Analyse diverse Artefakte zu identifizieren. Dazu gehören Anwendungsdaten und die Logik der Applikation ĂŒber alle Schichten hinweg.

Derzeit gibt es auf dem Markt nur wenige Angebote fĂŒr die automatisierte Function-Point-Analyse, die die Vorgaben der OMG-Spezifikation vollstĂ€ndig berĂŒcksichtigen. Die Application Intelligence Platform (AIP) von CAST Software repliziert beispielsweise das manuelle ZĂ€hlverfahren von Function Points. Dabei gewichtet das Werkzeug Transaktionen und ihre Komponenten gemĂ€ĂŸ den IFPUG-Regeln. Das gilt fĂŒr Data Element Types (DET), File Types Referenced (FTR) und Record Element Types (RET).

Architekturbasierte Function-Point-ZĂ€hlmethode: Es werden alle Transaktionen erfasst, von den Entry Points bis zu den Data Entities.

Architekturbasierte Function-Point-ZĂ€hlmethode: Es werden alle Transaktionen erfasst, von den Entry Points bis zu den Data Entities.

Wichtig ist zudem eine weitere Funktion, die im Rahmen des Lebenszyklus einer Software hĂ€ufig ĂŒbersehen wird: die Messung des Umfangs von Änderungen an einer Anwendung. Auch bei solchen Anpassungsarbeiten ist eine Ermittlung der Function Points hilfreich. Das setzt jedoch voraus, dass zuvor ein "Baselining", eine Analyse der Software im Release vor erfolgter Änderung, durchgefĂŒhrt wird.

Zusammenfassend lĂ€sst sich sagen, dass eine automatisierte Function-Point-Analyse im Vergleich zu AnsĂ€tzen wie dem reinen ZĂ€hlen von Sourcecode-Zeilen deutliche VorzĂŒge aufweist. Das betrifft insbesondere die Messung der ProduktivitĂ€t von Zulieferern. Mit Tools lassen sich beispielsweise folgende Auswertungen durchfĂŒhren:

Vergleich der Leistungen von Vertragspartnern und unterschiedlicher ProduktivitÀtswerte, etwa der Zahl der Function Points, die Zulieferer pro Monat implementieren, im Vergleich zur ProduktivitÀt anderer Zulieferer. Eine automatische FPA erlaubt es somit, die Leistungen von Vertragspartnern (externen Software-Entwicklern) zu vergleichen und deren Arbeit besser zu steuern.

Die automatisierte, rechnergestĂŒtzte Analyse auf Basis des AFP-Standards gibt Softwareentwicklern und IT-Abteilungen ein leistungsstarkes Werkzeug an die Hand, mit dem sie die QualitĂ€t von Anwendungen und die ProduktivitĂ€t im Rahmen von Softwareentwicklungsprojekten messen und optimieren können.

Klassische FehleinschĂ€tzungen, die auf dem Vergleich von "Äpfeln mit Birnen" erfolgten, lassen sich dadurch vermeiden. Denn dem Softwarefachmann stellen verfĂŒgbare Tools umfassende und vor allem objektiv vergleichbare Analyseergebnisse zur VerfĂŒgung.

Paul Nash
ist Technical Director bei der CAST GmbH in MĂŒnchen.

Im Rahmen des Function-Point-Modells wird jede Transaktion mit mindestens 3 fp und maximal 7 fp bewertet. Beispiele fĂŒr solche Transaktionen sind beispielsweise "Neuen Kunden erfassen" mit 6 fp oder "Auswahlliste mit Artikelnummern anzeigen" (3 fp). Nach Angaben von QuantiMetrics, einem Beratungshaus, das Gutachten und Bewertungen ĂŒber IT-Anwendungen und IT-Projekte erstellt, werden in der Praxis NĂ€herungsverfahren (Rapid) eingesetzt, bei denen pro Transaktion nur 4 oder 5 fp vergeben werden. Weitere Punkte fallen fĂŒr die DatenbestĂ€nde (UML-"Classes") an. Allerdings machen diese in der Regel nur 20 Prozent des Gesamtpunktergebnisses aus.

Ein SAP/R3-Modul beispielsweise hat mehrere 1000 fp. Ein CRM-System (Customer Relationship Management) kommt auf etwa 2500 bis 5000 fp. Nach Erfahrungswerten von QuantiMetrics, die sich auf die Auswertung von 500 Projekten bei Großunternehmen stĂŒtzt, weisen 50 Prozent der Softwareprojekte eine ProduktivitĂ€t von 9 fp/pm auf. Mit pm wird ein Personenmonat (130 Stunden) bezeichnet. An die 10 Prozent der Projekte liegen unter 3 fp/pm, weitere 10 Prozent bei mehr als 33 fp/pm. (ane [2])


URL dieses Artikels:
https://www.heise.de/-2067044

Links in diesem Artikel:
[1] http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=35582
[2] mailto:ane@heise.de