Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a visualization tool that can inspect a Java code base and report inter-package dependencies?

We have a Java code base that has grown to be too big for a single monolithic JAR (more than 5000 classes). One of the tasks that we are investigating is how much effort would it be to break this single JAR into smaller components with controlled dependencies between them. However, it's somewhat hard to look at a big bag of code and be sure that you are finding the best points of separation without some analysis.

Are there good tools to inspect and visualize the interpackage dependencies? Given those, we would have a set of suggested cut points where we could begin separating code.

As an example, in the days before Netbeans and Eclipse (and at a different job), we used TogetherJ and TogetherEnterprise. Those had the ability to do a static package analysis and draw the UML diagram. That sort of behavior would be optimal but that feature alone is not sufficient to justify the cost.

like image 853
Bob Cross Avatar asked Sep 29 '10 20:09

Bob Cross


3 Answers

I have recently discovered CodePro AnalytiX, formerly from Instantiations, now available for free from Google: https://developers.google.com/java-dev-tools/codepro/doc/features/dependencies/dependencies

like image 159
Fabian Steeg Avatar answered Oct 23 '22 18:10

Fabian Steeg


I used stan4j for the same purpose but unfortunately the community edition has a 500 classes limit. On the other side, it works as an eclipse extension.

like image 23
andcoz Avatar answered Oct 23 '22 20:10

andcoz


Intellij IDEA has one:

alt text
(source: jetbrains.com)

like image 2
OscarRyz Avatar answered Oct 23 '22 19:10

OscarRyz