.NET から C# および C++ の SLOC と複雑さを決定する
質問
私は数年間、自分のプロジェクトで SourceMonitor を使用して、C# および C++ コンポーネントのソース コードの複雑さと基本的な SLOC (コメントを含む) を記録してきました。これらは顧客への外部報告のために使用されるため、私はそのメリットや不足について議論する立場にありません。
私は、任意の日時にプロジェクトのスナップショット ビューを表示できるリポジトリ分析ツールに取り組んでいます。次に追加したいのは、指定したファイルとリビジョンのメトリクスのキャッシュです。
SourceMonitor をスクリプト化して、テスト対象のファイルを提供し、結果ファイルの CSV または XML からメトリクスを取得できることはわかっています。
同じことを行うために使用できるネイティブ ライブラリは .NET にありますか?外部プロセスの生成と結果の解析を避けます。
本当に必要なのは次のメトリクスだけです。
- スロック
- コメント行数
- 最も複雑なメソッドの複雑さ
- 最も複雑なメソッドの名前
これを実行する必要があります C# コードとノーマル C++ コード。
編集:必要な GUI とレポートを提供するツールがすでにあるため、手動の手順を実行せずに、ライブラリ/API を使用してメトリクスをスクリプト化または生成する必要があります。理想的には、ユーティリティがバージョン管理から自動的にドラッグする、指定したファイル/リビジョン(プロジェクト全体ではなく)のメトリクスを取得したいと考えています。
注記:このために報奨金を作成しましたが、有効期限が切れたときは休暇中でした...NDepends の答えは、ソースコードではなくアセンブリ自体を見ているため、私を満足させません。
解決 5
C# と C++ を同等に解析できる .NET 製品は見つかりませんでしたが、使いやすい製品を見つけることができました。 コードカウント これらの言語やその他多くの言語をサポートしています。
CODECOUNT に置き換えられるまで私のプロジェクトで使用されていた SourceMonitor とは異なり、シンプルなコマンド ラインを備えています。
他のヒント
C# SLOC のオープン ソース コードとコメントは次の場所にあります。 http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot.Framework/Metrics
SLOC を計算するための信頼できるコマンド ライン ベースのツールは次のとおりです。 クロック. 。C# や C++ を含む多くの言語をサポートしています。サポートされている出力形式は、xml、csv、sql です。
これにより、関数が複雑になることはなく、スクリプト化も可能ではありません (私が知っている限り)。ただし、VS 用の SlickEdit ガジェットには優れた SLOC レポート ツールがあり、ソリューション エクスプローラーから使用でき、ファイルで詳細なレポートが得られます。プロジェクトまたはソリューションのレベル。
ここから入手できます: http://www.slickedit.com/content/view/441