87 votes

Calculer les métriques du code

Existe-t-il des outils qui calculent les métriques du code (par exemple le nombre de lignes de code, la complexité cyclomatique, le couplage, la cohésion) pour votre projet et qui, au fil du temps, produisent un graphique montrant les tendances ?

1 votes

Cela dépend de la langue, quelle langue utilisez-vous ?

67voto

aku Points 54867

Sur mon dernier projet, j'ai utilisé SourceMonitor . C'est un bel outil gratuit pour l'analyse des métriques du code.
Voici un extrait du site officiel de SourceMonitor :

  • Collecte des métriques en une seule fois et rapidement passage à travers les fichiers sources.
  • Mesure les métriques pour le code source écrit en C++, C, C#, VB.NET, Java, Delphi, Visual Basic (VB6) ou HTML.
  • Comprend des mesures au niveau des méthodes et des fonctions fonctions pour C++, C, C#, VB.NET, Java et Delphi.
  • Enregistre les métriques dans les points de contrôle pour comparaison lors de l'utilisation du logiciel projets de développement logiciel.
  • Affiche et imprime les métriques dans tableaux et graphiques.
  • Fonctionne dans une interface graphique standard de Windows ou dans vos scripts en utilisant des fichiers de commande XML de vos scripts.
  • Exporte les métriques vers des fichiers XML ou CSV (valeurs séparées par des virgules) pour les applications suivantes traitement ultérieur avec d'autres outils.

Pour le côté .NET NDepend qui est tout simplement le meilleur outil, je peux vous recommander vil .

Les outils suivants peuvent effectuer une analyse des tendances :

0 votes

SourceMonitor semble être un outil réservé à Windows. Existe-t-il quelque chose de similaire pour les autres systèmes d'exploitation (Linux, BSD, Mac) ?

0 votes

Mnementh, je suis un développeur Windows, je ne connais pas d'outils de ce type pour les utilisateurs de logiciels libres. Peut-être pouvez-vous essayer d'exécuter SourceMonitor sous l'émulateur Wine ?

2 votes

Il existe désormais un outil de type NDepend pour C++, CppDepend.

12voto

romaintaz Points 32120

Sonar est définitivement un outil que vous devez prendre en considération, en particulier pour les projets Java. Toutefois, il peut également traiter du code PHP ou C/C++, Flex et Cobol.

Voici une capture d'écran qui montre quelques métriques sur un projet :

texte alternatif http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png

Notez que vous pouvez essayer l'outil en utilisant leur site de démonstration à l'adresse suivante http://nemo.sonarsource.org

0 votes

Apparemment, SO ne me laisse pas réparer le lien - le lien devrait être : nemo.sonarsource.org

8voto

Iain Holder Points 7930

NDepend pour .net

8voto

Sven Points 7277

J'étais également à la recherche d'un outil/plugin de mesure du code pour mon IDE, mais pour autant que je sache, il n'en existe aucun (pour Eclipse) qui affiche également un graphique de la complexité sur une période donnée. Cependant, j'ai trouvé le plugin eclipse metrics qu'il peut gérer :

  • La complexité cyclomatique de McCabe
  • Couplages efférents
  • Manque de cohésion dans les méthodes
  • Lignes de code dans la méthode
  • Nombre de champs
  • Nombre de niveaux
  • Nombre de sections locales dans le champ d'application
  • Nombre de paramètres
  • Nombre de déclarations
  • Méthodes pondérées par classe

Et en l'utilisant, je n'ai pas manqué l'option graphique que vous recherchez également.
Je pense que, si vous ne trouvez pas de plugins/outils capables de gérer la représentation graphique dans le temps, vous devriez vous tourner vers l'outil qui vous convient le mieux et qui vous offre toutes les informations dont vous avez besoin ; même si les informations données ne concernent que la version actuelle de votre projet.

À titre d'information, le plugin eclipse metrics vous permet de exporter les données vers un fichier externe (le lien renvoie à un exemple). Si vous utilisez un outil de contrôle de la source, et vous devriez le faire, vous pouvez toujours exporter les données pour la construction spécifique et stocker le fichier avec le code source, de cette façon vous avez toujours un moyen (basique) de revenir en arrière et de vérifier les différences.

4voto

Andreas Petersson Points 8096

Gardez à l'esprit que ce que vous mesurez est ce que vous obtenez. loc ne dit rien sur la productivité ou l'efficacité.

évaluez un programmeur en fonction des lignes de code et vous obtiendrez des lignes de code. Le même argument vaut pour d'autres mesures.

otoh http://www.crap4j.org/ est une mesure très prudente et utile. Elle met la complexité en relation avec la couverture.

2 votes

Évaluez un programmeur en fonction des lignes de commentaires et vous obtiendrez... des lignes de commentaires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X