Prevent Architectural Erosion

The Dependency Structure Matrix (DSM) approach is a powerful new way to prevent software architecture from eroding over time as changes are made to support new requirements. This approach uses inter-module dependencies to specify and represent software architecture. The system is decomposed into an ordered hierarchy of subsystems with the dependencies between the subsystems represented in the form of a matrix.

DSM models are lightweight and particularly useful for providing a big picture view of the architecture. They are highly scable: we have built dependency models for applications ranging in size from 100 classes to 100,000 classes. Round trip engineering is automatic and it is possible to check the implementation against the model to ensure conformance. As a result, architectural drift can be avoided and architectural evolution made explicit.


Dependency Model View

  • Look down a column to see the dependencies for each system.
  • Decomposition hierarchy enables massive scalability.
  • Design rules allow precise specification of layering and componentization.
  • Control exactly how 3rd party libraries are used.

Examine the Architecture of your own Software Application

The most effective way to learn about the DSM approach is to analyze your own application. It is easy to understand and apply. You will end up with an improved understanding of the architecture of your own application and get a detailed list of inter-module dependencies that violate architectural intent and should be fixed. You will also get a precise big picture view that is simple and intuitive and can easily be shared by a diverse group of stake holders such as managers, architects, developers and users.

Our GettingStarted Section has a number of resources to help you learn and apply the DSM approach. It includes a comprehensive demo which explains the DSM approach and applies it to a real life application. Free downloads include a fully functional evaluation license.