Converteren van functionele omvang van FPA naar COSMIC
-
Upload
nesma -
Category
Technology
-
view
273 -
download
0
description
Transcript of Converteren van functionele omvang van FPA naar COSMIC
NESMA najaarsconferentie
Converteren van Functionele omvang:
Van FPA naar COSMIC-FFP
Harold van Heeringen7 december 2006
Vechthuis,Utrecht
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
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
Mogelijke redenen om van FPA naar COSMIC-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??
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!
Functionele omvang
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
Hebben we het over hetzelfde ??
• ISO-Standaard 14143
400
400
ISO standaard?
• Consistent• Ondubbelzinnig• Wereldwijde afspraak• Onafhankelijk van technische
implementatie
• ISO gecertificeerd (anno 2006)> IFPUG FPA, > Mark II Function Points> NESMA FPA, > COSMIC-FFP,
Functional Sizing Methods
FSM User Requirements
Userrequirements
(wat)
Businessrequirements
(waarom)
System requirements(hoe)
User requirements
Functional UR Technical UR Quality UR
User Requirements
FPA en COSMIC-FFP meten alleen de Functional User Requirements
Requirements Requirements definitiedefinitie
documentendocumenten
FunctioneleFunctioneledecompositiedecompositiedocumentendocumenten
Data analyse /Data analyse /modelleringmodelleringdocumentendocumenten
FunctionalFunctionalUserUser
RequirementsRequirements
Functional User Requirements
Functional User Requirements (FUR) kunnen uit de verschillende ontwerp producten worden ge-extraheerd voordat de software bestaat…
FunctionalFunctionalUserUser
RequirementsRequirements
FysiekeFysiekeProgramma’s enProgramma’s en
schermenschermen
FysiekeFysiekedatabasesdatabases
Gebruikers-Gebruikers-handleidingenhandleidingen
enenproceduresprocedures
Functional User Requirements
Functional User Requirements (FUR) kunnen ook worden geidentificeerd nadat de software is gerealiseerd
Functiepunt Analyse
Functiepunt
De functiepunt isde eenheid om de omvang te bepalen
van de functionaliteit die aan de gebruiker wordt aangebodenvanuit het gezichtspunt van de gebruiker.
Zodra de FUR zijn vastgesteld, kunnen we FPA gebruiken om de omvang te meten
Functiepunt Analyse
TransactiesGebruiker
IF
OF
UF
kgv
ilgv
Data
Functionaliteit
twee types functionaliteit
transacties
opvraag
uitvoEr
invoer
Ondersteunendefuncties
Interne LogischeGegevens Verzameling
KoppelingsGegevensverzameling
data
Waardering: LGV
ILGV
KGV
1
2 - 5
> 5
Data-Element-Types
> 50
H(15)
G(10)
H(15)
20 - 50
L(7)
G(10)
H(15)
Record-Types
1 - 19
L(7)
L(7)
G(10)
1
2 - 5
> 5
Data-Element-Types
> 50
H(10)
G(7)
H(10)
20 - 50
L(5)
G(7)
H(10)
Record-Types
1 - 19
L(5)
L(5)
G(7)
Waardering: Transacties
Invoerfunctie
Uitvoerfunctie
0 - 1
2
> 2
Data-Element-Typen
> 15
H(6)
G(4)
H(6)
5 - 15
L(3)
G(4)
H(6)
1 - 4
L(3)
L(3)
G(4)
gerefereerdeLogische
Gegevens-Verzamelingen
0 - 1
2 - 3
> 3
Data-Element-Typen
> 19
H(7)
G(5)
H(7)
6 - 19
L(4)
G(5)
H(7)
1 - 5
L(4)
L(4)
G(5)
gerefereerdeLogische
Gegevens-Verzamelingen
Meten: voorbeeld FPA
LGV’sWERKNEMERFUNCTIE
Attributennaam, adres, tel., datum in dienst, functiecodefunctiecode, omschrijving, salarisschaal
FURAanmaken nieuwe medewerker (vanuit menu)
Invoerfunctie
LGV = 2 (WERKNEMER en FUNCTIE)
DET = 6 (5 attributen + 1 appl det voor opstarten functie)
Gemiddelde invoerfunctie, 4 FP0 - 1
2
> 2
> 15
H(6)
G(4)
H(6)
5 - 15
L(3)
G(4)
H(6)
1 - 4
L(3)
L(3)
G(4)
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
COSMIC-FFP
COSMIC Full Function Points
TransactiesGegevens Gebruiker
persistent[permanent]
transient [vluchtig]
functioneel proces
ew
xr
Functioneel Proces
Functioneel 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
Data Group - vb
Object 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}
In het logisch datamodel komt een entiteit voor met de naam MEDEWERKER, met de volgende attributen:Medewerker, naam, adres, tel., datum in dienst, functiecode
Identificeer 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
Meetfase
Meten: voorbeeld COSMIC-FFP
OOIWERKNEMERFUNCTIE
Data MovementEntryReadWriteExitExit
Attributennaam, adres, tel., dat. id, functiecodefunctiecode, omschrijving, salarisschaal
Data Group{werknemergegevens}FUNCTIEWERKNEMER{medewerkernummer}{boodschap (fout / bevestiging)}
Functioneel procesAanmaken nieuwe medewerker (vanuit menu)
NB: Standaard 1 exit voor meldingTotaal: 5 Cfsu
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
Verschillen en Overeenkomsten
Belangrijkste verschillen methodieken
FPA COSMIC-FFP
Toepasbaar op Domein Bedrijfsapplicaties Bedrijfsapplicaties, Realtime, Infrastructuur
Datamodel vereist? Ja Nee (wel handig)
Meten van afzonderlijke componenten mogelijk?
Nee Ja
Omvang per functie begrensd?
Ja Nee
Benchmarking data Veel Weinig
Meten van complexe verwerking
Nee Nee, maar lokale uitbreiding mogelijk
Early sizing o.b.v. datamodel o.b.v. procesmodel
Overeenkomsten in terminologie
Term NESMA FPA 2.2 COSMIC-FFP 2.2
User User Gebruiker
FURs FURs FURs
Applicatie Applicatie Application
Systeemgrens Systeemgrens Boundary
Transactie Gebruikerstransactie Functional process
Logische gegevensgroep LGV Data group
Data element type (DET) DET DET
De methodes vergeleken
FSM Method Datagroep types
Datagroep omvang
Transactie types
Trans-actie
Transactie omvang
FPA ILGV# RET’s# DET’s
Invoerfunctie# DET’s# Gerefereerde LGV’s
KGV Uitvoerfunctie
Opvraagfunctie
COSMIC-FFP Transient
OnderdeelvanFunctioneelproces
Functioneel Proces
Entry # data movements
Exit # data movements
Persistent Read # data movements
Write # data movements
Overeenkomsten en verschillen in telwijze
• 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).
Converteren van FPA naar COSMIC-FFP
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
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
Resultaten deel 1
Project #cfsu # Func. Proc.
Gem.cfsu
# FP # ILGV # kGV # IF # UF # OF
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
Resultaten deel 2
Project #cfsu # Func. Proc
Gem.cfsu
# FP #ILGV #kGV # IF # UF #OF
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
Sogeti 2006
N=28
Y(Cfsu) = 1,2(FP NESMA) – 54R2 = 0.95
y = 1,2x - 54
R2 = 0,95
0
200
400
600
800
1000
1200
1400
1600
1800
2000
0 200 400 600 800 1000 1200 1400 1600 1800
#fp -->
#cfs
u -
->
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
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 > FPVeel functies waarin data van veel entiteiten wordt
verplaatstVeel onderhoudbare codetabellenVeel output processenVeel zeer eenvoudige functies (message X speelt
zware rol)
Aanbevelingen
• Om een database met ervaringscijfers van FPA naar cfsu te converteren:
1. Doe een aantal tellingen opnieuw in COSMIC-FFP2. Maak een overzicht in excel met daarin de dubbelmetingen3. Laat Excel een spreidingsgrafiek opstellen en stel in dat de
formule en de R2 worden getoond4. Pas de gevonden formule toe op de hele database
• Als men geen dubbeltellingen wil doen1. Bepaal of het NESMA of IFPUG functiepunten betreft2. Kies op basis daarvan een van de gegeven formules 3. Pas deze formule toe op de hele database
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
Vragen
Discussie