Investigating the Applicability of Lehman’s Laws of Software Evolution using Metrics: An Empirical Study on Open Source Software

This paper aims at investigating empirically the applicability of Lehman’s laws of software evolution using software metrics. We used a synthetic metric (Quality Assurance Indicator Qi), which captures in an integrated way different object-oriented software attributes. We wanted to investigate if the Qi metric can be used to support the applicability of Lehman’s laws of software evolution. We focused on the laws related with continuing change, increasing complexity, continuing growth and declining quality. We performed an empirical analysis using historical data on two open source (Java) software systems. The collected data cover a period of more than four years (fifty-two versions) for the first system and more than seven years (thirty-one versions) for the second one. Empirical results provide evidence that the considered Lehman’s laws are supported by the collected data and the Qi metric.

[1]  Norman E. Fenton,et al.  Software Metrics: A Rigorous Approach , 1991 .

[2]  Marco Scotto,et al.  Visual identification of software evolution patterns , 2007, IWPSE '07.

[3]  Lionel C. Briand,et al.  Exploring the relationships between design measures and software quality in object-oriented systems , 2000, J. Syst. Softw..

[4]  Mourad Badri,et al.  Empirical Analysis of Object-Oriented Design Metrics: Towards a New Metric Using Control Flow Paths and Probabilities , 2009, J. Object Technol..

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

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

[7]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[8]  Sinan Eski,et al.  An Empirical Study on Object-Oriented Metrics and Software Evolution in Order to Reduce Testing Costs by Predicting Change-Prone Classes , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

[9]  Michele Marchesi,et al.  Studying the Evolution of Quality Metrics in an Agile/Distributed Project , 2006, XP.

[10]  Mourad Badri,et al.  Evaluating the Effect of Control Flow on the Unit Testing Effort of Classes: An Empirical Analysis , 2012, Adv. Softw. Eng..

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

[12]  Andreas Zeller,et al.  Mining metrics to predict component failures , 2006, ICSE.

[13]  Jens H. Weber,et al.  Predicting maintainability with object-oriented metrics -an empirical comparison , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[14]  Bruce McMillin,et al.  Software engineering: What is it? , 2018, 2018 IEEE Aerospace Conference.

[15]  Tom Mens,et al.  Future trends in software evolution metrics , 2001, IWPSE '01.

[16]  Yuming Zhou,et al.  Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults , 2006, IEEE Transactions on Software Engineering.

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

[18]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[19]  Mourad Badri,et al.  Metrics and Software Quality Evolution: A Case Study on Open Source Software , 2013 .

[20]  Arvinder Kaur,et al.  Empirical analysis for investigating the effect of object-oriented metrics on fault proneness: a replicated case study , 2009 .

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

[22]  Young Lee,et al.  Metrics and Evolution in Open Source Software , 2007 .

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

[24]  Mourad Badri,et al.  Empirical Analysis for Investigating the Effect of Control Flow Dependencies on Testability of Classes , 2011, SEKE.

[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]  Juan Fernández-Ramil,et al.  The evolution of Eclipse , 2008, 2008 IEEE International Conference on Software Maintenance.

[27]  N. Drouin,et al.  On understanding software quality evolution from a defect perspective: A case study on an open source software system , 2012, 2012 International Conference on Computer Systems and Industrial Informatics.

[28]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[29]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

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

[31]  Srini Ramaswamy,et al.  Using bug reports as a software quality measure , 2011, ICIQ.

[32]  Arvinder Kaur,et al.  Empirical validation of object-oriented metrics for predicting fault proneness models , 2010, Software Quality Journal.

[33]  Jan Bosch,et al.  Design Erosion: Problems & Causes , 2001 .