Using dependency models to manage software architecture

  • Authors:
  • Neeraj Sangal;Ev Jordan;Vineet Sinha;Daniel Jackson

  • Affiliations:
  • Lattix, Inc.;Lattix, Inc.;Massachusetts Institute of Technology;Massachusetts Institute of Technology

  • Venue:
  • OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

This 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. The matrix representation is concise, intuitive and appears to overcome scaling problems that are commonly associated with directed graph representations. It also permits succinct definition of design rules to specify allowable dependencies.A tool, Lattix LDM, 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 examine the evolution of architecture by creating dependency models for successive generations of Ant, a popular Java utility. Finally, we will explore the application of this approach to the re-engineering of Haystack, an information retrieval system.