Was ist ein COSMIC-Funktionspunkt, und worin unterscheidet er sich von einer Stundenschätzung?

Das Budapester Softwareentwicklungsunternehmen Mesterséges Intelligencia Központ Kft. misst die Größe von Software in COSMIC-Funktionspunkten: So ist sie eine Eigenschaft der Software, nicht das Gefühl des Schätzenden, also überprüfbar, erneut messbar und zum Vergleich zweier Angebote nutzbar.

Das Wichtigste: COSMIC (ISO/IEC 19761) misst die funktionale Größe von Software: Jede Datenbewegung, also Entry (Eingabe), Exit (Ausgabe), Read (Lesen) oder Write (Schreiben), ist 1 COSMIC-Funktionspunkt (CFP) wert. Eine Stundenschätzung sagt, wie viel Arbeit der Schätzende erwartet; die gemessene Größe sagt, wie groß die Aufgabe ist. Deshalb ist sie überprüfbar und wiederholt messbar, und zwei Angebote lassen sich mit ihr vergleichen; der Aufwand lässt sich aus der Größe und der empirischen Produktivität ableiten.

Was ist funktionale Größenmessung?

Die Größe von Software lässt sich auf viele Arten ausdrücken: in Programmzeilen, in Stunden, in Punkten. Die funktionale Größenmessung (englisch functional size measurement, FSM) misst, was die Software aus Sicht ihrer Benutzer können muss, nicht, wie sie umgesetzt wird. Ihre Grundbegriffe legt die Norm ISO/IEC 14143-1:2007 fest; laut der Beschreibung der Norm besteht das Ziel gerade darin, dass die Messung statt der Art der Umsetzung die vom Benutzer geforderten Funktionen betrachtet.

Grundlage der Messung sind die funktionalen Benutzeranforderungen (Functional User Requirements, FUR): der Teil der Benutzeranforderungen, der beschreibt, welche Aufgaben und Dienste die Software erfüllen muss. Leistung, Sicherheit oder die gewählte Technologie gehören nicht dazu; darüber schreiben wir weiter unten im Abschnitt über die Grenzen der Methode.

Es gibt mehrere genormte Methoden zur funktionalen Größenmessung. Die bekanntesten sind COSMIC (ISO/IEC 19761:2011) und die IFPUG-Methode (ISO/IEC 20926:2009); die ISO hat noch weitere Methoden genormt (NESMA, FiSMA, Mk II). Alle arbeiten mit den Anforderungen, aber mit anderen Regeln und anderen Maßeinheiten, deshalb lassen sich die mit verschiedenen Methoden gemessenen Zahlen nicht direkt vergleichen.

Was ist COSMIC?

COSMIC steht für Common Software Measurement International Consortium: eine gemeinnützige Organisation, die die Methode pflegt und die Zertifizierung der Messenden organisiert. Die Methode entstand Ende der Neunzigerjahre als Weiterentwicklung früherer Funktionspunktmethoden, wurde 2003 zur ISO-Norm, und die derzeit gültige Ausgabe ist ISO/IEC 19761:2011. Die ausführliche Beschreibung der Methode, das COSMIC Measurement Manual in der Version 5.0, steht kostenlos zum Download bereit; sein erster Teil erschien 2021, der zweite 2024.

Laut der Norm eignet sich die Methode zur Messung von Anwendungssoftware (zum Beispiel Geschäftssystemen), Echtzeitsoftware und Mischformen aus beiden. Mit ihr lässt sich also ein ERP-, CRM- oder Webshop-System ebenso messen wie eine Steuerungssoftware.

Die Begriffe des COSMIC-Modells

COSMIC beschreibt Software mit einem einfachen Modell: Die Software tauscht über ihre Grenze Daten mit ihren funktionalen Benutzern aus, und innerhalb der Grenze liest sie aus dem dauerhaften Speicher und schreibt in ihn.

BegriffBedeutungBeispiel
Funktionaler Benutzerwer oder was der Software Daten sendet oder Daten von ihr erwartet: ein Mensch, eine andere Software oder ein Gerätder Sachbearbeiter, das Rechnungssystem
Grenzegedachte Schnittstelle zwischen der gemessenen Software und ihren funktionalen Benutzerndie Weboberfläche und die zu anderen Systemen hin offene Schnittstelle
Auslösendes Ereignisein Ereignis, auf das hin der funktionale Benutzer einen Prozess startetein neuer Kunde meldet sich
Funktionaler Prozesselementare, eigenständig ausführbare Einheit der Anforderungen, eine zusammenhängende Folge von Datenbewegungen„Neuen Kunden erfassen“
DatengruppeGruppe von Datenattributen, die ein einziges Objekt beschreiben, über das die Software Daten verarbeiten mussder Kunde: Name, Adresse, Steuernummer, E-Mail
Datenbewegungdie Bewegung einer einzigen Datengruppe; es gibt vier Artensiehe unten

