Abstract
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.
| Original language | English |
|---|---|
| Article number | 8691586 |
| Pages (from-to) | 1008-1028 |
| Number of pages | 21 |
| Journal | IEEE Transactions on Software Engineering |
| Volume | 47 |
| Issue number | 5 |
| DOIs | |
| State | Published - 1 May 2021 |
Keywords
- Software architecture
- software maintenance
- software quality
Fingerprint
Dive into the research topics of 'Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver