Esiste qualche lavoro nell'applicazione delle misure di complessità di Halstead per determinare la qualità del software?

13

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.
posta Thomas Owens 12.09.2011 - 15:49
fonte

3 risposte

5

Microsoft Research ha svolto un lavoro in questo settore. Dai un'occhiata a questa pagina: link . Sebbene non specificamente basati su Halstead, Nachi e il suo team hanno svolto alcune indagini utilizzando Halstead, complessità ciclomatica, code churn e altre misure per valutare il rischio relativo e la fragilità per apportare modifiche nelle aree del codice. C'è anche un interessante articolo su come l'efficacia organizzativa gioca anche un ruolo importante, ma è fuori tema. :)

    
risposta data 13.09.2011 - 14:55
fonte
0

Ci sono alcuni studi di questo tipo. Google è il tuo AMICO.

Le metriche di Halstead caddero in disgrazia quando fu dimostrato che tutte erano strongmente correlate con SLOC raw (linee di codice sorgente). A quel punto, diventa più facile misurare SLOC e farcela.

Ecco un risultato di Google Libri .

    
risposta data 13.09.2011 - 15:54
fonte
0

Il fatto che il volume di Halstead sia correlato con lo SLOC è interessante ma limitato. Statistiche di base: la correlazione lineare non è transitiva. X correlato a Y, Y correlato a Z NON SIGNIFICA che X sia correlato a Z.

    
risposta data 21.11.2013 - 16:33
fonte

Leggi altre domande sui tag