Die vier Datenbewegungen:

Einige der Messregeln, die das Zählen bestimmen:

Das Ergebnis liegt auf einer Verhältnisskala, das heißt, die Größen lassen sich addieren und vergleichen: Zwei Teile mit je 40 CFP ergeben zusammen 80 CFP, und Teilsummen lassen sich auch je Funktionsgruppe ausweisen.

Ein durchgerechnetes Beispiel: „Neuen Kunden erfassen“

Nehmen wir eine einfache Anforderung: „Der Sachbearbeiter erfasst die Daten eines neuen Kunden (Name, Adresse, Steuernummer, E-Mail). Das System prüft, ob der Kunde nicht bereits erfasst ist, speichert ihn und meldet den Erfolg oder den Fehler zurück.“ Die Schritte der Messung:

  1. Der funktionale Benutzer ist der Sachbearbeiter, das auslösende Ereignis ist, dass sich ein neuer Kunde meldet.
  2. Die Datengruppe ist der Kunde; die vier Datenattribute beschreiben dasselbe Objekt, deshalb bilden sie eine Gruppe.
  3. Die Datenbewegungen ermitteln wir aus den Sätzen der Anforderung und zählen jede einzelne.
SchrittDatenbewegungDatengruppeGröße
Der Sachbearbeiter sendet das Formular abEntry (Eingabe)Kunde1 CFP
Das System prüft, ob der Kunde bereits existiertRead (Lesen)Kunde1 CFP
Das System speichert den neuen KundenWrite (Schreiben)Kunde1 CFP
Rückmeldung über den Erfolg oder einen beliebigen FehlerExit (Ausgabe)Fehler- und Bestätigungsmeldung1 CFP
Gesamtvier Datenbewegungeneine Datengruppe4 CFP

Genauso ist auch das Beispiel „Neuen Mitarbeiter erfassen“ in dem Leitfaden aufgebaut, der auf der Website von COSMIC veröffentlicht ist. Änderungen der Anforderung zeigen sich so in der Größe:

Das Beispiel zeigt auch, warum die Messung überprüfbar ist: Hinter jedem CFP stehen eine benannte Anforderung, eine Datengruppe und eine Regel. Bestreitet jemand das Ergebnis, lässt sich genau sagen, um welche Zeile es geht.

Früh messen, später verfeinern

Eine COSMIC-Messung beginnt damit, Zweck und Umfang der Messung festzulegen: was wir messen, was dazugehört und wofür wir das Ergebnis verwenden. Für eine genaue Messung braucht es Anforderungen, die so detailliert sind, dass sich die funktionalen Prozesse und ihre Datenbewegungen erkennen lassen. Am Anfang eines Projekts gibt es sie oft noch nicht; für diesen Fall empfiehlt COSMIC veröffentlichte Näherungsverfahren für die frühe Größenschätzung, und nach der Ausarbeitung der Anforderungen kann die genaue Messung folgen.

Der Leitfaden der Methode warnt auch davor, dass viele Anforderungen, die zunächst nichtfunktional erscheinen (etwa die Antwortzeit oder die Bedienbarkeit), im Laufe des Projekts zu Softwarefunktionen werden, wodurch die Größe scheinbar wächst. Das ist kein Fehler der Messung, sondern zeigt, dass die Anforderung genauer geworden ist. In der Praxis lohnt es sich deshalb, die Spezifikation Punkt für Punkt zu schreiben, Änderungen mit derselben Methode neu zu messen und die Größe der Änderung gesondert auszuweisen. So wächst der Umfang nicht stillschweigend, sondern sichtbar in Zahlen.

Vergleich: Stunden, Story Points, IFPUG, COSMIC

KriteriumStundenschätzungStory PointsIFPUG-FunktionspunktCOSMIC-Funktionspunkt
Was sie ausdrücktdie vom Schätzenden erwartete Arbeitdie relative Schätzung des Teams; nicht immer klar, ob Größe, Aufwand oder Zeitfunktionale Größefunktionale Größe
Genormtneinneinja, ISO/IEC 20926:2009ja, ISO/IEC 19761:2011
Wovon sie abhängtvon Erfahrung, Vorsicht und Team des Schätzendenvom jeweiligen Team; bedeutet in jedem Team etwas anderesvon den Anforderungenvon den Anforderungen
Von außen überprüfbarnur anhand der Erklärung des Schätzendenaußerhalb des Teams kaumja, nach öffentlichen Regelnja, nach öffentlichen und kostenlos verfügbaren Regeln
MaßeinheitStundeder eigene Punkt des TeamsIFPUG-FunktionspunktCFP, 1 CFP = 1 Datenbewegung
Am besten geeignet fürdie Planung kurzer, gut bekannter Aufgabendie eigene Sprintplanung des TeamsGrößenmessung, VergleichGrößenmessung, Vergleich, als Grundlage für Angebot und Zeitplan

