Partager via


Métriques de code – Plage d’indices de maintenabilité et signification

Question : L’indice de maintenabilité a été réinitialisé pour figurer entre 0 et 100. Comment et pourquoi cela a-t-il été fait ?

La métrique était calculée initialement 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 signifiait qu’elle pouvait varier de 171 à un nombre négatif illimité. Comme le code tendait 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 conserver une métrique aussi claire que possible, nous avons décidé de traiter tous les indices 0 ou inférieurs comme 0, puis de rebaser la plage de 171 ou moins pour qu’elle s’étende de 0 à 100. En conséquence, 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 plus de cela, nous avons décidé de conserver les seuils. Si l’indice était rouge, nous souhaitions pouvoir dire avec un degré élevé de confiance qu’il y avait un problème avec le code. Cela nous a donné les seuils suivants :

Pour les seuils, nous avons décidé de décomposer cette plage 0-100 en 80-20 pour maintenir un niveau de bruit faible et nous avons marqué uniquement le code qui était suspect. Nous avons utilisé les seuils suivants :

  • 0-9 = Rouge
  • 10-19 = Jaune
  • 20-100 = Vert