Question

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

Était-ce utile?

La solution

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

  • Collecte les mesures dans une passe-temps rapide et unique à travers les fichiers source.
  • Mesure les métriques du code source écrit en C ++, C, C #, VB.net, Java, Delphi, Visual Basic (VB6) ou HTML.
  • Comprend des métriques au niveau de la méthode et de la fonction pour C ++, C, C #, VB.NET, Java et Delphi.
  • Économise des mesures dans les points de contrôle pour comparaison lors des projets de développement logiciel.
  • Affiche et imprime les mesures dans les tables et les graphiques.
  • Fonctionne dans une interface graphique Windows standard ou à l'intérieur de vos scripts à l'aide de fichiers de commande XML.
  • Exporte des métriques vers XML ou CSV (valeur séparée des virgules) pour un traitement ultérieur avec d'autres outils.

Pour .NET à côté NDépend qui est tout simplement le meilleur outil, je peux le recommander méchant.

Les outils suivants peuvent effectuer une analyse des tendances :

Autres conseils

Sonar est définitivement un outil que vous devez considérer, notamment pour les projets Java.Cependant, il gérera également le 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 http://nemo.sonarsource.org

NDépend pour .net

Je cherchais également un outil/plug-in de métriques de code pour mon IDE, mais pour autant que je sache, il n'y en a aucun (pour Eclipse) qui affiche également un graphique de la complexité sur une période de temps spécifiée.Cependant, j'ai trouvé le plugin de métriques Eclipse, 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 concernées
  • Nombre de paramètres
  • Nombre de déclarations
  • Méthodes pondérées par classe

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

En remarque, le plugin de métriques Eclipse te permet de exporter les données vers un fichier externe (le lien mène à un exemple), donc si vous utilisez un outil de contrôle de source, et vous devriez le faire !, vous pouvez toujours exporter les données pour la version spécifique et stocker le fichier avec le code source, de cette façon vous avez toujours un (de base ) façon de remonter le temps et de vérifier les différences.

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 par lignes de code et vous obtiendrez ..lignes de code.le même argument vaut pour d’autres mesures.

oh .. http://www.crap4j.org/ est une métrique très conservatrice et utile.il définit la complexité en relation avec la couverture.

NDepend, je l'utilise et c'est le meilleur à cet effet.Vérifie ça :http://www.codeproject.com/KB/dotnet/NDepend.aspx

Concernant l'outil NDépend il est livré avec 82 métriques de code différentes, du nombre de lignes de code au classement de la méthode (popularité), à la complexité cyclomatique, au manque de cohésion des méthodes, au pourcentage de couverture (extrait de NCover ou VSTS), à la profondeur de l'héritage...

Avec son système de règles, NDepend peut également trouver des problèmes et des estimations dette technique ce qui est une métrique de code intéressante (nombre d'efforts de développement pour résoudre les problèmes contre. quantité de temps de développement gâché par an pour laisser les problèmes non résolus).

Toutes ces métriques sont détaillées ici.

Si vous êtes dans l'espace .NET, Developer Express' CodeRush fournit LOC, Cyclomatic Complexity et le (plutôt excellent, à mon humble avis) Complexité de la maintenance analyse du code en temps réel.

(Désolé pour le lien sur la complexité de la maintenance ;ça va dans le cache de Google.L'original semble être un ATM hors ligne).

Atlassian FishEye est un autre excellent outil pour ce travail.Il s'intègre à votre système de contrôle de source (prend actuellement en charge CVS, SVN et Perforce) et analyse tous vos fichiers de cette façon.L'analyse est cependant plutôt basique et le produit lui-même est commercial (mais à un prix très raisonnable, OMI).

Vous pouvez également obtenir un module complémentaire appelé Crucible qui facilite les révisions de code par les pairs.

Pour Visual Studio .NET (au moins C# et VB.NET), je trouve le logiciel gratuit StudioOutils être extrêmement utile pour les métriques.Il ajoute également un certain nombre de fonctionnalités trouvées dans les outils commerciaux tels que ReSharper.

Analyseur de code est un outil simple qui génère ce type de métriques.

alt text
(source: teel.ws)

Pour Python, pylint peut fournir des mesures de qualité du code.

Il y a aussi un plugin de métriques de code pour réflecteur, si vous utilisez .NET.

je recommanderais Extension du visualiseur de métriques de code pour studio visuel.

Il est très simple d'analyser la solution en une seule fois, faites également une comparaison si vous avez progressé ;-)

En savoir plus ici à propos de caractéristiques

Côté PHP, je crois par exemple phpUnderControl inclut des métriques via phpUnité (si je ne me trompe pas).

Gardez à l’esprit que les mesures sont souvent erronées.Par exemple, un codeur qui travaille sur des problèmes triviaux produira plus de code et aura ainsi une meilleure apparence sur vos graphiques, qu'un codeur qui résout des problèmes complexes.

Si vous recherchez une analyse des tendances, cela signifie-t-il vraiment quelque chose à mesurer au-delà du SLOC ?

Même si vous faites simplement un grep pour les points-virgules de fin et comptez le nombre de lignes renvoyées, vous recherchez la cohérence dans la technique de mesure SLOC.De cette manière, la mesure d'aujourd'hui peut être comparée de manière significative à celle du mois dernier.

Je ne vois pas vraiment ce que donnerait une tendance de complexité cyclométrique McCabe ?Je pense que CC devrait être davantage utilisé pour un instantané de la qualité afin de fournir des commentaires aux développeurs.

Modifier:Ooh.Je viens de penser à quelques autres mesures qui pourraient être utiles.Commentaires en pourcentage du SLOC et de la couverture des tests.Ni l’un ni l’autre que vous ne voulez laisser échapper.Revenir pour moderniser l'un ou l'autre de ces éléments n'est jamais aussi divin que de le faire « dans le feu de l'action ! »

HTH.

acclamations,

Rob

Compréhension de Scitools a la capacité de générer de nombreuses métriques de code pour vous.Je n'ai pas beaucoup d'expérience avec les fonctionnalités de métriques de code, mais les fonctionnalités d'analyse statique en général étaient intéressantes et le prix était très raisonnable.Le soutien était excellent.

Compteur de code de projet donne un rapport d'historique de développement différentiel (au format Excel) qui montre vos mesures de progression de codage en SLOC, en temps et en pourcentage de productivité (son estimation du temps est basée sur la complexité cyclomatique et d'autres mesures).Ensuite, dans Excel, vous pouvez facilement produire le graphique souhaité.

voir cet article qui le décrit étape par étape :http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm

Pour Java, vous pouvez essayer notre outil, Porte Qualité qui calcule plus de 60 métriques de code source, suit toutes les modifications au fil du temps et fournit également une évaluation globale de la maintenabilité du code source.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top