連載
» 2006年06月10日 00時00分 公開

Eclipseで使えるテストツールカタログ(3):Eclipseで使えるメトリクス計測ツール (4/5)

[町田欣史, 岡本隆史,株式会社NTTデータ]

レポートに強い:Eclipse Metrics Plugin(Team in a Box)

ツール名:Eclipse Metrics Plugin 2.7.0
URL:http://osdn.jp/projects/sfnet_eclipse-metrics/
ライセンス:CPL


 メトリクスの計測結果をHTMLまたはCSVで出力します。レポートの配布や結果の集計が容易にできます。

・Eclipseの問題ビューでの警告表示

 Eclipseの問題ビューに、メトリクスの値が悪いソースを表示させることができます。

・メトリクスの警告表示設定のカスタマイズ

 上記のHTML出力やビューへの表示において、警告表示させるためのメトリクスの許容値を自由に変えられます。

・計測対象の除外

 計測対象としたくないクラスを除外できます。テストクラスなどが混在している場合に便利です。

入手方法

 Eclipse Metrics Plugin(Team in a Box)を利用する場合は、com.teaminabox.eclipse.metrics_2.7.0.zipを以下のサイトから取得してください。

 ダウンロードしたプラグインを展開して現れるcom.teaminabox.eclipse.metrics_2.7.0ディレクトリをEclipseの[plugins]ディレクトリに格納し、-cleanオプションを付けてEclipseの再起動を行えばインストールが完了です。[ウィンドウ]→[設定]でEclipseの設定画面(図1)を開き、ツリーの部分に[Metrics]が表示されればインストールが成功しています。

使い方

 Eclipse Metrics Plugin(Team in a Box)は下記の手順で利用します。

・計測対象除外ファイルの設定≪≫

 計測対象から除外したいクラスやパッケージを選択・設定します。プロジェクトのコンテキストメニューの「プロパティ]を選択して表示されるプロジェクトのプロパティ画面(図1)のMetricsを選択し、[Add Resource…]をクリックして表示される[リソースの選択]画面で計測対象から除外したいリソースを選択します。また、[Add Regex...]をクリックすると、正規表現によるリソースの除外ができます。

図1 計測対象除外リソースの選択 図1 計測対象除外リソースの選択

・メトリクスの計測と問題ビューへの表示

  メトリクスを計測し、問題ビューに許容値の範囲外にあるメトリクスを表示させます。プロジェクトのコンテキストメニューの[プロパティ]を選択して表示されるプロジェクトのプロパティ画面のMetricsを選択し、[Enable Metrics Gathering]にチェックをすると(図1)、メトリクスが計測されます。

 続いて、問題ビューのフィルターのアイコンをクリックし、フィルターの設定のダイアログを表示後、タイプフィールドの[Metrics Marker]をチェックします(図2)。

図2 問題ビューの表示設定 図2 問題ビューの表示設定

 以上の設定を行うと、計測されたメトリクスのうち、設定した許容値の範囲外にあるものが問題ビューに表示されます(図3)。

図3 問題ビューに表示された警告 図3 問題ビューに表示された警告

・メトリクス計測結果のファイル出力

  メトリクスの計測結果はHTML形式またはCSV形式で出力できます。[ファイル]メニューの[エクスポート]を選択し、[Metrics]を選択すると。[Metrics Export]ウィンドウが現れます(図4)。

図4 メトリクス計測結果のエクスポート画面 図4 メトリクス計測結果のエクスポート画面

 「Export HTML」にチェックをするとHTML形式のファイルが「Export Directory」で指定したディレクトリに出力されます。出力ディレクトリ直下のindex.htmlが結果のトップページで、そこからメトリクス別の計測結果のページへとリンクされます。

 図5図6は、メソッド単位のコード行数の計測結果です。図5のグラフでは、メソッドごとのコード行数のヒストグラムが示されています。許容値として設定した値以上になっている部分は赤色で示されます。また、図6はメソッドごとの各メトリクスの計測結果の表を、コード行数の降順にソートして示しています。

図5 メソッド単位の規模の計測結果(グラフ) 図5 メソッド単位の規模の計測結果(グラフ)
図6 メソッド単位のメトリクス計測結果(表) 図6 メソッド単位のメトリクス計測結果(表)

 一方、図5で「Export CSV」にチェックをするとCSV形式のファイルが「Export Directory」で指定したディレクトリに出力されます。クラス単位での計測結果はtypes.csv、メソッド単位での計測結果はmethods.csvというファイルにそれぞれ出力されます。

・メトリクスの許容値と計測オプションの設定

 前述の問題ビューに表示されるもの、およびHTMLレポートで警告表示されるものは、メトリクスの許容値(上限)設定の範囲外にあるものです。これはデフォルトの設定のままでも動作しますが、設定値を変更することもできます。

 [ウィンドウ]→[設定]でEclipseの設定画面を開き、左のツリーから[Metrics]を選択します(図7)。設定画面の右側に表示されるタブを選択して、表1に示した各メトリクスの設定を行い、上限値を超えると警告が表示されます。なお、警告を出したくないメトリクスは、メトリクス名の前のチェックボックスをオフにしておきます。

図7 メトリクス上限値の設定画面 図7 メトリクス上限値の設定画面
タブ名 設定可能内容
Complexity マッケーブのサイクロマチック数に関する設定
・メソッドおよびクラス単位での上限値
・計測オプション(switch文やtry-catchの分岐の扱い)
Cohesion 凝集度メトリクスの上限値
Miscellaneous その他のメトリクスに関する上限値
表1 計測オプションの設定

計測されるメトリクス一覧

 Eclipse Metrics Plugin(Team in a Box)で計測されるメトリクスの一覧を表2に示します。

略称 メトリクス名 意味 上限の初期値
CC Cyclomatic Complexity メソッドのサイクロマチック数 4
LOCm Lines of Code in Method メソッドのコード行数(コメント行・空行を含む) 15
NOL Number of Levels メソッド中の最大のネスト数 4
NOP Number of Parameters メソッドのパラメータ数 4
NOS Number of Statements メソッドのコード行数(コメント行・空行は含まない 20
Ce Efferent Couplings 計測対象のクラスが参照しているクラスの数 25
LCOM-CK Lack of Cohesion in Methods
(Chidamber & Kemerer)
クラス中のメソッドの凝集性の欠如の度合い(Chidamber & Kemererの定義) 40
LCOM-HS Lack of Cohesion in Methods
(Henderson-Sellers)
クラス中のメソッドの凝集性の欠如の度合い(Henderson-Sellersの定義) 50
NOF Number of Fields クラス中のフィールド数 10
WMC Weighted Methods Per Class クラス中のすべてのメソッドのサイクロマチック数(CC)の和 40
表2  Eclipse Metrics Plugin(Team in a Box)による計測メトリクス一覧

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。