Die Stundenschätzung ist kein schlechtes Werkzeug, sie misst nur etwas anderes: die erwartete Arbeit, die außer von der Größe der Aufgabe auch vom Wissen, den Werkzeugen und der Vorsicht des Teams abhängt. Story Points sind für die Planung innerhalb eines Teams nützlich, laut dem auf der Website von COSMIC veröffentlichten Leitfaden aber subjektiv, und ihre Bedeutung ist von Team zu Team verschieden. IFPUG und COSMIC sind beide genormte funktionale Größen, aber mit unterschiedlichen Regeln, deshalb sind die Zahlen der beiden Methoden nicht gegeneinander austauschbar.

Warum ist die gemessene Größe eine verlässlichere Grundlage?

Um die Frage aus dem Titel genau zu beantworten: COSMIC schätzt nicht die Stunden genauer, sondern misst die Größe der Aufgabe, und dadurch wird die Aufwandsschätzung verlässlicher. Die Gründe:

Der COSMIC-Leitfaden verweist auf mehrere Untersuchungen, in denen die in CFP gemessene Größe enger mit dem tatsächlichen Aufwand zusammenhing als die in Story Points ausgedrückte Schätzung. Derselbe Leitfaden warnt aber auch: Ein aus der Größe geschätzter Aufwand ist verlässlich, wenn der Entwicklungsprozess hinreichend wiederholbar ist und der Aufwand vor allem von der Größe bestimmt wird. Die gemessene Größe ist also ein besserer Ausgangspunkt, für eine gute Schätzung muss man aber auch die Produktivität kennen.

Was misst COSMIC nicht?

Die COSMIC-Größe misst die Funktionen, und das sagt die Beschreibung der Methode auch offen. Was sie nicht ausdrückt:

Deshalb weist ein gutes Angebot neben der gemessenen Größe gesondert aus, was die Größe nicht ausdrückt: die Integrationen, die nichtfunktionalen Anforderungen, die individuelle Oberfläche und Grafik, mehrere Plattformen, die Datenmigration, komplexe Berechnungen und das Echtzeitverhalten. In unseren Angeboten erscheinen diese Posten genau so. Mehr dazu auf der Seite Preisgestaltung.

Wie setzen wir COSMIC in unserer eigenen Arbeit ein?

Die funktionale Größe einer Entwicklung messen wir in COSMIC-Funktionspunkten. Für die Messung haben wir einen eigenen, KI-gestützten Arbeitsablauf aufgebaut, und das Ergebnis prüft ein Mensch in einer Überprüfungsrunde. Die Schritte:

  1. Spezifikation Punkt für Punkt: Wir gliedern die Entwicklung in Funktionsgruppen und beschreiben jede mit derselben Vorlage: Ziel, Akteure, Daten, Funktionen, KI-Funktionen und was nicht dazugehört (siehe So arbeiten wir).
  2. Mehrere unabhängige Zählungen: Jede Funktionsgruppe zählen mehrere Sprachmodelle mehrmals; die Streuung der Zählungen zeigt die Unsicherheit.
  3. Abstimmungsrunde: Sie stellt sicher, dass jeder funktionale Prozess genau einmal zählt, auch wenn er in mehreren Beschreibungen vorkommt.
  4. Prüfung: Wir sehen die Messung durch, klären die unsicheren Punkte und korrigieren die maschinellen Zusammenführungen bei Bedarf von Hand.
  5. Festschreibung: Die fertige Messung lässt sich als unveränderliche Fassung festschreiben, und sie wird zur Grundlage des Vertrags.

Bei der Weiterentwicklung eines bestehenden Systems beschreiben wir den bestehenden Teil gesondert, sodass nur der neue Teil in die Größe einfließt. Die Messung zeigt auch an, was die funktionale Größe nicht ausdrückt.

Wie werden aus der Größe Angebot und Zeitplan?

Der Preis des Angebots ergibt sich aus der gemessenen Größe, ergänzt um die Posten, die die Größe nicht ausdrückt. Da wir die Größe auch je Funktionsgruppe sehen, bauen wir auch den Zeitplan darauf auf: die Reihenfolge der Etappen, den Inhalt der Vorführungen und die Termine. Entsteht unterwegs eine neue Anforderung, messen wir sie auf die gleiche Weise, und es ist sichtbar, wie stark sich der Umfang ändert und was das für Preis und Zeitplan bedeutet. Einen konkreten Preis und Termin nennen wir deshalb erst nach der Messung, nicht auf Grundlage eines ersten Gesprächs.

