Tools supporting DSM visualization

Overview of tools

Tool Purpose Type
Lattix DSM Tool Software architecture analysis/refactoring commercial
Intelij IDEA Ultimate Java IDE commercial
CppDepend Software architecture/code analysis commercial
NDepend Software architecture/code analysis commercial
JArchitect Software architecture/code analysis commercial
DSMSuite Software architecture analysis/refactoring open source
DSM Plugin Software architecture analysis open source
dtangler Software architecture analysis open source

The tools CppDepend, Ndepend and JArchitect are identical, but support different programming languages. They will be listed below a XDepend

Other well known tools for architecture analysis and refactoring are Structure101 and SonarSource. Both however do not support DSM visualization. The continuous inspection tool sonarqube used to support DSM visualization, but this feature was dropped.

Feature overview

Below the DSMSuite will be compared with some commercial DSM tools.

  Lattix Intelij XDepend DsmSuite
Visualization dependencies        
Hierarchical matrix Yes Yes Yes Yes
Cyclic dependencies Yes Yes Yes Yes
Indirect dependencies No No Yes Yes
Dependencies up to method / attribute level Yes No Yes No
Architecture analysis and assessment        
Number of partitioning algorithms 11 1 1 2
Number of software metrics 24 0 82 0
Architecture control        
Refactoring support by impact analysis Yes No No Yes
Definition dependency rules Yes no Yes No
Build integration Yes No Yes Yes
Metrics Yes No Yes Yes
Metrics trends Yes No Yes No
Automation Yes No Yes No
Web based dashboard Yes No Yes No

Summary

Most tools offer basic DSM functionality. Advanced features like impact analysis are only supported by Lattix and the DSMSuite. Lattix has the most extensive feature set.