Mesure de l'index de maintenabilité (MI) avec Testwell CMT++ et CMTJava (outils de mesure de complexité)Testwell CMT++ et Testwell CMTJava supportent les métriques de lignes de code, métriques Halstead, métriques McCabe et l'index de maintenabilité (MI, comme Maintainability Index). MI est une valeur qui permet d'estimer la maintenabilité relative du code. L'index de maintenabilité est calculé avec certaines formules des mesures de lignes de code, mesure McCabe et mesures Halstead. L'index de maintenabilité aide à réduire ou à reverser la tendance d'un système vers "l'entropie de code" ou l'intégrité dégradée, et pour indiquer quand il devient moins cher et/ou moins risqué de réécrire le code plutôt que de le corriger. Il y a deux variantes de l'Index de Maintenabilité : l'une qui contient les commentaires (MI), et l'autre qui ne les contient pas (MIwoc). CMT++ et CMTJava calculent toutes les deux. Signification des valeurs de l'Index de Maintenabilité (MI, avec commentaires) :
Pour réaliser l'avantage complet du MI, l'environnement de maintenance doit permettre la réécriture du module quand il devient mesurablement inmaintenable. Le but de la mesure du MI est d'identifier les parties du code trop risquées qui devraient être réécrites.
Calcul de l'Index de MaintenabilitéL'Index de Maintenabilité est calculé sur chaque fonction/classe/structure, sur chaque fichier et sur le niveau de tous les fichiers ensemble. En fait il y a 3 mesures :
La formule générale pour MI est la suivante : MIwoc = 171 - 5.2 * ln(aveV) -0.23 * aveG -16.2 * ln(aveLOC) MIcw = 50 * sin(sqrt(2.4 * perCM)) MI = MIwoc + MIcw Où aveV = average Halstead Volume (CMT++´s V) par module "module" est (dans le cas de CMT++) une définition de fonction proche de C, une définition de fonction membre proche de C++, ou une définition de classe/structure.
Davantage d'informations sur l´Index de Maintenabilité: Davantage d'informations sur nos outils de mesure de complexité : Testwell CMT++/CMTJava last updated: 24.05.2011 © 2006-2011 Testwell Oy / Verifysoft Technology GmbH |