Abstract
Service-Oriented Architectures (SOA) have become a standard for developing software applications, including but not limited to cloud-based ones and enterprise systems. When using SOA, the software engineers organize the desired functionality into self-contained and independent services, that are invoked through end-points (API calls). At the maintenance phase, the tickets (bugs, functional updates, new features, etc.) usually correspond to specific services. Therefore, for maintenance-related estimates it makes sense to use as unit of analysis the service-per se, rather than the complete project (too coarse-grained analysis) or a specific class (too fine-grained analysis). Currently, some of the most emergent maintenance estimates are related to Technical Debt (TD), i.e., the additional maintenance cost incurred due to code or design inefficiencies. In the literature, there is no established way on how to quantify TD at the service level. To this end, in this paper, we present a novel methodology to measure the TD of each service considering the underlying code that sup-ports the corresponding endpoint. The proposed methodology relies on the method call graph, initiated by the service end-point, and traverses all methods that provide the service functionality. To evaluate the usefulness of this approach, we have conducted an industrial study, validating the methodology (and the accompanying tool) with respect to usefulness, obtained benefits, and usability.
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
Cunningham, W.: The WyCash portfolio management system. In: Proceedings on Object-Oriented Programming Systems, Languages, and Applications, p. 29 (1992)
Zazworka, N., Spínola, R.O., Vetro’, A., Shull, F., Seaman, C.: A case study on effectively identifying technical debt. In: Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering, New York, USA, Apr 2013
Amanatidis, T., Mittas, N., Moschou, A., Chatzigeorgiou, A., Ampatzoglou, A., Angelis, L.: Evaluating the agreement among technical debt measurement tools: building an empirical benchmark of technical debt liabilities. Empir. Softw. Eng. 25(5), 4161–4204 (2020). https://doi.org/10.1007/s10664-020-09869-w
Avgeriou, P.: An overview and comparison of technical debt measurement tools. IEEE Softw. (2021)
Tamburri, D.A., Kruchten, P., Lago, P., van Vliet, H.: What is social debt in software engineering? In: 6th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE), pp. 93–96 (2013)
Zimmermann, O.: Microservices tenets. Comput. Sci. Res. Dev. 32(3–4), 301–310 (2016). https://doi.org/10.1007/s00450-016-0337-0
Pigazzini, I., Fontana, F.A., Lenarduzzi, V., Taibi, D.: Towards microservice smells detection. In: Proceedings of the 3rd International Conference on Technical Debt, Jun 2020
Soares de Toledo, S., Martini, A., Przybyszewska, A., Sjøberg, D.I.K.: Architectural Technical Debt in Microservices: A Case Study in a Large Company. In: IEEE/ACM International Conference on Technical Debt (TechDebt), vol. 2019, pp. 78–87 (2019)
Taibi, D., Lenarduzzi, V., Pahl, C.: Microservices Anti-patterns: A Taxonomy. Springer International Publishing, pp. 111–128 (2020)
Hasan, M., Stroulia, E., Barbosa, D., Alalfi, M.: Analyzing natural-language artifacts of the software process. In: International Conference on Software Maintenance, pp. 1–5 E. (2010)
Alves, N.S., Mendes, T.S., de Mendonça, M.G., Spínola, R.O., Shull, F., Seaman, C.: Identification and management of technical debt: A systematic mapping study. Inf. Softw. Technol. 70, 100–121 (2016)
Li, Z., Avgeriou, P., Liang, P.: A systematic mapping study on technical debt and its management. J. Syst. Softw. 101, 193–220 (2015)
Lefever, J., Cai, Y., Cervantes, H., Kazman, R., Fang, H.: On the lack of consensus among technical debt detection tools. In: Proceedings of the International Conference on Software Engineering (SEIP), pp. 121–130 (2021)
Tsoukalas, D., et al.: Machine Learning for Technical Debt Identification. IEEE Trans. Softw. Eng. (2021)
Campbell, G.A., Papapetrou, P.P.: SonarQube in action. Manning Publications (2013)
Bogner, J., Fritzsch, J., Wagner, S., Zimmermann, A.: Limiting technical debt with maintainability assurance: an industry survey on used techniques and differences with service- and microservice-based systems. In: International Conference on Technical Debt (2018)
Ouni, A., Daagi, M., Kessentini, M., Bouktif, S., Gammoudi, M.M.: A machine learning-based approach to detect web service design defects. In International Conference on Web Services (ICWS), pp. 532–539 (2017)
Král, J., Zemlicka, M.: Popular SOA antipatterns. In: 2009 Computation World: Future Computing, Service Computation, Cognitive, Adaptive, Content, Patterns (2009)
Alzaghoul, E., Bahsoon, R.: Evaluating technical debt in cloud-based Architectures using real options. In: 2014 23rd Australian Software Engineering Conference (2014)
Smith, N., Van Bruggen, D., Tomassetti, F.: Javaparser: visited. Leanpub, Oct 2017
Runeson, P., Höst, M., Austen, R., Regnell, B.: Case Study Research in Software Engineering – Guidelines and Examples. John Wiley & Sons Inc. (2012)
Brooke, J.: System Usability Scale (SUS): A quick-and-dirty method of system evaluation user information. Taylor & Francis (1996)
Seaman, C.B.: Qualitative methods in empirical studies of software engineering. IEEE Trans. Software Eng. 25(4), 557–572 (1999)
Elo, S., Kyngäs, H.: The qualitative content analysis process. J. Adv. Nurs. 62(1), 107–115 (2008)
Spencer, D.: Card Sorting: Designing Usable Categories. Rosenfeld Media, Apr 2009
Acknowledgment
Work reported in this paper has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 871177 (project: SmartCLIDE).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Nikolaidis, N., Ampatzoglou, A., Chatzigeorgiou, A., Tsekeridou, S., Piperidis, A. (2022). Technical Debt in Service-Oriented Software Systems. In: Taibi, D., Kuhrmann, M., Mikkonen, T., Klünder, J., Abrahamsson, P. (eds) Product-Focused Software Process Improvement. PROFES 2022. Lecture Notes in Computer Science, vol 13709. Springer, Cham. https://doi.org/10.1007/978-3-031-21388-5_19
Download citation
DOI: https://doi.org/10.1007/978-3-031-21388-5_19
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-21387-8
Online ISBN: 978-3-031-21388-5
eBook Packages: Computer ScienceComputer Science (R0)