A Generative Network Model for Product Evolution

Modeling the structure and evolution of products is important from the standpoint of improving quality and maintainability. With the increasing popularity of open-source processes for developing both software and physical systems, there is a need to develop computational models of product evolution in such dynamic product developments scenarios. Existing studies on the evolution of products involve modeling products as networks, taking snapshots of the structure at different time steps, and comparing the structural characteristics. Such approaches are limited because they do not capture the underlying dynamics through which products evolve. In this paper, we take a step toward addressing this gap by presenting a generative network model for product evolution. The generative model is based on different mechanisms though which networks evolve—addition and removal of nodes, addition and removal of links. The model links local network observations to global network structures. It is utilized for modeling and analyzing the evolution of a software product (Drupal) and a physical product (RepRap) developed by open source processes. For the software product, the generated networks are compared with the actual product structures using various network measures including average degree, density, clustering coefficients, average shortest path, propagation cost, clustered cost, and degree distributions. For the physical product, the product evolution is analyzed in terms of the proposed mechanisms. The proposed model has three general applications: longitudinal studies of a product's evolution, cross-sectional studies of evolution of different products, and predictive analyzes.

[1]  Tom A. B. Snijders,et al.  Markov Chain Monte Carlo Estimation of Exponential Random Graph Models , 2002, J. Soc. Struct..

[2]  M E J Newman,et al.  Community structure in social and biological networks , 2001, Proceedings of the National Academy of Sciences of the United States of America.

[3]  Jitesh H. Panchal,et al.  Agent-Based Modeling of Mass-Collaborative Product Development Processes , 2009, J. Comput. Inf. Sci. Eng..

[4]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[5]  Victor R. Basili,et al.  Analyzing Error-Prone System Structure , 1991, IEEE Trans. Software Eng..

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

[7]  Victor R. Basili,et al.  System Structure Analysis: Clustering with Data Bindings , 1985, IEEE Transactions on Software Engineering.

[8]  P. John Clarkson,et al.  Dependency modelling in complex system design , 2012 .

[9]  Walter Willinger,et al.  Network topology generators: degree-based vs. structural , 2002, SIGCOMM '02.

[10]  James D. Herbsleb,et al.  Identification of coordination requirements: implications for the Design of collaboration and awareness tools , 2006, CSCW '06.

[11]  Jacek Marczyk,et al.  Measuring and Tracking Complexity in Science , 2010 .

[12]  David Notkin,et al.  An empirical study of static call graph extractors , 1998, TSEM.

[13]  Alan MacCormack,et al.  Exploring the Duality between Product and Organizational Architectures: A Test of the Mirroring Hypothesis , 2011 .

[14]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[15]  Steven Weber,et al.  The Success of Open Source , 2004 .

[16]  Mark E. J. Newman,et al.  The Structure and Function of Complex Networks , 2003, SIAM Rev..

[17]  Simon M. Kaplan,et al.  Scale-Free Nature of Java Software Package, Class and Method Collaboration Graphs , 2006 .

[18]  Tyson R. Browning,et al.  Studying the Dynamics of the Architecture of Software Products , 2007 .

[19]  Jitesh H. Panchal,et al.  Analysis of the Structure and Evolution of an Open-Source Community , 2011, J. Comput. Inf. Sci. Eng..

[20]  Sergi Valverde,et al.  Hierarchical Small Worlds in Software Architecture , 2003 .

[21]  Shiu-Kai Chin,et al.  High-confidence design for security: don't trust—verify , 1999, CACM.

[22]  Kevin Crowston,et al.  Free/Libre open-source software development: What we know and what we do not know , 2012, CSUR.

[23]  Yuanfang Cai,et al.  Analyzing the Evolution of Large-Scale Software Systems Using Design Structure Matrices and Design Rule Theory: Two Exploratory Cases , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[24]  Tim O'Reilly,et al.  Lessons from open-source software development , 1999, CACM.

[25]  Garry Robins,et al.  An introduction to exponential random graph (p*) models for social networks , 2007, Soc. Networks.

[26]  Jitesh H. Panchal,et al.  Modeling the Effect of Product Architecture on Mass Collaborative Processes: An Agent-Based Approach , 2009 .

[27]  James D. Herbsleb,et al.  Socio-technical congruence: a framework for assessing the impact of technical and work dependencies on software development productivity , 2008, ESEM '08.

[28]  Rajiv D. Banker,et al.  The Moderating Effects of Structure on Volatility and Complexity in Software Enhancement , 2000, Inf. Syst. Res..

[29]  Nathan LaBelle,et al.  Inter-Package Dependency Networks in Open-Source Software , 2004, ArXiv.

[30]  A. Barabasi,et al.  Scale-free characteristics of random networks: the topology of the world-wide web , 2000 .

[31]  Hugh Blemings,et al.  Practical Arduino: Cool Projects for Open Source Hardware , 2009 .

[32]  Qiang Tu,et al.  Growth, evolution, and structural change in open source software , 2001, IWPSE '01.

[33]  Bin Yu,et al.  Maximum pseudo likelihood estimation in network tomography , 2003, IEEE Trans. Signal Process..

[34]  Albert,et al.  Emergence of scaling in random networks , 1999, Science.

[35]  Stanley Wasserman,et al.  Social Network Analysis: Methods and Applications , 1994, Structural analysis in the social sciences.

[36]  Will Venters,et al.  Software engineering: theory and practice , 2006 .

[37]  Manuel E. Sosa A structured approach to predicting and managing technical interactions in software development , 2008 .

[38]  Michael Weiss,et al.  Design Evolution of an Open Source Project Using an Improved Modularity Metric , 2009, OSS.

[39]  P. John Clarkson,et al.  Supporting product architecture design using computational design synthesis with network structure constraints , 2012 .

[40]  Alan MacCormack,et al.  The Impact of Component Modularity on Design Evolution: Evidence from the Software Industry , 2007 .

[41]  Tyson R. Browning,et al.  Applying the design structure matrix to system decomposition and integration problems: a review and new directions , 2001, IEEE Trans. Engineering Management.

[42]  Brian Fitzgerald,et al.  Open Source Software Development: Future or Fad? , 2007 .

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

[44]  Steven D. Eppinger,et al.  The Misalignment of Product Architecture and Organizational Structure in Complex Product Development , 2004, Manag. Sci..

[45]  S. N. Dorogovtsev,et al.  Evolution of networks , 2001, cond-mat/0106144.

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

[47]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

[48]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[49]  Joshua M. Pearce,et al.  Building Research Equipment with Free, Open-Source Hardware , 2012, Science.

[50]  Wladyslaw M. Turski Reference Model for Smooth Growth of Software Systems(003)5402022 , 1996, IEEE Transactions on Software Engineering.

[51]  Claudia Eckert,et al.  Change Propagation Analysis in Complex Technical Systems , 2009 .

[52]  Walter Willinger,et al.  Network topology generators: degree-based vs. structural , 2002, SIGCOMM 2002.

[53]  S. Redner,et al.  Connectivity of growing random networks. , 2000, Physical review letters.

[54]  Steven D. Eppinger,et al.  A Network Approach to Define Modularity of Components in Complex Products , 2007 .

[55]  Vladimir Filkov,et al.  Evolution of Apache Open Source Software , 2009 .

[56]  Jitesh H. Panchal,et al.  Modeling the Effect of Product Architecture on Mass-Collaborative Processes , 2011, J. Comput. Inf. Sci. Eng..

[57]  Harald C. Gall,et al.  Detection of logical coupling based on product release history , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[58]  Linus Torvalds,et al.  The Linux edge , 1999, CACM.