Delen via


Codemetrieken - Onderhoudbaarheidsindexbereik en betekenis

Vraag: De index voor onderhoudbaarheid is opnieuw ingesteld op 0 tot 100. Hoe en waarom is deze reset gemaakt?

De metrische waarde is oorspronkelijk als volgt berekend: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

Het gebruik van deze formule betekende dat deze varieerde van 171 tot een niet-gebonden negatief getal. Omdat code de neiging heeft tot 0, was het duidelijk moeilijk om code te onderhouden en was het verschil tussen code op 0 en een negatieve waarde niet nuttig. Als gevolg van de afnemende bruikbaarheid van de negatieve getallen en een wens om de metrische waarde zo duidelijk mogelijk te houden, hebben we besloten om alle 0 of minder indexen te behandelen als 0 en vervolgens het bereik van 171 of minder te herbaseeren van 0 tot 100. Daarom is de formule die we gebruiken:

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

Daarnaast hebben we besloten om conservatief te zijn met de drempelwaarden. De wens was dat als de index rood vertoonde, we zouden zeggen met een hoge mate van vertrouwen dat er een probleem was met de code.

Voor de drempel hebben we besloten dit bereik van 0-100 in een verhouding van 80-20 op te splitsen om het ruisniveau laag te houden en we hebben alleen verdachte code aangevinkt. We hebben de volgende drempelwaarden gebruikt:

Indexwaarde Kleur Betekenis
0-9 Rood Lage onderhoudbaarheid van code
10-19 Geel Gemiddelde onderhoudbaarheid van code
20-100 Groen Goede onderhoudbaarheid van code