.NET のソースコードを解析、NDepend ファーストレビュー

ナオキさんに誘われて、
NDependのプロライセンス申込受付期間が3月末延長!!! - naoki0311's diary
NDepend というツールの無償ライセンス$411のProfessionalライセンスを入手。早速お試し。

NDepend とは、.NET 用のソースコード品質測定(コードメトリクス)ツール。

大規模な開発では、ソースコードも巨大、複雑になります。クラス同士の依存関係なども加速度的に複雑さを増す一方。
かといって約束事をたくさん作って、人力でガチガチに管理、というのもちょっと。限界があるだろうし、何より窮屈。
こういう部分こそ自動化して、かつ高品質な成果物を作りましょうというのが正しいやり方なのではないかと思うのです。


そこで NDepend ですが、これスゴいです。何がスゴいって、このようなツールのイメージとして、敷居が高い、とか慣れるまで大変そう、とかいうイメージがありますが、とにかく GUI がかっこいい!サクサクグリグリ動く。難しいことを分かりやすく表現できている、というのが一番の印象でした。

画面はこんな感じ。

起動画面


Analyze をクリック。アセンブリ選択画面になるので、Visual Studioコンパイルされた DLL、または EXE を選択。するとコード解析が始まります。しばらくして解析が完了すると以下のような画面が。



各部分ごとに紹介。

メトリクス部

ソースコードを、四角形の集合で視覚化したもの。四角形の配置、大きさが何を意味するのかは今のところ不明。


Dependencies 部

クラスの依存関係を視覚化したもの。数字が大きいと依存しすぎているから要注意、ってことなのかな。

クラスブラウザ部

Visual Studio でもおなじみのクラスブラウザ。メトリクス部、Dependencies 部の変化に応じてグリグリ表示が切り替わります。快適。

info 部

メトリクス部、Dependencies 部で選択したものの情報が細かく表示されます。詳しいことはまだ分からないけど。


COL Queries 部

ソースコードの品質に関しての様々な検証結果を表示します。問題がなければ緑の丸、問題があれば黄色の三角マークが表示されます。


一見地味ですが、おそらくこの部分が本ツールの根幹。この解析は自分でカスタマイズすることが可能で、COL というSQL文に似た書式で記述します。例えば、行数の多いメソッドを表示する、という場合は、

SELECT TOP 10 METHODS WHERE NbLinesOfCode > 30 ORDER BY NbLinesOfCode DESC

など。これを自分で自由に操ることが NDepend を使いこなす最大の要素。向かうべき地点だと思います。


まずは第一印象と言うことで見た目重視でさらっとご紹介しました。徐々に掘り下げてレビューしていきます。
それにしても動きが機敏で、使ってて楽しくなるツールです。本家にたくさん動画があるのでそちらをご覧いただくとより雰囲気が分かるかな。


本家
Improve your .NET code quality with NDepend