Partage via


Métriques de code - Plage d’index de maintenance et signification

Question : L’index de maintenance a été réinitialisé pour être compris entre 0 et 100. Comment et pourquoi cette réinitialisation a-t-elle été effectuée ?

La métrique a été calculée comme suit : Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

L’utilisation de cette formule signifie qu’elle est comprise entre 171 et un nombre négatif non lié. Comme le code tend vers 0, il était clairement difficile de maintenir le code et la différence entre le code à 0 et une valeur négative n’était pas utile. En raison de l’utilité décroissante des nombres négatifs et d’un désir de garder la métrique aussi claire que possible, nous avons décidé de traiter tous les index 0 ou moins comme 0, puis de rebaser la plage de 171 ou moins pour être comprise entre 0 et 100. Pour cette raison, la formule que nous utilisons est la suivante :

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

En outre, nous avons décidé d’être conservateurs avec les seuils. L'objectif était que si l'index affichait la couleur rouge, alors nous pourrions dire avec certitude qu'il y avait un problème avec le code.

Pour les seuils, nous avons décidé de décomposer cette plage de 0 à 100 selon un ratio de 80-20 pour minimiser le bruit et nous avons uniquement signalé le code suspect. Nous avons utilisé les seuils suivants :

Valeur d’index Couleur Signification
0-9 Rouge Faible facilité de maintenance du code
10-19 Jaune Facilité de maintenance modérée du code
20-100 Vert Bonne facilité de maintenance du code