Are Anti-patterns Coupled? An Empirical Study

Author(s): Wanwangying Ma, Lin Chen, Yuming Zhou, Baowen Xu, Xiaoyu Zhou
Venue: Software Quality, Reliability and Security (QRS), 2015 IEEE International Conference
Date: 2015


This study first explored which of 10 kinds of anti-patterns are likely to appear in the same class using Fisher's exact test and odds ratio. Then, Wilcoxon rank-sum test was employed to determine whether the occurrence of one kind of anti-pattern in a class will positively affect another in its dependent and co-changed classes. Based on these results, following was found: 1) several pairs of anti-patterns tend to be co-located in a class, such as Complex Class and Long Parameter List; 2) some anti-patterns will significantly increase the possibility that its coupled classes participate in certain anti-patterns, but the impact is small in most cases; 3) in ArgoUML, Xalan and Xerces-J, a large proportion of the classes infected with dependent anti-patterns have been changed during maintenance tasks; and 4) there exists some conflicting anti-patterns which are not likely to occur together, e.g. Complex Class and Lazy Class.