Open Source Software Evolution: A Systematic Literature Review (Part 1)

Due to the dominance of Open Source Software OSS in IT and the IT enabled services industry, various stakeholders are keen to understand the OSS evolution process. Several studies have been conducted in the past in this regard. There are various techniques used in the past for understanding OSS evolution process from different perspectives. This paper reports a systematic literature review on the topic in order to understand its current state and to identify opportunities for future. This research identified 190 studies, selected against a set of questions, for discussion. It categorizes the research studies into nine categories. We report the review results in a set of two papers. This paper discusses the research results of the techniques used for OSS evolution analysis only i.e. one out of the nine categories. A subsequent paper carries discussion on the remaining categories. Based on the results obtained from the systematic review, there is evidence of shift in the metrics and methods for OSS evolution analysis over the period of time. OSS systems were found to grow at a super linear rate in the initial studies. But later studies revealed that branches of an OSS system grow at different rates. However, more number of studies should be carried out using a repeatable methodology in order to obtain well-formed and generalizable results.

[1]  Dror G. Feitelson,et al.  The Linux kernel as a case study in software evolution , 2010, J. Syst. Softw..

[2]  Chen Yang,et al.  Linux kernels as complex networks: A novel method to study evolution , 2009, 2009 IEEE International Conference on Software Maintenance.

[3]  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.

[4]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[5]  Iftekhar Ahmed,et al.  An Empirical Study of Design Degradation: How Software Projects Get Worse over Time , 2015, 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).

[6]  Sanja Lazarova-Molnar,et al.  Evolution of Feature-Oriented Software: How to Stay on Course and Avoid the Cliffs of Modularity Drift , 2014, ICSOFT.

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

[8]  Richard C. Holt,et al.  Visualizing historical data using spectrographs , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

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

[10]  Nenad Medvidovic,et al.  An Empirical Study of Architectural Change in Open-Source Software Systems , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[11]  Michalis Faloutsos,et al.  Graph-based analysis and prediction for software evolution , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[12]  Richard C. Holt,et al.  Empirical Evidence for SOC Dynamics in Software Evolution , 2007, 2007 IEEE International Conference on Software Maintenance.

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

[14]  Salwa K. Abd-El-Hafiz An information theory approach to studying software evolution , 2004 .

[15]  Hongyu Zhang,et al.  Monitoring Software Quality Evolution for Defects , 2010, IEEE Software.

[16]  Ahmed E. Hassan,et al.  Studying software evolution using topic models , 2014, Sci. Comput. Program..

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

[18]  Tom Arbuckle,et al.  Measure software - and its evolution - using information content , 2009, IWPSE-Evol '09.

[19]  Dewayne E. Perry,et al.  A Nontraditional View of the Dimensions of Software Evolution , 2006 .

[20]  Giancarlo Succi,et al.  Analysis of Open Source Software Development Iterations by Means of Burst Detection Techniques , 2009, OSS.

[21]  Chris F. Kemerer,et al.  A longitudinal analysis of software maintenance patterns , 1997, ICIS '97.

[22]  Yijun Yu,et al.  Maleku: An evolutionary visual software analysis tool for providing insights into software evolution , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[23]  Stephen R. Schach,et al.  Determining the Distribution of Maintenance Categories: Survey versus Measurement , 2003, Empirical Software Engineering.

[24]  Serge Demeyer,et al.  Studying Versioning Information to Understand Inheritance Hierarchy Changes , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[25]  Michele Lanza,et al.  CodeCity: 3D visualization of large-scale software , 2008, ICSE Companion '08.

[26]  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..

[27]  Chanchal Kumar Roy,et al.  A Change-Type Based Empirical Study on the Stability of Cloned Code , 2014, 2014 IEEE 14th International Working Conference on Source Code Analysis and Manipulation.

[28]  Steve Counsell,et al.  System Evolution at the Attribute Level: an Empirical Study of Three Java OSS and their Refactorings , 2010, CIT 2010.

[29]  Mark Aberdour A people-focused , 2022 .

[30]  Muhammad Ali Babar,et al.  Reporting Empirical Research in Open Source Software: The State of Practice , 2009, OSS.

[31]  Katherine J. Stewart,et al.  Opportunities and Challenges Applying Functional Data Analysis to the Study of Open Source Software Evolution , 2006 .

