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

Point Coordination Function

Distributed Coordination Function. Nelle finestre di tempo prive di contesa, viene fissato un PC (Point Coordinator), di solito l'Access Point, che concede ad

CISQ

informatico. Nel gennaio 2013, OMG ha adottato le specifiche Automated Function Point. Nel maggio 2013 il CISQ ha raggiunto i 500 iscritti. Nel dicembre 2013

Object Management Group

Consiglio di Amministrazione del gruppo ha adottato la specifica Automated Function Point (AFP). La spinta per l'adozione è stata guidata dal Consortium for IT

Metrica software

dell'IFPUG - International Function Point Users Group, su ifpug.org. Sito ufficiale del GUFPI-ISMA - Gruppo Utenti Function Point Italia - Italian Software

Costruttore (informatica)

il nome del costruttore come quello della classe. class Point { var $x; var $y; function Point ( $x, $y ) { // ... codice qui ... } } Nella versione 5

NodeMCU

createConnection(net.TCP, 0) conn:on("receive", function(sck, payload) print(payload) end) conn:on("connection", function(sck) sck:send("GET / HTTP/1.1\r\nHost:

Polimorfismo (informatica)

Overrides Function Perimetro() As Double Return lato*4 End Function Public Overrides Function Area() As Double Return lato*lato End Function End Class

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