Calcul des métriques de Code dans Visual Studio

Quelle est la plage de score préférée pour le calcul des métriques de code pour les

  • Indice De Maintenabilité
  • Complexité Cyclomatique
  • Profondeur de l'Héritage
  • Couplage de classe
37
demandé sur Asad Butt 2010-01-09 17:56:43

1 réponses

Les valeurs théoriquement optimales sont:

  • Indice de maintenabilité: 100. Des valeurs plus élevées indiquent une meilleure maintenabilité.
  • complexité cyclomatique: 1. Le nombre de chemins différents que le code peut prendre.
  • Profondeur de l'héritage: 1. Le nombre de définitions de classe au-dessus de celle-ci dans l'arbre d'héritage, sans compter les interfaces.
  • couplage de classe: 0. Nombre d'autres entités dont cette entité dépend.

Il N'y a pas de "bonnes" plages dures et rapides, bien qu'il soit possible de faire quelques déclarations générales.

  • avoir une complexité cyclomatique élevée par méthode suggère qu'une méthode devient trop compliquée.
  • avoir une profondeur d'héritage supérieure à environ 3 ou 4 (de vos propres classes, pas celle du framework) est un signe de problème que vous pouvez représenter inutilement des relations abstraites qui ne sont pas vraiment dans le domaine de votre logiciel.
  • le couplage de classe basse est en général meilleur, mais parfois c'est inévitable. Dans la mesure possible, vous devriez certainement minimiser la dépendance entre les espaces de noms, car il y a beaucoup moins de raisons pour les dépendances ici.

Un projet ne pouvait atteindre les quatre valeurs simultanément qu'en ne faisant essentiellement rien et en étant inutile: un logiciel qui ne fait rien et ne dépend de rien est certainement maintenable, mais pas une très bonne utilisation des dollars clients.

Par conséquent, toute complexité est un compromis: la complexité supplémentaire appelée inhérente code plus sophistication dans le programme, lui permettant d'élargir l'ensemble des fonctionnalités. Ce que vous souhaitez éviter est la complexité accidentelle introduite par une implémentation médiocre ou déficiente.

63
répondu John Feminella 2010-01-09 15:15:20