Evaluating Lehman's Laws of Software Evolution within Software Product Lines: A Preliminary Empirical Study

The evolution of a single system is a task where we deal with the modification of a single product. Lehman’s laws of software evolution were broadly evaluated within this type of systems and the results shown that these single systems evolve according to his stated laws over time. However, when dealing with Software Product Lines (SPL), we need to deal with the modification of several products which include common, variable and product specific assets. Because of the several assets within SPL, each stated law may have a different behavior for each asset kind. Nonetheless, we do not know if the stated laws are still valid for SPL since they were not yet evaluated in this context. Thus, this paper details an empirical investigation where four of the Lehman’s Laws (LL) of Software Evolution were used in an SPL industrial project to understand how the SPL assets evolve over time. This project relates to an application in the medical domain developed in a medium-size company in Brazil. It contains 45 modules and a total of 70.652 bug requests in the tracking system, gathered along the past 10 years. We employed two techniques - the KPSS Test and linear regression analysis, to assess the relationship between LL and SPL assets. Finally, results showed that three laws were supported based on the data employed (continuous change, increasing complexity, and declining quality). The other law (continuing growth) was partly supported, depending on the SPL evaluated asset (common, variable or product-specific).

[1]  Samuel Ajila,et al.  Using traceability mechanisms to support software product line evolution , 2004, Proceedings of the 2004 IEEE International Conference on Information Reuse and Integration, 2004. IRI 2004..

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

[3]  Rachel Harrison,et al.  Evolution in software systems: foundations of the SPE classification scheme , 2006, J. Softw. Maintenance Res. Pract..

[4]  Jaejoon Lee,et al.  Software Product Lines: Going Beyond - 14th International Conference, SPLC 2010, Jeju Island, South Korea, September 13-17, 2010. Proceedings , 2010, SPLC.

[5]  Rainer Koschke,et al.  Supporting the Grow-and-Prune Model in Software Product Lines Evolution Using Clone Detection , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[6]  Meir M. Lehman Programs, life cycles, and laws of software evolution , 1980 .

[7]  Jan Bosch,et al.  Evolution in software product lines: Two cases , 1999 .

[8]  Klaus Schmid A comprehensive product line scoping approach and its validation , 2002, ICSE '02.

[9]  Marco Sinnema,et al.  COSVAM: a technique for assessing software variability in software product families , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[10]  John D. McGregor,et al.  The Evolution of Product Line Assets , 2003 .

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

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

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

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

[15]  Stephen H. Kan,et al.  Metrics and Models in Software Quality Engineering , 1994, SOEN.

[16]  Janice Singer,et al.  Guide to Advanced Empirical Software Engineering , 2007 .

[17]  P. Phillips,et al.  Testing the null hypothesis of stationarity against the alternative of a unit root: How sure are we that economic time series have a unit root? , 1992 .

[18]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

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

[20]  Bennet P. Lientz,et al.  Software Maintenance Management: A Study of the Maintenance of Computer Application Software in 487 Data Processing Organizations , 1980 .

[21]  Samuel Ajila,et al.  Experience report on the effect of market reposition on product line evolution , 2004, Proceedings of the 2004 IEEE International Conference on Information Reuse and Integration, 2004. IRI 2004..

[22]  Krzysztof Czarnecki,et al.  Evolution of the Linux Kernel Variability Model , 2010, SPLC.

[23]  Walter F. Tichy,et al.  Proceedings 25th International Conference on Software Engineering , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

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

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

[26]  Dietmar Pfahl,et al.  Reporting Experiments in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.

[27]  Xin Yan,et al.  Linear Regression Analysis: Theory and Computing , 2009 .

[28]  Chris F. Kemerer,et al.  How software process automation affects software evolution: a longitudinal empirical analysis: Research Articles , 2007 .

[29]  John J. Marciniak,et al.  Encyclopedia of Software Engineering , 1994, Encyclopedia of Software Engineering.

[30]  Serge Demeyer,et al.  Software Evolution , 2010 .