Subjective evaluation of software evolvability using code smells:: An empirical study

被引:109
作者
Mantyla, Mika V. [1 ]
Lassenius, Casper [1 ]
机构
[1] Aalto Univ, Helsinki, Finland
关键词
code smells; subjective evaluation; perceived evaluation; maintainability; evolvability; code metrics; software metrics; human factors;
D O I
10.1007/s10664-006-9002-8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper presents the results of an empirical study on the subjective evaluation of code smells that identify poorly evolvable structures in software. We propose use of the term software evolvability to describe the ease of further developing a piece of software and outline the research area based on four different viewpoints. Furthermore, we describe the differences between human evaluations and automatic program analysis based on software evolvability metrics. The empirical component is based on a case study in a Finnish software product company, in which we studied two topics. First, we looked at the effect of the evaluator when subjectively evaluating the existence of smells in code modules. We found that the use of smells for code evaluation purposes can be difficult due to conflicting perceptions of different evaluators. However, the demographics of the evaluators partly explain the variation. Second, we applied selected source code metrics for identifying four smells and compared these results to the subjective evaluations. The metrics based on automatic program analysis and the human-based smell evaluations did not fully correlate. Based upon our results, we suggest that organizations should make decisions regarding software evolvability improvement based on a combination of subjective evaluations and code metrics. Due to the limitations of the study we also recognize the need for conducting more refined studies and experiments in the area of software evolvability.
引用
收藏
页码:395 / 431
页数:37
相关论文
共 70 条
[1]  
*AFOTEC, 1996, SOFTW MAINT EV GUID
[2]   SOFTWARE RESTRUCTURING [J].
ARNOLD, RS .
PROCEEDINGS OF THE IEEE, 1989, 77 (04) :607-617
[3]   Advanced clone-analysis to support object-oriented system refactoring [J].
Balazinska, M ;
Merlo, E ;
Dagenais, M ;
Lagüe, B ;
Kontogiannis, K .
SEVENTH WORKING CONFERENCE ON REVERSE ENGINEERING - PROCEEDINGS, 2000, :98-107
[4]   Predicting maintenance performance using object-oriented design complexity metrics [J].
Bandi, RK ;
Vaishnavi, VK ;
Turk, DE .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2003, 29 (01) :77-87
[5]   A hierarchical model for object-oriented design quality assessment [J].
Bansiya, J ;
Davis, CG .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2002, 28 (01) :4-17
[6]   A unified framework for coupling measurement in object-oriented systems [J].
Briand, LC ;
Daly, JW ;
Wüst, JK .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1999, 25 (01) :91-121
[7]   A unified framework for cohesion measurement in object-oriented systems [J].
Briand, LC ;
Daly, JW ;
Wust, J .
FOURTH INTERNATIONAL SOFTWARE METRICS SYMPOSIUM, PROCEEDINGS, 1997, :43-53
[8]  
Brown W.J., 1998, ANTIPATTERNS REFACTO
[9]   A METRICS SUITE FOR OBJECT-ORIENTED DESIGN [J].
CHIDAMBER, SR ;
KEMERER, CF .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1994, 20 (06) :476-493
[10]   Managerial use of metrics for object-oriented software: An exploratory analysis [J].
Chidamber, SR ;
Darcy, DP ;
Kemerer, CF .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1998, 24 (08) :629-639