Logo image
Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles
Journal article   Open access

Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles

Ran Mo, Yuanfang Cai, Rick Kazman, Lu Xiao and Qiong Feng
IEEE transactions on software engineering, v 47(5), pp 1008-1028
01 May 2021
url
https://doi.org/10.1109/tse.2019.2910856View
Accepted (AM)Open Access (Publisher-Specific) Open

Abstract

Computer architecture History Java Maintenance engineering Observers Software architecture software maintenance software quality Software systems Tools
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.

Metrics

19 Record Views
41 citations in Scopus

Details

InCites Highlights

Data related to this publication, from InCites Benchmarking & Analytics tool:

Collaboration types
Domestic collaboration
International collaboration
Web of Science research areas
Computer Science, Software Engineering
Engineering, Electrical & Electronic
Logo image