← Nieuwste papers
💻 computer science

Software Size Estimation by Integrating Functional Size and Functional Complexity Measures

Deze studie stelt een model voor de schatting van de softwaregrootte voor dat functionele groottematen (UFP en CFP) integreert met functionele complexiteitsmaten (CC en YC) met behulp van regressieanalyse, waarmee wordt aangetoond dat het combineren van deze metrieken—met name UFP met complexiteitsmaten—de schattingsfout aanzienlijk vermindert en de voorspellingsnauwkeurigheid verbetert voor toepassingen zoals COCOMO II.

Oorspronkelijke auteurs: Sholiq Sholiq, Riyanarto Sarno, Muhammad Ainul Yaqin, Apol Pribadi Subriadi, Achmad Holil Noor Ali

Gepubliceerd 2026-10-01
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Sholiq Sholiq, Riyanarto Sarno, Muhammad Ainul Yaqin, Apol Pribadi Subriadi, Achmad Holil Noor Ali

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). ✨ Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Het bouwen van software is een complexe onderneming, vergelijkbaar met het bouwen van een gebouw, maar in plaats van bakstenen en mortel zijn de materialen regels code en functionele vereisten. Decennialang hebben projectmanagers vertrouwd op het tellen van deze regels code om in te schatten hoeveel tijd en geld een project zal kosten. Deze methode is echter gebrekkig, omdat twee programma's exact hetzelfde kunnen doen terwijl ze een totaal verschillende hoeveelheid code vereisen, afhankelijk van hoe de programmeur ze schrijft. Om dit op te lossen, heeft de industrie een manier ontwikkeld om software te meten op basis van wat het daadwerkelijk doet voor de gebruiker — het tellen van inputs, outputs en databestanden — in plaats van hoe het is geschreven. Dit staat bekend als functionele omvang. Toch heeft zelfs deze functionele telling een blinde vlek: het meet de hoeveelheid functies, maar mist vaak de moeilijkheidsgraad van het bouwen ervan. Een eenvoudige functie kan gemakkelijk te construeren zijn, terwijl een complexe functie met veel vertakkende paden en voorwaarden een nachtmerrie kan zijn om te coderen, zelfs als beide als een enkele "functie" worden geteld in de traditionele zin.

Deze kloof tussen de omvang van een functie en de complexiteit van het bouwen ervan is het centrale vraagstuk waar een team onderzoekers uit Indonesië zich mee bezighoudt. Zij gingen onderzoeken of het combineren van een maatstaf voor functionele omvang met een maatstaf voor structurele complexiteit kon leiden tot nauwkeurigere voorspellingen van de werkelijke omvang van een softwareproject. Hun werk richt zich op het verfijnen van de manier waarop de inspanning wordt ingeschat die nodig is om software te bouwen, een cruciale taak die bepaalt of een project binnen het budget blijft of volledig uit de hand loopt. Door te kijken naar zowel het "wat" als het "hoe moeilijk", wilden zij een duidelijker beeld creëren voor de mensen die deze digitale systemen plannen en beheren.

De onderzoekers begonnen met het verzamelen van gegevens uit twee real-world softwareprojecten: één ontworpen voor een personeelscoöperatie en een ander voor een winkelier. Ze gebruikten geen publieke datasets, omdat die vaak niet over de specifieke details beschikken die nodig zijn voor hun analyse. In plaats daarvan vertaalden ze de tekstuele vereisten voor deze applicaties naar visuele stroomdiagrammen, ook wel BPMN-diagrammen genoemd. Deze diagrammen dienden als een brug, waardoor het team twee verschillende soorten metingen voor elk deel van het systeem kon extraheren. Eerst berekenden ze de functionele omvang, die het aantal gebruikersinteracties en databestanden telt. Ze gebruikten hiervoor twee gevestigde methoden: één die ongecorrigeerde functionele punten telt op basis van standaardcategorieën zoals inputs en outputs, en een andere die cosmic function points telt door te volgen hoe data het systeem in- en uitgaat.

Vervolgens maten ze de structurele complexiteit van diezelfde onderdelen. Dit hield in dat de logica binnen de stroomdiagrammen werd geanalyseerd om te zien hoeveel beslispunten, lussen en vertakkende paden er bestonden. Ze gebruikten hiervoor twee verschillende complexiteitsmetrieken: één die het aantal onafhankelijke paden door de code telt, en een andere die de cognitieve moeilijkheid van verschillende soorten vertakkingen en lussen weegt. Ten slotte vergeleken ze deze gecombineerde metingen met het werkelijke aantal regels code dat voor de projecten is geschreven. Deze laatste telling diende als de grondwaarheid, de werkelijke omvang van de voltooide software die de onderzoekers probeerden te voorspellen.

De resultaten toonden een duidelijk patroon aan, afhankelijk van welke methode voor functionele omvang werd gebruikt. Wanneer de onderzoekers de eerste methode voor functionele omvang gebruikten, verbeterde het toevoegen van de complexiteitsmetingen de nauwkeurigheid van hun voorspellingen aanzienlijk. Specifiek daalde de foutmarge in hun schattingen van vierentwintig procent naar tweeëntwintig procent. Dit suggereert dat bij dit type functionele telling, het kennen van de complexiteit van de logica helpt om de schatting te corrigeren en dichter bij de realiteit te brengen. Het verhaal was echter anders voor de tweede methode voor functionele omvang. Wanneer ze de cosmic function points gebruikten, zorgde het toevoegen van de complexiteitsmetingen niet voor een lagere foutmarge, die stabiel bleef op vijftien procent. In dit geval was de maatstaf voor functionele omvang al zo precies dat de extra complexiteitsdata de definitieve waarde niet nauwkeuriger maakte.

Ondanks het gebrek aan verbetering in de foutmarges bij de tweede methode, bleek de complexiteitsdata nog steeds waardevol. Wanneer de onderzoekers complexiteitsmaten toevoegden aan de cosmic function points, verbeterde de kwaliteit van hun voorspellingen op een andere manier. Het percentage schattingen dat binnen een zeer nauwe foutmarge viel, steeg van zesentwintig procent naar tachtig procent. Dit betekent dat hoewel de gemiddelde fout niet veranderde, het team betrouwbaarder werd in het bereiken van een antwoord dat zeer dicht bij de juiste waarde lag. De studie concludeert dat het integreren van complexiteitsmaten geen oplossing is die voor iedereen werkt; de waarde ervan hangt af van de methode voor functionele omvang die wordt gebruikt. Voor de ene methode verscherpt het de nauwkeurigheid, terwijl het voor de andere de consistentie verscherpt. Deze bevindingen bieden een nieuwe, meer genuanceerde manier om gegevens in gevestigde inspanningsschattingsmodellen in te voeren, wat softwareteams potentieel kan helpen om meer geïnformeerde beslissingen te nemen over de tijd en middelen die hun projecten werkelijk zullen vereisen.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →