Contenido principal del artículo

Autores

La deuda técnica en arquitectura es una metáfora de las decisiones tomadas por los arquitectos para alcanzar objetivos a corto plazo, pero que pueden dañar la salud del sistema a largo plazo. Esta deuda técnica es difícil de detectar, ya que está asociada a la mantenibilidad y la evolución a largo plazo de un sistema. En esta investigación, describimos un método basado en la evolución de la arquitectura para la identificación de la deuda que está respaldado por un modelo de aprendizaje automático supervisado y se basa en la información obtenida de los artefactos producidos durante el diseño de la arquitectura. Descubrimos que, incluso con una pequeña cantidad de datos, el modelo de aprendizaje automático produce buenos resultados en términos de Recall e incluso de Accuracy. Las experimentaciones realizadas proporcionaron información que nos permite concluir que esta idea funciona bien y podría utilizarse como punto de partida para ayudar a los arquitectos a identificar y gestionar la deuda técnica en arquitectura

Boris Pérez, Universidad Francisco de Paula Santander. Cúcuta, Colombia

https://orcid.org/0000-0001-9249-1756 

1.
Pérez B. Deuda técnica en arquitectura: una estrategia de identificación. inycomp [Internet]. 21 de septiembre de 2023 [citado 10 de mayo de 2024];25(3):e-21413071. Disponible en: https://revistaingenieria.univalle.edu.co/index.php/ingenieria_y_competitividad/article/view/13071

(1) Martini A, Sikander E, Madlani N. A semi-automated framework for the identification and estimation of Architectural Technical Debt: A comparative case-study on the modularization of a software component. Information and Software Technology. 2018 Jan; 93: 264–79. Available from: https://dl.acm.org/doi/abs/10.1016/j.infsof.2017.08.005 DOI: https://doi.org/10.1016/j.infsof.2017.08.005

(2) Ernst NA, Bellomo S, Ozkaya I, Nord RL, Gorton I. Measure it? Manage it? Ignore it? software practitioners and technical debt. Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. 2015 Aug 30 [cited 2023 Apr 19]; 50–60. Available from: https://dl.acm.org/doi/10.1145/2786805.2786848 DOI: https://doi.org/10.1145/2786805.2786848

(3) Besker T, Martini A, Bosch J. Managing architectural technical debt: A unified model and systematic literature review. Journal of Systems and Software. 2018 Jan [cited 2019 Nov 4];135:1–16. Available from: https://www.sciencedirect.com/science/article/abs/pii/S0164121217302121 DOI: https://doi.org/10.1016/j.jss.2017.09.025

(4) Li Z, Avgeriou P, Liang P. A systematic mapping study on technical debt and its management. Journal of Systems and Software. 2015 Mar;101:193–220. Available from: https://www.sciencedirect.com/science/article/abs/pii/S0164121214002854 DOI: https://doi.org/10.1016/j.jss.2014.12.027

(5) Verdecchia R, Malavolta I, Lago P. Architectural Technical Debt Identification: The Research Landscape. In: 2018 IEEE/ACM International Conference on Technical Debt (TechDebt). 2018 [cited 2023 Jul 14]. p. 11–20. Available from: https://ieeexplore.ieee.org/document/8595095 DOI: https://doi.org/10.1145/3194164.3194176

(6) Martini A, Besker T, Bosch J. The Introduction of Technical Debt Tracking in Large Companies. In: 2016 23rd Asia-Pacific Software Engineering Conference (APSEC). 2016 [cited 2023 Jul 14]. p. 161–168. Available from: https://ieeexplore.ieee.org/document/7890584 DOI: https://doi.org/10.1109/APSEC.2016.032

(7) Nord RL, Ozkaya I, Kruchten P, Gonzalez-Rojas M. In Search of a Metric for Managing Architectural Technical Debt. In: 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture. IEEE Xplore; 2012. p. 91–100. Available from: https://ieeexplore.ieee.org/abstract/document/6337765 DOI: https://doi.org/10.1109/WICSA-ECSA.212.17

(8) Li Z, Liang P, Avgeriou P. Architectural Technical Debt Identification Based on Architecture Decisions and Change Scenarios. In: 2015 12th Working IEEE/IFIP Conference on Software Architecture. 2015. p. 65–74. Available from: https://ieeexplore.ieee.org/document/7158505 DOI: https://doi.org/10.1109/WICSA.2015.19

