Abstract
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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Mens, T., Demeyer, S.: Software Evolution. Springer (2008)
Lehman, M.: Programs, life cycles, and laws of software evolution. Journal Proceedings of the IEEE 68, 1060–1076 (1980)
Barry, E.J., Kemerer, C.F., Slaughter, S.A.: How software process automation affects software evolution: A longitudinal empirical analysis: Research articles. Journal of Software Maintenance and Evolution: Research and Practice 19, 1–31 (2007)
Cook, S., Harrison, R., Lehman, M.M., Wernick, P.: Evolution in software systems: foundations of the SPE classification scheme. Journal of Software Maintenance 18, 1–35 (2006)
Clements, P.C., Northrop, L.: Software Product Lines: Practices and Patterns. In: SEI Series in Software Engineering. Addison-Wesley (2001)
Schmid, K.: A comprehensive product line scoping approach and its validation. In: Proceedings of the 24th International Conference on Software Engineering (ICSE), pp. 593–603. ACM, New York (2002)
Ajila, S., Kaba, A.: Using traceability mechanisms to support software product line evolution. In: Proceedings of the IEEE International Conference on Information Reuse and Integration (IRI), pp. 157–162. IEEE (2004)
Bailetti, A., Ajila, S., Dumitrescu, R.: Experience report on the effect of market reposition on product line evolution. In: Proceedings of the IEEE International Conference on Information Reuse and Integration (IRI), pp. 151–156. IEEE (2004)
Svahnberg, M., Bosch, J.: Evolution in software product lines: Two cases. Journal of Software Maintenance and Evolution: Research and Practice 11, 391–422 (1999)
Israeli, A., Feitelson, D.G.: The linux kernel as a case study in software evolution. Journal of Systems and Software 83, 485–501 (2010)
Lotufo, R., She, S., Berger, T., Czarnecki, K., Wąsowski, A.: Evolution of the linux kernel variability model. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 136–150. Springer, Heidelberg (2010)
Godfrey, M.W., Tu, Q.: Evolution in open source software: A case study. In: IEEE International Conference on Software Maintenance (ICSM), pp. 131–142. IEEE Computer Society, Washington (2000)
Xie, G., Chen, J., Neamtiu, I.: Towards a better understanding of software evolution: An empirical study on open source software. In: IEEE International Conference on Software Maintenance (ICSM), pp. 51–60. IEEE (2009)
Jedlitschka, A., Ciolkowski, M., Pfahl, D.: Reporting experiments in software engineering. In: Shull, F., Singer, J., Sjboerg, D.I.K. (eds.) Guide to Advanced Empirical Software Engineering, pp. 201–228. Springer, London (2008)
Marciniak, J.J.: Encyclopedia of Software Engineering. In: Basili, V.R., Caldiera, G., Rombach, H.D. (eds.) Goal Question Metric Approach 2, pp. 528–532. Wiley-Interscience, Hoboken (1994)
Kemerer, C., Slaughter, S.: An empirical approach to studying software evolution. Journal IEEE Transactions on Software Engineering (TSE) 25, 493–509 (1999)
Lehman, M.M., Ramil, J.F., Wernick, P.D., Perry, D.E., Turski, W.M.: Metrics and laws of software evolution - the nineties view. In: Proceedings of the 4th International Symposium on Software Metrics, pp. 20–32. IEEE Computer Society, Washington (1997)
McCabe, T.J.: A complexity measure. IEEE Transactions on Software Engineering (TSE) 2, 308–320 (1976)
Kan, S.H.: Metrics and Models in Software Quality Engineering. Addison-Wesley, Boston (2002)
Gupta, A., Cruzes, D., Shull, F., Conradi, R., Rønneberg, H., Landre, E.: An examination of change profiles in reusable and non-reusable software systems. Journal of Software Maintenance and Evolution: Research and Practice 22, 359–380 (2010)
Lientz, B.P., Swanson, B.E.: Software Maintenance Management: A Study of the Maintenance of Computer Application Software in 487 Data Processing Organizations. Addison-Wesley (1980)
Kwiatkowski, D., Phillips, P.C.B., Schmidt, P., Shin, Y.: 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? Journal of Econometrics 54, 159–178 (1992)
Yan, X., Su, X.G.: Linear Regression Analysis: Theory and Computing. World Scientific Publishing, River Edge (2009)
Deelstra, S., Sinnema, M., Nijhuis, J., Bosch, J.: Cosvam: a technique for assessing software variability in software product families. In: 20th IEEE International Conference on Software Maintenance (ICSM), pp. 458–462. IEEE (2004)
Mende, T., Beckwermert, F., Koschke, R., Meier, G.: Supporting the grow-and-prune model in software product lines evolution using clone detection. In: 12th European Conference on Software Maintenance and Reengineering (CSMR), pp. 163–172. IEEE (2008)
McGregor, J.D.: The evolution of product line assets. Technical Report, Software Engineering Institute, CMU/SEI-2003-TR-005 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
de Oliveira, R.P., de Almeida, E.S., da Silva Gomes, G.S. (2014). Evaluating Lehman’s Laws of Software Evolution within Software Product Lines: A Preliminary Empirical Study. In: Schaefer, I., Stamelos, I. (eds) Software Reuse for Dynamic Systems in the Cloud and Beyond. ICSR 2015. Lecture Notes in Computer Science, vol 8919. Springer, Cham. https://doi.org/10.1007/978-3-319-14130-5_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-14130-5_4
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-14129-9
Online ISBN: 978-3-319-14130-5
eBook Packages: Computer ScienceComputer Science (R0)