2009-04-29 14 views
1

任意のコードを含む文字列が与えられました。私は、その文字列のコード複雑さを表す数値を計算したいと思います。何かのように:コードブロックのコード複雑度を計算するための既存のライブラリ

int complexity = Lib.FindComplexity(someString); 

私はそこにあなたのためにこれを行うツールがたくさんあることがわかります。 これらのツールは私にとっては機能しません。プログラムで実行したいからです。私はライブラリがC#にあるのが大好きですが、この時点では何かで動作します。

ありがとうございます!

+0

を見つけましたか?あなたの質問@joeB – gasroot

答えて

1

既存のツールの1つを使用してライブラリにラッピングすることを検討しましたか?たとえば、NDepend.Console.exeを使用して、コードから必要なパラメータを呼び出して、結果を解析することができます。

1

NDependは素晴らしいツールですが、私はそれを見たとき安くはありませんでした。お金がオプションでない場合は、反射とhttp://en.wikipedia.org/wiki/Cyclomatic_complexityを使用して調べます。それはあなたの要件をすべての文字列で満たしていませんが、作成したアセンブリを確かにテストできます。

1

リフレクタとコードメトリックプラグインを使用することもできます。

0

このようなライブラリは、任意の言語を解析できる必要があります。 フラグメントを解析し、解析されたフラグメントに対して複雑度メトリックを計算します。 ほとんどのメトリックツールは、言い換えれば のフラグメントだけでなく、 という多数のソリューションを見つけるのが難しくなる可能性が高いため、最高のパーサーです。

必要なものを提供できるシステムが1つあります。 DMSソフトウェアリエンジニアリングツールキット。多くの言語(JavaやC#など; )でパーサには が提供されていますが、解析する言語が不明です。 DMSは既にいくつかのランゲージ(Java、C#、JavaScript、COBOL) のこれらの種類のメトリックを実装するために使用されており、これを実行するプロセスは非常に困難です。 DMSは、の解析を行います。驚くほど、 というメトリックの実装は、実際にそのようなフラグメントで動作します。 DMSをカスタマイズして、必要なものを正確に実装できます。 http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html および派生メトリックツールについては http://www.semdesigns.com/Products/Metrics/index.html

関連する問題