Anti-pattern Mutations and Fault-proneness

Fehmi Jaafar, Foutse Khomh, Yann-Gael Gueheneuc, Mohammad Zulkernine
2014 2014 14th International Conference on Quality Software  
Software evolution and development are continuous activities that have a never-ending cycle. While developers commit changes on a software system to fix bugs or to implement new requirements, they sometimes introduce anti-patterns, which are bad solutions to recurring design problems in the system. Many previous studies have shown that these anti-patterns have negative effects on code quality, in particular fault-proneness. However, it is not clear if and how anti-patterns evolve and which
more » ... tionary behaviors are more fault-prone. This paper presents results from an empirical study aimed at understanding the evolution of anti-patterns in 27 releases of three open-source software systems: ArgoUML, Mylyn, and Rhino. Specifically, the study analyzes the mutations of anti-patterns, the changes that they undergo, and the relation between anti-pattern evolution behaviors and fault-proneness. Results show that (1) anti-patterns mutate from one type of anti-patterns to another, (2) structural changes are behind these mutations, and (3) some mutations are more risky in terms of fault-proneness.
doi:10.1109/qsic.2014.45 dblp:conf/qsic/JaafarKGZ14 fatcat:xig5s7mprfbx7psl7ltas6mxb4