Partilhar via


Métricas de código - Intervalo e significado do índice de manutenibilidade

Pergunta: O índice de manutenibilidade foi redefinido para ficar entre 0 e 100. Como e por que essa redefinição foi feita?

A métrica foi originalmente calculada da seguinte forma: Maintainability Index = 171 - 5.2 * ln(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * ln(Lines of Code)

O uso desta fórmula significava que variava de 171 a um número negativo ilimitado. Como o código tendia para 0, era claramente difícil manter o código e a diferença entre o código em 0 e algum valor negativo não era útil. Como resultado da diminuição da utilidade dos números negativos e do desejo de manter a métrica o mais clara possível, decidimos tratar todos os índices 0 ou menos como 0 e, em seguida, rebasear o intervalo de 171 ou menos para ser de 0 a 100. Por esta razão, a fórmula que usamos é:

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

Além disso, decidimos ser conservadores com os limiares. O desejo era que, se o índice mostrasse vermelho, estaríamos dizendo com um alto grau de confiança que havia um problema com o código.

Para os limites, decidimos dividir essa faixa de 0-100 de 80 a 20 para manter o nível de ruído baixo e sinalizamos apenas o código que era suspeito. Usamos os seguintes limites:

Valor do índice Cor Significado
0-9 Vermelho Baixa manutenção do código
10-19 Amarelo Capacidade de manutenção moderada do código
20-100 Verde Boa manutenção do código