Question

Je voulais vous demander si vous connaissez certaines bibliothèques gratuites (dll) qui calculent les métriques CK (principalement la complexité cyclomatique).

J'aurais besoin de ça pour un projet que je prévois de faire. Je sais qu'il existe déjà des solutions finies qui calculent les métriques CK et vous les affichent sous différentes formes, mais il me faudrait une solution que je pourrais utiliser à partir de mon application. Donc, avant de commencer et d’en écrire un moi-même, je voulais tout d'abord vous le demander.

Merci

Était-ce utile?

La solution

DrivenMetrics est un outil de ligne de commande C # open source. Les fonctionnalités de base sont isolées du client de la console de ligne de commande en tant que bibliothèque (le projet principal est disponible ici ).

Même s’il est assez simple, il peut répondre à vos besoins: c’est gratuit, compte le nombre de lignes et calcule la complexité cyclomatique (nombre de chemins de code potentiels) des méthodes.

Ceci est effectué via une analyse directe de l'IL grâce à la Mono.Cecil (la même bibliothèque NDepend compte sur). Cela permet d’effectuer l’analyse sur des assemblys construits à partir de code écrit en C #, VB.Net, ...

  • Le projet a été annoncé ici .
  • Le code source est disponible sur github .
  • Une version groupée est également disponible .
  • Cela fonctionne à la fois sous Windows et Mono.

UPDATE:

Une autre option serait le incroyable Gendarme , un outil d'analyse statique du projet Mono .

Comme exemple d'utilisation, le code ci-dessous affiche la complexité cyclomatique de chaque méthode d'un assemblage.

ModuleDefinition module = ModuleDefinition.ReadModule(fullPathToTheAssembly);

foreach (var type in module.Types)
{
    foreach (var me in type.Methods)
    {
        if (!me.HasBody || me.IsGeneratedCode() || me.IsCompilerControlled)
            continue;
        var r = AvoidComplexMethodsRule.GetCyclomaticComplexity(me);

        Console.WriteLine("{0}: {1}", me.ToString(), r);
    }
}
  • Le projet est décrit ici
  • Le code source est disponible sur github
  • Les versions groupées sont également disponibles
  • .
  • Cela fonctionne à la fois sous Windows et Mono

Autres conseils

J'utilise SourceMonitor , qui est une belle application gratuite qui mesure la complexité du code et d'autres métriques pour une variété de langues, y compris C #. Nous le pilotons depuis la ligne de commande pour produire une sortie XML, puis nous utilisons LINQ to XML pour extraire et trier les données qui nous intéressent. Nous utilisons ensuite NVelocity pour créer des rapports HTML.

Je sais que ce n'est pas une bibliothèque gérée, mais vous pourriez trouver qu'elle peut faire ce dont vous avez besoin.

Il existe un outil Microsoft que j'utilise pour calculer les métriques de code des assemblys C #.

Il comprend le complexe cyclo, l'indice de maintenabilité et plus encore.

Détails ici:

http://blogs.msdn.com/b/camerons/archive/2011/01/28/code-metrics-from-the-command-line.aspx

Téléchargez ici:

http://www.microsoft.com/en- nous / télécharger / details.aspx? id = 9422

Ce n’est pas gratuit, mais j’ai eu de bonnes expériences avec NCover pour ce genre de chose. De plus, ils s’intègrent plutôt bien avec beaucoup d’outils de CI.

Avec 82 métriques de code prises en charge, NDepend est la métrique de code utilisée par Roll's Royce pour les développeurs .NET. (mais c’est un outil commercial).

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