A Systematic Review of Studies of Open Source Software Evolution

Software evolution relates to how software systems evolve over time. With the emergence of the open source paradigm, researchers are provided with a wealth of data for open source software evolution analysis. In this paper, we present a systematic review of open source software (OSS) evolution. The objective of this review is to obtain an overview of the existing studies in open source software evolution, with the intention of achieving an understanding of how software evolvability (i.e., a software system’s ability to easily accommodate changes) is addressed during development and evolution of open source software. The primary studies for this review were identified based on a pre-defined search strategy and a multi-step selection process. Based on their research topics, we have identified four main categories of themes: software trends and patterns, evolution process support, evolvability characteristics addressed in OSS evolution, and examining OSS at software architecture level. A comprehensive overview and synthesis of these categories and related studies is presented as well.

[1]  Meir M. Lehman,et al.  Metrics and Laws of Software Evolution , 2000 .

[2]  Abraham Bernstein,et al.  Software process data quality and characteristics: a historical view on open and closed source projects , 2009, IWPSE-Evol '09.

[3]  Juan Julián Merelo Guervós,et al.  Beyond source code: The importance of other artifacts in software development (a case study) , 2006, J. Syst. Softw..

[4]  Elisa Yumi Nakagawa,et al.  Software Architecture Relevance in Open Source Software Evolution: A Case Study , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[5]  Liguo Yu Indirectly predicting the maintenance effort of open-source software , 2006, J. Softw. Maintenance Res. Pract..

[6]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[7]  Kim B. Clark,et al.  Design Rules: The Power of Modularity , 2000 .

[8]  Maurizio Morisio,et al.  Structural evolution of an open source system: a case study , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[9]  Jesús M. González-Barahona,et al.  Determinism and evolution , 2008, MSR '08.

[10]  Uzma Raja,et al.  Modeling software evolution defects: a time series approach , 2009, J. Softw. Maintenance Res. Pract..

[11]  Jesús M. González-Barahona,et al.  Comparison between SLOCs and number of files as size metrics for software evolution analysis , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[12]  Virpi Hotti,et al.  Evaluation Framework for Open Source Software , 2004, Software Engineering Research and Practice.

[13]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[14]  Giuliano Antoniol,et al.  A Feedback Based Quality Assessment to Support Open Source Software Evolution: the GRASS Case Study , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[15]  Ajlan Al-Ajlan The Evolution of Open Source Software Using Eclipse Metrics , 2009, 2009 International Conference on New Trends in Information and Service Science.

[16]  Yi Wang,et al.  Measuring the evolution of open source software systems with their communities , 2007, SOEN.

[17]  Dewayne E. Perry,et al.  On evidence supporting the FEAST hypothesis and the laws of software evolution , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[18]  Iulian Neamtiu,et al.  Studying Software Evolution for Taming Software Complexity , 2010, 2010 21st Australian Software Engineering Conference.

[19]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[20]  Jesús M. González-Barahona,et al.  Mining large software compilations over time: another perspective of software evolution , 2006, MSR '06.

[21]  Daniel M. Germán,et al.  On the prediction of the evolution of libre software projects , 2007, 2007 IEEE International Conference on Software Maintenance.

[22]  Karl Beecher,et al.  Structural Complexity and Decay in FLOSS Systems: An Inter-repository Study , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[23]  Juan Fernández-Ramil,et al.  Exploring the relationship between cumulative change and complexity in an open source system , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[24]  Giancarlo Succi,et al.  An empirical study of open-source and closed-source software products , 2004, IEEE Transactions on Software Engineering.

[25]  Cornelia Boldyreff,et al.  Identifying exogenous drivers and evolutionary stages in FLOSS projects , 2009, J. Syst. Softw..

[26]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[27]  Keith H. Bennett,et al.  Software maintenance and evolution: a roadmap , 2000, ICSE '00.

[28]  Dirk Riehle,et al.  The commenting practice of open source , 2009, OOPSLA Companion.

