mercoledì 5 agosto 2009

Un po’ di storia: l’evoluzione del Function Point




L’idea di “misurare” le funzionalità di un’applicazione software solo dal punto di vista dell’utente finale, senza tener conto degli aspetti “tecnici”, “implementativi”, appare affascinante a chiunque abbia avuto a che fare con lo sviluppo di software.
L’”inventore” dei Function Points, Allan Albrecht, ha pubblicato per la prima volta le sue idee nel 1979, nella lontana epoca dei computer mainframe. Albrecht suggeriva di misurare un’applicazione solo sulla base delle funzionalità visibili dall’esterno, come se fosse una “scatola nera”. Il termine “black box” era molto di moda in quegli anni, agli albori dell’ingegneria del software, quando i computers erano “macchine misteriose”.
Le idee di Albrecht furono presto “sponsorizzate” da diversi gruppi di “utenti” di applicazioni software, che diedero vita, nel 1986, all’IFPUG (International Function Point Users Group). L’IFPUG ha sviluppato ed arricchito le idee di Albrecht, pubblicando vari documenti, ed in particolare, un “Manuale di Conteggio” (Counting Practices Manual, CPM), che è oggi arrivato alla versione 4.2.
Alcune delle idee iniziali di Albrecht sono state migliorate, altre abbandonate. Ad esempio, la versione 3.2 del Manuale di Conteggio IFPUG, pubblicata nei primi anni ’90, conteggiava l’invio di messaggi all’utente finale di un’applicazione come un EO indipendente. Quest’idea è stata abbandonata con la versione 4.0 del Manuale, nel 1994.
Una versione successiva del Manuale di Conteggio, la 3.4, aveva introdotto un concetto un pò fantasioso per la misura degli ILF: il cosiddetto “Super File”. In base alla regola del “Super File”, un singolo ILF poteva arrivare a “cubare” anche piu’ di 50 FP, contro i 15 di un ILF “standard”. Anche il “Super File” è stato abbandonato nella versione 4.0 del Manuale.
Dall’IFPUG sono nate diverse associazioni nazionali “dedicate” ai Function Points. In Italia, nel 1990, è stato costituito il GUFPI (Gruppo Utenti Function Point Italia), che ha pubblicato vari documenti interpretativi sui Function Points, ed ha tradotto in italiano tutte le versioni del Manuale di Conteggio, a partire dalla 4.0.
La versione 4.0 del Manuale di Conteggio IFPUG, pubblicata nel 1994, è abbastanza simile a quelle attuali. Facendo un paragone “storico”, mentre le versioni precedenti potrebbero essere viste come il “Medioevo del Function Point”, con la versione 4.0 si può parlare tranquillamente di “Rinascimento”, se non già di “Illuminismo”.
La versione 4.1.1 del Manuale di Conteggio IFPUG, pubblicata nell’aprile 2000, è molto simile alla versione attuale, la 4.2. Dopo aver pubblicato la versione 4.1.1, l’IFPUG si è resa conto di alcune ambiguità insite nella definizione di ILF ed EIF, ed ha rimediato pubblicando, nel settembre 2001, un “Addendum al Manuale di Conteggio 4.1.1”. In pratica, si trattava di una sorta di “Errata Corrige”, che chiariva diversi dubbi riguardo all’interpretazione di ILF ed EIF.
La versione attuale del Manuale di Conteggio IFPUG, la 4.2, è stata pubblicata nel 2004. Si tratta in realtà della versione 4.1.1 integrata con l’”Addendum” sugli ILF già pubblicato nel 2001.
Con la versione 4.2 del Manuale di Conteggio, possiamo dire di essere entrati a pieno titolo nell’”Era Moderna” del Function Point. Le definizioni fornite per l’individuazione ed il conteggio di ILF, EIF e transazioni sono così precise da poter essere “formalizzabili”. Non è difficile immaginare un tool che, partendo da una definizione formalizzata del modello dei dati e delle transazioni di un’applicazione (ad esempio, partendo dal modello prodotto con un CASE Tool per il disegno di applicazioni), sia in grado di generare automaticamente il “Modello Funzionale” dell’applicazione, ed il relativo conteggio in FP.


Riferimenti

§ A. J. Albrecht, “Measuring Application Development Productivity,” Proceedings of the Joint SHARE, GUIDE, and IBM Application Development Symposium, Monterey, California, October 14-17, IBM Corporation (1979), pp. 83-92
§
Charley Tichenor, “Recommendations For Further Function Point Research”, http://www.softwaremetrics.com
§ IFPUG, International Function Points User Group, http://www.ifpug.com
§ GUFPI, Gruppo Utenti Function Point Italia, http://www.gufpi.org/

Nessun commento:

Posta un commento