Métricas de código: intervalo de índices de mantenimiento y significado
Pregunta: El índice de mantenimiento se ha restablecido para que esté comprendido entre 0 y 100. ¿Cómo y por qué se realizó este restablecimiento?
La métrica originalmente se calculó 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 variaba entre 171 y un número negativo sin límite. Como el código tendía hacia 0, era claramente difícil mantener el código y la diferencia entre el código en 0 y algún valor negativo no era útil. Como resultado de la utilidad decreciente de los números negativos y el deseo de mantener la métrica lo más clara posible, decidimos tratar todos los índices de 0 o menos como 0 y luego ajustar el rango de 171 o menos para que sea de 0 a 100. Por este motivo, la fórmula que usamos es:
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 mostrara rojo, estaríamos diciendo con un alto grado de confianza que había un problema con el código.
Para los umbrales, decidimos desglosar este intervalo de 0 a 100 entre 80 y 20 para mantener el nivel de ruido bajo y solo marcamos código sospechoso. Hemos usado los siguientes umbrales:
Valor de índice | Color | Significado |
---|---|---|
0-9 | Rojo | Baja capacidad de mantenimiento del código |
10-19 | Amarillo | Mantenimiento moderado del código |
20-100 | Verde | Buena capacidad de mantenimiento del código |