23種類という豊富なメトリクスの計測ができます。もう1つの特長はEclipseへの対応です。すべてのメトリクスの計測結果をEclipseのビュー上で確認でき、Eclipseの問題ビューに、メトリクスの値が悪いソースだけを表示させることもできます。また、この場合に警告表示させるためのメトリクスの許容値を自由に変えることが可能です。
・XML形式での結果出力
メトリクスの計測結果をXML形式で出力しますので、XSLを使ってHTML形式にするなど、お好みのレポートを作成できます。
・依存関係の解析
パッケージ間およびクラス間の依存関係を図で確認できます。また、依存関係が循環しているパッケージやクラスの検出を行います。
Eclipse Metrics Plugin(Frank Sauer)を利用する場合は、Eclipseのアップデート機能を用いたインストールを行います。[ヘルプ]→[ソフトウェア更新]→[検索とインストール]を実行して表示される[インストール/更新]画面にて、下記のURLをリモート・サイトに設定し、Metrics plugin for Eclipse 1.3.6を検索、選択します。
[ウィンドウ]→[設定]でEclipseの設定画面を開き、ツリーの部分に[Metrics Preferences]が表示されればインストールが成功しています。
Eclipse Metrics Plugin(Frank Sauer)は下記の手順で利用します。
・プロジェクトの設定
メトリクスを計測するための、プロジェクトの設定を行います。プロジェクトのコンテキストメニューの[プロパティ]を選択して表示されるプロジェクトのプロパティ画面(図1)左のツリーから[Metrics]を選択し、右側に表示される[Enable Metrics]のチェックボックスをチェックします。
・メトリクス表示用ビューへの表示
ツール独自のビュー(Metrics View)にメトリクスの計測結果を表示します。[ウィンドウ]→[ビューの表示]→[その他]で[ビューの表示]画面(図2)を開き、[Metrics]→[Metrics View]を選択します。
以上の設定を行うと、計測対象プロジェクトのビルドが実行されるたびにメトリクスが計測され、Metrics View(図3)に結果が表示されます。
Metrics Viewにはパッケージ・エクスプローラーで選択された単位の計測結果が表示されます。許容値の範囲外にあるクラス、メソッドがあるメトリクスは赤色で警告表示され、問題ない場合は青色で表示されます。メトリクス名をダブルクリックすると、最も値の悪いソースコードがエディター部分に表示されます。また、メトリクス名を展開すると、パッケージ、クラス、メソッドといった単位でのメトリクスの値を確認できます。
・問題ビューへの表示
問題ビューに許容値の範囲外にあるメトリクスを表示させます。[ウィンドウ]→[設定]でEclipseの設定画面を開き、左のツリーから[Metrics Preferences]を選択し、[Enable out-of range warnings]のチェックボックスにチェックを入れます(図4)。
続いて、問題ビューのフィルターのアイコンをクリックし、フィルターの設定のダイアログを表示後、タイプフィールドの「MetricsOutOfRangeMarker」をチェックします(図5)。
以上の設定を行い、計測対象プロジェクトをビルドすると、問題ビューに結果が表示されます(図6)。
・メトリクス計測結果のファイル出力
メトリクスの計測結果はXML形式で保存できます。Metrics View(図3)の右上にある[Export XML…]のアイコンをクリックし、任意のファイル名で保存します。出力されたXMLは、XSLを使ってHTMLにするなど、好みのレポート形式に整形しましょう。
・依存関係の解析
パッケージ間やクラス間の依存関係を図示させることができます。Metrics View(図3)の右上にある[Open The Dependency Graph View]のアイコンをクリックすると、「Dependency View」が現れ、パッケージ間の依存関係が図示されます(図7)。
解析グラフに表示される黄色い丸で結ばれたパッケージは循環依存の関係にあります。黄色い丸を右クリックし、[Analyze Details]を選択すると、クラス間の依存関係の図に変わります。
・メトリクスの許容値の設定
前述のメトリクス表示ビューで警告表示されるもの、および問題ビューに表示されるものは、メトリクスの許容値(上限・下限)設定の範囲外にあるものです。これはデフォルトの設定のままでも動作しますが、設定値を変更することもできます。
[ウィンドウ]→[設定]でEclipseの設定画面を開き、左のツリーから[Metrics Preferences]→[Safe Ranges]を選択します(図8)。設定画面の右側に表示されるメトリクスの一覧の[Min]列で下限値を、[Max]列で上限値を設定し、この範囲から外れると警告が表示されます。なお、警告を出したくないメトリクスについては、上限値、下限値ともに空白にしておきます。
Eclipse Metrics Plugin(Frank Sauer)で計測されるメトリクスの一覧を表1に示します。
略称 | メトリクス名 | 意味・定義 | 上限の初期値 |
---|---|---|---|
NSM | Number of Static Methods | クラス中の静的メソッドの数 | |
TLOC | Total Lines of Code | クラスのコード行数 (コメント行・空行は含まない) 推奨値:600※1 |
|
CA | Afferent Coupling | パッケージ内のクラスに依存するパッケージ外のクラス数 | |
RMD | Normalized Distance | パッケージの主系列(RMA + RMI = 1)からの標準化された距離 算出式:|RMA + RMI ? 1| |
|
NOC | Number of Classes | Javaファイル中のクラス数 | |
SIX | Specialization Index | クラスの特殊化指標の平均 算出式:(NORM * DIT) / NOM |
|
RMI | Instability | パッケージの不安定性 算出式:CE / (CA + CE) |
|
NOF | Number of Attributes | クラス中のフィールド数 | |
NOP | Number of Packages | パッケージ数 | |
MLOC | Method Lines of Code | メソッドのコード行数 (コメント行・空行は含まない) |
|
WMC | Weighted methods per Class | クラス中のすべてのメソッドのサイクロマチック数(VG)の和 | |
NORM | Number of Overridden Methods | 親クラスのメソッドをオーバーライドしたメソッド数 | |
NSF | Number of Static Attributes | クラス中の静的フィールド数 | |
NBD | Nested Block Depth | メソッド中の最大のネスト数 | 5 |
NOM | Number of Methods | クラス中のメソッド数 | |
LCOM | Lack of Cohesion of Methods | クラス中のメソッドの凝集性欠如の度合い (Henderson-Sellersの定義) |
|
VG | McCabe Cyclomatic Complexity | メソッドのサイクロマチック数 | 20 |
PAR | Number of Parameters | メソッドのパラメータ数 | 5 |
RMA | Abstractness | パッケージの抽象度 (パッケージ内の抽象クラス・インターフェイスの割合) |
|
NOI | Number of Interfaces | Javaファイル中のインターフェイス数 | |
CE | Efferent Coupling | パッケージ外のクラスに依存するパッケージ内のクラス数 | |
NSC | Number of Children | クラスの持つサブクラスの数 | |
DIT | Depth of Inheritance Tree | Java.lang.Objectクラスからの継承の深さ | |
表1 Eclipse Metrics Plugin(Frank Sauer)による計測メトリクス一覧 |
Copyright © ITmedia, Inc. All Rights Reserved.