TY - JOUR
T1 - Architecture Anti-Patterns
T2 - Automatically Detectable Violations of Design Principles
AU - Mo, Ran
AU - Cai, Yuanfang
AU - Kazman, Rick
AU - Xiao, Lu
AU - Feng, Qiong
N1 - Publisher Copyright:
© 1976-2012 IEEE.
PY - 2021/5/1
Y1 - 2021/5/1
N2 - In large-scale software systems, error-prone or change-prone files rarely stand alone. They are typically architecturally connected and their connections usually exhibit architecture problems causing the propagation of error-proneness or change-proneness. In this paper, we propose and empirically validate a suite of architecture anti-patterns that occur in all large-scale software systems and are involved in high maintenance costs. We define these architecture anti-patterns based on fundamental design principles and Baldwin and Clark's design rule theory. We can automatically detect these anti-patterns by analyzing a project's structural relationships and revision history. Through our analyses of 19 large-scale software projects, we demonstrate that these architecture anti-patterns have significant impact on files' bug-proneness and change-proneness. In particular, we show that 1) files involved in these architecture anti-patterns are more error-prone and change-prone; 2) the more anti-patterns a file is involved in, the more error-prone and change-prone it is; and 3) while all of our defined architecture anti-patterns contribute to file's error-proneness and change-proneness, Unstable Interface and Crossing contribute the most by far.
AB - In large-scale software systems, error-prone or change-prone files rarely stand alone. They are typically architecturally connected and their connections usually exhibit architecture problems causing the propagation of error-proneness or change-proneness. In this paper, we propose and empirically validate a suite of architecture anti-patterns that occur in all large-scale software systems and are involved in high maintenance costs. We define these architecture anti-patterns based on fundamental design principles and Baldwin and Clark's design rule theory. We can automatically detect these anti-patterns by analyzing a project's structural relationships and revision history. Through our analyses of 19 large-scale software projects, we demonstrate that these architecture anti-patterns have significant impact on files' bug-proneness and change-proneness. In particular, we show that 1) files involved in these architecture anti-patterns are more error-prone and change-prone; 2) the more anti-patterns a file is involved in, the more error-prone and change-prone it is; and 3) while all of our defined architecture anti-patterns contribute to file's error-proneness and change-proneness, Unstable Interface and Crossing contribute the most by far.
KW - Software architecture
KW - software maintenance
KW - software quality
UR - http://www.scopus.com/inward/record.url?scp=85106007420&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85106007420&partnerID=8YFLogxK
U2 - 10.1109/TSE.2019.2910856
DO - 10.1109/TSE.2019.2910856
M3 - Article
AN - SCOPUS:85106007420
SN - 0098-5589
VL - 47
SP - 1008
EP - 1028
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
IS - 5
M1 - 8691586
ER -