Java Logo
Connecticut Java Users Group
Founded 2000
Coutry Picture
January 16, 2007
To know the Dependencies is to Understand the Architecture

Presentation Slides

Thanks to Neejar's for his excellent presentation on Dependency Structure Matrixes. This presentation was definitely one not to miss! The technique he described is incredibly powerful. Understanding the dependencies of an application is a challenge we face everyday. How does one determine the ripple effect of an innocous change? How can you assess the quality of a codebase beyond simple code metrics? Unlike other presentations at the Java SIG, a Dependency Structure Matrix is not a new technique.It has been around for quite a long time and was originally put to use in manufacturing.

Background

The approach is based on joint work with MIT that was presented as a research paper at OOPSLA ‘05. Since then I have also given tutorials at IEEE Conference on Architecture, SEI Software Product Line Conference and the Enterprise Architecture Summit. However, the best reception was at a presentation at JavaOne ‘06 where it was exceptionally well received (it was ranked amongst the top 10% of all presentations). This is because the approach has been perfected and applied most widely in Java development environments, including such local companies as EMC, Fidelity Investments and Kronos.  Conceptually, it is an approach that is very appealing to Java developers. As a result we also received endorsements from James Gosling, Mark Milinkovich and others. The talk at NEJUG would build upon previous presentations about this approach but would also include new material from fresh insights, ideas and examples. The talk will focus exclusively on technology and will contain no marketing material what so ever.

Abstract

This talk will present a new technique which utilizes inter-module dependencies to represent and manage the architecture of complex software applications. Using these dependencies we build dependency models which provide a precise big picture view of the architecture. These models use a Dependency Structure Matrix (DSM) to provide a developer’s view of the architecture that is highly scalable compared to the directed graph approaches that are common today. We will demonstrate this approach by applying it to number of commonly used applications each consisting of hundreds or thousands of classes. We will show how dependency analysis can be used to extract the architecture for applications such as Ant, JUnit, jEdit,  Eclipse™ Platform, and NetBeans™ Platform. Finally, actual dependency models will be created for multiple generations of an application to highlight how architecture evolves and how it often begins to degrade.

Links

  1. Java One Presentation: http://developers.sun.com/learning/javaoneonline/2006/tools/TS-6037.pdf
  2. OOPSLA Research Paper: http://sdg.lcs.mit.edu/pubs/2005/oopsla05-dsm.pdf
  3. Java One Top Presenters:  http://java.sun.com/javaone/sf/rockstar_awards.jsp

Speaker

Neeraj Sangal is President and CTO of Lattix, a company specializing in Software Architecture Management solutions and services. He has analyzed the architecture of many large software systems. Over the last few years, Neeraj has pioneered the use of Dependency Structure Matrix (DSM) in software architecture. This new approach utilizes dependencies for the creation of highly scalable models that permit a precise specification and enforcement of the architecture. Prior to Lattix, Neeraj was President of Tendril Software, a leader in model-driven development and synchronized UML; models. Tendril was acquired by BEA/WebGain. Prior to Tendril, Neeraj managed a distributed development organization at HP. Neeraj is a regular speaker at technical conferences, user groups and industry events.