 |
|
1 2 次のページ
|
 |
コード解析
|
本節では、実際にサンプルを用いてPMDを用いたコード解析を行ってみます。リスト1は、対象とするサンプルコードです。
リスト1:サンプルコード
public class SampleGame {
public static final int MAX_VALUE = 10;
public static void main(String[] args) {
SampleGame sampleGame = new SampleGame();
if (args.length > 0){
final int num = Integer.parseInt(args[0]);
System.out.println("あなたの入力は"+num+"ですね");
final int answer = sampleGame.createAnswer();
if (answer == num){
System.out.println("おめでとう");
} else {
System.out.println("残念!答えは"+ answer + "です" );
}
}
}
private int createAnswer(){
return (int) (Math.random()*MAX_VALUE);
}
}
コードの解析は、非常に簡単です。図1で示すとおり、解析対象となるプロジェクト、パッケージ、ソースコードを選択し、右クリックして「CheckCode With PMD」を選択するだけです。

図1:PMDによるコード解析の実行 (画像をクリックすると別ウィンドウに拡大図を表示します)
解析対象がプロジェクトか、パッケージか、ソースコードかによって、表示メニューの項目が異なります。しかし、どの場合においても、Check codewith PMDを選択してください。
|
解析結果の表示と対処
|
では、解析結果がどのように表示されるか見てみましょう。
特にビューの設定を変更しなかった場合、(a)違反概略ビュー(Violation Outline)、(b)違反概観ビュー(Violation Overview)が、図2のように表示されます。

図2:解析結果の表示画面 (画像をクリックすると別ウィンドウに拡大図を表示します)
違反概略ビューは、個々の違反に関する簡単なリスト、違反概観ビューは、解析対象全体の傾向をマクロ的に示すビューです。最初に、コードの修正のときに利用する、違反概略ビューの利用法を説明しましょう。ここでは、解析対象をパッケージとした場合を例として説明します。
図3が、違反概略ビューです。最初の列が重要度、次の列が違反内容(Error Message)、最後の列が違反のコードにおける行数(Line)を表しています。

図3:違反概略ビュー
個々の違反を表す行で左クリックすると、ソースコードの違反行にジャンプします。また、右クリックすると、図3で示すように、「詳細を見る(Show Details)」、「レビュー実施済みマークをつける(Mark as reviewed)」、「違反とみなさない(Remove violation(s))」、「修正する(Quick fix)」、「違反レビュー結果を消去する(Clear violationsreviews)」というメニューが表示されます。詳細を見る、レビュー実施済みマークをつける、違反とみなさない、修正するの各機能を簡単に紹介します。
|
1 2 次のページ
|
|

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