A systematic and efficient approach for identifying architectural technical debt - Sousa, Armando Soares (2024)
Architectural Technical Debt (ATD) refers to the accumulated costs and trade-offs that arise from architectural decisions and technical trade-offs made during the software development process. It results from the compromises made to meet short-term goals and deadlines, often leading to long-term consequences in terms of system quality, maintainability, and evolution. It is one of the leading Technical Debts (TD) that most impact maintaining complex software systems. Sometimes, due to a lack of information, software engineers rely mainly on source code artifacts as a source of information to manage ATD, which is a challenging task. For this, it is necessary to identify which source code artifacts are related to architectural problems and decide whether these artifacts are leading to a recurring and increasing maintenance effort over time. This thesis aims to propose an automated approach to identifying architectural technical debt and its impact on source code files using Architectural Smells, code metrics, historical data, and information from Git repositories. The approach employs a range of research techniques, including literature review, case studies, interviews with practitioners, and generalization assessment using ChatGPT. Based on the Design Science Method, we present a solution that can be used by researchers and industry practitioners to identify ATD-related code artifacts in code repositories under configuration management. The proposed method allows us to identify source code artifacts that help refactor decision-making for ATD resolution without requiring evaluation by experts in software architecture. Our analysis revealed that source code files associated with Architectural Smells, which are frequently modified and exhibit increasing size and complexity over time, are more likely to be associated with ATD. Therefore, we can conclude that it is feasible to systematically identify the presence of ATD by solely using information from source code artifacts within a Version Control System. This automated approach offers potential benefits for developers by providing insights into architectural issues and reducing the search space for ATD effects on the project’s source code artifacts.