TY - GEN
T1 - Identifying and quantifying architectural debt
AU - Xiao, Lu
AU - Cai, Yuanfang
AU - Kazman, Rick
AU - Mo, Ran
AU - Feng, Qiong
N1 - Publisher Copyright:
© 2016 ACM.
PY - 2016/5/14
Y1 - 2016/5/14
N2 - Our prior work showed that the majority of error-prone source files in a software system are architecturally connected. Flawed architectural relations propagate defects among these files and accumulate high maintenance costs over time, just like debts accumulate interest. We model groups of architecturally connected files that accumulate high maintenance costs as architectural debts. To quantify such debts, we formally define architectural debt, and show how to automatically identify debts, quantify their maintenance costs, and model these costs over time. We describe a novel history coupling probability matrix for this purpose, and identify architecture debts using 4 patterns of architectural aws shown to correlate with reduced software quality. We evaluate our approach on 7 large-scale open source projects, and show that a significant portion of total project maintenance effort is consumed by paying interest on architectural debts. The top 5 architectural debts, covering a small portion (8% to 25%) of each project's error-prone files, capture a significant portion (20% to 61%) of each project's maintenance effort. Finally, we show that our approach reveals how architectural issues evolve into debts over time.
AB - Our prior work showed that the majority of error-prone source files in a software system are architecturally connected. Flawed architectural relations propagate defects among these files and accumulate high maintenance costs over time, just like debts accumulate interest. We model groups of architecturally connected files that accumulate high maintenance costs as architectural debts. To quantify such debts, we formally define architectural debt, and show how to automatically identify debts, quantify their maintenance costs, and model these costs over time. We describe a novel history coupling probability matrix for this purpose, and identify architecture debts using 4 patterns of architectural aws shown to correlate with reduced software quality. We evaluate our approach on 7 large-scale open source projects, and show that a significant portion of total project maintenance effort is consumed by paying interest on architectural debts. The top 5 architectural debts, covering a small portion (8% to 25%) of each project's error-prone files, capture a significant portion (20% to 61%) of each project's maintenance effort. Finally, we show that our approach reveals how architectural issues evolve into debts over time.
KW - Software Architecture
KW - Software Quality
KW - Technical Debt
UR - http://www.scopus.com/inward/record.url?scp=84971392997&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84971392997&partnerID=8YFLogxK
U2 - 10.1145/2884781.2884822
DO - 10.1145/2884781.2884822
M3 - Conference contribution
AN - SCOPUS:84971392997
T3 - Proceedings - International Conference on Software Engineering
SP - 488
EP - 498
BT - Proceedings - 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering Companion, ICSE 2016
T2 - 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering, ICSE 2016
Y2 - 14 May 2016 through 22 May 2016
ER -