Expand search form

Corsi e certificazioni on line

Ottieni le certificazioni più richieste senza spendere una fortuna e da casa tua

Function Point, che cosa sono?

Home » Articoli » Function Point, che cosa sono?

Function Point

Function Point – Aggiornamento del 17 settembre 2020

Il function point è l’unità di misura della dimensione funzionale del software ed è definito nell’ambito del metodo IFPUG per la misurazione della dimensione funzionale del software.

I function point costituiscono un metodo preciso per la misurazione della dimensione del software ed intendono rimuovere ogni ambiguità durante la valutazione di un software.

Invece di dire ai nostri clienti che “per realizzare la modifica che avete richiesto ci vuole un sacco di tempo” saremo in grado di dire “la modifica che avete richiesto è stimata 1200 function point, e la maggioranza dei nostri programmatori produce 30 function point al mese, con punte di 45”

Analisi dei Function Point

L’uso dei function point come misura della dimensione funzionale del software è cresciuto enormemente negli ultimi anni, estendendosi da una piccola cerchia di entusiasti ad un gran numero di organizzazioni in tutto il mondo.

Verso la metà degli anni ‘70, Allan Albrecht dell’IBM definì i concetti che permettono di misurare l’entità dei progetti di sviluppo software.

Queste definizioni sono state esposte nel documento IBM CIS & A Guideline 313, AD/M Productivity Measurement and Estimate Validation, pubblicato il giorno 1 novembre 1984.

Nel corso degli anni le tecniche per la misura della dimensione funzionale del software si sono via via sviluppate, e sono oggi descritte nella versione 4.3.1 del Function Counting Practices Manual.

Esistono altre tecniche per misurare la dimensione del software, la più nota delle quali è il conteggio delle linee di codice.

Anche se questa tecnica è semplice da applicare i risultati che si ottengono sono quasi sempre inaffidabili, con degli errori di valutazione che possono arrivare oltre il 2000 %.

Due Function Point Analyst certificati possono garantire un errore di misura massimo pari a circa il 10 %, e tale margine di errore può ridursi ancora se sono disponibili tutte le informazioni necessarie.

L’analisi dei Function Point quantifica le funzionalità che un software fornisce ai propri utenti basandosi quasi unicamente sulla progettazione logica. Tale analisi ha i seguenti obiettivi:

  • misurare le funzionalità implementate nel software, che vengono richieste e ricevute dagli utenti
  • misurare le funzionalità introdotte o modificate durante i processi di sviluppo, manutenzione evolutiva e manutenzione correttiva, indipendentemente dalle tecnologie utilizzate

Il processo di analisi

Function Point Analysis
Function Point Analysis

Il processo di analisi dei function point è:

  • abbastanza semplice al fine di minimizzare il costo della misura
  • riproducibile e consistente in diversi progetti e organizzazioni.

Il principio di questo approccio è che il software è costituito da componenti funzionali di base che rientrano in una tra le categorie descritte di seguito.

Funzioni di tipo dati

Quando parliamo di funzioni di tipo dati, facciamo riferimento ai dati logici che vengono memorizzati nell’ambito delle nostre applicazioni in modo da essere successivamente resi disponibili per la consultazione.

Nel modello IFPUG FSM le funzioni di tipo dati vengono identificate come File Logici Interni (ILF) o File di Interfaccia Esterni (EIF).

Gli ILF e gli EIF sono definiti come gruppi identificabili da un utente di dati od informazioni di controllo correlate tra loro. E’ importante ricordare che si tratta di raggruppamenti logici e non fisici di dati; è molto improbabile – anche se non del tutto impossibile – che le due tipologie di raggruppamento coincidano.

Il conteggio degli ILF e degli EIF viene quindi effettuato a prescindere dalla struttura fisica del database utilizzato e senza tenere conto di eventuali requisiti non funzionali relativi alla base dati (prestazioni, manutenzione…).

Definiamo ILF le funzioni di tipo dati mantenute all’interno del confine dell’applicazione che viene misurata, ed EIF le funzioni di tipo dati lette o referenziate dall’applicazione che viene misurata ma che vengono mantenute da un’applicazione differente.

Funzioni di tipo transazionale

Le funzioni di tipo dati sono correlate ai dati che vengono memorizzati e resi disponibili per l’aggiornamento e la consultazione.

Le funzioni transazionali – Input Esterni, Output Esterni, Interrogazioni Esterne – hanno il compito di memorizzare, reperire e mostrare agli utenti i dati logici.

Conteggio vero e proprio

Le componenti funzionali di base sono prima censite e poi pesate (utilizzando un moltiplicatore) a seconda del loro grado di complessità. I punteggi relativi si basano sull’analisi di numerosi progetti reali.

Il numero delle componenti funzionali di base del programma che deve essere misurato deve essere moltiplicato per i punteggi di complessità allo scopo di ottenere la dimensione funzionale in Function Point del programma.

Se ad esempio un programma contenesse cinque input esterni di media complessità, questi contribuirebbero con un punteggio di 20 Function Point (cinque FP con un moltiplicatore di quattro) alla dimensione funzionale totale del programma.

È possibile quindi stimare lo sforzo necessario per lo sviluppo del programma a partire dallo sforzo stimato per ciascun function point.

Naturalmente, il principale fattore in tutto questo è la stima accurata del Function Point, che dipende in larga misura dalla competenza dello stimatore e dal rispetto del metodo.

Certificazioni disponibili

IFPUG® – International Function Point User Group – rilascia due certificazioni per gli specialisti nel conteggio dei Function Point: