Architectural Technical Debt (ATD) is a persistent challenge in software development, often hindered by the absence of comprehensive architectural documentation. This research presents an automated approach to detect source code files indicative of ATD within a version control system. By analyzing code metrics, change history, and architectural smells, we identify files exhibiting signs of increasing complexity and maintenance effort. Our method was applied to the Apache Cassandra repository and validated through interviews with Ericsson developers. Results indicate a strong correlation between files with specific architectural smells, frequent modifications, and growing complexity, and the presence of ATD. This study demonstrates the feasibility of using source code analysis to systematically identify potential architectural issues, aiding developers in prioritizing refactoring efforts and improving software quality.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

An Automated Approach to Identify Source Code Files Affected by Architectural Technical Debt

  • Armando Sousa,
  • Lincoln Rocha,
  • Ricardo Britto,
  • Guilherme Avelino

摘要

Architectural Technical Debt (ATD) is a persistent challenge in software development, often hindered by the absence of comprehensive architectural documentation. This research presents an automated approach to detect source code files indicative of ATD within a version control system. By analyzing code metrics, change history, and architectural smells, we identify files exhibiting signs of increasing complexity and maintenance effort. Our method was applied to the Apache Cassandra repository and validated through interviews with Ericsson developers. Results indicate a strong correlation between files with specific architectural smells, frequent modifications, and growing complexity, and the presence of ATD. This study demonstrates the feasibility of using source code analysis to systematically identify potential architectural issues, aiding developers in prioritizing refactoring efforts and improving software quality.