Software Size Estimation by Integrating Functional Size and Functional Complexity Measures
Diese Studie schlägt ein Modell zur Schätzung der Softwaregröße vor, das funktionale Größenmaße (UFP und CFP) mit funktionalen Komplexitätsmaßen (CC und YC) mittels Regressionsanalyse integriert und zeigt, dass die Kombination dieser Metriken – insbesondere UFP mit Komplexitätsmaßen – den Schätzfehler signifikant reduziert und die Vorhersagegenauigkeit für Anwendungen wie COCOMO II verbessert.
Originalarbeit lizenziert unter CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Die Entwicklung von Software ist ein komplexes Unterfangen, das dem Bau eines Gebäudes ähnelt, nur dass die Materialien statt Ziegeln und Mörtel aus Codezeilen und funktionalen Anforderungen bestehen. Seit Jahrzehnten verlassen sich Projektmanager darauf, diese Codezeilen zu zählen, um abzuschätzen, wie viel Zeit und Geld ein Projekt in Anspruch nehmen wird. Diese Methode ist jedoch fehlerhaft, da zwei Programme exakt dasselbe tun können, während sie je nach der Art und Weise, wie der Programmierer sie schreibt, eine völlig unterschiedliche Menge an Code erfordern. Um dies zu lösen, entwickelte die Branche eine Methode, um Software danach zu messen, was sie dem Nutzer tatsächlich bietet – indem Eingaben, Ausgaben und Datendateien gezählt werden – anstatt danach, wie sie geschrieben wurde. Dies ist als funktionale Größe bekannt. Doch selbst diese funktionale Zählung hat einen blinden Fleck: Sie misst die Quantität der Funktionen, erfasst aber oft nicht die Schwierigkeit, diese zu erstellen. Eine einfache Funktion mag leicht zu konstruieren sein, während eine komplexe Funktion mit vielen Verzweigungen und Bedingungen ein Albtraum beim Programmieren sein kann, selbst wenn beide im traditionellen Sinne als eine einzige „Funktion“ zählen.
Diese Lücke zwischen der Größe einer Funktion und der Komplexität ihrer Erstellung ist das zentrale Rätsel, mit dem sich ein Team von Forschern aus Indonesien befasst hat. Sie wollten herausfinden, ob die Kombination eines Maß für die funktionale Größe mit einem Maß für die strukturelle Komplexität zu genaueren Vorhersagen über das wahre Ausmaß eines Softwareprojekts führen könnte. Ihre Arbeit konzentriert sich darauf, die Art und Weise zu verfeinern, wie der Aufwand geschätzt wird, der zum Bau von Software erforderlich ist – eine kritische Aufgabe, die darüber entscheidet, ob ein Projekt im Budget bleibt oder außer Kontrolle gerät. Indem sie sowohl das „Was“ als auch das „Wie schwer“ betrachteten, wollten sie ein klareres Bild für die Menschen schaffen, die diese digitalen Systeme planen und verwalten.
Die Forscher begannen mit der Sammlung von Daten aus zwei realen Softwareprojekten: eines, das für eine Mitarbeitergenossenschaft entwickelt wurde, und eines für ein Einzelhandelsgeschäft. Sie verwendeten keine öffentlichen Datensätze, da diese oft nicht die spezifischen Details enthalten, die für ihre Analyse benötigt werden. Stattdessen überführten sie die textlichen Anforderungen dieser Anwendungen in visuelle Flussdiagramme, sogenannte BPMN-Diagramme. Diese Diagramme dienten als Brücke, die es dem Team ermöglichte, zwei verschiedene Arten von Messungen für jeden Teil des Systems zu extrahieren. Zuerst berechneten sie die funktionale Größe, welche die Anzahl der Benutzerinteraktionen und Datendateien zählt. Sie nutzten hierfür zwei etablierte Methoden: eine, die unbereinigte Funktionspunkte basierend auf Standardkategorien wie Eingaben und Ausgaben zählt, und eine andere, die Cosmic Function Points zählt, indem sie verfolgt, wie Daten in das System hinein- und herausfließen.
Als Nächstes maßen sie die strukturelle Komplexität eben dieser Teile. Dies beinhaltete die Analyse der Logik innerhalb der Flussdiagramme, um zu sehen, wie viele Entscheidungspunkte, Schleifen und Verzweigungspfade existierten. Sie verwendeten zwei verschiedene Komplexitätsmetriken für dies: eine, die die Anzahl der unabhängigen Pfade durch den Code zählt, und eine andere, die die kognitive Schwierigkeit verschiedener Arten von Verzweigungen und Schleifen gewichtet. Schließlich verglichen sie diese kombinierten Messungen mit der tatsächlichen Anzahl der für die Projekte geschriebenen Codezeilen. Diese letzte Zählung diente als „Ground Truth“, die tatsächliche Größe der fertigen Software, die die Forscher vorherzusagen versuchten.
Die Ergebnisse zeigten ein deutliches Muster, abhängig davon, welche Methode zur funktionalen Größenbestimmung verwendet wurde. Wenn die Forscher die erste Methode der funktionalen Größenbestimmung anwandten, verbesserte das Hinzufügen der Komplexitätsmessungen die Genauigkeit ihrer Vorhersagen erheblich. Konkret sank die Fehlerrate ihrer Schätzungen von vierundzwanzig Prozent auf zweiundzwanzig Prozent. Dies deutet darauf hin, dass es bei dieser Art der funktionalen Zählung hilft, die Komplexität der Logik zu kennen, um die Schätzung zu korrigieren und sie näher an die Realität heranzuführen. Die Geschichte verlief jedoch anders bei der zweiten Methode der funktionalen Größenbestimmung. Als sie die Cosmic Function Points verwendeten, senkte das Hinzufügen der Komplexitätsmessungen die Fehlerrate nicht, welche konstant bei fünfzehn Prozent blieb. In diesem Fall war das Maß der funktionalen Größe bereits so präzise, dass die zusätzlichen Komplexitätsdaten die endgültige Zahl nicht genauer machten.
Trotz des mangelnden Fortschritts bei den Fehlerraten erwiesen sich die Komplexitätsdaten dennoch als wertvoll. Als die Forscher Komplexitätsmaße zu den Cosmic Function Points hinzufügten, verbesserte sich die Qualität ihrer Vorhersagen auf eine andere Weise. Der Prozentsatz der Schätzungen, die innerhalb einer sehr engen Fehlermarge lagen, stieg von sechsundsiebzig auf achtzig Prozent. Das bedeutet, dass der durchschnittliche Fehler zwar unverändert blieb, das Team aber zuverlässiger darin wurde, sehr nah an das richtige Ergebnis heranzukommen. Die Studie kommt zu dem Schluss, dass die Integration von Komplexitätsmaßen keine Einheitslösung ist; ihr Wert hängt davon ab, welche Methode der funktionalen Größe verwendet wird. Für eine Methode schärft sie die Genauigkeit, während sie für die andere die Konsistenz schärft. Diese Erkenntnisse bieten einen neuen, differenzierteren Weg, um Daten in etablierte Aufwandsschätzungsmodelle einzuspeisen, was Softwareteams potenziell dabei helfen kann, fundiertere Entscheidungen über die Zeit und die Ressourcen zu treffen, die ihre Projekte tatsächlich benötigen werden.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.