Converteren van functionele omvang van FPA naar COSMIC

701 views

Published on

Presentatie van Sogeti op de najaarsconferentie 2006

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
701
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Pagina
  • Pagina Er is een ISO-standaard die voorschrijft hoe requirements objectief gemeten kunnen worden. Niet inhoudelijk ingaan op de methodieken, maar aangeven dat deze methoden de omvang van de functionaliteit van software (de requirements van de gebruiker dus) kwantitatief meetbaar maken. Functiepuntanalyse is data georiënteerd en dus vooral geschikt voor administratieve systemen. COSMIC-FFP is proces georiënteerd en is ook geschikt voor real-time systemen. Waarom is dat interessant? Omdat je dan een duidelijke standaard hebt hoe requirements in een getalswaarde worden uitgedrukt en het dus niet uitmaakt wie je die vertaalslag laat maken. Doordat de methodiek gestandaardiseerd is kun je deze als basis voor contracten gebruiken. Functiepuntanalyse is niet nauwkeurig. Dat is waar als je er deterministisch naar kijkt. Geef twee analisten dezelfde documentatie en de uitkomst kan tot 12% afwijken. Is daarmee de methode waardeloos? Vergelijk het met een dobbelsteen: Als je met twee stenen een 1 en een 3 gooit, zijn ze dan verschillend? Bij functiepuntanalyse wel. Maar bij een dobbelsteen zeg je pas na een aantal keer gooien dat ze een verschillende kans hebben. Chris Verhoef heeft metingen van ruim 37.000 functiepunten in honderden projecten bekeken en geen verschil in kans ontdekt bij meer dan 90% van de gemeten functiepunten. Het uitvoeren van een omvangsmeting kost één tot enkele €uro’s per eenheid. Een totaal bouwtraject vaak algauw honderden euro’s per eenheid, afhankelijk van een aantal factoren die Warner toe gaat lichten.
  • Pagina
  • Pagina
  • Thank you for your attention Do we have some time for questions or discussion ?
  • Converteren van functionele omvang van FPA naar COSMIC

    1. 1. NESMA najaarsconferentieConverteren van Functionele omvang: Van FPA naar COSMIC-FFP Harold van Heeringen 7 december 2006 Vechthuis,Utrecht
    2. 2. Overzicht• Waarom van FPA naar COSMIC-FFP?• FPA in a nutshell• COSMIC-FFP in a nutshell• Overeenkomsten en verschillen• Conversie - Eerdere studies• Conversie - Sogeti studie• Aanbevelingen
    3. 3. COSMIC-FFP• Tweede generatie FSM• Bestaat sinds eind jaren ‘90• Toepasbaar op de domeinen: bedrijfsapplicatie software, realtime software, infrastructuur software en hybriden• Maakt meten van herbruikbare componenten mogelijk• Geschikt voor traditionele ontwikkelmethodieken en architecturen• Geschikt voor moderne ontwikkelmethodieken (RUP, OO, etc)• Geschikt om software in moderne architecturen te meten (meerlagen, soa)  COSMIC is beter toegespitst op het meten van moderne vormen van documentatie dan FPA
    4. 4. Mogelijke redenen om van FPA naarCOSMIC-FFP te gaan • Nieuwe ontwikkelmethodieken en daarom van andere vormen van functionele documentatie.  FPA minder goed toepasbaar • De organisatie wil ook software in het realtime, telecommunicatie of infrastructuur domein gaan meten. • De organisatie wil de omvang van verschillende afzonderlijke componenten vaststellen. • De organisatie wil dat er genuanceerdere metingen worden uitgevoerd. Een zeer complexe functie zou een grotere omvang moeten opleveren dan een complexe functie. • De organisatie is op een manier ingericht dat een afdeling slechts een deel van een gebruikersfunctie bouwt. Men wil echter wel op afdelingsniveau kunnen meten en begroten. Waarom meet dan niet iedereen met COSMIC-FFP??
    5. 5. Overstappen? Overstappen van FPA naar COSMIC-FFP wordt als onwenselijk beschouwd omdat men bang is dat de met veel pijn en moeite in FPA opgebouwde ervaringscijfers dan nutteloos worden. Tenzij er een goede manier is om een database met ervaringscijfers te converteren van FP naar cfsu!
    6. 6. Functionele omvang
    7. 7. Omvang• Methoden om de omvang van software te meten > Source lines of code > Number of objects > Number of screens > Number of classes > etc• Probleem: > Meetresultaten hangen sterk af van de gekozen technische implementatie  Moeilijk te vergelijken. > Pas meetbaar na implementatie• ISO 14143-1 Functional Size Measurement
    8. 8. Hebben we het over hetzelfde ?? • ISO-Standaard 14143 40040 0
    9. 9. ISO standaard? • Consistent • Ondubbelzinnig • Wereldwijde afspraak • Onafhankelijk van technische implementatie • ISO gecertificeerd (anno 2006) > IFPUG FPA, > Mark II Function Points > NESMA FPA, > COSMIC-FFP,
    10. 10. Functional Sizing Methods
    11. 11. FSM  User Requirements Business requirements (waarom) User requirements (wat) System requirements (hoe)
    12. 12. User requirements Functional UR Technical UR Quality UR User RequirementsFPA en COSMIC-FFP meten alleen de Functional UserRequirements
    13. 13. Functional User RequirementsFunctional User Requirements (FUR) kunnen uit de verschillende ontwerp producten worden ge- extraheerd voordat de software bestaat… Requirements definitie documenten Data analyse / Functional modellering documenten User Functionele Requirements decompositie documenten
    14. 14. Functional User RequirementsFunctional User Requirements (FUR) kunnen ook worden geidentificeerd nadat de software is gerealiseerd Fysieke Programma’s en schermen Functional Gebruikers- handleidingen User en proceduresRequirements Fysieke databases
    15. 15. Functiepunt Analyse
    16. 16. FunctiepuntZodra de FUR zijn vastgesteld, kunnen we FPA gebruiken om deomvang te meten De functiepunt is de eenheid om de omvang te bepalen van de functionaliteit die aan de gebruiker wordt aangeboden vanuit het gezichtspunt van de gebruiker.
    17. 17. Functiepunt Analyse Gebruiker Transacties Data IF ilgv OF kgv UF
    18. 18. Functionaliteit twee types functionaliteit transacties data i u o Interne Logische n i p Gegevens Verzameling v t v o v r e o a Koppelings r E a Gegevensverzameling r g Ondersteunende functies
    19. 19. Waardering: LGV Data-Element-TypesILGV 1 - 19 20 - 50 > 50 1 L(7) L(7) G(10) Record- 2-5 L(7) G(10) H(15) Types >5 G(10) H(15) H(15)KGV Data-Element-Types 1 - 19 20 - 50 > 50 1 L(5) L(5) G(7) Record- 2-5 L(5) G(7) H(10) Types >5 G(7) H(10) H(10)
    20. 20. Waardering: Transacties Data-Element-Typen Invoerfunctie 1-4 5 - 15 > 15 gerefereerde 0-1 L(3) L(3) G(4 Logische ) 2 L(3) G(4) H(6) Gegevens- Verzamelingen >2 G(4) H(6) H(6) Uitvoerfunctie Data-Element-Typen 1-5 6 - 19 > 19 gerefereerde 0-1 L(4) L(4) G(5 Logische ) 2- L(4) G(5) H(7) Gegevens- Verzamelingen >33 G(5) H(7) H(7)
    21. 21. Meten: voorbeeld FPAFURAanmaken nieuwe medewerker (vanuit menu)LGV’s AttributenWERKNEMER naam, adres, tel., datum in dienst, functiecodeFUNCTIE functiecode, omschrijving, salarisschaalInvoerfunctieLGV = 2 (WERKNEMER en FUNCTIE)DET = 6 (5 attributen + 1 appl det voor opstarten functie) 1-4 5 - 15 > 15 0-1 L(3) L(3) G(4Gemiddelde invoerfunctie, 4 FP ) 2 L(3) G(4) H(6) >2 G(4) H(6) H(6)
    22. 22. FPA samenvattend• Toepasbaarheid FPA is sterk afhankelijk van de aanwezigheid van een datamodel• FPA kent een waarde toe aan de aanwezige gegevensverzamelingen en aan de aanwezige functies• Deze waarde is per functie begrensd
    23. 23. COSMIC-FFP
    24. 24. COSMIC Full Function Points Gegevens Transacties Gebruiker w epersistent transient[permanent] [vluchtig] r x functioneel proces
    25. 25. Functioneel ProcesFunctioneel Proces• Elementaire component van de FUR• Unieke, samenhangende, onafhankelijk uitvoerbare set van data movements• Wordt getriggered door een triggering event in de wereld van de gebruiker• Is pas afgerond op het moment dat alles is gedaan wat op basis van dat triggering event mag worden verwacht.• Functionele processen zijn vrijwel altijd gelijk aan FPA functies
    26. 26. Data Group - vb In het logisch datamodel komt een entiteit voor met de naam MEDEWERKER, met de volgende attributen: Medewerker, naam, adres, tel., datum in dienst, functiecodeObject of Interest Functioneel Proces Data groep (Write)Medewerker Toevoegen mdw {mdwnr, naam, adres, woonplaats, sofinr}Medewerker Wijzigen mdw {naam, adres, woonplaats}Medewerker Verwijderen mdw {mdwnr}
    27. 27. MeetfaseIdentificeer van elk functioneel proces de data movements> Elke data movement is één Cfsu> Cfsu = COSMIC Functional Size Unit> De omvang van de te meten software is gelijk aan het aantal geïdentificeerde data movements
    28. 28. Meten: voorbeeld COSMIC-FFPFunctioneel procesAanmaken nieuwe medewerker (vanuit menu)OOI AttributenWERKNEMER naam, adres, tel., dat. id, functiecodeFUNCTIE functiecode, omschrijving, salarisschaalData Movement Data GroupEntry {werknemergegevens}Read FUNCTIEWrite WERKNEMERExit {medewerkernummer}Exit {boodschap (fout / bevestiging)}Totaal: 5 Cfsu NB: Standaard 1 exit voor melding
    29. 29. COSMIC-FFP samenvattend• COSMIC-FFP is niet afhankelijk van de aanwezigheid van een datamodel• COSMIC-FFP kent een waarde toe aan verplaatsingen van datagroepen binnen functionele processen• Deze waarde is niet begrensd per functioneel proces
    30. 30. Verschillen en Overeenkomsten
    31. 31. Belangrijkste verschillen methodieken FPA COSMIC-FFP Toepasbaar op Domein Bedrijfsapplicaties Bedrijfsapplicaties, Realtime, Infrastructuur Datamodel vereist? Ja Nee (wel handig) Meten van afzonderlijke Nee Ja componenten mogelijk? Omvang per functie Ja Nee begrensd? Benchmarking data Veel Weinig Meten van complexe Nee Nee, maar lokale verwerking uitbreiding mogelijk Early sizing o.b.v. datamodel o.b.v. procesmodel
    32. 32. Overeenkomsten in terminologieTerm NESMA FPA 2.2 COSMIC-FFP 2.2User User GebruikerFURs FURs FURsApplicatie Applicatie ApplicationSysteemgrens Systeemgrens BoundaryTransactie Gebruikerstransactie Functional processLogische gegevensgroep LGV Data groupData element type (DET) DET DET
    33. 33. De methodes vergelekenFSM Method Datagroep Datagroep Transactie Trans- Transactie types omvang types actie omvangFPA ILGV Invoerfunctie # RET’s # DET’s KGV Uitvoerfunctie # DET’s # Gerefereerde Opvraagfunctie LGV’sCOSMIC-FFP Transient Entry # data movements Onderdeel van Functioneel Exit # data Functioneel Proces movements Persistent proces Read # data movements Write # data movements
    34. 34. Overeenkomsten en verschillen intelwijze • Overeenkomsten: > FUR worden geanalyseerd > FPA Functies / Functionele processen worden geidentificeerd > De complexiteit van een functie / functioneel proces wordt bepaald door het toekennen van een getal die de functionele omvang weergeeft. • Verschillen: > Het datamodel wordt bij FPA wel gekwantificeerd, niet bij COSMIC-FFP > De complexiteit van de functies wordt bij FPA uit een tabel gehaald (max. 7) en bij COSMIC bepaald op basis van het aantal datagroep verplaatsingen tijdens het proces (geen maximum).
    35. 35. Converterenvan FPA naar COSMIC-FFP
    36. 36. Eerdere Conversie studies • Fetcke (1999) > N=4 > Y(Cfsu) = 1,1(FP IFPUG) – 7,6 > R2 = 0.97 • Vogelezang & Lesterhuis (2003) > N=11 > Y(Cfsu) = 1,2(FP NESMA) – 87 > R2 = 0.99 <200 FP: Y(Cfsu) = 0,75(FP) – 2.6 >200 FP: Y(Cfsu) = 1,2(FP) – 108 • Desharnais & Abran (2006) > N=14 > Y(Cfsu) = 1,0(FP IFPUG) – 3 > R2 = 0.93 Transactions only: Y(Cfsu) = 1,36 (FPTX) + 0 R2 = 0.98
    37. 37. Onderzoek• Doel – Onderzoeken of het mogelijk is om een conversieformule te bepalen om een gemeten omvang in FP te converteren naar een omvang in cfsu• Methode – Zowel in FPA als in COSMIC-FFP meten van een aantal projecten om daarna de verschillen te analyseren• Projecten – 28 nieuwbouwprojecten voor verschillende klanten
    38. 38. Resultaten deel 1 Project #cfsu # Func. Gem. # FP # ILGV # kGV # IF # UF # OF Proc. cfsu A 66 7 9,4 61 1 4 1 6 0 B 75 8 9,4 112 2 9 6 4 0 C 73 14 5,2 129 1 12 4 6 4 D 120 15 8,0 135 3 2 0 0 0 E 137 25 5,5 136 3 0 13 11 2 F 257 43 6,0 245 6 6 31 23 3 G 270 36 7,5 249 14 3 23 14 1 H 286 44 6,5 279 11 4 20 20 1 I 352 44 8,0 279 11 4 20 20 1 J 252 35 7,2 286 12 1 20 23 4 K 313 54 5,8 302 11 6 16 19 9 L 301 34 8,9 334 6 8 26 27 3 M 281 42 6,7 381 0 30 0 42 0 N 509 51 10,0 412 14 1 19 21 11
    39. 39. Resultaten deel 2 Project #cfsu # Func. Gem. # FP #ILGV #kGV # IF # UF #OF Proc cfsu O 530 104 5,1 498 21 0 63 39 6 P 445 66 6,7 499 16 3 45 34 1 Q 488 64 7,6 565 34 0 38 25 1 R 848 106 8,0 779 10 5 54 39 13 S 620 118 5,3 586 31 0 75 30 2 T 778 152 5,1 606 17 0 45 55 8 U 714 113 6,3 627 23 1 58 25 22 V 603 110 5,5 653 13 1 53 53 20 W 893 113 7,9 741 34 0 49 51 13 X 737 151 4,9 873 ? ? 58 83 13 Y 925 159 5,8 874 32 0 95 39 13 Z 1144 143 8,0 924 45 2 136 7 5 AA 1448 181 8,0 1076 45 2 136 7 43 AB 1864 223 8,4 1622 27 4 169 221 13
    40. 40. Sogeti 2006 N=28 Y(Cfsu) = 1,2(FP NESMA) – 54 R2 = 0.95 y = 1,2x - 54 2000 R2 = 0,95 1800 1600 1400 1200 #cfsu --> 1000 800 600 400 200 0 0 200 400 600 800 1000 1200 1400 1600 1800 #fp -->
    41. 41. Opdelen dataset?• Alleen transacties  geen hoge R2• Opsplitsen in datasets groter en kleiner dan 200 verkleint de R2• 1 formule voor hele dataset geeft de beste correlatie
    42. 42. Outliers • Mogelijke oorzaken: FP > cfsu Omvangrijk datamodel, maar geen dekkende CRUD matrix Relatief veel KGV’s (meer dan 50%) Veel kleine functionele processen (3 a 4 cfsu) Cfsu > FP Veel functies waarin data van veel entiteiten wordt verplaatst Veel onderhoudbare codetabellen Veel output processen Veel zeer eenvoudige functies (message X speelt zware rol)
    43. 43. Aanbevelingen• Om een database met ervaringscijfers van FPA naar cfsu te converteren: 1. Doe een aantal tellingen opnieuw in COSMIC-FFP 2. Maak een overzicht in excel met daarin de dubbelmetingen 3. Laat Excel een spreidingsgrafiek opstellen en stel in dat de formule en de R2 worden getoond 4. Pas de gevonden formule toe op de hele database• Als men geen dubbeltellingen wil doen 1. Bepaal of het NESMA of IFPUG functiepunten betreft 2. Kies op basis daarvan een van de gegeven formules 3. Pas deze formule toe op de hele database
    44. 44. De Nesma en COSMIC-FFP• Werkgroep COSMIC-FFP• Doel: toegankelijker maken van de methode voor de ‘metrics community’ in Nederland > Vertalen measurement manual > Papers en presentaties op conferenties Harold.van.heeringen@sogeti.nl
    45. 45. VragenDiscussie

    ×