Abstract
Software systems must evolve over time or become increasingly irrelevant says one of Lehman’s laws of software evolution. Many studies have been presented in the literature that investigate the evolution of software systems but few have focused on the evolution of technical debt. In this paper we study sixty-six Java open-source software projects from the Apache ecosystem focusing on the evolution of technical debt. We analyze the evolution of these systems over the past five years at the temporal granularity level of weekly snapshots. We calculate the trends of the technical debt time series but we also investigate the lower-level constituent components of this technical debt. We aggregate some of the information to the ecosystem level.
Our findings show that the technical debt together with source code metrics increase for the majority of the systems. However, technical debt normalized to the size of the system actually decreases over time in the majority of the systems under investigation. Furthermore, we discover that some of the most frequent and time-consuming types of technical debt are related to improper exception handling and code duplication.
Keywords
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 subscriptionsNotes
- 1.
- 2.
Software Quality Assessment based on Lifecycle Expectations.
- 3.
This problem is not exclusive to SonarQube. We are not aware of any analysis tools that perform complex, system-level analysis without re-analyzing the entire system when presented with a new version.
- 4.
The ecosystem contains projects written in more than 20 languages, but the majority of the projects is written in Java.
- 5.
References
Li, Z., Avgeriou, P., Liang, P.: A systematic mapping study on technical debt and its management. J. Syst. Softw. 101(C), 193–220 (2015). http://dx.doi.org/10.1016/j.jss.2014.12.027
Manikas, K.: Revisiting software ecosystems research. J. Syst. Softw. 117(C), 84–103 (2016). http://dx.doi.org/10.1016/j.jss.2016.02.003
Lungu, M.: Reverse engineering software ecosystems. Ph.D. dissertation, University of Lugano, November 2009. http://scg.unibe.ch/archive/papers/Lung09b.pdf
Campbell, G.A., Papapetrou, P.P.: SonarQube in Action, 1st edn. Manning Publications Co., Greenwich (2013)
Ilkiewicz, M., Letouzey, J.-L.: Managing technical debt with the sqale method. IEEE Softw. 29, 44–51 (2012)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)
Murphy-Hill, E., Parnin, C., Black, A.P.: How we refactor, and how we know it. In: Proceedings of the 31st International Conference on Software Engineering, ICSE 2009, pp. 287–297. IEEE Computer Society, Washington, DC (2009). http://dx.doi.org/10.1109/ICSE.2009.5070529
Olbrich, S., Cruzes, D.S., Basili, V., Zazworka, N.: The evolution and impact of code smells: a case study of two open source systems. In: 2009 3rd International Symposium on Empirical Software Engineering and Measurement, pp. 390–400, October 2009
Zazworka, N., Shaw, M.A., Shull, F., Seaman, C.: Investigating the impact of design debt on software quality. In: Proceedings of the 2nd Workshop on Managing Technical Debt, MTD 2011, pp. 17–23. ACM, New York (2011). http://doi.acm.org/10.1145/1985362.1985366
Peters, R., Zaidman, A.: Evaluating the lifespan of code smells using software repository mining. In: 2012 16th European Conference on Software Maintenance and Reengineering, pp. 411–416, March 2012
Chatzigeorgiou, A., Manakos, A.: Investigating the evolution of code smells in object-oriented systems. Innov. Syst. Softw. Eng. 10(1), 3–18 (2014). http://dx.doi.org/10.1007/s11334-013-0205-z
Curtis, B., Sappidi, J., Szynkarski, A.: Estimating the size, cost, and types of technical debt. In: Proceedings of the Third International Workshop on Managing Technical Debt, MTD 2012, pp. 49–53. IEEE Press, Piscataway (2012). http://dl.acm.org/citation.cfm?id=2666036.2666045
Vasilescu, B., Serebrenik, A., Goeminne, M., Mens, T.: On the variation and specialisation of workload - a case study of the gnome ecosystem community. Empirical Softw. Eng. 19(4), 955–1008 (2013)
Lungu, M., Malnati, J., Lanza, M.: Visualizing gnome with the small project observatory. In: Godfrey, M.W., Whitehead, J. (eds.) MSR, pp. 103–106. IEEE Computer Society (2009). http://dblp.uni-trier.de/db/conf/msr/msr2009.html#LunguML09
Bavota, G., Canfora, G., Penta, M.D., Oliveto, R., Panichella, S.: The evolution of project inter-dependencies in a software ecosystem: the case of apache. In: Proceedings of the 2013 IEEE International Conference on Software Maintenance, ICSM 2013, pp. 280–289. IEEE Computer Society, Washington, DC (2013). http://dx.doi.org/10.1109/ICSM.2013.39
Decan, A., Mens, T., Claes, M., Grosjean, P.: When github meets cran: an analysis of inter-repository package dependency problems. In: 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol. 1, pp. 493–504, March 2016
Robbes, R., Lungu, M., Roethlisberger, D.: How do developers react to API deprecation? the case of a Smalltalk ecosystem. In: Proceedings of the 20th International Symposium on the Foundations of Software Engineering (FSE 2012), pp. 56:1–56:11 (2012)
Tourani, P., Jiang, Y., Adams, B.: Monitoring sentiment in open source mailing lists: exploratory study on the apache ecosystem. In: Proceedings of 24th Annual International Conference on Computer Science and Software Engineering, CASCON 2014, pp. 34–44 (2014)
Tufano, M., Palomba, F., Bavota, G., Oliveto, R., Di Penta, M., De Lucia, A., Poshyvanyk, D.: When and why your code starts to smell bad. In: Proceedings of the 37th International Conference on Software Engineering, ICSE 2015, vol. 1, pp. 403–414. IEEE Press, Piscataway (2015). http://dl.acm.org/citation.cfm?id=2818754.2818805
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Digkas, G., Lungu, M., Chatzigeorgiou, A., Avgeriou, P. (2017). The Evolution of Technical Debt in the Apache Ecosystem. In: Lopes, A., de Lemos, R. (eds) Software Architecture. ECSA 2017. Lecture Notes in Computer Science(), vol 10475. Springer, Cham. https://doi.org/10.1007/978-3-319-65831-5_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-65831-5_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-65830-8
Online ISBN: 978-3-319-65831-5
eBook Packages: Computer ScienceComputer Science (R0)