Hoe werkt COSMIC?

Het algemene COSMIC meetproces bestaat uit drie fasen. Het resultaat van het meetproces is een omvang uitgedrukt in ‘COSMIC Functie Punten’ (‘CFP’).

Op deze pagina leest u - in vogelvlucht - wat deze fase inhouden.

Samenhang van de drie fasen

In schemavorm ziet u hoe deze fasen met elkaar in verband staan:

FUR = Functional User Requirement:

(Klik voor de afbeelding op ware grootte)

Naar overzicht van pagina

Fase 1: De Meetstrategie

Voordat de meting wordt gestart moet de analist het met de sponsors van de meting eens zijn over de volgende aspecten:

1. Het doel van de meting

Het doel van de meting geeft aan waarom de meting wordt uitgevoerd en waarvoor de resultaten gebruikt gaan worden. Dit zal op zijn beurt niet alleen helpen om de overige drie parameters van de meetstrategie vast te stellen, maar ook, bijvoorbeeld, om de vereiste nauwkeurigheid van de meting vast te stellen.

2. De scope van de software die gemeten moet worden

De totale scope van de software die gemeten moet worden volgt uit het doel van de meting. De totale scope beschrijft welke software functionaliteit in de meting moet worden meegenomen (en welke wordt uitgesloten). Afhankelijk van het doel kan de totale scope worden opgedeeld in een aantal afzonderlijk stukken software functionaliteit waarbij elke van deze afzonderlijke stukken binnen zijn eigen scope wordt gemeten.

Een dergelijke onderverdeling van de totale scope zou ten eerste nodig zijn als de totale scope software bevat die zich binnen meer dan één laag bevindt. Dit omdat ieder stuk te meten software zich volledig binnen één laag moet bevinden. Ten tweede zou een onderverdeling ook nodig kunnen zijn als het doel van de meting bijvoorbeeld het begroten van een software project betreft en de totale te meten software bestaat uit een aantal verschillende componenten die met verschillende technieken en/of technologieën worden ontwikkeld en/of op verschillende technische platforms worden geïmplementeerd, en/of door verschillende teams worden ontwikkeld.

3. De functionele gebruikers en de grens van ieder stuk te meten software

De functionele gebruikers van ieder stuk software kunnen worden vastgesteld aan de hand van de gegevensstromen die de software in en uit gaan, zoals impliciet of expliciet beschreven in de Functional User Requirements (FUR), waarbij met het doel van de meting rekening gehouden moet worden. De functionele gebruikers zijn de zenders en/of de beoogde ontvangers van de gegevens.

4. De granulariteit van de metingen

De granulariteit van de FUR van een stuk software waarop metingen normaal gesproken moeten worden uitgevoerd is de wijze waarop de functionele processen zijn vastgesteld en de onderverdeling in data movements is gedefinieerd.

Als het doel is om de FUR te meten van een volledig gespecificeerd of een bestaand stuk software, dan is de granulariteit normaal gesproken duidelijk wanneer de functionele processen zijn geïdentificeerd.

Naar overzicht van pagina

Fase 2: De Vertaalslag

Deze stap betreft het identificeren van de verzameling van functionele processen van de software, waarvan de omvang gemeten wordt en uit het identificeren van gegevensgroepen (object of interest) die worden gebruikt.

Een functioneel proces is een elementair onderdeel van een verzameling FUR, bestaande uit een unieke samenhangende en onafhankelijk uitvoerbare verzameling data movements. Het wordt getriggerd door een data movement (een Entry) van een functionele gebruiker die de software informeert dat de functionele gebruiker een triggering event heeft geïdentificeerd. Het is afgerond wanneer alles is uitgevoerd wat gedaan moet worden als reactie op het triggering event.

Ieder ‘ding’ dat is geïdentificeerd vanuit het gezichtspunt van de Functional User Requirements. Het kan een fysiek ding zijn, maar ook een (deel van een) conceptueel object in de wereld van de functionele gebruiker, waarover de software gegevens moet verwerken en/of moet opslaan. In de COSMIC methode wordt de term ‘object of interest’ gebruikt om verwarring te voorkomen met termen die in specifieke software ontwikkelmethodieken worden gebruikt. De term refereert niet aan objecten zoals die worden gebruikt in object georiënteerde methoden.

Naar overzicht van pagina

Fase 3: De Meetfase

Als het type gebruikersfunctie (stap 1) en de complexiteit (stap 2) ervan bekend zijn, kan in de volgende matrix het aantal functiepunten voor die gebruikersfunctie worden vastgesteld:

Identificeer de data movements (Entries, Exits, Reads en Writes) van ieder functioneel proces, die afhankelijk zijn van de geïdentificeerde gegevensgroepen die worden verplaatst.

E – Entry Een data movement die een gegevensgroep vanuit de functionele gebruiker, door de systeemgrens heen, in het functioneel proces brengt.
R – Read Een data movement die een gegevensgroep vanuit de ‘persistente opslag’ leest en in het functionele proces plaatst.
R – Read Een data movement die een gegevensgroep vanuit het functioneel proces wegschrijft naar de ‘persistente opslag’ .
X – Exit Een data movement die een gegevensgroep het functioneel proces, door de systeemgrens heen, naar de functionele gebruiker brengt.

De functionele omvang van een stuk software is rechtevenredig met het aantal aanwezige data movements.

De meetstandaard, te weten 1 CFP (COSMIC Functie Punt) is bij conventie gedefinieerd als equivalent van één enkele data movement.

De minimum omvang van een enkel functioneel proces is 2 CFP, omdat het kleinste functioneel proces tenminste één Entry moet hebben (als input) en óf een Exit (als output) of een Write. Verder is er geen bovengrens aan de functionele omvang van een functioneel proces en dus ook niet aan de functionele omvang van een stuk software.

Naar overzicht van pagina


Home