Converteren van functionele omvang van FPA naar COSMIC

45
NESMA najaarsconferentie Converteren van Functionele omvang: Van FPA naar COSMIC-FFP Harold van Heeringen 7 december 2006 Vechthuis,Utrecht

description

Presentatie van Sogeti op de najaarsconferentie 2006

Transcript of Converteren van functionele omvang van FPA naar COSMIC

Page 1: 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

Page 2: Converteren van functionele omvang van FPA naar COSMIC

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

Page 3: Converteren van functionele omvang van FPA naar COSMIC

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

Page 4: Converteren van functionele omvang van FPA naar COSMIC

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??

Page 5: Converteren van functionele omvang van FPA naar COSMIC

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!

Page 6: Converteren van functionele omvang van FPA naar COSMIC

Functionele omvang

Page 7: Converteren van functionele omvang van FPA naar COSMIC

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

Page 8: Converteren van functionele omvang van FPA naar COSMIC

Hebben we het over hetzelfde ??

• ISO-Standaard 14143

400

400

Page 9: Converteren van functionele omvang van FPA naar COSMIC

ISO standaard?

• Consistent• Ondubbelzinnig• Wereldwijde afspraak• Onafhankelijk van technische

implementatie

• ISO gecertificeerd (anno 2006)> IFPUG FPA, > Mark II Function Points> NESMA FPA, > COSMIC-FFP,

Page 10: Converteren van functionele omvang van FPA naar COSMIC

Functional Sizing Methods

Page 11: Converteren van functionele omvang van FPA naar COSMIC

FSM User Requirements

Userrequirements

(wat)

Businessrequirements

(waarom)

System requirements(hoe)

Page 12: Converteren van functionele omvang van FPA naar COSMIC

User requirements

Functional UR Technical UR Quality UR

User Requirements

FPA en COSMIC-FFP meten alleen de Functional User Requirements

Page 13: Converteren van functionele omvang van FPA naar COSMIC

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…

Page 14: Converteren van functionele omvang van FPA naar COSMIC

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

Page 15: Converteren van functionele omvang van FPA naar COSMIC

Functiepunt Analyse

Page 16: Converteren van functionele omvang van FPA naar COSMIC

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

Page 17: Converteren van functionele omvang van FPA naar COSMIC

Functiepunt Analyse

TransactiesGebruiker

IF

OF

UF

kgv

ilgv

Data

Page 18: Converteren van functionele omvang van FPA naar COSMIC

Functionaliteit

twee types functionaliteit

transacties

opvraag

uitvoEr

invoer

Ondersteunendefuncties

Interne LogischeGegevens Verzameling

KoppelingsGegevensverzameling

data

Page 19: Converteren van functionele omvang van FPA naar COSMIC

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)

Page 20: Converteren van functionele omvang van FPA naar COSMIC

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

Page 21: Converteren van functionele omvang van FPA naar COSMIC

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)

Page 22: Converteren van functionele omvang van FPA naar COSMIC

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

Page 23: Converteren van functionele omvang van FPA naar COSMIC

COSMIC-FFP

Page 24: Converteren van functionele omvang van FPA naar COSMIC

COSMIC Full Function Points

TransactiesGegevens Gebruiker

persistent[permanent]

transient [vluchtig]

functioneel proces

ew

xr

Page 25: Converteren van functionele omvang van FPA naar COSMIC

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

Page 26: Converteren van functionele omvang van FPA naar COSMIC

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

Page 27: Converteren van functionele omvang van FPA naar COSMIC

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

Page 28: Converteren van functionele omvang van FPA naar COSMIC

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

Page 29: Converteren van functionele omvang van FPA naar COSMIC

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

Page 30: Converteren van functionele omvang van FPA naar COSMIC

Verschillen en Overeenkomsten

Page 31: Converteren van functionele omvang van FPA naar COSMIC

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

Page 32: Converteren van functionele omvang van FPA naar COSMIC

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

Page 33: Converteren van functionele omvang van FPA naar COSMIC

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

Page 34: Converteren van functionele omvang van FPA naar COSMIC

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).

Page 35: Converteren van functionele omvang van FPA naar COSMIC

Converteren van FPA naar COSMIC-FFP

Page 36: Converteren van functionele omvang van FPA naar COSMIC

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

Page 37: Converteren van functionele omvang van FPA naar COSMIC

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

Page 38: Converteren van functionele omvang van FPA naar COSMIC

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

Page 39: Converteren van functionele omvang van FPA naar COSMIC

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

Page 40: Converteren van functionele omvang van FPA naar COSMIC

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 -

->

Page 41: Converteren van functionele omvang van FPA naar COSMIC

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

Page 42: Converteren van functionele omvang van FPA naar COSMIC

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)

Page 43: Converteren van functionele omvang van FPA naar COSMIC

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

Page 44: Converteren van functionele omvang van FPA naar COSMIC

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

[email protected]

Page 45: Converteren van functionele omvang van FPA naar COSMIC

Vragen

Discussie