Abstract
Lehman’s well-known laws of software evolution have existed since the early 1980’s and although they have been nuanced, augmented and discussed many times since then, software and software development practices have changed dramatically since then, not least due to the rise and popularity of open source software (OSS). OSS is written collaboratively with the process and products publically observable, whereas the original laws were derived based on a very different context. The question then arises if Lehman’s laws apply to modern day OSS software. The GitHub repository is the most comprehensive source of OSS projects and is used here to obtain data on how OSS projects have evolved. This work uses one hundred open source projects hosted on GitHub. Metrics are obtained via the provided API, using a purpose-built workbench and several of Lehman’s laws are evaluated using the data available. Coupled with a critique of how judgements can be made from the data available, the study has discovered that the evidence does not support many of the laws. An important proviso with such an approach is the limitation on what data can be extracted and/or inferred from the GitHub API. Nonetheless, there is enough of a challenge made to the laws to warrant further study and a need to revisit some of the laws in the context of open source development.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Paulson, J.W., Succi, G., Eberlein, A.: An empirical study of open-source and closed-source software products. IEEE Softw. 30, 246–256 (2004)
Greer, D., Conradi, R.: Software project initiation and planning - an empirical study. IET Softw. 3(5), 356–368 (2009)
Lehman, M.M.: On understanding laws, evolution, and conservation in the large-program life cycle. J. Syst. Softw. 1, 213–221 (1980)
Lehman, M.M.: Laws of software evolution revisited. In: Montangero, C. (ed.) EWSPT 1996. LNCS, vol. 1149, pp. 108–124. Springer, Heidelberg (1996). https://doi.org/10.1007/BFb0017737
Kalliamvakou, E., Gousios, G., Blincoe, K., Singer, L., German, D.M., Damian, D.: The promises and perils of mining github. In: Proceedings of 11th Working Conference on Mining Software Repositories, pp. 92–101 (2014)
GitHub Features (2019). https://github.com/features. Accessed 31 Mar 2019
Gonzalez-Barahona, J.M., Robles, G., Herraiz, I., Ortega, F.: Studying the laws of software evolution in a long-lived FLOSS project. Softw. Evol. Process 26(7), 589–612 (2014)
Syeed, M., Hammouda, I., Syatä, T.: Evolution of open source software projects: a systematic literature review. J. Softw. 8(11), 2815–2829 (2013)
Yu, L., Mishra, A.: An empirical study of Lehman’s law on software quality evolution. Int. J. Softw. Inform. 7(3), 469–481 (2013)
Sheoran, J., Blincoe, K., Kalliamvakou, E., Damian, D., Ell, J.: Understanding ‘watchers’ on GitHub. In: Proceedings of 11th Working Conference on Mining Software Repositories, pp. 336–339 (2014)
Ben, X., Beijun, S., Weicheng, Y.: Mining developer contribution in open source software using visualization techniques. In: Proceedings of 3rd International Conference Intelligent System Design and Engineering Applications (ISDEA), pp. 934–937 (2013)
Gousios, G., Pinzger, M., van Deursen, A.: An exploratory study of the pull-based software development model. In: Proceedings of the 36th International Conference on Software Engineering, pp. 345–355 (2014)
Borges, H., Valente, M.T., Hora, A., Coelho, J.: On the Popularity of GitHub Applications: A Preliminary Note. arXiv:1507.00604 (2015). Accessed 31 Mar 2019
Bissyandé, T.F.: Got issues? Who cares about it? An investigation of issue trackers of 105 projects. In: Proceedings of IEEE 24th International Symposium on Software Reliability Engineering, pp. 188–197 (2013)
Neamtiu, I., Xie, G., Chen, J.: Towards a better understanding of software evolution: an empirical study on open-source software. J. Softw. Evol. Process 25, 193–218 (2013)
Skoulis, I., Vassiliadis, P., Zarras, A.: Open-source databases: within, outside, or beyond Lehman’s laws of software evolution? In: Jarke, M., et al. (eds.) CAiSE 2014. LNCS, vol. 8484, pp. 379–393. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-07881-6_26
Israeli, A., Feitelson, D.G.: The Linux kernel as a case study in software evolution. J. Syst. Softw. 83(3), 485–501 (2010)
Mens, T., Fernández-Ramil, J.: The evolution of Eclipse. In: Proceedings of International Conference Software Maintenance, pp. 386–395 (2008)
Fernandez-Ramil, J., Lozano, A., Wermelinger, M., Capiluppi, A.: Empirical studies of open source evolution. In: Mens, T., Demeyer, S. (eds.) Software Evolution, pp. 263–288. Springer, Berlin (2008). https://doi.org/10.1007/978-3-540-76440-3_11
Stroulia, E., Kapoor, R.: Metrics of refactoring-based development: an experience report. In: Wang, X., Johnston, R., Patel, S. (eds.) OOIS, pp. 113–122. Springer, Heidelberg (2001). https://doi.org/10.1007/978-1-4471-0719-4_13
Graylin, J., Hale, J., Smith, R.K., Hale, D., Kraft, N.A., Ward, C.: Cyclomatic complexity and lines of code: empirical evidence of a stable linear relationship. J. Softw. Eng. Appl. 2(3), 137–143 (2009)
La, A.: Language Trends on GitHub. https://github.com/blog/2047-language-trends-on-github. Accessed 31 Mar 2019
RFoundation: The R Project for Statistical Computing. https://www.r-project.org/. Accessed 31 Mar 2019
McGee, S., Greer, D.: A software requirements change source taxonomy. In: 4th International Conference on Software Engineering Advances, ICSEA 2009, Includes SEDES 2009: Simposio para Estudantes de Doutoramento em Engenharia de Software (2009)
McGee, S., Greer, D.: Towards an understanding of the causes and effects of software requirements change: two case studies. Requir. Eng. 17(2), 133–155 (2012)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
McDonald, J., Greer, D. (2019). Investigating Evolution in Open Source Software. In: Misra, S., et al. Computational Science and Its Applications – ICCSA 2019. ICCSA 2019. Lecture Notes in Computer Science(), vol 11623. Springer, Cham. https://doi.org/10.1007/978-3-030-24308-1_20
Download citation
DOI: https://doi.org/10.1007/978-3-030-24308-1_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-24307-4
Online ISBN: 978-3-030-24308-1
eBook Packages: Computer ScienceComputer Science (R0)