Description
A key issue when evolving legacy software is understanding and managing dependencies between all the software components. Too often a modification in one part has unexpected consequences in other remote part. The Dependency Structural Matrix (DSM) is a tool helping to visualize and understand these dependencies. But although the concept of software dependency is intuitively a simple one, we could not find a formal and consensual definition of how they materialize in the source code. As a result we found out that different DSM tools have different interpretations. In this article we investigate how three different DSM tools interpret the concept of software dependency and the possible consequences in the resulting structural analyses.
To better understand the differences between the DSMs built by the tools, we conducted a study to precisely understand each tool's interpretation of the dependencies. To this end, we established a list of common dependencies in OO systems and experimented with different tools to understand how they interpreted each dependency. We ran this study on three established and commonly used tools for DSMs: IntelliJ, Lattix, Moose.
The material proposed here describes in details the Java code used to experiment with DSM tools.
To better understand the differences between the DSMs built by the tools, we conducted a study to precisely understand each tool's interpretation of the dependencies. To this end, we established a list of common dependencies in OO systems and experimented with different tools to understand how they interpreted each dependency. We ran this study on three established and commonly used tools for DSMs: IntelliJ, Lattix, Moose.
The material proposed here describes in details the Java code used to experiment with DSM tools.
| Date made available | 4 Jun 2025 |
|---|---|
| Publisher | Zenodo |
Cite this
- DataSetCite