Kodmått – intervall och betydelse för underhållsindex
Fråga: Underhållsindexet har återställts till mellan 0 och 100. Hur och varför gjordes den här återställningen?
Måttet beräknades ursprungligen enligt följande: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)
Användningen av den här formeln innebar att den varierade från 171 till ett obundet negativt tal. Eftersom koden tenderade mot 0 var det helt klart svårt att underhålla kod och skillnaden mellan kod vid 0 och något negativt värde var inte användbar. Som ett resultat av den minskande nyttan av de negativa talen och en önskan att hålla måttet så tydligt som möjligt bestämde vi oss för att behandla alla 0 eller färre index som 0 och sedan ombaserar intervallet 171 eller mindre till från 0 till 100. Därför är formeln vi använder:
Maintainability Index = MAX(0,(171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code))*100 / 171)
Dessutom bestämde vi oss för att vara konservativa med tröskelvärdena. Önskan var att om indexet visade rött skulle vi med hög grad av förtroende säga att det fanns ett problem med koden.
För tröskelvärdena bestämde vi oss för att bryta ned detta 0-100-intervall 80-20 för att hålla brusnivån låg och vi flaggade bara kod som var misstänkt. Vi har använt följande tröskelvärden:
Indexvärde | Färg | Betydelse |
---|---|---|
0-9 | Röd | Låg underhållbarhet för kod |
10-19 | Gul | Måttlig underhållsbarhet för kod |
20-100 | Grön | Bra underhåll av kod |