第2回 Eclipseで使える静的解析ツール

 コーディング規約のチェックツール:Checkstyle

ツール名:Checkstyle 4.0.91
URL:http://checkstyle.sourceforge.net/
ライセンス:LGPL

 Checkstyleはコーディング規約をチェックするための静的解析ツールです。例えばソースコードにおける中括弧や、空白スペースの記述位置などコーディングスタイルに関する指摘のほか、クラス名、定数、変数、メソッド名などの命名規則がコーディング規約(あるいは命名規約)として定義された規則に従い、正しく記述されているかどうかをチェックすることができます。Checkstyleは後から紹介するPMDやFindBugsと比べると、特にコーディングスタイルや命名規約のチェックが優れているツールです。

 またCheckstyleは、Eclipse環境に標準搭載されている[コード・フォーマット]機能(コーディングスタイルを自動修正してくれる機能)とチェック内容が類似しますが、javadocコメントの記述形式や先ほど特長として挙げた命名規約について正規表現を使ってチェックできる点などが優れています。それぞれの特長を踏まえながらプロジェクトの状況に合わせて使うことをお勧めします。

■特長

 Checkstyleの特長は以下になります。

・ソースコードが解析対象

 ソースコードが解析対象のため、プログラムの作成途中(Just In Time)でチェックが可能です。Eclipse上で実行する場合にはファイルの編集や追加のたびに、チェックが実行されます。これによりコードを書いた直後に誤りを修正できます。

・Sunのコーディング規約に基づいたルールの提供

 Sunのコーディング規約に基づいたルール群[Sun Checks]がデフォルトで提供されています。ルール群はXML形式で提供されていて、Eclipseでは[ウィンドウ]-[設定]-[Checkstyle]で各ルールの内容を確認できます。

・適用するルールのカスタマイズが可能

  プロジェクトのコーディング規約に合わせて、デフォルトで提供されるルールのカスタマイズを行うことができます。

 冒頭にてコードレビューにおけるささいな記述ミスや誤りに時間のほとんどを費やし、本来のレビューの目的を達成できないといったお話をしましたが、特にCheckstyleが得意とするコーディング規約に関するチェックは非常に数多くなることから、安易にデフォルトルールのまま使用すると、プロジェクトとは関係のない指摘内容にプログラマーが悩まされ、モチベーションを下げてしまう危険性もあるので、適用ルールの選定はしっかり実施することをお勧めします。

Checkstyleプラグインにデフォルトで提供されているルール群は全ルールが選択された状態で、かつ編集不可の状態になっています。個別にルールの選択をするには、提供されているルール群をコピーして独自のルールセットを作成するようにします。

・カスタムルールの追加が可能

 カスタムルールはデフォルトで提供される[Sun Checks]のルールをコピーして、カスタマイズして作成することができます。カスタマイズはルールの確認画面から[CheckStyle Configuration]画面を呼び出すことで行うことができます。ルールは主に正規表現で記述します。これにより、プロジェクトのコーディングスタイルに合わせたチェックが可能になります。

■入手方法

 Checkstyleを利用する場合は、Eclipseのアップデート機能を用いたインストールを行います。[ヘルプ]-[ソフトウェア更新]-[検索とインストール]を実行して表示される[インストール/更新]画面から適用可能なプラグイン一覧を検索し、Checkstyleプラグインを選択することでダウンロードと自動インストールが実行されます(また下記のURLから直接取得することも可能です)。

 [ウィンドウ]-[設定]でEclipseの設定画面を開き、ツリーの部分に[Checkstyle]が表示されていればインストールが成功しています。

■使い方

 Checkstyleは下記の手順にて利用します。

・プロジェクトの設定

  [プロジェクト]メニューの[プロパティ]を選択して表示されるプロジェクトのプロパティ画面(図1)の画面Checkstyleを選択し、[checkstyle active for this project]のチェックボックスをチェックします。右隣にある[Use simple configuration]がチェック済みの状態で[Simple]エリアから適用するルール群をリストから選択することができます。プロジェクト独自のルール設定をしたい場合には[checkstyle active for this project]のチェックボックスを外し、[Simple]エリアを[Advanced]エリアに変えることで可能となります。また[Exclude from Checking…]エリアにてチェックの対象を詳細に決定することができます。

 
図1 プロジェクトのプロパティ画面
(クリックすると拡大します)

・問題ビューの確認

  Checkstyleでチェックされた内容がEclipse環境で正しく表示されるために問題ビューの確認を行います。

 問題ビューのフィルターのアイコンをクリックし、フィルターの設定のダイアログを表示後、タイプフィールドのCheckstyle Problemがチェックされていることを確認します(図2)。

 
図2 問題ビューの画面設定
(クリックすると拡大します)

・適用ルールの選択

 プロジェクトに合わせた適用ルールの選定を行い、不要なメッセージ出力がないようにします。[ウィンドウ]-[設定]でEclipseの設定画面を開き、左のツリーからCheckstyleを選択します。設定画面の右側にある[Global Check Configuration]から、[Sun Checks]、[Sun Checks(Eclipse)]を選択した状態で[Copy]ボタンを押下します。これでGlobal Check Configuration内に新しいルール群が作成されるので、そのルール群を選択した状態で[Configure…]ボタンを押下し、ルール編集画面を開き、適用しないルールのチェックボックスを外します。

 
図3 適用ルールの設定画面
(クリックすると拡大します)

 
図4 ルールの選択画面
(クリックすると拡大します)

 ソースコードが保存されたタイミングで問題ビューにはCheckstyleで指摘されたメッセージが表示されます。後は問題ビューに表示されたメッセージ内容を確認しながら、ソースコードを修正します。


2/4

 INDEX

  Page.1
静的解析ツールの特長
  Page.2
コーディング規約のチェックツール:Checkstyle
  Page.3
潜在的なバグからコーディング規約をチェック:PMD
  Page.4
潜在的なバグの予防に便利:FindBugs


Java Solution全記事一覧

TechTargetジャパン

Java Solution フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH