Headway Software - The Structure GuysSitemap
About us
Contact us
Structure101 > Features > Limit complexity > Understand tangles

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

structure101 helps you to analyze cyclic Java dependencies by isolating them in dependency graphs

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

highlighting the 'feedback set' (red dependencies) helps you analyze cyclic Java dependencies

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

a list takes you directly to packages that contain cyclic Java dependencies for further analysis




©Headway Software 1999-2008Legal