OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES and APPLICATIONS
 
 
Program
 


Program (2mb PDF)

Explore
  Invited Speakers
  Onward!
  Panels
  Workshops
Discover
  Research Papers
  Student Research Comp.
  Posters
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
Understand
  Tutorials
  Essays
  Practitioner Reports
  Demonstrations
Create
  DesignFest
  Lightning Talks
  FlashBoF
  Instant Arts School Exp.
 
Other Events
 
Resort Map (364kb PDF)
 
Resort Map (JPG)

 

 
Basket
 

view, help

"Using Dependency Models to Manage Software Architecture"

 

 
Page
 

Printer-friendly

 
 
  > Demonstrations

 : Thursday

Using Dependency Models to Manage Software Architecture

Courtyard (room A)
Thursday, 11:00, 45 minutes

 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

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