Abstract
Modularity of an open source software code base has been associated with community growth, incentives for voluntary contribution, and a reduction in free riding. As a theoretical construct, it links open source software to other domains of research, including organization theory, the economics of industry structure, and new product development; however, measuring the modularity of an open source software design has proven difficult, especially for large and complex systems. Building on previous work on Design Structure Matrices (DSMs), this paper describes two contributions towards a method for examining the evolving modularity of large-scale software systems: (1) an algorithm and new modularity metric for comparing code bases of different size; and (2) evolution analysis of Apache Tomcat to illustrate the insights gained from this approach. Over a ten-year period, the modularity of Tomcat continually increased, except in three instances: with each major change to the architecture or implementation, modularity first declined, then increased in the subsequent version to fully compensate for the decline.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Baldwin, C.Y., Clark, K.B.: Design Rules: The Power of Modularity. MIT Press, Cambridge (2000)
Baldwin, C.Y., Clark, K.B.: The architecture of participation: does code architecture mitigate free riding in the open source development model. Management Science 52(7), 1116–1127 (2006)
Browning, T.R.: Applying the design structure matrix to system decomposition and integration problems: A review and new directions. IEEE Transactions on Engineering Management 48(3), 292–306 (2001)
Christensen, C.M., Michael, R., Verlinden, M.: Skate to where the money will be. Harvard Business Review, 72–81 (November 2001)
Cohen, J.: Statistical power analysis for the behavioral sciences, 2nd edn. Lawrence Erlbaum, Hillsdale (1988)
Eppinger, S.D.: Model-based approaches to managing concurrent engineering. Journal of Engineering Design 2(4), 238–290 (1991)
Eppinger, S.D., Whitney, D.E., Smith, R.P., Gebala, D.A.: A model-based method for organizing tasks in product development. Research in Engineering Design 6(1), 1–13 (1994)
Fernandez, C.I.G.: Integration analysis of product architecture to support effective team co-location. Master’s thesis, Sloan School of Management, Cambridge (1998)
Garud, R., Kumaraswamy, A., Langlois, R.N.: Managing in a Modular Age: Architectures, Networks, and Organizations. Blackwell Publishing, Malden (2002)
Henderson, R.M., Clark, K.B.: Architectural innovation: the reconfiguration of existing product technologies and the failure of established firms. Administrative Science Quarterly 35, 9–30 (1990)
Holland, J.H.: Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence, 2nd edn. University of Michigan Press, Ann Arbor (1992)
Idicula, J.: Planning for concurrent engineering. Research report, Gintic Institute, Singapore (1995)
LaMantia, M.J., Cai, Y., MacCormack, A., Rusnak, J.: Analyzing the evolution of large-scale software systems using design structure matrices and design rule theory: two exploratory cases. In: Working IEEE/IFIP Conference on Software Architecture (WICSA 2008), pp. 18–22. IEEE, Washington (2008)
Langlois, R.L., Robertson, P.L.: Networks and innovation in a modular system: lessons from the microcomputer and stereo components industries. Research Policy 21, 297–313 (1992)
MacCormack, A., Rusnak, J., Baldwin, C.Y.: Exploring the structure of complex software designs: an empirical study of open source and proprietary code. Management Science 52(7), 1015–1030 (2006)
O’Reilly, T.: The Open Source Paradigm Shift. In: DiBona, C., Stone, M., Cooper, D.: Open Sources 2.0: The Continuing Evolution, 253–272 (2005)
O’Reilly, T.: What is Web 2.0: Design Patterns and Business Models for the Next Generation of Software (2005), http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html
Parnas, D.L.: On the criteria To be used in decomposing systems into modules. Communications of the ACM 15, 1053–1058 (1972)
Sanchez, R., Mahoney, J.T.: Modularity, flexibility, and knowledge management in product and organization design. Strategic Management Journal 17, 63–76 (1996)
Sangwan, R.: Structural epochs in the complexity of software over time. IEEE Computer, 66–73 (July 2008)
Simon, H.A.: The Sciences of the Artificial, 3rd edn. MIT Press, Cambridge (1996)
Steward, D.V.: The design structure system – a method for managing the design of complex systems. IEEE Transactions on Engineering Management 28(3), 71–74 (1981)
Thebeau, R.E.: Knowledge management of system interfaces and interactions for product development processes. Master’s thesis, MIT, Cambridge (2001)
Ulrich, K.: The role of product architecture in the manufacturing firm. Research Policy 24(3), 419–440 (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 IFIP International Federation for Information Processing
About this paper
Cite this paper
Milev, R., Muegge, S., Weiss, M. (2009). Design Evolution of an Open Source Project Using an Improved Modularity Metric. In: Boldyreff, C., Crowston, K., Lundell, B., Wasserman, A.I. (eds) Open Source Ecosystems: Diverse Communities Interacting. OSS 2009. IFIP Advances in Information and Communication Technology, vol 299. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02032-2_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-02032-2_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02031-5
Online ISBN: 978-3-642-02032-2
eBook Packages: Computer ScienceComputer Science (R0)