Cosmic Full Function Points (CFFP) Een introductie
Algemene informatie voor medewerkers van: SYSQA B.V.
Organisatie Titel Onderwerp
SYSQA B.V. Cosmic Full Function Points (CFFP) Een introductie
Pagina Versie Datum
2 van 9 1.1 11-04-2011
Inhoudsopgave 1
INLEIDING .............................................................................................................................. 3 1.1 1.2
2
WAT IS CFFP?........................................................................................................................ 4 2.1 2.2 2.3 2.4
3
W AT BIEDT CFFP? ............................................................................................................. 4 W AT BIEDT CFFP NIET? ...................................................................................................... 4 W ANNEER FASE KAN CFFP WORDEN TOEGEPAST?............................................................... 5 VOOR- EN NADELEN TEN OPZICHTE VAN FPA........................................................................ 5
HOE WERKT CFFP? .............................................................................................................. 6 3.1 3.2 3.3 3.4 3.5
4
ALGEMEEN ......................................................................................................................... 3 VERSIEBEHEER .................................................................................................................. 3
DEFINIEER DE SCOPE .......................................................................................................... 6 DEFINIEER HET VIEWPOINT .................................................................................................. 6 IDENTIFICEER DE RELEVANTE FUNCTIONELE PROCESSEN ...................................................... 6 BEPAAL DE OMVANG VAN IEDER FUNCTIONEEL PROCES ......................................................... 6 BEPAAL DE OMVANG VAN HET SYSTEEM ALS GEHEEL............................................................. 7
BEGROTEN MET CFFP.......................................................................................................... 8 4.1 4.2 4.3 4.4
BEPAAL DE OMVANG VAN HET SYSTEEM ............................................................................... 8 BEPAAL DE ALGEMENE NORM .............................................................................................. 8 BEPAAL DE PROJECTNORM.................................................................................................. 8 MAAK DE BEGROTING .......................................................................................................... 8
LITERATUURVERWIJZINGEN ...................................................................................................... 9
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
1
SYSQA B.V. Cosmic Full Function Points (CFFP) Een introductie
Pagina Versie Datum
3 van 9 1.1 11-04-2011
Inleiding
1.1
Algemeen
De kosten voor het maken van informatiesystemen zijn gerelateerd aan de omvang van het systeem. Hoe groter het systeem (inclusief complexiteit), hoe hoger de kosten. Het probleem hierbij is de grootheid waarin de omvang van het systeem wordt vastgelegd. Grootheden zoals lines-of-code of aantal functies zijn niet toereikend, omdat de eerste pas na ontwikkeling kan worden bepaald en de tweede alleen indicatief aangeeft wat de omvang zal zijn. Voor het bepalen van de omvang van een systeem zijn verschillende objectieve methodes voorhanden. De meest bekende is functiepuntanalyse (FPA), waarbij de omvang van het systeem wordt uitgedrukt in functiepunten. Voor deze methode is een afzonderlijke introductie beschikbaar. In de voorliggende introductie wordt een alternatief voor FPA besproken: CFFP. CFFP staat voor Cosmic Full Function Points, waarbij COSMIC verwijst naar het consortium dat deze methode heeft ontwikkeld (COmmon Software Measurement International Consortium). De omvang van een op basis van CFFP gemeten systeem wordt uitgedrukt in Cosmic functional size units (cfsu). De reden dat CFFP is ontwikkeld is dat FPA vooral geschikt wordt geacht voor mainframe- en vergelijkbare systemen. Bij dergelijke systemen zijn de specificaties gebaseerd op functionele decompositie, waarbij functies, gegevensverzamelingen en velden duidelijk worden onderscheiden. CFFP stelt deze eis aan de specificaties niet en is daarom ook toepasbaar op ‘modernere’ systemen, die zich kenmerken door o.a. nieuwe ontwikkelmethoden (bv. objectgeöriënteerd) en een andere architectuur (bv. web). Voorbeelden van systemen waarvoor CFFP geschikt is en FPA niet of minder: · ·
Businesstoepassingen waarin veel informatie over een object of gebeurtenis uit de ‘echte wereld’ wordt vastgelegd en bewerkt, zoals systemen t.b.v. de bank- en verzekeringssector alsmede inkoop- en personeelssystemen. Real-time systemen waarmee gebeurtenissen in de ‘echte wereld’ worden gecontroleerd, zoals systemen t.b.v. telefooncentrales en de procesindustrie alsmede embedded systemen.
CFFP is echter minder geschikt voor het meten van systemen die complexe wiskundige algoritmes of streaming audio/video (zoals in games) bevatten. Ondanks de verschillen hebben CFFP en FPA ook enkele punten gemeen. Zowel verschillen als gemeenschappelijke punten worden in deze introductie besproken. Gemeenschappelijke punten zijn overigens ook terug te vinden in de FPA-introductie. Na het lezen van deze introductie heeft de lezer een algemene indruk van CFFP en zijn de vaktechnische termen bekend.
1.2 Versie 0.1 1.0 1.1
Versiebeheer Status Concept Definitief Definitief
Datum 31 augustus 2006 1 september 2006 11 april 2011
Almere © 2006
Auteur SYSQA SYSQA SYSQA
Opmerkingen Eerste concept Review opmerkingen verwerkt, definitief gemaakt Aanpassing aan nieuwe stijl
Quality Assurance in ICT
Organisatie Titel Onderwerp
2
SYSQA B.V. Cosmic Full Function Points (CFFP) Een introductie
Pagina Versie Datum
4 van 9 1.1 11-04-2011
Wat is CFFP?
Voordat CFFP wordt toegepast, is het van belang te weten waarvoor deze methode kan worden gebruikt en tevens waarvoor niet, in welke fasen van systeemontwikkeling het kan worden toegepast, en wat de voor- en nadelen zijn ten opzichte van concurrent FPA.
2.1
Wat biedt CFFP?
De cfsu is net als de functiepunt een grootheid (meeteenheid) waarmee concreet en objectief over de omvang van een informatiesysteem kan worden gesproken. Een uitspraak als “Het is een systeem van circa 150 cfsu” geeft meer houvast dan uitspraken zoals “Het is best wel een groot systeem” of “Het systeem bevat 38 functies”. Dit biedt een aantal mogelijkheden: 1. Beter en eerder begroten: Op grond van de functionele systeemspecificaties kan de omvang worden vastgesteld. Uit het normcijfer (uren per cfsu) volgt het aantal normuren voor de systeemontwikkeling. 2. Beter beheersen van projecten: Wijzigingen in specificaties kunnen worden uitgedrukt in cfsu, waardoor ze kwantificeerbaar en beheersbaar zijn. 3. Beter communiceren tussen de betrokken partijen: Als meerdere personen op een verschillend aantal cfsu uitkomen, duidt dit op een andere interpretatie. Onduidelijke of onvolledige specificaties komen hiermee aan het licht. 4. Meten van de productiviteit: Het aantal bestede uren gedeeld door het aantal gerealiseerde cfsu geeft de productiviteit aan van het project. Deze kan worden vergeleken met de norm. Verschillen worden geanalyseerd en kunnen leiden tot gerichte stuurmaatregelen. 5. Meten van de kwaliteit van het systeem: Het aantal fouten per cfsu per tijdseenheid is een kengetal voor de kwaliteit van een systeem. 6. Verbeteren van de kwaliteit van het ontwikkelproces: Door het terugdringen van miscommunicatie (punt 3) en stuurmaatregelen (punt 4 en 5) kan de kwaliteit van het ontwikkelproces worden verbeterd. Overigens biedt ook FPA deze mogelijkheden.
2.2
Wat biedt CFFP niet?
Voor een aantal doeleinden kan CFFP niet of minder goed worden ingezet: · · ·
CFFP is géén projectmanagementmethode. Met CFFP kan alleen een uitspraak worden gedaan over de omvang van een systeem en het totaal aantal benodigde uren. CFFP biedt geen houvast voor de manier waarop deze uren moeten worden ingezet. CFFP levert géén feilloze begrotingen op. CFFP levert wel een belangrijke ondersteuning op bij het maken van een begroting, maar CFFP kan nooit de projectleider vervangen. CFFP is geen planningstechniek. Met CFFP kan alleen een uitspraak worden gedaan over het totaal aantal benodigde uren. Wanneer er voldoende ervaringscijfers gerelateerd aan CFFP beschikbaar zijn, kan hooguit een indicatie van de doorlooptijd van een project worden gegeven.
Overigens is ook FPA niet of minder geschikt is voor bovenstaande doeleinden.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
2.3
SYSQA B.V. Cosmic Full Function Points (CFFP) Een introductie
Pagina Versie Datum
5 van 9 1.1 11-04-2011
Wanneer fase kan CFFP worden toegepast?
CFFP kan worden toegepast voor zowel nieuwbouw als onderhoud. CFFP kan worden uitgevoerd zodra de functionele specificaties van een systeem globaal bekend zijn. In LAD-termen1 gesproken kan dit al het geval zijn na de fase vooronderzoek of definitiestudie, maar in elk geval na de fase detailontwerp. In RAD-termen2 kan de FPA reeds in de JRP-fase (joint requirements planning) worden uitgevoerd. Het spreekt voor zich dat de schatting betrouwbaarder wordt naarmate de specificaties gedetailleerder zijn. De schattingen zijn het meest betrouwbaar voor de realisatie- en testfasen, indien deze worden gemaakt als de definitieve functionele specificaties beschikbaar zijn.
2.4
Voor- en nadelen ten opzichte van FPA
Ten opzichte van FPA heeft CFFP de volgende voordelen: · · · ·
Functionele processen hoeven niet te worden benoemd naar type functie (invoer, uitvoer, opvraag). Evenmin hoeven aantallen gerefereerde gegevensverzamelingen en attributen te worden bepaald. Er is geen datamodel nodig, omdat permanente gegevens als zodanig niet worden meegenomen in de meting. CFFP kijkt alleen naar het verplaatsen van gegevens (zie hoofdstuk 3). FPA biedt niet de mogelijkheid om complexer wordende functies evenredig te waarderen, omdat er een maximale omvang is (van 7 functiepunten). CFFP kent geen maximale omvang. CFFP kan uit de voeten met verschillende typen architectuur, zoals een meerlagenarchitectuur en real-time toepassingen. FPA houdt geen rekening met de architectuur van een systeem.
De nadelen van CFFP vloeien voort uit het feit dat de methode nog niet lang bestaat: · ·
1 2
Er zijn nog nauwelijks ervaringscijfers, zodat er bij aanvang van systeemontwikkeling nog geen goede indicatie van de omvang kan worden gegeven. Er is weliswaar een indicatieve CFFPmethode (early FFP), maar hiermee is nog weinig ervaring opgedaan. Voor het begroten van testtrajecten bestaat een op FPA gebaseerde methode: testpuntanalyse (TPA). Voor CFFP is een dergelijke methode nog in ontwikkeling.
LAD: Lineair Application Development: Het conform een lineaire methode ontwikkelen van informatiesystemen. RAD: Rapid Application Development: Het conform een cyclische methode ontwikkelen van informatiesystemen.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
3
SYSQA B.V. Cosmic Full Function Points (CFFP) Een introductie
Pagina Versie Datum
6 van 9 1.1 11-04-2011
Hoe werkt CFFP?
CFFP kent de volgende stappen waarmee de omvang van een systeem kan worden berekend: 1. 2. 3. 4. 5.
3.1
Definieer de scope van de meting. Definieer het viewpoint van waaruit het systeem wordt gemeten. Identificeer de voor gebruikers relevante functionele processen. Bepaal de omvang van ieder functioneel proces. Bepaal de omvang van het systeem als geheel.
Definieer de scope
De scope van de meting verwijst naar het geheel van functionele gebruikersspecificaties voor het te meten systeem. Deze specificaties zijn vastgelegd in bv. functionele ontwerpen of use cases.
3.2
Definieer het viewpoint
Het viewpoint bepaalt welke componenten worden opgenomen in de meting. Er zijn meerdere viewpoints, waarvan die van eindgebruiker en ontwikkelaar het belangrijkste zijn. Afhankelijk van het gekozen viewpoint, kan de gemeten omvang variëren. Vanuit het eindgebruikersviewpoint wordt alleen de functionaliteit waarmee de eindgebruiker in aanraking komt gemeten, terwijl vanuit het ontwikkelaarsviewpoint ook de onderliggende functionaliteit (waarmee de interactie tussen gebruiker en systeem mogelijk wordt gemaakt) in de meting wordt opgenomen. Voor een volledige omvangschatting dient het ontwikkelaarsviewpoint te worden gebruikt.3
3.3
Identificeer de relevante functionele processen
De functionele gebruikersspecificaties zijn opgebouwd uit voor de gebruikers relevante functionele processen. Maak een overzicht van al deze functionele processen. Een functioneel proces is als volgt te herkennen: het wordt geactiveerd door een gebruiker en is beëindigd als het door de gebruiker verwachte resultaat is opgeleverd.
3.4
Bepaal de omvang van ieder functioneel proces
Binnen ieder functioneel onderscheiden:4 · · · ·
proces
kunnen
vier
typen
gegevensverplaatsingen
worden
Entry: het leveren van gegevens van de gebruiker aan het systeem. Exit: het aanbieden van gegevens van het systeem aan de gebruiker. Read: het verplaatsen van gegevens vanuit permanente opslag naar het systeem. Write: het verplaatsen van gegevens vanuit het systeem naar permanente opslag.
Het viewpoint bepaalt wie of wat als gebruiker wordt beschouwd. Vanuit het eindgebruikersviewpoint zijn dat eindgebruikers; vanuit het ontwikkelaarsviewpoint kan dat ieder object zijn dat samenwerkt of communiceert met het systeem. 3
Het eindgebruikersviewpoint kan bv. worden gebruikt voor het meten van de interactie van gebruikers met real-time systemen. Ook voor het vergelijken met FPA-tellingen kan dit viewpoint worden gebruikt, omdat FPA per definitie uitgaat van het eindgebruikersviewpoint. 4 In CFFP-termen: er kunnen vier subprocessen worden onderscheiden die gegevens verplaatsen.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Cosmic Full Function Points (CFFP) Een introductie
Pagina Versie Datum
7 van 9 1.1 11-04-2011
Iedere gegevensverplaatsing heeft de omvang van 1 cfsu, voor zover het de verplaatsing van één gegevensgroep betreft. Een gegevensgroep omvat de gegevens/attributen van één object die permanent zijn opgeslagen, en komt overeen met een tabel. Per gegevensverplaatsing wordt voor iedere extra gegevensgroep steeds 1 extra cfsu gerekend. Zie onderstaande figuur voor een voorbeeld: het aanmaken van facturen van de transacties van een gegeven week. Soort verplaatsing Entry Read Read Write Exit Exit Exit Exit
Omschrijving actie Geef weeknummer in (vluchtig); activerende procesgegevens, van gebruiker naar functioneel proces Lees leveringen (permanent); benodigde procesgegevens, van opslag naar functioneel proces Lees klantgegevens (permanent) Sla factuurgegevens op (permanent); resultaat proces van functioneel proces naar opslag Print klantgegevens op factuur (vluchtig); resultaat proces, van functioneel proces naar gebruiker Print leveringen op factuur (vluchtig) Print totalen op factuur (vluchtig) Verantwoord proces (vluchtig)
Hiervoor zijn acht gegevensverplaatsingen nodig (1 entry, 2 reads, 1 write en 4 exits). De omvang van dit functionele proces is 8 cfsu.
3.5
Bepaal de omvang van het systeem als geheel
De omvang van het systeem wordt ten slotte berekend door voor alle aanwezige functionele processen de eerder bepaalde cfsu te sommeren.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
4
SYSQA B.V. Cosmic Full Function Points (CFFP) Een introductie
Pagina Versie Datum
8 van 9 1.1 11-04-2011
Begroten met CFFP
Om tot een begroting te komen zijn vier stappen van belang: 1. 2. 3. 4.
4.1
Bepaal de omvang van het systeem. Bepaal de algemene norm. Bepaal de projectnorm. Maak de begroting.
Bepaal de omvang van het systeem
Bepaal het aantal cfsu van het systeem op basis van CFFP (zie hoofdstuk 3).
4.2
Bepaal de algemene norm
Normen legt een bedrijf aan op basis van ervaringen uit eerdere, vergelijkbare projecten. Deze normen zijn een indicator voor de te behalen productiviteit. Ervaringen uit nieuwe projecten kunnen aanleiding zijn om normen bij te stellen. Vaak wordt per ontwikkelomgeving een norm opgesteld. Om een norm zinvol in toekomstige situaties te kunnen gebruiken moet worden vastgelegd welke activiteiten in de normen zijn opgenomen. Activiteiten die niet onder de norm vallen, dienen in stap 4 apart te worden begroot. Als uit eerdere ervaringen bekend is hoeveel uur er nodig is om één cfsu te realiseren (de productiviteit) dan kan de begroting worden bepaald: Begroting systeem (uren) = Omvang (cfsu) x Productiviteit (uren per cfsu)
4.3
Bepaal de projectnorm
Men dient na te gaan of voor het project specifieke omstandigheden gelden die de productiviteit en daarmee de begroting in positieve of negatieve zin beïnvloeden. Deze omstandigheden dienen te worden ingeschat en te worden vertaald naar de te hanteren projectnorm. Deze kan dus afwijken van de algemene norm voor de betreffende ontwikkelomgeving. De begroting wordt dan: Begroting project = Omvang x Productiviteit x Projectnorm
4.4
Maak de begroting
Activiteiten die niet in de projectnorm zijn meegenomen zijn doorgaans activiteiten die niet gecorreleerd zijn aan de omvang van een project. Voor dit soort activiteiten die buiten de norm gehouden worden dient vervolgens het aantal benodigde uren te worden geschat en toegevoegd aan de initiële projecturen. De begroting wordt dan: Begroting project = (Omvang x Productiviteit x Projectnorm) + Toeslag waarbij Toeslag verwijst naar de projectactiviteiten die niet gerelateerd zijn aan de omvang van het systeem.
Almere © 2006
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Cosmic Full Function Points (CFFP) Een introductie
Pagina Versie Datum
9 van 9 1.1 11-04-2011
Literatuurverwijzingen · ·
COSMIC (COmmon Software Measurement International Consortium), CFFP Measurement Manual, version 2.2, January 2003. Te downloaden via www.lrgl.uqam.ca/cosmic-ffp/manual.html Ton Dekkers, Beter meten met Cffp, Informatie, juli/augustus 2003. Te downloaden via lrgl.uqam.ca/publications/pdf/822.pdf
Almere © 2006
Quality Assurance in ICT