...

Calcolo della Dimensione Funzionale e della Produttività con il

by user

on
Category: Documents
34

views

Report

Comments

Transcript

Calcolo della Dimensione Funzionale e della Produttività con il
Calcolo della Dimensione Funzionale e della
Produttività con il metodo IFPUG (CPM 4.3.1)
L’esperienza DDway con WebRatio
Questo documento contiene materiale estratto dal manuale IFPUG sulle Regole di Conteggio.
È stato riprodotto in questo documento con il permesso dell’IFPUG
Copyright © DDway s.r.l. Tutti i diritti sono riservati. Nessuna parte della presente pubblicazione può esser riprodotta od usata in qualunque forma e con qualsiasi mezzo (comprese le fotocopie,
le registrazioni magnetiche od altro), senza il preventivo consenso scritto della società DDWAY.
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
INDICE
1.
Premessa ..................................................................................................................... 3
1.1
1.2
1.3
2.
Obiettivo del documento ................................................................................................................ 4
Function Point Analysis (FPA) ......................................................................................................... 4
Struttura del documento ................................................................................................................ 4
Case Study di conteggio Function Point ...................................................................... 5
2.1
Descrizione dello scenario .............................................................................................................. 5
2.2
Misurazione della dimensione funzionale .......................................................................................... 7
2.1.1
2.1.2
2.1.3
2.2.1
2.2.2
2.3
3.
Determinare Scopo e Ambito del Conteggio ...................................................................................................... 5
Definire il Confine dell’applicazione .................................................................................................................. 5
Determinazione dei Requisiti Utente ................................................................................................................. 6
Misurazione delle funzioni di tipo dati ............................................................................................................... 7
Misurazione delle funzioni di tipo transazionale ................................................................................................. 9
Conteggio in Function Point .......................................................................................................... 13
Determinazione della Produttività ............................................................................ 14
3.1
3.2
4.
Individuazione del campione ........................................................................................................ 14
Calcolo della Produttività .............................................................................................................. 14
Benchmark ................................................................................................................ 15
4.1
4.2
4.3
Lo studio .................................................................................................................................... 15
Tabella comparativa .................................................................................................................... 15
Fonti .......................................................................................................................................... 15
Figura 1: Panoramica grafica del processo di conteggio dei function point ............................................ 5
Figura 2: Confine dell’applicazione .......................................................................................................... 6
Tabella 3: Complessità funzionale delle funzioni di tipo dati ................................................................... 8
Figura 4: Scenario di riferimento ............................................................................................................. 9
Tabella 5: Complessità funzionale delle funzioni di tipo transazionale .................................................. 11
Pagina 2 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
1. PREMESSA
L’ International Function Point Users’ Group (IFPUG) è un'organizzazione no-profit governata dai suoi membri.
La missione di IFPUG è quella di essere un leader riconosciuto nel promuovere e incoraggiare la gestione
efficace delle attività di sviluppo e manutenzione del software applicativo attraverso l'uso della Function Point
Analysis (FPA) e altre tecniche di misura del software.
Il presente documento fa riferimento al Manuale delle Regole di Conteggio (CPM) di IFPUG nella versione 4.3.1,
in particolare nella versione tradotta in lingua italiana (ISBN 978-0-9830330-1-1). Come da prassi in questo tipo
di studio l’applicazione pratica del metodo è inframezzata da ampie parti dove il metodo viene dettagliato.
Per ulteriori informazioni su IFPUG, FPA e CPM si acceda a http://www.ifpug.org/
DDway S.r.l. è la società di System Integration e Consulenza di Dedagroup ICT Network, gruppo che opera nel
mercato dell’ICT fornendo soluzioni software, competenze e servizi per banche e istituzioni finanziarie,
pubblica amministrazione e industria.
DDway è certificata UNI EN ISO 9001:2008 nel Settore EA : 33 – 35.
Il proprio centro di competenza metodologico dispone di oltre 200 risorse con competenze di tipo
metodologico e 160 certificazioni su circa 30 diversi framework per la gestione dei servizi IT e dei progetti
informatici, come: PMI, ITIL, ISO/IEC, IFPUG, etc.
Ad oggi 14 risorse tra CFPS Fellow, CFPS e CFPP sono certificate IFPUG.
DDway s.r.l. in qualità di membro IFPUG può riprodurre parti del Manuale delle Regole di Conteggio all’interno
dei propri manuali sulle regole di conteggio.
Per ulteriori informazioni su DDway s.r.l. si acceda a http://www.ddway.it/
WebRatio s.r.l. è un’azienda di sviluppo software nata nel 2001 con competenze nell’ottimizzazione e
nell’aumento di produttività dei processi di sviluppo di applicazioni ed ha creato il linguaggio IFML (Interaction
Flow Modeling Language) che permette di definire visualmente le applicazioni senza scrivere codice di
programmazione ed è indipendente dalla tecnologia utilizzata.
WebRatio offre piattaforme di sviluppo Web e mobile, come WebRatio Web Platform, un ambiente (IDE)
integrato nella piattaforma Eclipse che fa uso “intensivo” dello standard IFML per definire il flusso di
interazione dell’utente con l'applicazione. WebRatio Platform genera applicazioni Web per l'esecuzione su
qualsiasi Java Application Server. Il codice generato è aperto e basato su standard, senza l’utilizzo di alcun runtime proprietario, sia lato client che lato server.
Per ulteriori informazioni su WebRatio. si acceda a http://www.webratio.com/
DDway è partner WebRatio e possiede un Centro di Competenza WebRatio con risorse certificate IFML.
Pagina 3 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
1.1
OBIETTIVO DEL DOCUMENTO
Il presente documento ha l’obiettivo di determinare la produttività realizzata dal nostro Centro di Competenza
utilizzando la piattaforma di sviluppo applicativo IFML WebRatio Web Platform. Si vuole usare questa
informazione per valutare l’incremento di produttività rispetto ai benchmark di sviluppo su piattaforme
tradizionali.
Per raggiungere questo obiettivo è necessario determinare la ‘dimensione’ di un tipico progetto, come
esemplificativo di altri progetti di sviluppo e manutenzione evolutiva.
La dimensione funzionale dell’intervento è stata effettuata utilizzando la Function Point Analysis (FPA).
1.2
FUNCTION POINT ANALYSIS (FPA)
Il metodo di misurazione della dimensione funzionale IFPUG è conosciuto come analisi dei function point (FPA,
Function Point Analysis) e le sue unità di misurazione prendono il nome di Function Point (FP). E’ uno standard
internazionale per misurare la dimensione di prodotti software al fine di:
Supportare analisi di qualità e produttività;
Stimare costi e risorse necessari per lo sviluppo, miglioramento e manutenzione del software;
Fornire un fattore di normalizzazione per confrontare diversi software;
Determinare la dimensione di un pacchetto applicativo acquistato attraverso la quantificazione di
tutte le funzionalità incluse nel pacchetto;
Assistere gli utenti nel determinare il beneficio di un pacchetto applicativo per le loro organizzazioni
derivante dal dimensionamento funzionale che soddisfi specificatamente i loro requisiti.
Gli obiettivi della FPA sono
Misurare le funzionalità implementate nel software, che l’utente richiede e riceve;
Misurare le funzionalità impattate dallo sviluppo, manutenzione evolutiva e correttiva del software
indipendentemente dalla tecnologia utilizzata per la realizzazione.
Tale modalità è aderente a quanto definito dall’ International Function Point Users Group (IFPUG) nel Manuale
delle Regole di Conteggio (CPM) nella versione 4.3.1. Questo Standard internazionale è, al momento, l’ultima
versione del ciclo di miglioramento continuo del metodo IFPUG che promuove l’interpretazione coerente della
misurazione della dimensione funzionale in conformità con ISO/IEC 14143-1:2007.
1.3
STRUTTURA DEL DOCUMENTO
Il presente documento è suddiviso nelle seguenti parti:
Premessa
Descrizione dello Scenario:
• Determinare scopo e ambito del conteggio
• Definire il confine dell’applicazione
• Identificare i requisiti utente funzionali
Misura della dimensione funzionale (Functional Size Measurement - FSM):
• Identificare e misurare le funzioni di tipo dati
• Identificare e misurare le funzioni di tipo transazionale
• Calcolare la dimensione funzionale
Determinazione della produttività
Confronto con i benchmark
Pagina 4 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
2. CASE STUDY DI CONTEGGIO FUNCTION POINT
2.1
DESCRIZIONE DELLO SCENARIO
Per svolgere un conteggio in function point del progetto, si devono effettuare le seguenti attività per
identificare e classificare le componenti funzionali di base (ILF, EIF, EI, EO, EQ) seguendo le prassi definite
dall’IFPUG:
a. Raccolta della documentazione disponibile ed incontri di analisi con gli utenti funzionali (Functional
User).
b. Determinazione dell’ambito del conteggio e del confine.
c. Misurazione delle funzioni di tipo dati (ILF; EIF).
d. Misurazione delle funzioni di tipo transazionali (EI; EO; EQ).
e. Calcolo della dimensione funzionale in function point.
f. Produzione della documentazione con il conteggio dei function point.
Figura 1: Panoramica grafica del processo di conteggio dei function point
2.1.1
Determinare Scopo e Ambito del Conteggio
Scopo del conteggio è determinare il livello di produttività raggiunto con una particolare piattaforma di
sviluppo software dal nostro gruppo di lavoro.
Per raggiungere questo obiettivo è necessario determinare la ‘dimensione’ di un tipico progetto di
manutenzione evolutiva, come esemplificativo di altri progetti di sviluppo e manutenzione evolutiva. Questo
tipo di progetto si adatta meglio a definire un livello di produttività basato sull’uso dei Function Points in
quanto quasi tutto il lavoro effettuato per eseguire l’intervento è strettamente correlato ai requisiti funzionali
ed è quindi più semplice determinare l’effort di lavoro relativo.
Un progetto di manutenzione evolutiva è un progetto che ha l’obiettivo di sviluppare e rilasciare manutenzione
adeguativa. Un progetto di manutenzione evolutiva può anche sviluppare e rilasciare manutenzioni di tipo
correttivo e perfettivo, ma queste non forniscono un contributo alla dimensione funzionale del progetto di
manutenzione evolutiva.
La dimensione funzionale di un progetto di manutenzione evolutiva misura le modifiche ad un’applicazione
pre-esistente già installata, le quali aggiungono, modificano o cancellano funzioni utente. Le modifiche delle
funzionalità potrebbero derivare da requisiti utente nuovi o rivisti, da cambiamenti nelle leggi/regolamenti o
dai nuovi utenti.
2.1.2
Definire il Confine dell’applicazione
Il sistema “Pianificazione Lavori” ha l’obiettivo di gestire richieste di lavoro e di validarne la programmazione
attraverso delibere.
Il sistema viene alimentato da un “Sistema di Anagrafica” centrale relativamente ai dati degli elementi su cui
vengono effettuati i Lavori.
Pagina 5 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
Le Richieste di Lavoro dopo essere state approvate (deliberate) sono trasmesse al sistema esterno di
“Esecuzione Lavori” per la fase esecutiva.
Nella figura seguente il confine dell’applicazione oggetto di misurazione.
Utente
Sistema di
Anagrafica
Pianificazione
Lavori
Esecuzione
Lavori
Figura 2: Confine dell’applicazione
2.1.3
Determinazione dei Requisiti Utente
In sede di analisi con gli utenti funzionali è stato definito il perimetro dell’intervento identificando le
funzionalità da modificare e/o da aggiungere alla applicazione pre-esistente.
L’oggetto dell’intervento nasce dalla necessità di integrare le funzionalità preesistenti del sistema con la
possibilità di gestire i lavori per un particolare dettaglio dell’elemento in anagrafica centrale, un sub-elemento
denominato Gruppo.
In particolare sono state richieste:
estrazione dei nuovi sub-elementi dal Sistema di Anagrafica
creazione della nuova anagrafica dei sub-elementi di tipo Gruppo mantenuta dall’applicazione
modifiche alle entità “Richiesta Lavoro”, “Lavoro” e “Delibera Lavoro”
modifiche al processo di creazione, aggiornamento, trasmissione, accettazione e delibera lavori (da
interfaccia e batch) per gestione sub-elementi;
modifiche alle funzionalità di visualizzazione per il display dei nuovi dati;
nuove funzionalità di esportazione;
implementazione di nuovi controlli.
Pagina 6 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
2.2
2.2.1
MISURAZIONE DELLA DIMENSIONE FUNZIONALE
Misurazione delle funzioni di tipo dati
L’identificazione delle funzioni di tipo dato è stata eseguita sulla base delle seguenti regole:
1. Classificare come ILF, se il gruppo di dati è mantenuto dall’applicazione che si sta misurando.
2. Classificare come un EIF, se il gruppo di dati:
a. è referenziato, ma non manutenuto, dall’applicazione che si sta misurando
b. è identificata come ILF in una o più ulteriori applicazioni
Le seguenti funzioni di tipo dato risultano aggiunte o modificate durante il progetto di manutenzione evolutiva:
Descrizione funzione di tipo dati
Tipo
Anagrafica centrale sub-elementi
EIF
Anagrafica sub-elementi
ILF
Richiesta lavoro
ILF
Lavoro
ILF
Delibera Lavoro
ILF
L’anagrafica centrale dei sub-elementi è un nuovo EIF referenziato ma non mantenuto dall’applicazione.
Per ogni ILF ed EIF sono stati contati il numero di RET e DET per determinare la complessità.
Per il conteggio dei DET sono state applicate le regole di conteggio:
1. Contare un DET per ciascun campo unico, riconoscibile dall’utente, non ripetuto, mantenuto nella o
reperito dalla funzione di tipo dati attraverso l’esecuzione di un qualsiasi processo elementare
nell’ambito del conteggio.
2. Quando due applicazioni mantengono e/o referenziano la stessa funzione di tipo dati, contare solo i
DET effettivamente utilizzati dall’applicazione misurata.
3. Contare un DET per ogni singolo dato richiesto dall’utente per stabilire una relazione con un'altra
funzione di tipo dati.
4. Riesaminare gli attributi correlati per determinare se questi sono raggruppati e conteggiati come un
singolo DET oppure se sono conteggiati come DET multipli; il raggruppamento dipenderà da come i
processi elementari utilizzano gli attributi nell’ambito dell’applicazione.
Per il conteggio dei RET sono stati identificati i sottogruppi in base alle regole di conteggio:
1. Contare un RET per ogni funzione di tipo dati (cioè, di default ogni funzione di tipo dati ha un
sottogruppo di DET che deve essere conteggiato come un RET).
2. Contare un RET aggiuntivo per ognuno dei seguenti ulteriori sottogruppi logici di DET (nella funzione di
tipo dati) che contiene più di un DET:
a. entità associativa con attributi non-chiave,
b. entità sotto-tipo (ulteriore rispetto al primo dei sotto-tipi)
c. entità attributiva, in una relazione 1-1 non obbligatoria.
L’anagrafica dei sub-elementi è un nuovo gruppo di dati mantenuto dall’applicazione.
I sub-elementi sono un sottotipo dell’elemento; il gruppo di dati non è quindi un nuovo ILF ma un RET
aggiuntivo dell’anagrafica elementi.
Pagina 7 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
Nella seguente tabella sono riportati i RET ed i DET per ogni funzione di tipo dato che deve essere modificata
durante il progetto di manutenzione evolutiva:
Tipo
Intervento
Tipo
RET
DET
Anagrafica centrale sub-elementi
ADD
EIF
1
16
Anagrafica elementi
CHG
ILF
2
30
Richiesta lavoro
CHG
ILF
1
45
Lavoro
CHG
ILF
1
70
ILF
1
47
Descrizione
Delibera Lavoro
CHG
Sulla base del numero di DET e di RET viene determinata la complessità funzionale degli ILF e degli EIF
applicando le seguenti regole:
DET
Tipo
ILF/EIF
1
RET
1-19
20-50
>50
Bassa
Bassa
Media
2-5
Bassa
Media
Alta
>5
Media
Alta
Alta
Complessità
Funzionale
EIF
ILF
Bassa
5
7
Media
7
10
Alta
10
15
Tabella 3: Complessità funzionale delle funzioni di tipo dati
Nella seguente tabella è riportato il conteggio in FP per ogni funzione di tipo dato che deve essere modificata
durante il progetto di manutenzione evolutiva:
Descrizione
Complessità
Function
Points
Tipo
RET
DET
Anagrafica centrale sub-elementi
EIF
1
16
Bassa
5
Anagrafica elementi
ILF
2
30
Media
10
Richiesta lavoro
ILF
1
45
Bassa
7
Lavoro
ILF
1
70
Media
10
Delibera Lavoro
ILF
1
47
Bassa
7
Pagina 8 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
2.2.2
Misurazione delle funzioni di tipo transazionale
Nello scenario di riferimento gli ILF e gli EIF mantenuti all’interno dell’applicazione sono rappresentati insieme
alle funzioni di tipo transazionale:
Nuova Richiesta Lavoro – EI
Modifica Richiesta Lavoro – EI
Anagrafica
esterna
(EIF)
Richiesta
lavoro
(ILF)
Visualizza Richiesta Lavoro – EQ
Esporta Lista Richiesta Lavoro – EQ
Accettazione Lavoro – EI
Popola sub-elemento in Anagrafica - EI
Visualizza lavori – EQ
Esporta lavori – EO
Lavoro
(ILF)
Delibera Lavoro – EI
Anagrafica
Elementi
(ILF)
Visualizza Delibera – EQ
Esporta Lista Delibere – EO
Delibera
lavoro
(ILF)
ILF/EIF in lettura
ILF in scrittura o in lettura/scrittura
Modifica Delibera – EI
Figura 4: Scenario di riferimento
Sono state quindi analizzate le funzioni di tipo transazionale applicando le regole della FPA:
Identificare ogni Processo Elementare (PE) richiesto dall’utente
Determinare l’univocità del/dei PE
Classificare ogni PE in External Input (EI), External Output (EO), o External Inquiry (EQ)
Conteggiare i Tipi di File Referenziati (FTR) per ogni funzione di tipo transazionale
Conteggiare i Tipi di Elementi Dati (DET) per ogni funzione di tipo transazionale
Determinare la complessità funzionale per ogni funzione di tipo transazionale
Determinare la dimensione funzionale per ogni funzione di tipo transazionale
Le regole per definire se un processo è elementare sono:
1. Comporre e/o decomporre i Requisiti Funzionali Utente nella più piccola unità di attività, che soddisfa
tutti i seguenti punti:
a. è significativa per l’utente.
b. costituisce una transazione completa
c. è autonoma
d. lascia l’applicazione oggetto di conteggio in uno stato di coerenza funzionale
2. Per ogni unità di attività indentificata identificare un processo elementare che soddisfa tutti i criteri
sopraindicati.
Una volta identificati, i PE sono stati classificati in EI, EO o EQ.
Pagina 9 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
Le regole di conteggio dell’EI sono:
1. Il suo intento primario è di:
• mantenere uno o più ILF oppure
• alterare il comportamento del sistema
2. Include processi logici per l’inserimento dei dati o informazioni di controllo che attraversano il confine
dell’applicazione.
Le regole di conteggio dell’EO sono:
1. Ha l’intento primario di presentare informazioni all’utente e
2. Include almeno una delle seguenti forme di trattamento logico:
• vengono eseguiti calcoli matematici
• sono mantenuti uno o più ILF
• sono creati dati derivati
• risulta alterato il comportamento del sistema
Le regole di conteggio dell’EQ sono:
1. Ha l’intento primario di presentare informazioni all’utente e
• referenzia una funzione di tipo dati per reperire dati o informazioni di controllo e
• non soddisfa i criteri per essere classificato come un EO
La baseline di progetto è composta dalle seguenti funzioni di tipo transazionale, modificate durante il progetto
di manutenzione evolutiva.
Tipo
Intervento
Tipo
Nuova richiesta lavoro per sub-elemento
ADD
EI
Modifica richiesta lavoro per sub-elemento
ADD
EI
Visualizza richiesta lavoro
CHG
EQ
Esporta lista richieste
ADD
EQ
Accettazione lavori
CHG
EI
Visualizza lavoro
CHG
EQ
Esporta lista lavori
ADD
EO
Delibera Lavoro
CHG
EI
Modifica Delibera
ADD
EI
Visualizza Delibera
CHG
EQ
Esporta Delibere
ADD
EO
Popola sub-elemento in Anagrafica elementi
ADD
EI
Descrizione
L’implementazione dei nuovi controlli richiesti non è un nuovo processo elementare perché non è una attività
autonoma.
Le nuove funzionalità richieste di esportazione Lavori e Delibere sono External Output in quanto sono presenti
dati derivati.
Una volta identificati le funzioni di tipo transazionale sono stati contati i Tipi di File Referenziati (FTR) ed il
numero di tipi di Elementi Dati (DET) secondo le seguenti regole:
1. Conta un FTR per ogni funzione dati unica alla quale la funzione transazionale accede (in lettura e/o
scrittura)
Pagina 10 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
2.
3.
4.
5.
Conta un DET per ogni attributo riconoscibile dall’utente, non ripetuto, che entra o esce dal confine
dell’applicazione durante l’esecuzione della funzione transazionale.
Conta un solo DET per la capacità di inviare un messaggio di risposta del sistema all’esterno del confine
dell’applicazione anche nel caso di messaggi multipli
Conta un solo DET per la capacità di specificare un’azione da intraprendere, anche qualora vi siano
molteplici modi per richiamare lo stesso trattamento logico.
Non contare i seguenti elementi come DET:
• Costanti quali titoli dei report, identificativi delle schermate o dei pannelli, intestazione delle colonne
o descrizione degli attributi
• Notazioni generate automaticamente dall’applicazione quali data e orario
• Numeri di pagina variabili o informazioni riguardanti il posizionamento (ad esempio Righe da 37 a 54 di
211)
• Aiuti navigazionali quali la possibilità di movimento all’interno di una lista usando “precedente”,
“prossimo”, “primo”, “ultimo” e oggetti grafici equivalenti.
• Attributi generati all’interno del confine da una funzione transazionale e salvati all’interno di un ILF
che non escono dal confine stesso.
• Attributi reperiti o referenziati da un ILF o EIF necessari alla elaborazione ma che non escono dal
confine.
Nella seguente tabella sono riportati gli FTR ed i DET conteggiati nella baseline del progetto per ciascuna
funzione di tipo dato.
Descrizione
Tipo
FTR
DET
Nuova richiesta lavoro per sub-elemento
EI
2
40
Modifica richiesta lavoro per sub-elemento
EI
2
41
Visualizza richiesta lavoro
EQ
2
37
Esporta lista richieste
EQ
2
28
Accettazione lavori
EI
3
40
Visualizza lavoro
EQ
2
54
Esporta lavori
EO
2
32
Delibera Lavoro
EI
3
58
Modifica Delibera
EI
3
37
Visualizza Delibera
EQ
2
18
Esporta Delibere
EO
2
28
Popola sub-elemento in Anagrafica elementi
EI
2
18
Sulla base del numero di FTR e di DET è stata determinata la complessità funzionale applicando le seguenti
regole:
DET
EI
0-1
FTR
DET
1-4
5-15
>15
Bassa
Bassa
Media
2
Bassa
Media
Alta
>2
Media
Alta
Alta
EO/EQ
0-1
FTR
1-5
6-19
Bassa
Bassa
Tipo
>19
Media
2-3
Bassa
Media
Alta
>3
Media
Alta
Alta
Complessità
Funzionale
EI
EO
EQ
Bassa
3
4
3
Media
4
5
4
Alta
6
7
6
Tabella 5: Complessità funzionale delle funzioni di tipo transazionale
Pagina 11 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
Nella seguente tabella è riportato il conteggio in FP della baseline relativamente alle funzioni di tipo
transazionale:
Tipo
FTR
DET
Complessità
Function
Points
Nuova richiesta lavoro per sub-elemento
EI
2
40
Alta
6
Modifica richiesta lavoro per sub-elemento
EI
2
41
Alta
6
Visualizza richiesta lavoro
EQ
2
37
Alta
6
Esporta lista richieste
EQ
2
28
Alta
6
Accettazione lavori
EI
3
40
Alta
6
Visualizza lavoro
EQ
2
54
Alta
6
Esporta lavori
EO
2
32
Alta
7
Delibera Lavoro
EI
3
58
Alta
6
Modifica Delibera
EI
3
37
Alta
6
Visualizza Delibera
EQ
2
18
Alta
6
Esporta Delibere
EO
2
28
Alta
7
Popola sub-elemento in Anagrafica elementi
EI
2
18
Alta
6
Descrizione
Pagina 12 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
2.3
CONTEGGIO IN FUNCTION POINT
Il dimensionamento funzionale del progetto di manutenzione evolutiva è stato calcolato identificando le
funzioni di tipo dati (ILF ed EIF) e di tipo transazionali (EI, EO e EQ) oggetto di modifica (indicate con CHG)
insieme alle nuove funzionalità richieste (indicate con ADD).
Nella seguente tabella è riportato il dettaglio delle modifiche richieste.
Descrizione
Tipo
Mod
Tipo
FTR/RET
DET
Complessità
Function
Points
Anagrafica esterna sub-elementi
ADD
EIF
1
17
Bassa
5
Anagrafica elementi
CHG
ILF
2
24
Media
10
Richiesta lavoro
CHG
ILF
1
45
Bassa
7
Lavoro
CHG
ILF
1
70
Media
10
Delibera Lavoro
CHG
ILF
1
47
Bassa
7
Nuova richiesta lavoro per sub-elemento
ADD
EI
2
40
Alta
6
Modifica richiesta lavoro per sub-elemento
ADD
EI
2
41
Alta
6
Visualizza richiesta lavoro
CHG
EQ
2
37
Alta
6
Esporta lista richieste
ADD
EQ
2
28
Alta
6
Accettazione lavori
CHG
EI
3
40
Alta
6
Visualizza lavoro
CHG
EQ
2
54
Alta
6
Esporta lavori
ADD
EO
2
32
Alta
7
Delibera Lavoro
CHG
EI
3
58
Alta
6
Modifica Delibera
ADD
EI
3
37
Alta
6
Visualizza Delibera
CHG
EQ
2
18
Alta
6
Esporta Delibere
ADD
EO
2
28
Alta
7
Popola sub-elemento in Anagrafica elementi
ADD
EI
3
6
Alta
6
Totale ADD = 49 FP
Totale CHGA = 64 FP
La formula applicata al progetto di sviluppo per calcolare i FP dell’intervento è:
EFP = ADD + CHGA + CFP + DEL = (49 + 64 + 0 + 0) FP = 113 FP
dove :
•
•
•
•
•
EFP è il è il numero di function point del progetto di manutenzione evolutiva (Enhancement Function
Point),
ADD è la dimensione delle funzioni che sono state aggiunte dal progetto di manutenzione evolutiva
(ADDed Function Point),
CHGA è la dimensione delle funzioni che sono state cambiate dal progetto di manutenzione evolutiva
– come sono/saranno dopo l’implementazione (CHanGed Function Point After),
CFP è la dimensione delle funzionalità di conversione (Conversion Function Point) che nel nostro
scenario non sono presenti,
DEL è la dimensione delle funzioni che sono state cancellate dal progetto di manutenzione evolutiva
(DELeted Function Point) che nel nostro scenario non sono presenti.
Pagina 13 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
3. DETERMINAZIONE DELLA PRODUTTIVITÀ
3.1
INDIVIDUAZIONE DEL CAMPIONE
L’obiettivo del Case Study nel suo complesso è quello di determinare la produttività in Punti Funzione realizzata
dal nostro Centro di Competenza utilizzando la piattaforma di sviluppo applicativo IFML WebRatio Web
Platform.
Per raggiungere questo obiettivo è necessario determinare la ‘dimensione’ di un tipico progetto di
manutenzione evolutiva, come esemplificativo di altri progetti di sviluppo e manutenzione evolutiva.
La significatività del/dei campione/i è un elemento essenziale al fine di ottenere misure realmente
rappresentative della produttività. E’ stato quindi selezionato al capitolo precedente, tra gli interventi
effettuati, come esemplificativo di altri analoghi interventi svolti negli ultimi tempi con WebRatio, uno tra quelli
che per caratteristiche si prestava meglio di altri a valutarne la produttività in Punti Funzione.
Il tipo di intervento scelto per il calcolo riguarda l’implementazione di nuove funzionalità su una baseline
consolidata. Si tratta in effetti di un caso particolare di un progetto di manutenzione evolutiva la cui
dimensione funzionale va calcolata utilizzando la formula:
EFP = ADD + CHGA + CFP + DEL
dove nel nostro caso sono nulli i termini CFP e DEL e quindi:
EFP = ADD + CHGA
Questo tipo di intervento meglio si adatta a determinare un valore di produttività basato sull’uso dei Punti
Funzione in quanto:
si evita di includere nella stima il lavoro necessario alla realizzazione delle componenti non funzionali
che ricorrono in maniera ancora più significativa quando si realizza una nuova applicazione in un
nuovo ambito e che sono invece generalmente meno presenti durante i progetti di manutenzione
evolutiva;
si evita di misurare la produttività su attività di cancellazione di funzioni preesistenti per il calcolo della
produttività; in questo caso infatti, secondo il metodo, la misura dei punti funzione di una funzione da
cancellare è la stessa della sua creazione ex-novo.
3.2
CALCOLO DELLA PRODUTTIVITÀ
Nel case study il numero di FP è:
EFP = (49 + 64 + 0 + 0) FP = 113 FP
Il team coinvolto nell’intero ciclo di realizzazione (progettazione, sviluppo e test, collaudo e rilascio) era
formato da due specialisti WebRatio allocati full-time per 8 giornate lavorative.
Per la realizzazione dell’intervento l’impegno è stato di 16 giornate lavorative con una produttività media di:
113 FP/16 giorni = 7,06 FP per giorno = 148 FP per mese
(1)
= 1,13 Ore/FP
La produttività del campione qui selezionato è stata confrontata con quella di altri interventi di dimensione
funzionale simile realizzati dal Gruppo di Lavoro con WebRatio, ottenendo sempre valori paragonabili e
all’interno di un range del ±10%.
(1)
Si utilizza ai fini statistici un fattore di conversione pari a 21 giorni per mese
Pagina 14 di 16
Calcolo della Dimensione Funzionale e della Produttività con il metodo IFPUG (CPM 4.3.1) L’esperienza DDway con WebRatio
4. BENCHMARK
A seguire viene presentato un confronto del risultato dell’analisi svolta sull’efficienza produttiva calcolata in FP
con la produttività di sviluppo in progetti creati con un approccio tradizionale.
4.1
LO STUDIO
ISBSG, centro di ricerca no-profit per la raccolta dei dati e l’analisi del settore IT, ha condotto uno studio su piu
di 6000 progetti utilizzando la misura dei Function Point per determinare la complessità e le dimensioni dei
progetti progetto. Grazie alla raccolta ed il confronto dei dati, ISBSG ha ottenuto una misura di produttività dei
progetti, il PDR (Product Delivery Rate), che equivale al numero di ore per rilasciare un Function Point.
http://www.isbsg.org/ISBSGnew.nsf/WebPages/BC9AD66DEC719C2BCA25745D001A2256
4.2
TABELLA COMPARATIVA
Dall’analisi di ISBSG è risultato un valore medio di 11 ore per creare e rilasciare un Funtion Point, quindi una
media di 16 Funtion Point al mese.
Una tabella comparativa riassume il numero di ore necessarie per FP e il numero di FP al mese.
Linguaggio
Ore per FP
FP al mese
ASP*
06.1
28
Visual Basic
08.5
20
Java
10.6
16
SQL
10.8
16
C++
12.4
14
C
13.0
13
PL/1
14.2
12
C#
15.5
11
COBOL
16.8
10
ABAP
19.9
9
DDWay con WebRatio
1,13
148
(tratto dal sito http://www.drdobbs.com/ e riferito allo studio condotto dall’azienda ISBSG )
4.3
FONTI
Per la definizione di Produttività (Project Delivery Rate) tramite i Function Point:
http://www.isbsg.org/ISBSGnew.nsf/WebPages/BC9AD66DEC719C2BCA25745D001A2256
Per lo studio condotto da ISBSG e per la tabella comparativa: http://www.drdobbs.com/jvm/the-comparativeproductivity-of-programm/240005881
Pagina 15 di 16
DDway srl
Sede legale: Via di Spini, 50 – 38121 Trento (TN)
Tel.: +39 06 515061 – Fax: +39 06 51506302 - [email protected]
CF/N° R.I. 07374190580 - P.IVA 11300260152
Cap. Soc. Euro 6.750.000
Soc. contr. art. 2497 C.C. da Dedagroup Spa (TN)
SEDI OPERATIVE
Assago (MI)
Centro Direzionale Milanofiori
Strada 3, Palazzo B1
20090 Assago (MI)
T. +39 02 577751 - F. +39 02 89202077
Roma
Via Paolo di Dono, 73
00142 Roma
T. +39 06 515061 - F. 06 51506302
Padova
Via San Crispino, 28
35129 Padova
T. +39 049 69831 - F. +39 049 773873
Torino
Strada Pianezza, 289
10151 Torino
T. +39 011 49041 - F. +39 011 4904300
copyright © DDway S.r.l. | P.Iva 11300260152
Sede legale: Via di Spini, 50 – 38121 Trento (TN) – T. +39 06 515061 – F. +39 06 51506302
Email. [email protected]
Fly UP