An Empirical Study of the Impact of Two Antipatterns, Blob and Spaghetti Code, On Program Comprehension

被引:205
作者
Abbes, Marwen [1 ,3 ]
Khomh, Foutse [2 ]
Gueheneuc, Yann-Gael [3 ]
Antoniol, Giuliano [3 ]
机构
[1] Univ Montreal, Dept Informat & Rech Operat, Montreal, PQ H3C 3J7, Canada
[2] Queens Univ, Dept Elec & Comp Engn, Kingston, ON K7L 3N6, Canada
[3] Ecole Polytech Montreal, SOCCER Lab, DGIGL, Montreal, PQ, Canada
来源
2011 15TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR) | 2011年
关键词
Antipatterns; Blob; Spaghetti Code; Program Comprehension; Program Maintenance; Empirical Software Engineering;
D O I
10.1109/CSMR.2011.24
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Antipatterns are "poor" solutions to recurring design problems which are conjectured in the literature to make object-oriented systems harder to maintain. However, little quantitative evidence exists to support this conjecture. We performed an empirical study to investigate whether the occurrence of antipatterns does indeed affect the understandability of systems by developers during comprehension and maintenance tasks. We designed and conducted three experiments, with 24 subjects each, to collect data on the performance of developers on basic tasks related to program comprehension and assessed the impact of two antipatterns and of their combinations: Blob and Spaghetti Code. We measured the developers' performance with: (1) the NASA task load index for their effort; (2) the time that they spent performing their tasks; and, (3) their percentages of correct answers. Collected data show that the occurrence of one antipattern does not significantly decrease developers' performance while the combination of two antipatterns impedes significantly developers. We conclude that developers can cope with one antipattern but that combinations of antipatterns should be avoided possibly through detection and refactorings.
引用
收藏
页码:181 / 190
页数:10
相关论文
共 36 条
[1]  
[Anonymous], NASA TASK LOAD INDEX, P1
[2]  
[Anonymous], 1998, AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
[3]  
[Anonymous], 2007, HDB PARAMETRIC NONPA
[4]  
[Anonymous], 2007, Eye tracking methodology: Theory and practice, DOI DOI 10.1007/978-3-319-57883-5
[5]  
Chatzigeorgiou A., 2010, QUATIC 10 P 7 INT C
[6]  
Coplien JamesO., 2005, Organizational Patterns of Agile Software Development, V1st
[7]  
D'Ambros Marco, 2010, Proceedings of the Tenth International Conference on Quality Software (QSIC 2010), P23, DOI 10.1109/QSIC.2010.58
[8]  
Du Bois Bart., 2006, IASTED C SOFTWARE EN, P346
[9]  
Fowler M., 2018, Refactoring: Improving the Design of Existing Code
[10]  
HART S G, 1988, P139