Javaパッケージ間の循環依存を検出するツールdepDetectGuiの紹介

2018年8月10日

Javaパッケージ間の循環参照を検出するライブラリ depDetectにGUIを追加した。これをdepDetectGuiとした。

なお、以前のdepDetectはJavaソースコードのimportを拾ってくるだけであり、不正確なものであったが、今回(0.4.10)からはJDKに含まれるjdepsによって.classファイルからパッケージ依存を検出しているため、極めて正確になった。

概要

Javaプログラムのいわゆるメトリックスを測定するツールとしては、JDependやMetrics等があるようだが、パッケージ間の循環依存を解消したり、例えば、コードの一部を切り離してライブラリ化する等の目的には向かないものである。

なぜなら、これらは複雑さを「測定」するだけで、どのパッケージ・クラスが問題になっているのか具体的に検出するには不適当だ。

また、jdepsを使うことによって、複数の.classの間の具体的な依存関係を得ることはできるものの、巨大な.classの集合についてjdepsの出力を得たとしても、巨大なテキストファイルが得られるだけであり、それを人手で処理するには向いていない。

depDetectGuiは、jdepsの出力を可能な限りわかりやすく再構成し、どのような循環依存があるのか、具体的にどのクラスが循環依存に寄与しているのか等を表示する。

専用ページ

このソフトはオープンソースであるが、簡単のためにビルド済の実行形式jarを提供している。

depDetectGuiの専用ページはこちらにある。実行形式jarのダウンロード、簡単な使い方等はそちらで説明している。