Live visualization of code dependencies in the context of the overall architecture.
Tangles and spec violations are highlighted as they happen – good structure becomes second nature.
See how project/modules and packages use each other – drill down to code-level details.
Create project/module groups, layering and visibility constraints – common architecture for the team.
Browse top-down to discover how projects and packages use each other, and drill down for code-level details. Items are laid out so that dependencies flow down as much as possible. Cyclic dependencies are show in red “tangle” boxes. Spotlight to filter on the dependencies of a specific item. Click to navigate to the source code.
Browse bottom-up to discover how a code item is used, and where dependencies are located in the architecture. Chase threads of dependency by spotlighting.
Select auto-following to have the item under the cursor automatically spotlit (yellow highlight, using items above, used items below) as you browse source code, quickly navigate to dependent source.
NOTICE NEW DEPENDENCIES
Immediately see new dependencies (purple) that you create as you work. See how dependency levels are affected. Check-out to see structural changes between commits. Press a button to clear newness.
Group related project/modules together and overlay on the Structure Map to make the codebase easier to understand for the whole team.
SPECIFY DEPENDENCY CONSTRAINTS
Adjust layering and privacy to define allowed/forbidden dependencies in the overlay. Define interfaces to prevent architectural drift. Guide new and existing team members continuously as they edit code. New project/modules must be explicitly added and positioned in the overlay.
FIND VIOLATIONS AND OVER-COMPLEXITY
Use lists to navigate directly to spec violations, and structural anti-patterns such as “Tangles” (cyclic package dependencies) and “Fat” (too much in one package or class). Drill down to find the source of dependencies. The change in problem counts due to recent changes is shown in (brackets).