Nel 1977, Maurice Howard Halstead presentò le sue misure di complessità per i sistemi software , che includevano misure del vocabolario del programma, programma lunghezza, volume, difficoltà, sforzo e un numero stimato di bug in un modulo. Secondo Wikipedia, la difficoltà si riferisce alla difficoltà di comprendere il programma durante la lettura o la scrittura e lo sforzo può essere tradotto nel tempo necessario per codificare un'applicazione in cui Tempo = (Sforzo / 18) secondi.
Una misurazione è inutile a meno che i dati e i calcoli non riguardino alcuni aspetti dello sviluppo del software. Tuttavia, non ho trovato alcun lavoro che affermi che una difficoltà di un certo valore o superiore tenda ad un aumento statisticamente significativo di difetti o una relazione tra difficoltà e tempo di leggere il codice (una difficoltà di N produce una media di M ore spese capire la base del codice) o qualsiasi analisi di essere in grado di calcolare il Tempo dopo che il fatto è stato utile per determinare la qualità (soprattutto perché il tempo di scrittura avrebbe dovuto essere già registrato come misura). Sono particolarmente interessato alla stima del bug di Halstead (che non è menzionata su Wikipedia) - il numero di bug in un'applicazione può essere stimato in Volume / 3000 o Sforzo ^ (2/3) / 3000.
Sto cercando due cose:
- Qualcuno ha usato le misure di complessità del software di Halstead in un'applicazione reale per valutare la qualità del software? Se sì, come li hai applicati e si sono rivelati una misura utile, valida e / o affidabile?
- Esiste qualche ricerca accademica sotto forma di sondaggi, analisi o casi di studio che discutano la validità (o l'invalidità) delle misure di complessità di Halstead quando vengono applicate alla qualità del software?
- C'è qualche ricerca accademica sotto forma di sondaggi, analisi o casi di studio che dimostrano l'uso di Source Lines of Code (SLOC) per calcolare qualcosa di simile alle metriche Halstead di Volume, Difficoltà, Sforzo, Tempo e Bug ? Sospetto che il volume potrebbe corrispondere solo a un conteggio SLOC e la difficoltà potrebbe corrispondere alla complessità ciclomatica (e probabilmente ad altre misure). Sono anche ben consapevole che misurare lo sforzo, la produttività o il tempo in SLOC è potenzialmente fuorviante.