Partager via


Vue d'ensemble de la métrique du code

Mise à jour : novembre 2007

La métrique du code est un jeu de mesures de logiciel qui fournit aux développeurs plus de détails sur le code qu'ils développent. En utilisant la métrique du code, les développeurs peuvent comprendre quels types et/ou méthodes doivent être retravaillées ou testées de manière plus approfondie. Les équipes de développement peuvent identifier les risques potentiels, comprendre l'état actuel d'un projet et suivre la progression durant le développement du logiciel.

Dimensions du logiciel

La liste suivante affiche les résultats de la métrique du code que Visual Studio calcule :

  • Indice de facilité de maintenance – Calcule une valeur d'indice entre 0 et 100 qui représente la facilité relative de la maintenance du code. Une valeur élevée signifie une meilleure facilité de maintenance. Le calcul repose sur le volume Halstead, la complexité cyclomatic et les lignes de code. Il est possible d'utiliser des évaluations de couleur pour identifier rapidement les points problématiques dans le code. Une évaluation verte correspond à une plage entre 20 et 100 et indique que le code présente une bonne facilité de maintenance. Une évaluation jaune correspond à une plage entre 10 et 19 et indique que le code présente une facilité de maintenance moyenne. Enfin, une évaluation rouge correspond à une plage entre 0 et 9 et indique une facilité de maintenance faible.

  • Complexité cyclomatic – Mesure la complexité structurelle du code. Elle est créée en calculant le nombre de chemins d'accès de code différents dans le flux du programme, comme les blocks if, les instructions switch, et les boucles do, while, foreach et for, puis en ajoutant 1 au total. Un programme dont le flux de contrôle est complexe requiert des tests unitaires supplémentaires pour atteindre une bonne couverture du code et est moins facile à gérer.

  • Profondeur d'héritage - Indique le nombre des définitions de classe qui s'étendent à la racine de la hiérarchie de classes. Plus la hiérarchie est profonde, plus il peut être difficile de comprendre où des méthodes et champs particuliers sont définis et/ou redéfinis. Au niveau de la classe, le nombre est obtenu en calculant le nombre de types qui sont à un niveau supérieur du type dans l'arborescence d'héritage, en commençant par 0 et en excluant les interfaces. Au niveau de l'espace de noms et du projet, le calcul se compose de la profondeur d'héritage la plus élevée de tous les types dans l'espace de noms ou le projet.

  • Couplage de classe - Mesure le couplage avec des classes uniques via des paramètres, des variables locales, des types de retour, des appels de méthode, des instanciations génériques ou du modèle, des classes de base, des implémentations d'interface, des champs définis sur des types externes et une décoration d'attribut. Le calcul exclut les types primitifs et intégrés tels que int32, string et object. Une bonne conception logicielle implique que les types et méthodes aient une cohésion élevée et un couplage bas. Un couplage élevé indique une conception difficile à réutiliser et à gérer en raison des ses nombreuses interdépendances avec d'autres types.

  • Lignes de code - Indique le nombre approximatif de lignes dans le code. Le compte est basé sur le code IL (Intermediate Language) et ne correspond pas, par conséquent, au nombre exact de lignes du fichier de code source. Le calcul exclut les espaces blancs, les commentaires, les accolades et les déclarations de membres, de types et d'espaces de noms. Un compte très élevé peut indiquer qu'un type ou une méthode essaie de faire trop de travail et doit être fractionné. Il peut également indiquer que le type ou la méthode est difficile à gérer.

Méthodes anonymes

Une méthode anonyme est simplement une méthode sans nom. Les méthodes anonymes sont le plus souvent utilisées pour passer un bloc de code comme un paramètre de délégué. Les résultats de métrique d'une méthode anonyme déclarée dans un membre, tel qu'une méthode ou un accesseur, sont associés au membre qui déclare la méthode. Ils ne sont pas associés au membre qui appelle la méthode.

Pour plus d'informations sur la façon dont la métrique du code traite les méthodes anonymes, consultez Méthodes anonymes et analyse du code.

Code généré

Certains outils logiciels et compilateurs génèrent un code qui est ajouté à un projet et que le développeur ne voit pas ou ne doit pas changer. La plupart du temps, la métrique du code ignore le code généré lorsqu'il calcule les valeurs de métrique. Cela permet aux valeurs de métrique de refléter ce que le développeur peut voir et changer.

Le code généré pour les formulaires Windows n'est pas ignoré, car il s'agit du code que le développeur peut voir et changer.

Fenêtre Résultats de la métrique du code

Une fois que Visual Studio a analysé votre code, il affiche les résultats dans la fenêtre Résultats de la métrique du code. La fenêtre comprend une barre d'outils située en haut et des colonnes visant à afficher les résultats calculés.

La colonne Hiérarchie contient une arborescence de la hiérarchie du code que vous pouvez développer ou réduire en fonction du niveau de détail dont vous avez besoin. Les colonnes restantes affichent les résultats calculés. Vous pouvez masquer ou réorganiser les colonnes de résultats selon votre choix. Pour plus d'informations, consultez Comment : ajouter, supprimer ou réorganiser des colonnes.

La colonne Facilité de maintenance contient une icône en plus du résultat numérique. Une icône verte indique un degré relativement élevé de facilité de maintenance. Une icône jaune indique un degré modéré de facilité de maintenance. Une icône rouge indique une facilité de maintenance basse et un point chaud potentiel. Ces indicateurs de couleur correspondent aux catégories de gravité utilisées par la règle FxCop AvoidUnmaintainableCode. Cette règle déclenche une erreur si l'indice de facilité de maintenance est inférieur à 10, un avertissement si l'indice est compris entre 10 et 20, et ne déclenche ni erreur ni avertissement si l'indice est supérieur à 20. L'indice de facilité de maintenance est une synthèse des trois mesures suivantes : complexité cyclomatic, lignes de code et complexité de calcul. Ses valeurs ne sont pas exprimées en unités.

Dans la fenêtre, vous pouvez trier les résultats par colonne. Pour cela, cliquez sur l'en-tête de la colonne. Cliquez à nouveau sur l'en-tête de la colonne pour trier la fenêtre dans l'ordre inverse.

Voir aussi

Autres ressources

Mesures de la complexité et de la facilité de maintenance du code managé