An exploratory study of the impact of antipatterns on class change- and fault-proneness (bibtex)
by Khomh, Foutse, Penta, Massimiliano Di, Guéhéneuc, Yann Gaël and Antoniol, Giuliano
Abstract:
Antipatterns are poor design choices that are conjectured to make object-oriented systems harder to maintain. We investigate the impact of antipatterns on classes in object-oriented systems by studying the relation between the presence of antipatterns and the change- and fault-proneness of the classes. We detect 13 antipatterns in 54 releases of ArgoUML, Eclipse, Mylyn, and Rhino, and analyse (1) to what extent classes participating in antipatterns have higher odds to change or to be subject to fault-fixing than other classes, (2) to what extent these odds (if higher) are due to the sizes of the classes or to the presence of antipatterns, and (3) what kinds of changes affect classes participating in antipatterns. We show that, in almost all releases of the four systems, classes participating in antipatterns are more change-and fault-prone than others. We also show that size alone cannot explain the higher odds of classes with antipatterns to underwent a (fault-fixing) change than other classes. Finally, we show that structural changes affect more classes with antipatterns than others. We provide qualitative explanations of the increase of change- and fault-proneness in classes participating in antipatterns using release notes and bug reports. The obtained results justify a posteriori previous work on the specification and detection of antipatterns and could help to better focus quality assurance and testing activities.
Reference:
An exploratory study of the impact of antipatterns on class change- and fault-proneness (Khomh, Foutse, Penta, Massimiliano Di, Guéhéneuc, Yann Gaël and Antoniol, Giuliano), In Empirical Software Engineering, Springer US, volume 17, 2012.
Bibtex Entry:
@article{Khomh2012,
abstract = {Antipatterns are poor design choices that are conjectured to make object-oriented systems harder to maintain. We investigate the impact of antipatterns on classes in object-oriented systems by studying the relation between the presence of antipatterns and the change- and fault-proneness of the classes. We detect 13 antipatterns in 54 releases of ArgoUML, Eclipse, Mylyn, and Rhino, and analyse (1) to what extent classes participating in antipatterns have higher odds to change or to be subject to fault-fixing than other classes, (2) to what extent these odds (if higher) are due to the sizes of the classes or to the presence of antipatterns, and (3) what kinds of changes affect classes participating in antipatterns. We show that, in almost all releases of the four systems, classes participating in antipatterns are more change-and fault-prone than others. We also show that size alone cannot explain the higher odds of classes with antipatterns to underwent a (fault-fixing) change than other classes. Finally, we show that structural changes affect more classes with antipatterns than others. We provide qualitative explanations of the increase of change- and fault-proneness in classes participating in antipatterns using release notes and bug reports. The obtained results justify a posteriori previous work on the specification and detection of antipatterns and could help to better focus quality assurance and testing activities.},
author = {Khomh, Foutse and Penta, Massimiliano Di and Gu{\'{e}}h{\'{e}}neuc, Yann Ga{\"{e}}l and Antoniol, Giuliano},
doi = {10.1007/s10664-011-9171-y},
isbn = {1382-3256},
issn = {13823256},
journal = {Empirical Software Engineering},
keywords = {Antipatterns,Empirical software engineering,Mining software repositories,cocome_lit-review},
mendeley-tags = {cocome_lit-review},
number = {3},
pages = {243--275},
publisher = {Springer US},
title = {{An exploratory study of the impact of antipatterns on class change- and fault-proneness}},
url = {http://dx.doi.org/10.1007/s10664-011-9171-y},
volume = {17},
year = {2012}
}
Powered by bibtexbrowser