13

CK メトリクス (主に Cyclomatic Complexity) を計算する無料の C# ライブラリ (dll) について知っているかどうかお尋ねしたいと思います。

私が計画しているプロジェクトにはそれが必要です。CK メトリックを計算し、さまざまな形式で表示する完成したソリューションがすでにいくつかあることは知っていますが、必要なのはアプリケーション内から使用できるソリューションです。ですから、自分で書き始める前に、まずあなたに尋ねたかったのです。

ありがとう

4

5 に答える 5

16

DrivenMetricsは、オープン ソースの C# コマンド ライン ツールです。コア機能は、コマンド ライン コンソール クライアントからライブラリとして分離されています (コア プロジェクトは、こちらから入手できます)。

非常に単純な場合でも、ニーズに合う場合があります。無料で、行数を数え、メソッドの循環的複雑度 (潜在的なコード パスの数) を計算します。

これは、 Mono.Cecil (同じライブラリ NDepend が依存している) のおかげで、IL を直接分析することによって実行されます。これにより、C#、VB.Net などで記述されたコードから構築されたアセンブリで分析を実行できます。

  • プロジェクトは ここで発表されました。
  • コード ソースはgithubで入手できます。
  • パッケージ版もご用意しております。
  • Windows と Mono の両方で動作します。

アップデート:

もう 1 つのオプションは、 Monoプロジェクトの静的分析ツールである素晴らしい Gendarmeです。

使用例として、以下のコードは、アセンブリ内のすべてのメソッドの循環的複雑度を示しています。

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);
    }
}
于 2010-10-23T17:03:11.877 に答える
3

私はSourceMonitorを使用しています。これは、C# を含むさまざまな言語のコードの複雑さとその他の指標を測定する優れたフリーウェア アプリです。コマンド ラインから実行して XML 出力を生成し、次に LINQ to XML を使用して、関心のあるデータを抽出して並べ替えます。次に、NVelocity を使用して HTML レポートを作成します。

管理ライブラリではないことはわかっていますが、必要なことはできると思うかもしれません。

于 2009-06-27T08:26:50.183 に答える
1

C#アセンブリのコードメトリックを計算するために使用しているMicrosoftのツールがあります。

サイクロコンプレックス、メンテナンス性指数などが含まれます。

詳細はこちら:

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

ここからダウンロード:

http://www.microsoft.com/en-us/download/details.aspx?id=9422

于 2013-02-23T05:22:54.850 に答える
0

それは無料ではありませんが、私はこの種のことのためにNCoverで良い経験をしました。また、そこにある多くのCIツールと非常によく統合されています。

于 2010-10-29T02:41:44.610 に答える
-1

82のコード メトリクスがサポートされている NDepend は、.NET 開発者向けのコード メトリクス Roll's Royce ツールです (ただし、商用ツールです)。

于 2010-08-30T16:40:47.053 に答える