Udostępnij za pośrednictwem


Metryki kodu — zakres i znaczenie indeksu możliwości konserwacji

Pytanie: Indeks konserwacji został zresetowany, aby leżeć w zakresie od 0 do 100. Jak i dlaczego to zresetowano?

Metryka pierwotnie została obliczona w następujący sposób: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

Użycie tej formuły oznaczało, że wahała się od 171 do niezwiązanej liczby ujemnej. Ponieważ kod dążył do zera, wyraźnie trudno było go utrzymać, a różnica między kodem o wartości 0 a jakąś wartością ujemną nie była przydatna. W wyniku malejącej przydatności liczb ujemnych oraz zamiaru uczynienia metryki jak najbardziej przejrzystą, zdecydowaliśmy się traktować wszystkie indeksy o wartości 0 lub mniejszej jako 0, a następnie przeskalować zakres 171 lub mniej, aby wynosił od 0 do 100. Z tego powodu używana formuła to:

Maintainability Index = MAX(0,(171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code))*100 / 171)

Ponadto postanowiliśmy być konserwatywni z progami. Chodziło o to, że jeśli indeks pokazał kolor czerwony, to mówilibyśmy z wysokim stopniem pewności, że wystąpił problem z kodem.

Dla progów postanowiliśmy podzielić ten zakres 0-100 80-20, aby utrzymać niski poziom szumu i oznaczyliśmy tylko podejrzany kod. Użyliśmy następujących progów:

Wartość indeksu Kolor Znaczenie
0-9 Czerwony Niska łatwość konserwacji kodu
10-19 Żółty Umiarkowana łatwość konserwacji kodu
20-100 Zielony Dobra łatwość konserwacji kodu