TY - JOUR
T1 - Detecting the Locations and Predicting the Maintenance Costs of Compound Architectural Debts
AU - Xiao, Lu
AU - Cai, Yuanfang
AU - Kazman, Rick
AU - Mo, Ran
AU - Feng, Qiong
N1 - Publisher Copyright:
© 1976-2012 IEEE.
PY - 2022/9/1
Y1 - 2022/9/1
N2 - Architectural Technical Debt (ATD) refers to sub-optimal architectural design in a software system that incurs high maintenance 'interest' over time. Previous research revealed that ATD has significant negative impact on daily development. This paper contributes an approach to enable an architect to precisely locate ATDs, as well as capture the trajectory of maintenance cost on each debt, based on which, predict the cost of the debt in a future release. The ATDs are expressed in four typical patterns, which entail the core of each debt. Furthermore, we aggregate compound ATDs to capture the complicated relationship among multiple ATD instances, which should be examined together for effective refactoring solutions. We evaluate our approach on 18 real-world projects. We identified ATDs that persistently incur significant (up to 95 percent of) maintenance costs in most projects. The maintenance costs on the majority of debts fit into a linear regression model-indicating stable 'interest' rate. In five projects, 12.1 to 27.6 percent of debts fit into an exponential model, indicating increasing 'interest' rate, which deserve higher priority from architects. The regression models can accurately predict the costs of the majority of (82 to 100 percent) debts in the next release of a system. By aggregating related ATDs, architects can focus on a small number of cost-effective compound debts, which contain a relatively small number of source files, but account for a large portion of maintenance costs in their projects. With these capabilities, our approach can help architects make informed decisions regarding whether, where, and how to refactor for eliminating ATDs in their systems.
AB - Architectural Technical Debt (ATD) refers to sub-optimal architectural design in a software system that incurs high maintenance 'interest' over time. Previous research revealed that ATD has significant negative impact on daily development. This paper contributes an approach to enable an architect to precisely locate ATDs, as well as capture the trajectory of maintenance cost on each debt, based on which, predict the cost of the debt in a future release. The ATDs are expressed in four typical patterns, which entail the core of each debt. Furthermore, we aggregate compound ATDs to capture the complicated relationship among multiple ATD instances, which should be examined together for effective refactoring solutions. We evaluate our approach on 18 real-world projects. We identified ATDs that persistently incur significant (up to 95 percent of) maintenance costs in most projects. The maintenance costs on the majority of debts fit into a linear regression model-indicating stable 'interest' rate. In five projects, 12.1 to 27.6 percent of debts fit into an exponential model, indicating increasing 'interest' rate, which deserve higher priority from architects. The regression models can accurately predict the costs of the majority of (82 to 100 percent) debts in the next release of a system. By aggregating related ATDs, architects can focus on a small number of cost-effective compound debts, which contain a relatively small number of source files, but account for a large portion of maintenance costs in their projects. With these capabilities, our approach can help architects make informed decisions regarding whether, where, and how to refactor for eliminating ATDs in their systems.
KW - Software architecture
KW - debt quantification and prioritization
KW - software maintenance
KW - technical debt
UR - http://www.scopus.com/inward/record.url?scp=85112159655&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85112159655&partnerID=8YFLogxK
U2 - 10.1109/TSE.2021.3102221
DO - 10.1109/TSE.2021.3102221
M3 - Article
AN - SCOPUS:85112159655
SN - 0098-5589
VL - 48
SP - 3686
EP - 3715
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
IS - 9
ER -