Sdílet prostřednictvím


Metriky kódu – rozsah indexů udržovatelnosti a význam

Otázka: Index udržovatelnosti byl resetován tak, aby leží mezi 0 a 100. Jak a proč se toto resetování provedlo?

Metrika se původně vypočítala takto: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

Použití tohoto vzorce znamenalo, že se pohybuje od 171 do nevázaného záporného čísla. Vzhledem k tomu, že kód směřuje k hodnotě 0, bylo jasně obtížné zachovat kód a rozdíl mezi kódem v hodnotě 0 a určitou zápornou hodnotou nebyl užitečný. V důsledku snížení užitečnosti záporných čísel a přání udržet metriku co nejjasnější jsme se rozhodli považovat všechny indexy 0 nebo méně za 0 a poté převést rozsah 171 nebo méně, aby byl od 0 do 100. Z tohoto důvodu vzorec, který používáme, je:

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

Kromě toho jsme se rozhodli být konzervativní s prahovými hodnotami. Přání bylo, že pokud index ukázal červenou, pak bychom řekli s vysokou mírou jistoty, že došlo k problému s kódem.

Pro prahové hodnoty jsme se rozhodli rozdělit tento rozsah 0–100 80–20, abychom zachovali nízkou úroveň šumu a označili jsme pouze kód, který byl podezřelý. Použili jsme následující prahové hodnoty:

Hodnota indexu Barva Význam
0-9 Červený Nízká udržovatelnost kódu
10-19 Žlutý Mírná udržovatelnost kódu
20-100 Zelený Dobrá udržovatelnost kódu