Program (2mb PDF)

  Invited Speakers
  Research Papers
  Student Research Comp.
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
  Practitioner Reports
  Lightning Talks
  Instant Arts School Exp.
Other Events
Resort Map (364kb PDF)
Resort Map (JPG)



view, help

"Using Dependency Models to Manage Software Architecture"




  > Demonstrations

 : Thursday

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: 2

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. 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.