Function pointIl function point è un'unità di misura utilizzata nell'ambito dell'ingegneria del software per esprimere la dimensione delle funzionalità fornite da un prodotto software. StoriaQuesta unità di misura è stata definita per la prima volta nel 1975 da Allan Albrecht (presso l'IBM), al fine di dimensionare i requisiti funzionali utente (FUR - Functional User Requirements) di un prodotto software già in fase di progettazione per ottenere una stima maggiormente oggettiva dell'impegno richiesto, in luogo delle LOC (Lines of Code), conteggiabili solo a valle della realizzazione e fortemente influenzate dallo stile di programmazione e dal linguaggio utilizzato (cfr. 'Productivity Paradox'). 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 una serie di varianti del metodo originario tra cui altre quattro divenute - insieme al metodo IFPUG - standard de jure: MARK-II, NESMA, COSMIC, e FISMA. StandardizzazioneL'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
Requisiti funzionali e non funzionaliSecondo gli standard i requisiti utente vengono distinti in:
I Function Point misurano esclusivamente i FUR di un prodotto software, 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), sempre tesa a misurare il prodotto software, e non il progetto che lo genera. Tali requisiti di natura organizzativa sono 'out-of-scope' dall'applicazione di ambedue le tecniche. Obiettivi d'analisiObiettivi dell'analisi dei function point sono:
Altre caratteristicheGli 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
|