Technical Debt of Software Projects Based on Merge Code Comments
DOI:
https://doi.org/10.5753/jserd.2025.4801Keywords:
merge conflicts, technical debt, software engineeringAbstract
Developers use code comments for various reasons, such as explaining code, documenting specifications, communicating with other developers, and highlighting upcoming tasks. Software projects with minimal documentation often have a significant number of comments. In this sense, the code comment analysis technique can be used to examine more complex aspects of software projects, such as TD generated by merge conflicts. The TD resulting from the resolution of merge conflicts occurs when the resulting code contains comments that indicate tasks to be performed in the future. There are no studies directly linking merge conflicts and TD. The purpose of this study is to identify and analyze code comments generated when resolving merge conflicts from this perspective. This process can lead to improvements in software quality and help in managing TD. To this end, an exploratory analysis was carried out in 100 software projects, with a specific focus on task annotations originating from the resolution of merge conflicts. The results revealed that 60.61% of the analyzed projects have at least one code comment indicating the creation or maintenance of TD. In addition, metrics such as accuracy, precision, recall, and F1-score were applied across different software projects to enhance the effectiveness and reliability of the built data model. The metric results suggest that the tool was able to correctly classify in most cases, but was not particularly precise in this classification due to the size of the analyzed projects and the variety of task annotations, including the presence of some and the absence of others.
Downloads
References
Ahmed, I., Brindescu, C., Mannan, U. A., Jensen, C., and Sarma, A. (2017). An Empirical Examination of the Relationship between Code Smells and Merge Conflicts. In 2017 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), pages 58–67.
Bavota, G. and Russo, B. (2016). A large-scale empirical study on self-admitted technical debt. In Proceedings of the 13th International Conference on Mining Software Repositories, pages 315–326, Austin Texas. ACM.
Borges, H. and Valente, M. T. (2018). What’s in a GitHub Star? Understanding Repository Starring Practices in a Social Coding Platform. Journal of Systems and Software, 146:112–129. arXiv:1811.07643 [cs].
Cunningham, W. (1992). The WyCash Portfolio Management System.
de Freitas Farias, M. A., de Mendonca Neto, M. G., da Silva, A. B., and Spinola, R. O. (2015). A Contextualized Vocabulary Model for identifying technical debt on code comments. In 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD), pages 25–32, Bremen, Germany. IEEE.
Hattori, L. P. and Lanza, M. (2008). On the nature of commits. In 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops, pages 63–71. ISSN: 2151-0849.
Huang, Q., Shihab, E., Xia, X., Lo, D., and Li, S. (2018). Identifying self-admitted technical debt in open source projects using text mining. Empirical Software Engineering, 23(1):418–451.
Kruchten, P., Nord, R. L., and Ozkaya, I. (2012). Technical Debt: From Metaphor to Theory and Practice. IEEE Software, 29(6):18–21. Conference Name: IEEE Software.
Kruchten, P., Nord, R. L., Ozkaya, I., and Falessi, D. (2013). Technical debt: towards a crisper definition report on the 4th international workshop on managing technical debt. ACM SIGSOFT Software Engineering Notes, 38(5):51–54.
Li, Z., Avgeriou, P., and Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101:193–220.
Lim, E., Taksande, N., and Seaman, C. (2012). A Balancing Act: What Software Practitioners Have to Say about Technical Debt. IEEE Software, 29(6):22–27. Conference Name: IEEE Software.
Mahmoudi, M., Nadi, S., and Tsantalis, N. (2019). Are Refactorings to Blame? An Empirical Study of Refactorings in Merge Conflicts. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER), pages 151–162. ISSN: 1534-5351.
Maldonado, E. C., Valente, M. T., and Cedrim, D. (2017a). On the use of self-admitted technical debt in open source projects. Empirical Software Engineering, 22(4):1658–1706. Examines the presence and impact of self-admitted technical debt in open source software.
Maldonado, E. D. S., Abdalkareem, R., Shihab, E., and Serebrenik, A. (2017b). An Empirical Study on the Removal of Self-Admitted Technical Debt. In 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 238–248, Shanghai. IEEE.
Maldonado, E. d. S. and Shihab, E. (2015). Detecting and quantifying different types of self-admitted technical Debt. In 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD), pages 9–15, Bremen, Germany. IEEE.
Melo de Araújo, M. H., Costa, C., and Fontão, A. (2023). Analysis of the technical debt of software projects based on merge code comments. In Proceedings of the 17th Brazilian Symposium on Software Components, Architectures, and Reuse, pages 21–30.
Mohayeji, H., Ebert, F., Arts, E., Constantinou, E., and Serebrenik, A. (2022). On the adoption of a TODO bot on GitHub: a preliminary study. In Proceedings of the Fourth International Workshop on Bots in Software Engineering, pages 23–27, Pittsburgh Pennsylvania. ACM.
Nieminen, A. (2012). Real-time collaborative resolving of merge conflicts. In 8th International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom), pages 540–543.
Potdar, A. and Shihab, E. (2014). An Exploratory Study on Self-Admitted Technical Debt. In 2014 IEEE International Conference on Software Maintenance and Evolution, pages 91–100. ISSN: 1063-6773.
Ren, X., Xing, Z., Xia, X., Lo, D., Wang, X., and Grundy, J. (2019). Neural Network-based Detection of Self-Admitted Technical Debt: From Performance to Explainability. ACM Transactions on Software Engineering and Methodology, 28(3):1–45.
Rios, N., Spínola, R., and Mendonça, M. (2021). Organização de um Conjunto de Descobertas Experimentais sobre Causas e Efeitos da Dívida Técnica através de uma Família de Surveys Globalmente Distribuída. In Anais Estendidos do Congresso Brasileiro de Software: Teoria e Prática (CBSoft), pages 80–94. SBC. ISSN: 0000-0000.
Seaman, C., Guo, Y., Zazworka, N., Shull, F., Izurieta, C., Cai, Y., and Vetrò, A. (2012). Using technical debt data in decision making: Potential decision approaches. In 2012 Third International Workshop on Managing Technical Debt (MTD), pages 45–48.
Storey, M.-A., Ryall, J., Bull, R. I., Myers, D., and Singer, J. (2008). TODO or to bug: exploring how task annotations play a role in the work practices of software developers. In Proceedings of the 13th international conference on Software engineering - ICSE ’08, page 251, Leipzig, Germany. ACM Press.
Tsantalis, N., Yoshida, N., Wang, S., Kamei, Y., and Kashiwa, K. (2018). Identifying refactoring opportunities during merge conflict resolution. Journal of Systems and Software, 146:124–142. Explores the role of refactoring during merge conflict resolution.
Wang, H. et al. (2024). Just-in-time TODO-Missed commits detection. IEEE Transactions on Software Engineering.
Zhao, W., Yin, G., Lo, D., and Li, S. (2017). Automated detection of merge conflicts in version control systems. IEEE Transactions on Software Engineering, 43(8):659–683. Discusses the challenges of merge conflicts and their relationship with code quality.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2025 Marcos Henrique Melo de Araújo, Catarina Costa, Awdren Fontão

This work is licensed under a Creative Commons Attribution 4.0 International License.

