TOPシステム開発> PMDとは
まるごとEclipse!
Eclipseで使えるテストツール

第2回:静的解析による手戻り削減

著者:坂田祐司(SAKATA, Yuji)   2006/4/3
前のページ  1  2
PMDとは

   PMD(注2)は、Javaのソースコードを対象としたコード解析ツールです。BSDライセンスで以下のURLから入手できます。

※注2:
PMDが何の略かは、聞かないでください。開発者自身も知らないそうです。
http://pmd.sourceforge.net/meaning.html

   PMDの特徴は次の4点があります。


チェックルールが豊富

   解析により発見できる問題は、コーディング規約から潜在的バグまで豊富なことが特徴です。たとえば、try-catchやif/whileにおける空ブロックの検出や、利用されていないローカル変数・プライベートメソッドの検出、可読性を下げてしまう複雑すぎる式や長すぎるメソッドの指摘など、幅広いチェックルールが用意されています。

   なお、チェックルールが豊富であるという点は、逆に言えば、何をチェックすべきかを正しく認識していないとまずいということになります。


ルールの拡張性が高い

   チェックルールは、各Javaクラスの抽象構文ツリーに対するXPath表現(XML Path Language)の記述や、Javaで直接的に記述することにより、新しい独自のルールを追加することが可能です。さらに、ルールのカテゴリーを独自で設定し、必要なルールのみをチェックできるようにフィルタリングすることもできます。

   ルールの拡張の方式は、本稿では触れません。次のURLを参照してください。



ソースコードが解析対象である

   たとえば、FindBugsはバイトコードを解析の対象とします。この場合、バイトコードにコンパイルされる際にJVMが行う何らかの最適化によって失われるような情報を解析対象にすることはできません。これに対しPMDはソースコードを解析対象とするため、この制約を受けません。


豊富な連携ツールが存在する

   今回はEclipse上で利用することを前提としているために大きな特徴とは言えませんが、PMDはコマンドライン、Antタスク、そしてEclipseを含む多くのIDE上で利用できます。

   利用可能なIDEは次のURLを参照してください。


前のページ  1  2


坂田祐司(SAKATA, Yuji)
著者プロフィール
坂田祐司(SAKATA, Yuji)
SI企業の研究所においてソフトウェア工学の研究に従事。試験やプログラムの解析技術に興味を持ち活動中。

INDEX
第2回:静的解析による手戻り削減
  はじめに
PMDとは