Publication | Closed Access
Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles
66
Citations
67
References
2019
Year
Software MaintenanceEngineeringArchitectural PatternSoftware EngineeringSoftware AnalysisFormal VerificationSoftware ArchitectureSocial SciencesRevision HistoryDesignComputer ScienceSoftware DesignArchitectural DesignArchitecture AnalysisProgram AnalysisSoftware TestingFormal MethodsSoftware Architecture RecoveryArchitecture Anti-patternsAnti-patternsSystem SoftwareChange-prone FilesDesign Principles
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1