4.6 Article

Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles

Journal

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
Volume 47, Issue 5, Pages 1008-1028

Publisher

IEEE COMPUTER SOC
DOI: 10.1109/TSE.2019.2910856

Keywords

Computer architecture; Maintenance engineering; History; Software systems; Tools; Observers; Java; Software architecture; software maintenance; software quality

Funding

  1. National Science Foundation of the US [CCF-1514315, CCF1514561]

Ask authors/readers for more resources

This paper discusses the architecture anti-patterns that occur in all large-scale software systems and contribute to high maintenance costs, impacting files' bug-proneness and change-proneness. Among all defined architecture anti-patterns, Unstable Interface and Crossing have the most significant impact on files' error-proneness and change-proneness.
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.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.6
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

No Data Available
No Data Available