An exploratory study of the impact of antipatterns on class change- and fault-proneness

被引:269
作者
Khomh, Foutse [1 ]
Di Penta, Massimiliano [2 ]
Gueheneuc, Yann-Gael [3 ,4 ]
Antoniol, Giuliano [3 ,4 ]
机构
[1] Queens Univ, Dept Elect & Comp Engn, Kingston, ON, Canada
[2] Univ Sannio, Dept Engn, Benevento, Italy
[3] Ecole Polytech, SOCCER Lab, Montreal, PQ H3C 3A7, Canada
[4] Ecole Polytech, Ptidej Team, Dept Genie Informat & Genie Logiciel, Montreal, PQ H3C 3A7, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Antipatterns; Mining software repositories; Empirical software engineering; SOFTWARE; METRICS; VALIDATION;
D O I
10.1007/s10664-011-9171-y
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:243 / 275
页数:33
相关论文
共 50 条
[1]  
[Anonymous], P 9 WORK C REV ENG W
[2]  
[Anonymous], 1998, AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
[3]  
[Anonymous], 2007, 3 INT WORKSH PRED MO
[4]  
[Anonymous], P 20 INT C AUT SOFTW
[5]  
Antoniol G, 2008, P 18 IBM CTR ADV STU
[6]  
Aversano Lerina., 2007, PROC THE 6 EUROPEAN, P385, DOI DOI 10.1145/1287624.1287680
[7]   A validation of object-oriented design metrics as quality indicators [J].
Basili, VR ;
Briand, LC ;
Melo, WL .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1996, 22 (10) :751-761
[8]   Design patterns and change proneness: An examination of five evolving systems. [J].
Bieman, JM ;
Straw, G ;
Wang, HX ;
Munger, PW ;
Alexander, RT .
NINTH INTERNATIONAL SOFTWARE METRICS SYMPOSIUM, PROCEEDINGS, 2003, :40-49
[9]   An empirical investigation of an object-oriented software system [J].
Cartwright, M ;
Shepperd, M .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2000, 26 (08) :786-796
[10]   A METRICS SUITE FOR OBJECT-ORIENTED DESIGN [J].
CHIDAMBER, SR ;
KEMERER, CF .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1994, 20 (06) :476-493