私は所謂組込み系の会社にいますが,最近CやC++以外の言語の静的解析ツールについて聞かれることが増えてきました。というか,.NET向けの問合せが増えて来ました。
個人的には「静的解析ツールを使うのは最低限のマナーだろ」と思っており,ツールは言語別にひと通り押さえておいてほしいなーと思いつつも日頃忙しい設計者にそこまで求めるのも酷かなと言う気がします。
と思っていたら普段からVS使っている人でも知らない人がちらほらいる。
ということでひとつ紹介です。
.NET向けの静的解析ツールは実は結構前からMicrosoft謹製の「FxCop」が有名で利用者も多いです。
FxCopは.NET向けのアセンブリを解析するので基本的に対応する言語であればなんでも解析が可能で,Microsoftのクラス ライブラリ開発のデザイン ガイドラインに反していないかをチェックしてくれるものです。とりあえず何か入れときたいという用途では使って損がありません。
■クラス ライブラリ開発のデザイン ガイドライン
http://msdn.microsoft.com/ja-jp/library/ms229042.aspx
■FxCopのインストール
入手はWindowsSDKをインストールすればよいです。.NET Development 配下の「tool」をチェックしておきましょう。
http://www.microsoft.com/en-us/download/details.aspx?id=8279
無事インストールが完了したら,「スタートボタン」→「プラグラム」→「Windows SDK」→「ツール」→「Install Microsoft FxCop」を実行。
FxCopのインストールが完了すると,プログラムの中にFxCopが追加されています。
あとはFxCopを起動してアセンブリを食わせればおk。
解析ルールの設定はRuleタブからいけます。
FxCop自体の詳しい解説は他のサイトに譲りますが,これは当たり前に入れて当たり前に実行して欲しいです。フリーですし,どうぞお試しあれ。
※余談
・VisualStudioに統合してしまうこと推奨
・バグの検出を目的にする場合,そのような機能が強い静的解析ツールは別途必要です
・というか静的解析ツールは複数使用推奨,1つだけだと案外ザルです
・Jenkins向けにFxCopプラグインが公開されているようなので,近々試したいなと考え中