Function Point e dimensioni del prodotto software
Nell’ambito dell’ingegneria del software, i Function Point (FP) o Punti Funzione sono una metrica del software di tipo “funzionale”, cioè definiscono le dimensioni del prodotto software in termini di funzionalità fornite all’utilizzatore.
Gli FP sono:
- La prima metrica funzionale, proposta da Allan J. Albrecht, di IBM, nel 1979, e oggi la metrica funzionale più diffusa ampiamente utilizzata in ambito internazionale
- presidiati dall’IFPUG – International Function Point User Group, che ne cura l’evoluzione
- trattati, a livello di banche dati e risorse di rete, in innumerevoli siti (ISBSG – International Software Benchmarking Standards Group, SPR – Software Productivity Research, Gartner Group, ecc.)
- applicabili a prescindere dalla tipologia di applicazione e dall’architettura di riferimento.
Verranno ora enunciati i principali punti di forza e di debolezza dei Function Point.
Vantaggi dei Function Point
- Sono orientati alla misurazione del prodotto finale dello sviluppo software (le funzionalità) e quindi risultano utili per definire quantitativamente il prodotto a fini contrattuali
- Sono indipendenti dagli aspetti tecnologici e metodologici
- Possono essere utilizzati già nelle fasi alte del processo di sviluppo del software, per effettuare stime e previsioni, ma anche per valutare la “dimensione” di un’applicazione appena terminata o già in produzione (conteggio della “baseline” della applicazione). Inoltre è possibile valutare interventi di manutenzione evolutiva, e applicarli alla baseline per aggiornarla
- Risultano utili per ricavare indicatori di efficienza riguardo le attività di sviluppo e manutenzione del software
- Sono riconosciuti in ambito internazionale e supportati da organismi istituzionali: IFPUG, GUFPI – Gruppo Utenti Function Point Italia, NESMA – Netherlands Software Metrics Association, e ancora altro
- Sono correlabili ai LOC (Lines Of Code), attraverso tabelle di conversione
Svantaggi dei Function Point
- Non sono particolarmente sensibili alle peculiarità delle applicazioni “embedded” (tipo ERP) e Real-Time
- Un conteggio standard richiede un buon livello di definizione funzionale del sistema
- Occorre acquisire una buona conoscenza (ed un minimo di esperienza pratica) del metodo di conteggio