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.
In schemavorm ziet u hoe deze fasen met elkaar in verband staan:
FUR = Functional User Requirement:
Voordat de meting wordt gestart moet de analist het met de sponsors van de meting eens zijn over de volgende aspecten:
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.
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.
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.
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.
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.
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.
