This an an archived version of the documentation for SonarQube version 4.5 & 4.5.x LTS.
See https://docs.sonarqube.org/display/SONAR/Documentation for current functionality
When talking about architecture the first priority is to remove cycles between packages by cutting undesired dependencies.
This service is compatible with Java projects only.
How to Hunt for Cycles?
Add the Package design widget on your dashboard:
Drill down to the Dependency Structure Matrix (DSM).
Dependency Structure Matrix
The DSM is a compact way to represent and navigate across dependencies between components. According to the navigation level, those components can be Maven modules, packages or files:
A row can be selected by clicking on the component name :
Colors are used to help visualize row dependencies at a glance :
Which means that green components depend on blue components which depends on orange components. Here is a simple example on commons collections project:
A cell can be selected by clicking on the number of file dependencies :
DSM Sorting and Cycles
Find Usages for Dependencies
The detail of a dependency is not available between Maven modules.
Zoom into a Component to get Dependencies Between Sub-components