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 allinterno del programma, dare un peso ad ognuna di queste e formulare un metodo per la valutazione del peso complessivo derivato dallunione 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 dallutente
Il numero degli output verso lutente
Il numero delle interfacce con
lesterno
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 allabilità dei programmatori impegnati nel progetto.