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 zostało to zrobione?

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 miał tendencję do 0, wyraźnie trudno było zachować kod, a różnica między kodem o wartości 0 i niektóre wartości ujemne nie były przydatne. W wyniku malejącej przydatności liczb ujemnych i chęci zachowania metryki tak jasnej, jak to możliwe, zdecydowaliśmy się traktować wszystkie indeksy 0 lub mniej jako 0, a następnie ponownie bazować 171 lub mniej zakresu, 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)

Oprócz tego postanowiliśmy być konserwatywni z progami. Pragnienie polegało na tym, że jeśli indeks pokazał czerwony, mówimy z wysokim stopniem pewności, że wystąpił problem z kodem. Dało nam to następujące progi:

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:

  • 0–9 = czerwony
  • 10–19 = żółty
  • 20-100 = zielony