Function point
Il Function Point è un'unità di misura utilizzata nell'ambito dell'Ingegneria del Software per esprimere la dimensione delle funzionalità fornite da un prodotto software.
Indice |
Storia [modifica]
Questa unità di misura è stata definita per la prima volta nel 1975 da Allan Albrecht (presso l'IBM), successivamente lo sviluppo di questo particolare approccio di misura è stato preso in carico da un'associazione di utilizzatori denominata IFPUG (International Function Point Users Group). Col passare degli anni sono state sviluppate varianti del metodo originario come quelle denominate MARK II, NESMA e per ultima COSMIC.
Standardizzazione [modifica]
L'organizzazione ISO ha emanato una famiglia di norme che regolano i metodi di misurazione della dimensione funzionale del software (Functional Size Measurement - FSM), specificatamente, gli standard ISO/IEC 14143-1:2007 , ISO/IEC 14143-2:2002, ISO/IEC TR 14143-3:2003, ISO/IEC TR 14143-4:2002, ISO/IEC TR 14143-5:2004 e ISO/IEC 14143-6:2006.
Requisiti funzionali e non funzionali [modifica]
Secondo gli standard i requisiti utente vengono distinti in:
- requisiti funzionali (FUR - Functional User Requirements)
- requisiti non funzionali (NFR - Non Functional Requirements) [es: requisiti di qualità, organizzativi, tecnici etc.)]
I Function Point misurano esclusivamente i FUR, mentre per i NFR esistono diversi approcci e tecniche. Recentemente l'IFPUG ha prodotto una tecnica parallela alla FPA (Function Point Analysis) denominata SNAP (Software Non-functional Assessment Process).
Obiettivi d'analisi [modifica]
Obiettivi dell'analisi dei function point sono:
- misurare le funzionalità che l'utente riceve e richiede;
- misurare i risultati dello sviluppo e/o la manutenzione del software indipendentemente dalla tecnologia utilizzata;
- fornire una misura che sia coerente tra progetti e produttori differenti.
Altre caratteristiche [modifica]
Gli attuali metodi di misurazione della dimensione funzionale riconosciuti come standard internazionali sono legati alla rilevazione e pesatura dei "movimenti di dati" e degli "archivi logici" ed escludono, per il momento, ogni valutazione della complessità e numero di algoritmi ovvero di elementi di "manipolazione" dei dati.
I Function Point possono essere messi in relazione con variabili come il costo di un progetto di sviluppo o di manutenzione evolutiva, o l'impegno in ore di lavoro previste, o lo staff necessario, o la durata solare; occorre, però, ricordare che la dimensione funzionale rappresenta solo un aspetto del prodotto software che entra in gioco nei modelli di costo, altre variabili che impattano su queste relazioni sono i requisiti di qualità, i requisiti tecnici e in generale i requisiti non funzionali.
Collegamenti esterni [modifica]
- http://www.cosmicon.com (The Common Software Measurement International Consortium)
- http://www.gufpi-isma.org GUFPI-ISMA (Gruppo Utenti Function Point Italia - Italian Software Metrics Association)
- http://www.ifpug.org (International Function Point Users Group)
- http://www.mai-net.org (Metrics Associations' International Network)