This an an archived version of the documentation for SonarQube version 4.5 & 4.5.x LTS.
See for current functionality

Skip to end of metadata
Go to start of metadata

Table of Contents

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:



Row Selection

A row can be selected by clicking on the component name :

Colors Meaning

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:

Cell Selection

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

  • No labels