Analyze Java cyclic dependencies
If you don't keep an eye on your package-level structure, cyclic dependencies will most likely creep in. Cyclic dependencies prevent you from releasing, developing or testing packages independently (Robert Martin's Acyclic Dependencies Principle (ADP)). Structure101 exposes package-level cycles ("Tangles") and helps you figure out which set of dependencies you could remove in order to break the cycles. The Dependency Breakout then lets you discover what code would need to be changed.
"When you are busy implementing new features it’s easy for cyclic package dependencies to creep into the application. With Structure 101 it was straightforward to identify the cycles and fix them."
Chris Richardson, Java Consultant and author of "POJOs in Action".
Figure: Auto-partitioning indicates any set of nodes that are cyclically dependant as a cluster with a red border.
Full screenshot
|

|
Figure: The minimum set of dependencies that would need to be removed in order to render the graph acyclic are drawn in red.
Full screenshot
|

|
Figure: A list of tangled package diagrams is sorted by depth (higher tangles are generally considered to be worse) and can be used to navigate to the tangles.
Full screenshot
|

|
|