(9) Li Z, Liang P, Avgeriou P. Chapter 9 - Architectural Debt Management in Value-Oriented Architecting. In: Mistrik I, Bahsoon R, Kazman R, Zhang Y, editors. Economics-Driven Software Architecture. Boston: Morgan Kaufmann; 2014 [cited 2023 Jul 14]. p. 183–204. Available from: https://www.sciencedirect.com/science/article/pii/B978012410464800009X DOI: https://doi.org/10.1016/B978-0-12-410464-8.00009-X

(10) Diaz-Pace J. Andres, Tommasel A, Godoy D. [Research Paper] Towards Anticipation of Architectural Smells Using Link Prediction Techniques. In: 2018 IEEE 18th International Working Conference on Source Code Analysis and Manipulation (SCAM). IEEE Xplore; 2018 [cited 2023 Jul 14]. p. 62–71. Available from: https://ieeexplore.ieee.org/document/8530719 DOI: https://doi.org/10.1109/SCAM.2018.00015

(11) de A, Gomes M, Luiz A, Spínola RO. A Contextualized Vocabulary Model for identifying technical debt on code comments. IEEE 7th International Workshop on Managing Technical Debt (MTD). 2015 [cited 2023 Jun 15]. p. 25 – 32. Available from: https://ieeexplore.ieee.org/document/7332621

(12) Tsoukalas D, Kehagias D, Siavvas M, Chatzigeorgiou A. Technical debt forecasting: An empirical study on open-source repositories. Journal of Systems and Software. 2020 Dec [cited 2021 Mar 10]; 170:110777. Available from: https://www.sciencedirect.com/science/article/abs/pii/S0164121220301904 DOI: https://doi.org/10.1016/j.jss.2020.110777

(13) Dai K. Identifying technical debt through issue trackers. Vancouver: University of British Columbia Library. [Vancouver: University of British Columbia Library]: University of British Columbia; 2009 [cited 2019 Oct 11]. Available from: https://open.library.ubc.ca/cIRcle/collections/ubctheses/24/items/1.0374920

(14) Tsintzira A, Arvanitou E, Ampatzoglou A, Chatzigeorgiou A. Applying Machine Learning in Technical Debt Management: Future Opportunities and Challenges. In: International Conference on the Quality of Information and Communications Technology. 2020 [cited 2023 Jul 14]. p. 53–67. Available from: https://link.springer.com/chapter/10.1007/978-3-030-58793-2_5 DOI: https://doi.org/10.1007/978-3-030-58793-2_5

(15) Kazman R, Cai Y, Mo R, Feng Q, Xiao L, Serge Haziyev, et al. A Case Study in Locating the Architectural Roots of Technical Debt. In: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering. 2015 [cited 2023 Jul 14]. p. 179–88. Available from: https://ieeexplore.ieee.org/document/7202962 DOI: https://doi.org/10.1109/ICSE.2015.146

(16) Zeng Z, Liang P, Avgeriou P, Guelfi N, Apostolos Ampatzoglou. An empirical investigation of modularity metrics for indicating architectural technical debt. In: 10th international ACM Sigsoft conference on Quality of software architectures. 2014. p. 119–28.

(17) Verdecchia R, Kruchten P, Lago P, Malavolta I. Building and evaluating a theory of architectural technical debt in software-intensive systems. Journal of Systems and Software. 2021 Jun;176:110925. DOI: https://doi.org/10.1016/j.jss.2021.110925

(18) Verdecchia R. Architectural Technical Debt Identification: Moving Forward. In: IEEE International Conference on Software Architecture Companion (ICSA-C). 2018 [cited 2023 Jul 14]. p. 43–4. Available from: https://ieeexplore.ieee.org/document/8432173 DOI: https://doi.org/10.1109/ICSA-C.2018.00018

(19) Musil J, Ekaputra FJ, Sabou M, Ionescu TC, Schall D, Musil A, et al. Continuous Architectural Knowledge Integration: Making Heterogeneous Architectural Knowledge Available in Large-Scale Organizations. In: IEEE International Conference on Software Architecture (ICSA). 2017 [cited 2023 Jul 14]. p. 189–92. Available from: https://ieeexplore.ieee.org/document/7930216 DOI: https://doi.org/10.1109/ICSA.2017.28

Recibido 2023-07-17
Aceptado 2023-09-12
Publicado 2023-09-21