Paritian

Programação

Calculadora do Índice de Manutenibilidade (Halstead, Complexidade Ciclomática, Linhas de Código)

O índice de manutenibilidade de uma função, classe ou ficheiro a partir do volume de Halstead, da complexidade ciclomática e das linhas de código, na escala original e na escala 0–100 do Visual Studio.

Resultados

Índice de manutenibilidade (escala original) 52,7
Índice de manutenibilidade (0–100, como no Visual Studio) 31
Classificação (faixas do Visual Studio) Boa manutenibilidade (20–100)
Como varia
Índice de manutenibilidade (0–100, como no Visual Studio)Linhas de código 10 – 500. Índice de manutenibilidade (0–100, como no Visual Studio): 54,333 → 17,2717Índice de manutenibilidade (0–100, como no Visual Studio)0204060100200300400500Linhas de código

A linha tracejada marca o valor que escreveu.

O que faz esta ferramenta

O índice de manutenibilidade é um único número construído a partir de três medições: MI = 171 − 5,2 ln(V) − 0,23 G − 16,2 ln(LOC), vindo do trabalho de Oman e Hagemeister nos anos 90. Os logaritmos fazem com que duplicar as linhas de código custe cerca de 11 pontos, enquanto cada caminho de decisão adicional custa pouco. O Visual Studio reescala-o para 0–100, com mínimo em zero, e mostra verde a partir de 20, amarelo a partir de 10 e vermelho abaixo de 10. É uma orientação aproximada, útil para detetar os piores casos numa base de código, e nada diz sobre se o código está correto ou bem desenhado.

Fórmula

MI = 171 − 5,2 ln V − 0,23 G − 16,2 ln LOC · índice do Visual Studio = máx(0, MI × 100 ÷ 171) (V = volume de Halstead, G = complexidade ciclomática)

Variáveis

SímboloSignificadoUnidade
vVolume de Halstead do código—
cxComplexidade ciclomática—
locLinhas de código—
MIÍndice de manutenibilidade (escala original)—
VSÍndice de manutenibilidade (0–100, como no Visual Studio)—
RTClassificação (faixas do Visual Studio)—

Exemplo resolvido

  • Volume de Halstead do código1500
  • Complexidade ciclomática12
  • Linhas de código120
  • Índice de manutenibilidade (escala original)52,7
  • Índice de manutenibilidade (0–100, como no Visual Studio)31
  • Classificação (faixas do Visual Studio)Boa manutenibilidade (20–100)

Limitações

  • O resultado é uma estimativa baseada apenas nos valores que introduziu. Situações reais incluem muitas vezes fatores que esta calculadora desconhece.
  • Os valores por defeito são referências típicas e não medições da sua situação. Substitua-os pelos seus próprios dados sempre que os tiver.