Case study on software refactoring tactics

被引:13
作者
Liu, Hui [1 ,2 ]
Liu, Yang [1 ]
Xue, Guo [1 ,3 ]
Gao, Yuan [1 ]
机构
[1] Beijing Inst Technol, Sch Comp Sci & Technol, Beijing 100081, Peoples R China
[2] Peking Univ, Minist Educ, Key Lab High Confidence Software Technol, Beijing 100871, Peoples R China
[3] Beijing Inst Technol, Sch Comp Sci & Technol, Beijing Lab Intelligent Informat Technol, Beijing 100081, Peoples R China
基金
中国国家自然科学基金;
关键词
software maintenance; software process improvement; software quality; software refactoring tactics; software quality improvement; software external behaviour preservation; root canal refactoring; floss refactoring; rename method; extract method; refactoring density; Eclipse UDC; Eclipse usage data collector; usage data information; OPPORTUNITIES; IDENTIFICATION;
D O I
10.1049/iet-sen.2012.0121
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Refactorings might be done using two different tactics: root canal refactoring and floss refactoring. Root canal refactoring is to set aside an extended period specially for refactoring. Floss refactoring is to interleave refactorings with other programming tasks. However, no large-scale case study on refactoring tactics is available. To this end, the authors carry out a case study to investigate the following research questions. (i) How often are root canal refactoring and floss refactoring employed, respectively? (ii) Are some kinds of refactorings more likely than others to be applied as floss refactorings or root canal refactorings? (iii) Do engineers employing both tactics have obvious bias to or against either of the tactics? They analyse the usage data information collected by Eclipse usage data collector. Results suggest that about 14% of refactorings are root canal refactorings. These findings reconfirm the hypothesis that, in general, floss refactoring is more common than root canal refactoring. The relative popularity of root canal refactoring, however, is much higher than expected. They also find that some kinds of refactorings are more likely than others to be performed as root canal refactorings. Results also suggest that engineers who have explored both tactics obviously tended towards root canal refactoring.
引用
收藏
页码:1 / 11
页数:11
相关论文
共 15 条
[1]   Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures [J].
Bavota, Gabriele ;
De Lucia, Andrea ;
Oliveto, Rocco .
JOURNAL OF SYSTEMS AND SOFTWARE, 2011, 84 (03) :397-414
[2]  
Cusumano M.A., 1995, MICROSOFT SECRETS
[3]  
Fowler M., 2018, Refactoring: Improving the Design of Existing Code
[4]   CCFinder: A multilinguistic token-based code clone detection system for large scale source code [J].
Kamiya, T ;
Kusumoto, S ;
Inoue, K .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2002, 28 (07) :654-670
[5]   Conflict-aware schedule of software refactorings [J].
Liu, H. ;
Li, G. ;
Ma, Z. Y. ;
Shao, W. Z. .
IET SOFTWARE, 2008, 2 (05) :446-460
[6]   Schedule of Bad Smell Detection and Resolution: A New Way to Save Effort [J].
Liu, Hui ;
Ma, Zhiyi ;
Shao, Weizhong ;
Niu, Zhendong .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2012, 38 (01) :220-235
[7]   A survey of software refactoring [J].
Mens, T ;
Tourwé, T .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2004, 30 (02) :126-139
[8]   How are Java']Java software developers usiong the eclipse IDE? [J].
Murphy, Gail C. ;
Kersten, Mik ;
Findlater, Leah .
IEEE SOFTWARE, 2006, 23 (04) :76-+
[9]   Refactoring tools: Fitness for purpose [J].
Murphy-Bill, Emerson ;
Black, Andrew P. .
IEEE SOFTWARE, 2008, 25 (05) :38-44
[10]  
Opdyke W. F., 1992, Refactoring object-oriented frameworks