2009-12-03 24 views
6

C'è stata una quantità considerevole di discussioni sulle metriche del codice (ad es .: What is the fascination with code metrics?). Io (come sviluppatore di software) sono davvero interessato a queste metriche perché penso che possano aiutare a scrivere un codice migliore. Almeno sono utili quando si tratta di trovare aree di codice che necessitano di un refactoring.Valutazione delle metriche del codice

Tuttavia, quello che vorrei sapere è il seguente. Esistono alcune valutazioni di tali metriche del codice sorgente che dimostrano che esse sono realmente correlate alla frequenza dei bug o alla manutenibilità di un metodo. Ad esempio: i metodi con una complessità ciclomatica molto elevata introducono davvero più bug rispetto ai metodi con una complessità bassa? Oppure i metodi con un livello di difficoltà elevato (Halstead) hanno davvero bisogno di molta più quantità per mantenerli rispetto ai metodi con uno basso?

Forse qualcuno conosce una ricerca affidabile in questo settore.

Grazie mille!

risposta

2

Buona domanda, nessuna risposta diretta.

sono documenti di ricerca disponibili che mostrano relazioni tra, ad esempio, complessità ciclomatica e bug. Il problema è che la maggior parte dei documenti di ricerca non sono disponibili gratuitamente.

Ho trovato il seguente: http://www.pitt.edu/~ckemerer/CK%20research%20papers/CyclomaticComplexityDensity_GillKemerer91.pdf. Sebbene mostri una relazione tra complessità ciclomatica e produttività. Tuttavia ha alcuni riferimenti ad altri documenti, e vale la pena provare a cercarli su Google.

1

Dai un'occhiata allo this article from Microsoft research. In generale, sono dubbioso sulla saggezza dello sviluppo derivante da Microsoft, ma hanno le risorse per essere in grado di effettuare studi a lungo termine su prodotti di grandi dimensioni. L'articolo di riferimento parla della correlazione che hanno riscontrato tra varie metriche e tasso di difetti del progetto.

1

Infine ho trovato alcuni documenti sulla correlazione tra le metriche del software e il tasso di errore, ma nessuno di loro era realmente quello che stavo cercando. La maggior parte dei documenti sono obsoleti (fine anni '80 o primi anni '90).

Penso che sarebbe una buona idea iniziare un'analisi del software attuale. Secondo me dovrebbe essere possibile investigare su alcuni sistemi open source populari. Il codice sorgente è disponibile e (quello che penso è molto più importante) molti progetti usano i tracker di problemi e un qualche tipo di sistema di controllo delle versioni. Probabilmente sarebbe possibile trovare un forte legame tra il registro dei sistemi di controllo delle versioni e i tracker dei problemi. Ciò porterebbe ad una possibilità molto interessante di analizzare la relazione tra alcune metriche del software e il tasso di errore.

Forse c'è ancora un progetto là fuori che fa esattamente quello che ho descritto sopra. Qualcuno sa qualcosa del genere?

0

Abbiamo condotto uno studio empirico sulle capacità di predizione del bug delle note metriche orientate agli oggetti di Chidamber e Kemerer. Si è scoperto che queste metriche combinate possono prevedere bug con una precisione superiore all'80% quando abbiamo applicato modelli di apprendimento automatico adeguati. Se sei interessato, puoi preparare lo studio completo nel seguente articolo:

"Convalida empirica di metriche orientate agli oggetti su software Open Source per la previsione di errori. Nelle transazioni IEEE sull'ingegneria del software, volume 31, n. 10 , Ottobre 2005, pagine 897-910. "

Problemi correlati