Empirical Analysis of the Complexity Evolution in Open-Source Software Systems

When the software system evolves, its scale is increasingly growing to the degree where it is very hard to handle. Measuring the internal quality of the source code is one of the goals of making software development an engineering practice. Source Lines of Code (SLOC) and Cyclomatic Complexity (CC) are usually considered indicators of the complexity of a software system. Software complexity is an essential characteristic of a software system where it plays an important role in its success or failure. Although understanding the complexity is very important, yet it is not clear how complexity evolves in open source systems. In this paper, we study the complexity evolution of five open source projects from different domains. We analyze the growth of ten releases of these systems and show how complexity evolves over time. We then show how these systems conform to the second Lehman's law of software evolution.

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

[2]  Alexander Serebrenik,et al.  Empirical Analysis of the Relationship between CC and SLOC in a Large Corpus of Java Methods , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

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

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

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

[6]  Munish Saini,et al.  A Review of Open Source Software Development Life Cycle Models , 2014 .

[7]  Georgios Gousios,et al.  Open Source Software: A Survey from 10, 000 Feet , 2011, Found. Trends Technol. Inf. Oper. Manag..

[9]  Sebastian Spaeth,et al.  Sampling in Open Source Software Development: The Case for Using the Debian GNU/Linux Distribution , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[10]  Michael W. Godfrey,et al.  On the evolution of Lehman's Laws , 2014, J. Softw. Evol. Process..

[11]  Sheng Yu,et al.  A survey on metric of software complexity , 2010, 2010 2nd IEEE International Conference on Information Management and Engineering.

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

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

[14]  Meir M. Lehman,et al.  On understanding laws, evolution, and conservation in the large-program life cycle , 1984, J. Syst. Softw..

[15]  C. Kemerer,et al.  OO Metrics in Practice , 2005, IEEE Softw..

[16]  Rüdiger Lincke,et al.  Comparing software metrics tools , 2008, ISSTA '08.

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

[18]  Foreword and Editorial International Journal of Hybrid Information Technology , 2022 .

[19]  Audris Mockus,et al.  A case study of open source software development: the Apache server , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[20]  Mary Shaw,et al.  Finding predictors of field defects for open source software systems in commonly available data sources: a case study of OpenBSD , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[21]  Ralph Morelli,et al.  Can humanitarian open-source software development draw new students to CS? , 2007, SIGCSE '07.

[22]  James D. Herbsleb,et al.  A case study of open source tools and practices in a commercial setting , 2005 .

[23]  James M. Bieman,et al.  Open source software development: a case study of FreeBSD , 2004 .

[24]  Sebastian Spaeth,et al.  Knowledge Reuse in Open Source Software: An Exploratory Study of 15 Open Source Projects , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[25]  Ramanath Subramanyam,et al.  Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects , 2003, IEEE Trans. Software Eng..

[26]  Gregory R. Madey,et al.  Analysis of Activity in the Open Source Software Development Community , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[27]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

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

[29]  Chris F. Kemerer,et al.  How software process automation affects software evolution: a longitudinal empirical analysis , 2007, J. Softw. Maintenance Res. Pract..

[30]  James E. Tomayko,et al.  The structural complexity of software an experimental test , 2005, IEEE Transactions on Software Engineering.

[31]  Joseph G. Davis,et al.  A Model of Bug Dynamics for Open Source Software , 2008, 2008 Second International Conference on Secure System Integration and Reliability Improvement.

[32]  Marco Aurélio Gerosa,et al.  A systematic literature review on the barriers faced by newcomers to open source software projects , 2015, Inf. Softw. Technol..

[33]  Gabriele Manduchi,et al.  Measuring software evolution at a nuclear fusion experiment site: a test case for the applicability of OO and reuse metrics in software characterization , 2002, Inf. Softw. Technol..