Métricas del código: Descripción y alcance del índice de mantenimiento

Pregunta: El índice de mantenimiento se ha restablecido para que esté comprendido entre 0 y 100. ¿Cómo y por qué se ha hecho esto?

La métrica se calculaba originalmente de la siguiente manera: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

El uso de esta fórmula significaba que oscilaba entre 171 y un número negativo sin enlazar. Como el código tendía a 0, era claramente difícil mantener el código y la diferencia entre el código en 0, y un valor negativo no era útil. Como resultado de la utilidad decreciente de los números negativos y del deseo de mantener la métrica lo más clara posible, decidimos tratar todos los índices de 0 o inferiores como 0 y, a continuación, fusionar mediante cambio de base el intervalo de 171 o menos para que fuera de 0 a 100. Por este motivo, la fórmula que usamos es la siguiente:

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

Además, decidimos ser conservadores con los umbrales. El deseo era que si el índice se mostraba en rojo, estaríamos diciendo con un alto grado de confianza que había una incidencia con el código. Esto nos dio los siguientes umbrales:

Para los umbrales, decidimos desglosar este intervalo de 0 a 100 en 80-20 para mantener el nivel de ruido bajo y solo marcamos el código sospechoso. Hemos usado los umbrales siguientes:

  • 0-9 = Rojo
  • 10-19 = Amarillo
  • 20-100 = Verde