Indice de maintenabilité

L'indice de maintenabilité est une métrique qui procure une mesure de la complexité de maintenance (facilité du support et des évolutions) d'un projet informatique.

Calcul

Toutes les métriques d'Halstead sont dérivées


On obtient l'indice de maintenabilité sans les commentaires ( M I w o c {\displaystyle MIwoc} ) selon la formule suivante :

M I w o c = ( 171 5.2 l n ( V ) 0.23 ( C C ) 16.2 l n ( l o c ) ) 100 / 171 {\displaystyle MIwoc=(171-5.2*ln(V)-0.23*(CC)-16.2*ln(loc))*100/171}


On obtient le poids des commentaires ( M I c w {\displaystyle MIcw} ) selon la formule suivante :

M I c w = 50 s i n ( s q r t ( 2.4 p e r C M ) ) {\displaystyle MIcw=50*sin(sqrt(2.4*perCM))}


On obtient l'indice de maintenabilité ( M I {\displaystyle MI} ) avec la formule suivante :

M I = M I w o c + M I c w {\displaystyle MI=MIwoc+MIcw}


  • V {\displaystyle V} est le volume du code source ;
  • C C {\displaystyle CC} est la complexité cyclomatique du code source ;
  • c L o c {\displaystyle cLoc} est le nombre de lignes de commentaires ;
  • l o c {\displaystyle loc} est le nombre de lignes de code ;
  • p e r C M = c L o c / l o c {\displaystyle perCM=cLoc/loc}

Interprétations

L'Indice de maintenabilité est une mesure indépendante du langage de programmation utilisé. On admet souvent la grille d'évaluation suivante :

  • 85 et plus : bonne maintenabilité,
  • 65-85 : maintenabilité moyenne,
  • < 65 : maintenabilité difficile.

Dans la pratique, cette grille d'évaluation est parfois assouplie[1].

Outils

  • Testwell CMT++ outil de mesure de complexité pour C et C++
  • Testwell CMTJava outil de mesure de complexité pour Java
  • PhpMetrics outil de mesure d'indice de maintenabilité pour PHP
  • LDRA Testbed, outil d'analyse statique et dynamique de code source C, C++, Java, Ada

Références

  1. Exemple de grille d'évaluation assouplie.


v · m
Gestion de la qualité logicielle
Indicateurs de qualité (ISO/CEI 9126)
  • Capacité fonctionnelle (réponse aux exigences)
  • Fiabilité
  • Maintenabilité
  • Performance
  • Portabilité
  • Utilisabilité
Compréhension et contrôle du code source
Tests
Métriques
Remaniements
Principes de programmation
SOLID
Mauvaises pratiques
Antipatterns
Code smells
Voir aussi : Génie logiciel, Érosion de l'architecture logicielle
  • icône décorative Portail de l’informatique