ツール名: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...]をクリックすると、正規表現によるリソースの除外ができます。
・メトリクスの計測と問題ビューへの表示
メトリクスを計測し、問題ビューに許容値の範囲外にあるメトリクスを表示させます。プロジェクトのコンテキストメニューの[プロパティ]を選択して表示されるプロジェクトのプロパティ画面のMetricsを選択し、[Enable Metrics Gathering]にチェックをすると(図1)、メトリクスが計測されます。
続いて、問題ビューのフィルターのアイコンをクリックし、フィルターの設定のダイアログを表示後、タイプフィールドの[Metrics Marker]をチェックします(図2)。
以上の設定を行うと、計測されたメトリクスのうち、設定した許容値の範囲外にあるものが問題ビューに表示されます(図3)。
・メトリクス計測結果のファイル出力
メトリクスの計測結果はHTML形式またはCSV形式で出力できます。[ファイル]メニューの[エクスポート]を選択し、[Metrics]を選択すると。[Metrics Export]ウィンドウが現れます(図4)。
「Export HTML」にチェックをするとHTML形式のファイルが「Export Directory」で指定したディレクトリに出力されます。出力ディレクトリ直下のindex.htmlが結果のトップページで、そこからメトリクス別の計測結果のページへとリンクされます。
図5と図6は、メソッド単位のコード行数の計測結果です。図5のグラフでは、メソッドごとのコード行数のヒストグラムが示されています。許容値として設定した値以上になっている部分は赤色で示されます。また、図6はメソッドごとの各メトリクスの計測結果の表を、コード行数の降順にソートして示しています。
一方、図5で「Export CSV」にチェックをするとCSV形式のファイルが「Export Directory」で指定したディレクトリに出力されます。クラス単位での計測結果はtypes.csv、メソッド単位での計測結果はmethods.csvというファイルにそれぞれ出力されます。
・メトリクスの許容値と計測オプションの設定
前述の問題ビューに表示されるもの、およびHTMLレポートで警告表示されるものは、メトリクスの許容値(上限)設定の範囲外にあるものです。これはデフォルトの設定のままでも動作しますが、設定値を変更することもできます。
[ウィンドウ]→[設定]でEclipseの設定画面を開き、左のツリーから[Metrics]を選択します(図7)。設定画面の右側に表示されるタブを選択して、表1に示した各メトリクスの設定を行い、上限値を超えると警告が表示されます。なお、警告を出したくないメトリクスは、メトリクス名の前のチェックボックスをオフにしておきます。
タブ名 | 設定可能内容 |
---|---|
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.