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.
Questa unità di misura è stata definita per la prima volta nel 1975 da Alan 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. L'organizzazione ISO ha emanato una famiglia di norme che regolano i metodi di misura funzionale del software (Functional Size Measurement Methods - FSM), specificatamente, gli standard ISO/IEC 14143-1:2007(E) , ISO/IEC 14143-2:2002(E), ISO/IEC TR 14143-3:2003(E), ISO/IEC TR 14143-4:2002(E), ISO/IEC TR 14143-5:2004(E) e ISO/IEC 14143-6:2006(E). Secondo tali standard i requisiti utente vengono distinti in:
I Function Point misurano esclusivamente il primo insieme di requisiti utente. Essi sono, quindi, indipendenti dalla particolare tecnologia che il software adotta. Obiettivi dell'analisi dei function point sono:
Gli attuali metodi di misura funzionale riconosciuti come standard internazionali sono legati alla rilevazione e pesatura dei "movimenti 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 manutenzione evolutiva, o l'impegno in ore di lavoro previste, o lo staff necessario e la durata solare di lavorazione; occorre, però, ricordare che la misura 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. E' importante considerare che i Function Point sono una misura di prodotto e non di processo.