Analyzing the Evolution of Large-Scale Software Systems Using Design Structure Matrices and Design Rule Theory: Two Exploratory Cases

Designers have long recognized the value of modularity, but important software modularity principles have remained informal. According to Baldwin and Clark's (2000) design rule theory (DRT) , modular architectures add value to system designs by creating options to improve the system by substituting or experimenting on individual modules. In this paper, we examine the design evolution of two software product platforms through the modeling lens of DRT and design structure matrices (DSMs). We show that DSM models and DRT precisely explain how real- world modularization activities in one case allowed for different rates of evolution in different software modules and in another case conferred distinct strategic advantages on a firm by permitting substitution of an at-risk software module without substantial change to the rest of the system. Our results provide positive evidence that DSM and DRT can inform important aspects of large-scale software structure and evolution, having the potential to guide software architecture design activities.

[1]  Steven D. Eppinger,et al.  Model-based Approaches to Managing Concurrent Engineering , 1991 .

[2]  Yuanfang Cai,et al.  An Evolutionary Approach to Software Modularity Analysis , 2007, First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07).

[3]  Matthew J. LaMantia Dependency models as a basis for analyzing software product platform modularity : a case study in strategic software design rationalization , 2006 .

[4]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[5]  Yuanyuan Song,et al.  Information hiding interfaces for aspect-oriented design , 2005, ESEC/FSE-13.

[6]  D. V. Steward,et al.  The design structure system: A method for managing the design of complex systems , 1981, IEEE Transactions on Engineering Management.

[7]  Jan Venselaar,et al.  DESIGN RULES , 1999 .

[8]  Alan MacCormack,et al.  Exploring the Structure of Complex Software Designs: An Empirical Study of Open Source and Proprietary Code , 2006, Manag. Sci..

[9]  Vineet Sinha,et al.  Using dependency models to manage complex software architecture , 2005, OOPSLA '05.

[10]  John Stuart Lakos,et al.  Large-Scale C++ Software Design , 1996 .

[11]  Kim B. Clark,et al.  The Option Value of Modularity in Design: An Example From Design Rules, Volume 1: The Power of Modularity , 2000 .

[12]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[13]  Alan MacCormack,et al.  The design structure analysis system: a tool to analyze software architecture , 2005 .

[14]  Sushil Krishna Bajracharya,et al.  An analysis of modularity in aspect oriented design , 2005, AOSD '05.

[15]  Yuanfang Cai,et al.  Simon: modeling and analysis of design space structures , 2005, ASE '05.

[16]  Yuanfang Cai,et al.  Logic-Based Software Project Decomposition , 2007 .

[17]  William G. Griswold,et al.  The structure and value of modularity in software design , 2001, ESEC/FSE-9.

[18]  Kim B. Clark,et al.  The power of modularity , 2000 .

[19]  青島 矢一,et al.  書評 カーリス Y. ボールドウィン/キム B. クラーク著 安藤晴彦訳『デザイン・ルール:モジュール化パワー』 Carliss Y. Baldwin & Kim B. Clark/Design Rules, Vol. 1: The Power of Modularity , 2005 .

[20]  Yuanfang Cai,et al.  Modularity in design: formal modeling and automated analysis , 2006 .