Eclipseで使えるメトリクス計測ツール:Eclipseで使えるテストツールカタログ(3)(5/5 ページ)
Eclipseプラグインで提供されるテストツールが充実してきた。本連載では、システム開発の現場に有効なテストツールを紹介し、統合開発ツールにEclipseを選択する開発におけるテストの効率化、ソフトウェア品質の向上のヒントを提供する。(編集部)
依存関係の循環を検出:JDepend4Eclipse
依存関係が循環しているパッケージの検出を行います。
・専用のパースペクティブによる表示
ツール独自のパースペクティブに結果が表示されます。
・計測対象の除外
計測対象としたくないパッケージを除外できます。ビルド・パスに追加しているライブラリを計測対象から除外し、プロジェクト中のソースコードのみを計測対象にできます。
入手方法
JDepend4Eclipseを利用する場合は、Eclipseのアップデート機能を用いたインストールを行います。下記のURLをリモート・サイトに設定し、JDepend4Eclipse 1.0.2を選択します。
[ウィンドウ]→[設定]でEclipseの設定画面を開き、ツリーの部分の[Java]を展開して[JDepend]が表示されればインストールが成功しています。
使い方
JDepend4Eclipseは下記の手順にて利用します。
・計測対象除外パッケージの設定
計測対象から除外したいパッケージを選択・設定します。[ウィンドウ]→[設定]でEclipseの設定画面を開き、左のツリーから[JDepend]を選択します(図1)。設定画面の右側の[Defined package filters]でチェックをしたパッケージが計測対象から除外されます。デフォルトで表示されたパッケージをより詳細に指定したい場合は[Add package…]、デフォルト表示以外のパッケージを指定したい場合は[Add filter]により設定が可能です。
・JDependパースペクティブの表示
計測したいパッケージまたはソース・フォルダーを右クリックし、コンテキストメニューから[JDepend]→[Show JDepend View]を選択すると(図2)、JDependパースペクティブに切り替わります(図3)。
JDependパースペクティブの表示内容
JDependパースペクティブには以下の情報が表示されます。
ビュー名 | 表示内容 | |
---|---|---|
Packages | パッケージ、クラスの一覧(依存関係が循環するパッケージには、パッケージ名の前に警告アイコンが表示される) | |
Metrics | Packagesビューで選択したパッケージの抽象度(Abstractness)を横軸、不安定性(Instability)を縦軸にしてプロットしたグラフ | |
Dependencies | 以下に該当するパッケージに関するメトリクス計測結果 | |
Selected object(s) | 選択しているパッケージ | |
Packges with cycle | 依存関係が循環しているパッケージ | |
Depends upon - effe | 選択しているパッケージが依存している | |
rent dependencies | パッケージ | |
Used by - afferent dependencies | 選択しているパッケージに依存しているパッケージ | |
表1 JDependパースペクティブの表示内容 |
計測されるメトリクス一覧
JDepend4Eclipseで計測されるメトリクスの一覧を表2に示します。
略称 | 意味 |
---|---|
CC(concr.cl.) | パッケージに含まれる具象クラスの数 |
AC(abstr.cl.) | パッケージに含まれる抽象クラスの数 |
Ca(aff.) | パッケージ内のクラスに依存する、パッケージ外のクラス数 |
Ce(eff.) | パッケージ内のクラスが依存する、パッケージ外のクラス数 |
A | パッケージの抽象度:AC / (AC + CC) |
I | パッケージの不安定性:Ce / (Ce + Ca) |
D | パッケージの主系列(A + I = 1)からの標準化された距離 |
Cycle! | パッケージの依存関係が循環する場合に、警告アイコンが表示される |
表2 JDepend4Eclipseによる計測されるメトリクス一覧) |
前回の静的解析ツールと今回のメトリクス計測ツールは、ソースコードの記述内容を基にバグや複雑な構造を検出するものでしたが、プログラムを実行させずに検出できるバグには限界があります。そこで必要になるのが動的なテストで、次回は、JUnitを用いた単体テストを支援するツールについてご紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.