Using Lehman's laws to validate the software evolution of agile projects

The main focus in software system engineering involves problems associated with upgrading, migrating and evolving existing software system systems. Software evolution is a continuous process which includes activities like software improvement, adaptation and correction that arise after the operational release of the software. Most of the empirical research on software evolution has been conducted using software developed using traditional development methods. We perform an empirical study to validate the evolution of software systems built with agile development methodology. A set of product and process metrics were evaluated for one open source software application and two industrial agile projects. The metric data was used to validate the evolution of agile projects within the context of Lehman's laws of software evolution. Our study shows that Lehman's laws of software evolution are supported by the agile software systems.

[1]  Dennis G. Kafura,et al.  The Use of Software Complexity Metrics in Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[2]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[3]  D. Spinellis,et al.  Chapter 1 Using Object-Oriented Design Metrics to Predict Software Defects , 2010 .

[4]  Marian Jureczko,et al.  Using Object-Oriented Design Metrics to Predict Software Defects 1* , 2010 .

[5]  Bikram Sengupta,et al.  Software evolution in agile development: a case study , 2010, SPLASH/OOPSLA Companion.

[6]  Pekka Abrahamsson,et al.  Agile Software Development Methods: Review and Analysis , 2017, ArXiv.

[7]  Gabbie Burns,et al.  Lehman's laws in agile and non-agile projects , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[8]  Helen Sharp,et al.  An Empirical Study of the Evolution of an Agile-Developed Software System , 2007, 29th International Conference on Software Engineering (ICSE'07).

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

[10]  Kent L. Beck,et al.  Embracing Change with Extreme Programming , 1999, Computer.

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

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

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

[14]  Meir M. Lehman,et al.  A Model of Large Program Development , 1976, IBM Syst. J..

[15]  JaatunMartin Gilje,et al.  Agile Software Development , 2002, Comput. Sci. Educ..

[16]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[17]  Arvinder Kaur,et al.  Effect of software evolution on software metrics: an open source case study , 2011, SOEN.

[18]  Agile Manifesto,et al.  Manifesto for Agile Software Development , 2001 .

[19]  Meir M. Lehman,et al.  Software evolution - Background, theory, practice , 2003, Inf. Process. Lett..

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

[21]  Rachel Harrison,et al.  Software evolution and software evolvability , 2003 .

[22]  Martin Rinard,et al.  Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion , 2010 .

[23]  Anita Ganpati,et al.  Software Evolution: An Empirical Study of Mozilla Firefox , 2012 .