The design structure analysis system: a tool to analyze software architecture

  • Authors:
  • Alan Maccormack;John Joseph Rusnak, Jr.

  • Affiliations:
  • Harvard University;Harvard University

  • Venue:
  • The design structure analysis system: a tool to analyze software architecture
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

This thesis develops and validates a tool called the Design Structure Analysis System (DSAS) to analyze software architecture. DSAS extracts function call dependencies and uses Design Structure Matrix (DSM) techniques to display relationships among design elements and calculate measures of design structure for pre-existing designs. The specialized algorithms in DSAS allow the tool to process very large code bases, as compared to prior work which has adopted DSM techniques. The tool comprises four main modules. The architectural view module maps the design structure as the designer defined it. The bus detection module finds and marks system wide shared portions of functionality. The change cost module displays and measures the potential for a change to propagate through the system. Finally, the dependency clustering module heuristically arranges the software dependencies into an idealized form that has limited interactions among different modules. We validate the tool via three methods: (1) comparing the tool's output to existing literature that analyzes theoretical and practical examples of modularity, (2) analyzing code of familiar systems, and (3) analyzing longitudinal code re-designs where we are aware of the architect's intent. Subsequently, we use the tool to examine the hypothesis that distributed teams may produce more modular code than co-located teams. We find data to support this hypothesis by comparing open source systems (assumed to represent distributed teams) to proxies for closed source systems (assumed to represent co-located teams). We conclude by highlighting the contributions of this work, and pointing to future applications that may prove fruitful.