5

昨日から、私はプロジェクトの 1 つをNdepend (ほとんどの機能が無料) で分析しており、さらにそれを使用していますが、このタイプのソフトウェア (コード分析ソフトウェア) の真の価値について疑問を抱いています。

説明させてください。システムは、すべてのメトリックをランク付けして、システムとクラスの状態に関するレポートを作成します。変更を行うのは良い出発点になると思いましたが、クラス内に100行を超える行があるため(大きなヘッダーがあり、VSコメントスタイルを使用しています)、大したことではないため、上位の結果のほとんどがここにあります.. . . 求心性結合レベル (CA) の数が常に高すぎるよりも、これは私たちがよく使用するインターフェイスにほぼ当てはまります... したがって、現時点では何か問題は見られませんが、NDepend はそれを好まないようです (それを改善するための提案があれば教えてください。私のインターフェースのほとんどが高すぎるのは、子の数の「NOC」と呼ばれるメトリックと同じです...

今のところ、非常に有用な指標は循環的複雑度だけです...

私の質問は: NDepend のような自動コード アナライザーでコードを分析する価値があると思いますか? はいの場合、システムの実際の状態を実際に示していない、私が言及したすべての情報をどのようにフィルタリングしますか?

4

2 に答える 2

2

実際、メトリックはNDependの機能の1つにすぎませんが、レポートよりもはるかに詳細にプロジェクトを分析できるVisualNDependを使用しようとしましたか?コメントを読んだことで、コードベースに関するデータをフィルタリングするための最良の方法であるNDepend UI(スタンドアロンまたはVisual Studioに統合されたもの)を試していないことはほぼ間違いありません。

私はNDependの開発者の1人であり、独自のコードを分析するためにNDependを頻繁に使用しています。基本的に、LINQクエリ(CQLinq)のコードルールを使用して独自の品質ルールを記述します。これらのルールは、設計に回帰がないことを自動的に確認します。ここに、約200のデフォルトコードルールのリストがあります。

NDependのいくつかのユニークな機能で、コードメトリックとは関係ありません。

NDependの機能の完全なリストについては、ここを参照してください。

于 2008-11-18T23:02:29.080 に答える
2

ソフトウェア エンジニアリングにおいて、NDepend の結果が必ずしも「良い」または「悪い」と見なされるわけではありません。アプリケーションがそのように設計されているのには、常に十分な理由があります。設計の問題点を指摘するのにおそらく役立つレポートだと思いますが、メソッドをリファクタリングする必要があるかどうか、または設計した方法が適切かどうかを判断する際の最終決定権は私にあります。一般に、それが価値があるかどうかを答えようとしてあまり夢中にならないでください。その代わりに、結果を注意深く確認することをお勧めします。これにより、設計を別の視点から見ることができ、設計した方法がアプリケーションの目標を達成するのに最適であると判断する場合があります。

于 2008-11-18T20:08:49.023 に答える