第3回 Eclipseで使えるメトリクス計測ツール

 依存関係の循環を検出:JDepend4Eclipse

ツール名:JDepend4Eclipse 1.0.2
URL:http://andrei.gmxhome.de/jdepend4eclipse/
ライセンス:GPL

 依存関係が循環しているパッケージの検出を行います。

・専用のパースペクティブによる表示

ツール独自のパースペクティブに結果が表示されます。

・計測対象の除外

 計測対象としたくないパッケージを除外できます。ビルド・パスに追加しているライブラリを計測対象から除外し、プロジェクト中のソースコードのみを計測対象にできます。

 注意:プラグイン版でないJDependを使うと独自GUIやAntタスクによる実行や、結果のファイル出力が可能ですが、今回紹介するプラグイン版の機能ではありませんので、説明は省かせていただきます。

■入手方法

 JDepend4Eclipseを利用する場合は、Eclipseのアップデート機能を用いたインストールを行います。下記のURLをリモート・サイトに設定し、JDepend4Eclipse 1.0.2を選択します。

 ・http://andrei.gmxhome.de/eclipse/

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

■使い方

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

・計測対象除外パッケージの設定

 計測対象から除外したいパッケージを選択・設定します。[ウィンドウ]→[設定]でEclipseの設定画面を開き、左のツリーから[JDepend]を選択します(図1)。設定画面の右側の[Defined package filters]でチェックをしたパッケージが計測対象から除外されます。デフォルトで表示されたパッケージをより詳細に指定したい場合は[Add package…]、デフォルト表示以外のパッケージを指定したい場合は[Add filter]により設定が可能です。

図1 計測対象の除外設定

・JDependパースペクティブの表示

 計測したいパッケージまたはソース・フォルダーを右クリックし、コンテキストメニューから[JDepend]→[Show JDepend View]を選択すると(図2)、JDependパースペクティブに切り替わります(図3)。

図2 コンテキストメニューからJDependパースペクティブへの切り替え

図3 JDependパースペクティブ

■JDependパースペクティブの表示内容

 JDependパースペクティブには以下の情報が表示されます。

表1 JDependパースペクティブの表示内容
ビュー名
表示内容
Packages
パッケージ、クラスの一覧(依存関係が循環するパッケージには、パッケージ名の前に警告アイコンが表示される)
Metrics
Packagesビューで選択したパッケージの抽象度(Abstractness)を横軸、不安定性(Instability)を縦軸にしてプロットしたグラフ
Dependencies
以下に該当するパッケージに関するメトリクス計測結果
Selected object(s)
選択しているパッケージ
Packges with cycle
依存関係が循環しているパッケージ
Depends upon - effe
選択しているパッケージが依存している
rent dependencies
パッケージ
Used by - afferent dependencies
選択しているパッケージに依存しているパッケージ

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

 JDepend4Eclipseで計測されるメトリクスの一覧を表2に示します。

表2 JDepend4Eclipseによる計測されるメトリクス一覧)
略称
意味
CC(concr.cl.)
パッケージに含まれる具象クラスの数
AC(abstr.cl.)
パッケージに含まれる抽象クラスの数
Ca(aff.)
パッケージ内のクラスに依存する、パッケージ外のクラス数
Ce(eff.)
パッケージ内のクラスが依存する、パッケージ外のクラス数
A
パッケージの抽象度:AC / (AC + CC)
I
パッケージの不安定性:Ce / (Ce + Ca)
D
パッケージの主系列(A + I = 1)からの標準化された距離
Cycle! パッケージの依存関係が循環する場合に、警告アイコンが表示される

 前回の静的解析ツールと今回のメトリクス計測ツールは、ソースコードの記述内容を基にバグや複雑な構造を検出するものでしたが、プログラムを実行させずに検出できるバグには限界があります。そこで必要になるのが動的なテストで、次回は、JUnitを用いた単体テストを支援するツールについてご紹介します。

5/5  

 INDEX

  Page.1
メトリクスとは
  Page.2
豊富にメトリクスを計測:Eclipse Metrics Plugin(Frank Sauer)
  Page.3
依存関係を解析:CAP−Code Analysis Plugin
  Page.4
レポートに強い:Eclipse Metrics Plugin(Team in a Box)
Page.5
依存関係の循環を検出:JDepend4Eclipse


Java Solution全記事一覧

TechTargetジャパン

Java Solution フォーラム 新着記事

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

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

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

@IT Sepcial
ソリューションFLASH