Metriche sulla funzionalità

Una via alternativa è cercare di misurare il problema, e non la grandezza del programma prodotto per risolverlo.

Il modo più semplice è definire delle singole caratteristiche che compaiono all’interno del programma, dare un peso ad ognuna di queste e formulare un metodo per la valutazione del peso complessivo derivato dall’unione di tutti i punti rilevati.

Per esempio dei punti funzionali potrebbero essere:

Il numero di file

I campi per ogni file

Le chiavi per ogni file

Il numero di input dall’utente

Il numero degli output verso l’utente

Il numero delle interfacce con l’esterno

Dopo aver deciso i punti funzionali bisogna decidere un peso per ognuno:

Peso file = 125

Peso campo = 8

Peso input = 15

Peso output = 13

Peso interfaccia = 50

A questo punto occorre costruire una funzione di unione del tutto. Si possono creare molte funzioni, si può tener conto del fatto che la crescita delle difficoltà di realizzazione di un programma aumenta in modo non lineare con la grandezza del problema stesso, si possono introdurre dei termini correttivi legati a caratteristiche globali del programma come il livello di sicurezza richiesto.

La funzione più semplice è la somma di tutti i fattori.

Per esempio un programma con 3 file, per un totale di 50 campi, con 60 input utente e 3 stampe avrebbe il seguente peso:

Peso programma = 3*125+50*8+60*15+3*13 = 1714

Questo tipo di metrica presenta ancora degli aspetti di soggettività, perché la stima totale dipende ancora dai criteri adottati per "pesare" ogni componente nonché dal tipo di punti che vengono "pesati", così come le stime legate alla grandezza del codice soffrivano della variabilità legata all’abilità dei programmatori impegnati nel progetto.