[29]  Iulian Neamtiu,et al.  Towards a better understanding of software evolution: An empirical study on open source software , 2009, 2009 IEEE International Conference on Software Maintenance.

[30]  James M. Bieman,et al.  The evolution of FreeBSD and linux , 2006, ISESE '06.

[31]  Jesús M. González-Barahona,et al.  Tools for the Study of the Usual Data Sources found in Libre Software Projects , 2009, Int. J. Open Source Softw. Process..

[32]  Michael W. Godfrey,et al.  Architectural repair of open source software , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[33]  Jesús M. González-Barahona,et al.  Evolution and growth in large libre software projects , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[34]  Ulf Asklund,et al.  A study of configuration management in open source software projects , 2002, IEE Proc. Softw..

[35]  Shafqat Ali,et al.  Monitoring software evolution using multiple types of changes , 2009, 2009 International Conference on Emerging Technologies.

[36]  Eugenio Capra,et al.  Mining open source web repositories to measure the cost of evolutionary reuse , 2007, 2006 1st International Conference on Digital Information Management.

[37]  Andrea Capiluppi,et al.  Models for the evolution of OS projects , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[38]  Maurizio Morisio,et al.  Evolution of understandability in OSS projects , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[39]  Srini Ramaswamy,et al.  Symbiosis and Software Evolvability , 2008, IT Professional.

[40]  Stephen R. Schach,et al.  Maintainability of the Linux kernel , 2002, IEE Proc. Softw..

[41]  Jesús M. González-Barahona,et al.  Adapting the "staged model for software evolution" to free/libre/open source software , 2007, IWPSE '07.

[42]  Stephen R. Schach,et al.  Impact of release intervals on empirical research into software evolution, with application to the maintainability of Linux , 2009, IET Softw..

[43]  Stefan Koch,et al.  Evolution of Open Source Software Systems - A Large-Scale Investigation , 2005 .

[44]  Chiara Francalanci,et al.  The Economics of Open Source Software: An Empirical Analysis of Maintenance Costs , 2007, 2007 IEEE International Conference on Software Maintenance.

[45]  Timo Koponen Evaluation Framework for Open Source Software Maintenance , 2006, 2006 International Conference on Software Engineering Advances (ICSEA'06).

[46]  Juan Fernández-Ramil,et al.  Studying the evolution of open source systems at different levels of granularity: two case studies , 2004, Proceedings. 7th International Workshop on Principles of Software Evolution, 2004..

[47]  Xiang Liu,et al.  Design Architecture, Developer Networks and Performance of Open Source Software Projects , 2007, ICIS.

[48]  Juan Fernández-Ramil,et al.  A study of open source software evolution data using qualitative simulation , 2005, Softw. Process. Improv. Pract..

[49]  Nong Zhang THE UNIVERSITY OF TECHNOLOGY SYDNEY , 2005 .

[50]  Dewayne E. Perry,et al.  Metrics and laws of software evolution-the nineties view , 1997, Proceedings Fourth International Software Metrics Symposium.

[51]  Robert E. Park,et al.  Software Size Measurement: A Framework for Counting Source Statements , 1992 .

[52]  Phillip A. Laplante,et al.  Understanding Open Source Software through Software Archaeology: The Case of Nethack , 2006, 2006 30th Annual IEEE/NASA Software Engineering Workshop.

[53]  Michael W. Godfrey,et al.  Evolution in open source software: a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[54]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[55]  Daniel M. Germán,et al.  Macro-level software evolution: a case study of a large software compilation , 2009, Empirical Software Engineering.

[56]  Lee Sproull,et al.  Easier Said than Done: An Empirical Investigation of Software Design and Quality in Open Source Software Development , 2009, 2009 42nd Hawaii International Conference on System Sciences.

[57]  Richard N. Taylor,et al.  An Architecture-Based Approach to Software Evolution , 1998 .