Zwei Angebote anhand der Größe vergleichen

Wenn Sie bei mehreren Entwicklern Angebote einholen, hilft die Größe bei der Entscheidung, ob sie sich auf dieselbe Aufgabe beziehen. So gehen Sie am besten vor:

  1. Dieselbe Spezifikation: Jeder Bieter erhält dieselbe Beschreibung Punkt für Punkt.
  2. Die Größe und die Prozessliste: Fragen Sie nach, für welche Größe und welche funktionalen Prozesse der Preis angegeben wurde.
  3. Die Gründe für Unterschiede: Weichen zwei Angebote voneinander ab, prüfen Sie, ob sie sich in der Größe, in den von der Größe nicht ausgedrückten Posten oder im Preis je Größeneinheit unterscheiden.
  4. Die gesonderten Posten: Fragen Sie, was in einer eigenen Zeile steht (Integration, Datenmigration, Betrieb) und was im Preis nicht enthalten ist.
  5. Der Umgang mit Änderungen: Fragen Sie, wie Änderungen während des Projekts gemessen und bepreist werden.

Misst ein Bieter keine funktionale Größe, lässt sich sein Angebot trotzdem vergleichen, wenn er dieselbe Prozessliste Punkt für Punkt bepreist hat. Die übrigen Kriterien der Entwicklerwahl behandeln wir im Artikel Wie wählt man ein Softwareentwicklungsunternehmen aus?; ob überhaupt eine individuelle Entwicklung nötig ist, hilft der Artikel Individualsoftware oder fertige Lösung? zu entscheiden.

Häufige Fragen

Was ist ein COSMIC-Funktionspunkt?

Der COSMIC-Funktionspunkt (CFP) ist die Maßeinheit der funktionalen Größe von Software nach der Norm ISO/IEC 19761. Ein CFP ist eine Datenbewegung: die Eingabe, die Ausgabe, das Lesen oder das Schreiben einer Datengruppe in einem funktionalen Prozess. Die Größe der Software ist die Summe der Datenbewegungen ihrer Prozesse.

Worin unterscheidet er sich von einer Stundenschätzung?

Die Stundenschätzung gibt die erwartete Arbeit an und hängt vom Schätzenden und vom Team ab. COSMIC misst die Größe der Aufgabe anhand der Anforderungen nach öffentlichen Regeln, deshalb kann auch jemand anderes aus derselben Spezifikation zum selben Ergebnis kommen. Die Stunden lassen sich anschließend aus der Größe und der empirischen Produktivität ableiten.

Was misst COSMIC nicht?

Laut der Norm wurde die Methode nicht für die Messung komplexer mathematischer Algorithmen und der Verarbeitung kontinuierlicher Signale (Ton, Bild) entwickelt, und auch echte nichtfunktionale Anforderungen, etwa Leistungs- oder Technologievorgaben, drückt sie nicht in CFP aus. Ein gutes Angebot weist sie als gesonderte Posten aus.

Wer misst, und ist die Messung überprüfbar?

Die Messung führt ein Messender durch, der die Methode kennt; bei uns zählt ein KI-gestützter Arbeitsablauf, und ein Mensch überprüft das Ergebnis. Die Regeln sind öffentlich und die Messung ist je Prozess dokumentiert, deshalb kann ein anderer Fachmann, der die Methode kennt, sie anhand derselben Spezifikation überprüfen.

Wie wird aus der Größe ein Angebot?

Der Preis ergibt sich aus der gemessenen Größe, ergänzt um das, was die Größe nicht ausdrückt: Integrationen, nichtfunktionale Anforderungen, individuelle Grafik, mehrere Plattformen, Datenmigration. Der Zeitplan baut auf der Größe je Funktionsgruppe auf, und Änderungen messen wir auf die gleiche Weise. Die Einzelheiten stehen auf der Seite Preisgestaltung.

Wie können wir helfen?

Wenn Sie Individualsoftware planen, schreiben wir gemeinsam die Spezifikation Punkt für Punkt, messen ihre Größe in COSMIC-Funktionspunkten und erstellen daraus Angebot und Zeitplan. Auf Wunsch schließen wir eine Geheimhaltungsvereinbarung (NDA), und nach der Übergabe übernehmen wir auch Betrieb und Wartung. Quellcode und Nutzungsrechte regelt der Vertrag. Das Erstgespräch ist kostenlos: Schreiben Sie uns über die Kontaktdaten auf der Seite Kontakt.

Quellen