Calculatrice d'Indice de Maintenabilité (Halstead, Complexité Cyclomatique, Lignes de Code)
L'indice de maintenabilité d'une fonction, classe ou fichier d'après son volume de Halstead, sa complexité cyclomatique et ses lignes de code, sur l'échelle d'origine et sur l'échelle 0–100 de Visual Studio.
Résultats
La ligne en pointillé marque la valeur que vous avez saisie.
Ce que fait cet outil
L'indice de maintenabilité est un nombre unique construit à partir de trois mesures : MI = 171 − 5,2 ln(V) − 0,23 G − 16,2 ln(LOC), issu des travaux d'Oman et Hagemeister dans les années 90. Avec les logarithmes, doubler les lignes de code coûte environ 11 points, alors que chaque chemin de décision supplémentaire coûte peu. Visual Studio le ramène à 0–100, plancher à zéro, et affiche vert dès 20, jaune dès 10 et rouge en dessous de 10. C'est un repère grossier, utile pour repérer les pires cas d'une base de code, et qui ne dit rien de la justesse ou de la qualité de conception du code.
Formule
MI = 171 − 5,2 ln V − 0,23 G − 16,2 ln LOC · indice de Visual Studio = max(0, MI × 100 ÷ 171) (V = volume de Halstead, G = complexité cyclomatique)
Variables
| Symbole | Signification | Unité |
|---|---|---|
v | Volume de Halstead du code | — |
cx | Complexité cyclomatique | — |
loc | Lignes de code | — |
MI | Indice de maintenabilité (échelle d'origine) | — |
VS | Indice de maintenabilité (0–100, comme dans Visual Studio) | — |
RT | Classement (bandes de Visual Studio) | — |
Exemple résolu
- Volume de Halstead du code1500
- Complexité cyclomatique12
- Lignes de code120
- Indice de maintenabilité (échelle d'origine)52,7
- Indice de maintenabilité (0–100, comme dans Visual Studio)31
- Classement (bandes de Visual Studio)Bonne maintenabilité (20–100)
Limites
- Le résultat est une estimation fondée uniquement sur les valeurs saisies. Les situations réelles comportent souvent des facteurs que cette calculatrice ignore.
- Les valeurs par défaut sont des références typiques, pas des mesures de votre situation. Remplacez-les par vos propres données dès que possible.