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.

Storia

modifica

Questa 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.

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, Information technology -- Software measurement -- Functional size measurement -- Part 1: Definition of concepts
  • ISO/IEC 14143-1:2007/Cor 1:2011, Information technology -- Software measurement -- Functional size measurement -- Part 1: Definition of concepts
  • ISO/IEC 14143-2:2011, Information technology -- Software measurement -- Functional size measurement -- Part 2: Conformity evaluation of software size measurement methods to ISO/IEC 14143-1
  • ISO/IEC TR 14143-3:2003, Information technology -- Software measurement -- Functional size measurement -- Part 3: Verification of functional size measurement methods
  • ISO/IEC TR 14143-4:2002, Information technology -- Software measurement -- Functional size measurement -- Part 4: Reference model
  • ISO/IEC TR 14143-5:2004, Information technology -- Software measurement -- Functional size measurement -- Part 5: Determination of functional domains for use with functional size measurement
  • ISO/IEC 14143-6:2012, Information technology -- Software measurement -- Functional size measurement -- Part 6: Guide for use of ISO/IEC 14143 series and related International Standards.

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à, sicurezza, organizzativi, tecnici, documentazione tecnica, usabilità, performance, etc.)]

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'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

📚 Artikel Terkait di Wikipedia

Polarizzazione dei macrofagi

Andrew R. Cameron, Material stiffness influences the polarization state, function and migration mode of macrophages, in Acta Biomaterialia, vol. 89,

JavaScript

addEventListener('click', function(event) { history.pushState('Contact Page Form', 'Contact Page', '/contact'); }); window.addEventListener('popstate', function(event) {

Disastro di Seveso

Patterson Jr.; Angela C. Pesatori; Pier Alberto Bertazzi, Neonatal Thyroid Function in Seveso 25 Years after Maternal Exposure to Dioxin, su medicine.plosjournals

Withania somnifera

of Ashwagandha ( Withania somnifera ) Root Extract in Improving Sexual Function in Women: A Pilot Study, in BioMed Research International, vol. 2015, 2015

Teoria della mente

cognitive neuroscience of Theory of Mind. Neural Circuit Development and Function in the Brain: Comprehensive Developmental Neuroscience. Elsevier. Ed: J

Casuarius

 123-124, DOI:10.1071/MU9880123. ^ Naish, D. e Perron, R., Structure and function of the cassowary's casque and its implications for cassowary history, biology

Funzione anonima

asincrona usando gli operatori Async e Await. Dim somma = Function(x) Return x + 2 End Function Ruby supporta le funzioni anonime usando una struttura sintattica

Creatina

Sigma Aldrich; rev. del 22.12.2010 Brunzel NA. Renal function: Nonprotein nitrogen compounds, function tests, and renal disease. In: Clinical Chemistry.