Using Dependency Models to Manage Software Architecture
Courtyard (room A)
Thursday, 11:00, 45 minutes
This event is also being given Tuesday at 11:00.
Neeraj Sangal, Lattix, Inc.
Ev Jordan, Lattix, Inc.
Vineet Sinha, Massachusetts Institute of Technology
Daniel Jackson, Massachusetts Institute of Technology
Demonstration number: 2This demonstration will present a new approach, based on the Dependency Structure Matrix (DSM), which uses inter-module dependencies to specify and manage the architecture of software systems. The system is decomposed into a hierarchy of subsystems with the dependencies between the subsystems presented in the form of an adjacency matrix. This form permits succinct definition of design rules to specify allowable dependencies. The demonstration will show how the DSM can be adapted to represent the architecture of a software system and how the matrix representation is concise, intuitive and appears to overcomes scaling problems that are commonly associated with directed graph representations. A tool, ArchMap, will be used to demonstrate this approach by loading actual open source Java applications to create DSMs that can represent systems with thousands of classes. We will show how algorithms can be applied to organize the matrix in a form that reflects the architecture and highlights problematic dependencies. We will demonstrate how design rules can be used to specify and enforce architectural patterns such as layering and componentization. We will also demonstrate the evolution of architecture by creating dependency models for successive generations of Ant, a popular Java utility. Finally, we will demonstrate the application of this approach to the re-engineering of Haystack, an information retrieval system.