[32]  Onaiza Maqbool,et al.  Network analysis of software change history for understanding software evolution , 2014, 17th IEEE International Multi Topic Conference 2014.

[33]  Dirk Riehle,et al.  The Commit Size Distribution of Open Source Software , 2009 .

[34]  Harald C. Gall,et al.  Visualizing multiple evolution metrics , 2005, SoftVis '05.

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

[36]  Jesús M. González-Barahona,et al.  Studying the laws of software evolution in a long-lived FLOSS project , 2013, J. Softw. Evol. Process..

[37]  Munish Saini,et al.  Open Source Software Evolution: A Systematic Literature Review (Part 2) , 2016, Int. J. Open Source Softw. Process..

[38]  Chris F. Kemerer,et al.  On the uniformity of software evolution patterns , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[39]  Chris F. Kemerer,et al.  An Empirical Approach to Studying Software Evolution , 1999, IEEE Trans. Software Eng..

[40]  E. Burton Swanson,et al.  Characteristics of application software maintenance , 1978, CACM.

[41]  Cornelia Boldyreff,et al.  Evolutionary Success of Open Source Software: an Investigation into Exogenous Drivers , 2008, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[42]  Michel Wermelinger,et al.  Empirical Studies of Open Source Evolution , 2008, Software Evolution.

[43]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[44]  Jonathan I. Maletic,et al.  Towards Understanding Large-Scale Adaptive Changes from Version Histories , 2013, 2013 IEEE International Conference on Software Maintenance.

[45]  Mamdouh Alenezi,et al.  Architectural Stability Evolution in Open-Source Systems , 2015 .

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

[47]  Lin Li,et al.  The measurement and analysis of software change based on software repository , 2010, The 2nd International Conference on Software Engineering and Data Mining.

[48]  Michael W. Godfrey,et al.  YARN: Animating Software Evolution , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[49]  Yann-Gaël Guéhéneuc,et al.  Studying software evolution of large object‐oriented software systems using an ETGM algorithm , 2013, J. Softw. Evol. Process..

[50]  Richard C. Holt,et al.  Exploring software evolution using spectrographs , 2004, 11th Working Conference on Reverse Engineering.

[51]  Cristina V. Lopes,et al.  An Application of Latent Dirichlet Allocation to Analyzing Software Evolution , 2008, 2008 Seventh International Conference on Machine Learning and Applications.

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

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

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

[55]  Alexander Chatzigeorgiou,et al.  Forecasting Java Software Evolution Trends Employing Network Models , 2015, IEEE Transactions on Software Engineering.

[56]  Imed Hammouda,et al.  Evolution of Open Source Software Projects: A Systematic Literature Review , 2013, J. Softw..

[57]  Michele Lanza,et al.  The evolution matrix: recovering software evolution using software visualization techniques , 2001, IWPSE '01.

[58]  Muhammad Ali Babar,et al.  A Systematic Review of Studies of Open Source Software Evolution , 2010, 2010 Asia Pacific Software Engineering Conference.

[59]  Daniel M. German Using software trails to reconstruct the evolution of software: Research Articles , 2004 .

[60]  Daniel M. Germán,et al.  Using software trails to reconstruct the evolution of software , 2004, J. Softw. Maintenance Res. Pract..

[61]  Shinji Kusumoto,et al.  Is duplicate code more frequently modified than non-duplicate code in software evolution?: an empirical study on open source software , 2010, IWPSE-EVOL '10.

[62]  Roberto da Silva Bigonha,et al.  The evolving structures of software systems , 2012, 2012 3rd International Workshop on Emerging Trends in Software Metrics (WETSoM).

[63]  Manoel G. Mendonça,et al.  An interactive differential and temporal approach to visually analyze software evolution , 2011, 2011 6th International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT).

[64]  Oded Galor,et al.  Evolution and growth , 2001 .

[65]  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).

[66]  Helen Sharp,et al.  Motivation in Software Engineering: A systematic literature review , 2008, Inf. Softw. Technol..

[67]  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).

[68]  Andrea Capiluppi,et al.  Domain Drivers in the Modularization of FLOSS Systems , 2009, OSS.

[69]  Yijun Yu,et al.  Assessing architectural evolution: a case study , 2011, Empirical Software Engineering.

[70]  Luis Rodero-Merino,et al.  Studying the evolution of libre software projects using publicly available data , 2012 .

