Nel 1977, Maurice Howard Halstead ha introdotto le sue misure di complessità per i sistemi software , che includevano misurazioni del vocabolario del programma, lunghezza del programma, 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 si riferiscano ad alcuni aspetti dello sviluppo del software. Tuttavia, non ho trovato alcun lavoro che affermi che una difficoltà di un certo valore o superiore tende ad un aumento statisticamente significativo dei difetti o una relazione tra difficoltà e tempo per leggere il codice (una difficoltà di N produce una media di M ore trascorse comprendere la base di codice) o qualsiasi analisi di essere in grado di calcolare il Tempo dopo che il fatto sia utile nel determinare la qualità (specialmente dal momento che il tempo di scrivere dovrebbe essere già stato registrato come misura). Sono particolarmente interessato alla stima dei 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 del mondo reale per valutare la qualità del software? In tal caso, come li hai applicati e si sono rivelati una misura utile, valida e / o affidabile?
- Esistono ricerche accademiche sotto forma di sondaggi, analisi o casi studio che discutono della validità (o invalidità) delle misure di complessità di Halstead quando applicate alla qualità del software?
- Esistono ricerche accademiche 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 di Halstead su Volume, Difficoltà, Sforzo, Tempo e Bug? Sospetterei che il volume potrebbe semplicemente corrispondere a un conteggio SLOC e che la difficoltà potrebbe corrispondere alla complessità ciclomatica (e possibilmente ad altre misure). Sono anche consapevole che misurare lo sforzo, la produttività o il tempo in SLOC è potenzialmente fuorviante.