[71]  Tom Arbuckle,et al.  Studying software evolution using artefacts' shared information content , 2011, Sci. Comput. Program..

[72]  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.

[73]  Sandro Pinna,et al.  Empirical study of software quality evolution in open source projects using agile practices , 2009, ArXiv.

[74]  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).

[75]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .

[76]  Mamdouh Alenezi,et al.  Modularity Measurement and Evolution in Object-Oriented Open-Source Projects , 2015 .

[77]  Francesca Arcelli Fontana,et al.  Capturing Software Evolution and Change through Code Repository Smells , 2014, XP Workshops.

[78]  Jonathan I. Maletic,et al.  What's a Typical Commit? A Characterization of Open Source Software Repositories , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[79]  Saudi Arabia,et al.  Empirical Analysis of the Complexity Evolution in Open-Source Software Systems , 2015 .

[80]  Michele Lanza,et al.  On the nature of commits , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[81]  Raouf Alomainy,et al.  An Empirical Study of Different Types of Changes in the Eclipse Project , 2013 .

[82]  Harald C. Gall,et al.  Analysing Software Repositories to Understand Software Evolution , 2008, Software Evolution.

[83]  Guy Melançon,et al.  AniMatrix: A Matrix-Based Visualization of Software Evolution , 2014, 2014 Second IEEE Working Conference on Software Visualization.

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

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

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

[87]  Michael W. Godfrey,et al.  Mining recurrent activities: Fourier analysis of change events , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[88]  Michele Lanza,et al.  Visualizing Co-Change Information with the Evolution Radar , 2009, IEEE Transactions on Software Engineering.

[89]  A. A. Gorshenev,et al.  Punctuated Equilibrium in Software Evolution , 2003, Physical review. E, Statistical, nonlinear, and soft matter physics.

[90]  Stéphane Ducasse,et al.  Characterizing the evolution of class hierarchies , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[91]  Massimiliano Di Penta,et al.  Measuring and Predicting the Linux Kernel Evolution , 2001 .

[92]  Stefan Koch Software evolution in open source projects—a large-scale investigation , 2007 .

[93]  Jonathan I. Maletic,et al.  Journal of Software Maintenance and Evolution: Research and Practice Survey a Survey and Taxonomy of Approaches for Mining Software Repositories in the Context of Software Evolution , 2022 .

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

[95]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[96]  Samantha Jenkins,et al.  Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution , 2007, Inf. Sci..

[97]  Jing Liu,et al.  Multi-granularity evolution analysis of software using complex network theory , 2011, J. Syst. Sci. Complex..

[98]  Katherine J. Stewart,et al.  Exploring Complexity in Open Source Software: Evolutionary Patterns, Antecedents, and Outcomes , 2010, 2010 43rd Hawaii International Conference on System Sciences.

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

[100]  Maurizio Morisio,et al.  The evolution of source folder structure in actively evolved open source systems , 2004 .

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

[102]  Meir M. Lehman,et al.  An approach to modelling long-term growth trends in software systems , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[103]  Lucian Voinea,et al.  An open framework for CVS repository querying, analysis and visualization , 2006, MSR '06.

[104]  Ladan Tahvildari,et al.  An approach for measuring software evolution using source code features , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

[105]  Harald C. Gall,et al.  EvoLens: lens-view visualizations of evolution data , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[106]  Bin Li,et al.  Modeling the evolution of development topics using Dynamic Topic Models , 2015, 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[107]  Audris Mockus,et al.  Guest Editor's Introduction: Special Issue on Mining Software Repositories , 2005, IEEE Trans. Software Eng..

[108]  Harald C. Gall,et al.  EvoGraph: A Lightweight Approach to Evolutionary and Structural Analysis of Large Software Systems , 2006, 2006 13th Working Conference on Reverse Engineering.

[109]  Reidar Conradi,et al.  An examination of change profiles in reusable and non-reusable software systems , 2010 .

[110]  Michael W. Godfrey,et al.  Automatic classication of large changes into maintenance categories , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[111]  David Gefen,et al.  The non-homogeneous maintenance periods: a case study of software modifications , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[112]  Miguel Goulão,et al.  Software Evolution Prediction Using Seasonal Time Analysis: A Comparative Study , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[113]  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).

[114]  Jesús M. González-Barahona,et al.  Forecasting the Number of Changes in Eclipse Using Time Series Analysis , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).