RAID: Tool Support for Refactoring-Aware Code Reviews

被引:5
|
作者
Brito, Rodrigo [1 ]
Valente, Marco Tulio [1 ]
机构
[1] Fed Univ Minas Gerais UFMG, ASERG Grp, Dept Comp Sci, Belo Horizonte, MG, Brazil
关键词
Refactoring; Refactoring-Aware Code Review; Code Review; Textual Diffs;
D O I
10.1109/ICPC52881.2021.00033
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Code review is a key development practice that contributes to improve software quality and to foster knowledge sharing among developers. However, code review usually takes time and demands detailed and time-consuming analysis of textual diffs. Particularly, detecting refactorings during code reviews is not a trivial task, since they are not explicitly represented in diffs. For example, a Move Function refactoring is represented by deleted (-) and added lines (+) of code which can be located in different and distant source code files. To tackle this problem, we introduce RAID, a refactoring-aware and intelligent diff tool. Besides proposing an architecture for RAID, we implemented a Chrome browser plug-in that supports our solution. Then, we conducted a field experiment with eight professional developers who used RAID for three months. We concluded that RAID can reduce the cognitive effort required for detecting and reviewing refactorings in textual diff. Besides documenting refactorings in diffs, RAID reduces the number of lines required for reviewing such operations. For example, the median number of lines to be reviewed decreases from 14.5 to 2 lines in the case of move refactorings and from 113 to 55 lines in the case of extractions.
引用
收藏
页码:265 / 275
页数:11
相关论文
共 50 条
  • [21] LiveRef: a Tool for Live Refactoring Java']Java Code
    Fernandes, Sara
    Aguiar, Ademar
    Restivo, Andre
    PROCEEDINGS OF THE 37TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE 2022, 2022,
  • [22] A Tool Support for Checking Consistency in Model Refactoring
    Thi-Huong Dao
    Thanh-Binh Trinh
    Ninh-Thuan Truong
    2017 9TH INTERNATIONAL CONFERENCE ON KNOWLEDGE AND SYSTEMS ENGINEERING (KSE 2017), 2017, : 100 - 105
  • [23] Towards on Appropriate Software Refactoring Tool Support
    Katic, Marija
    Fertalj, Kresimir
    ACS'09: PROCEEDINGS OF THE 9TH WSEAS INTERNATIONAL CONFERENCE ON APPLIED COMPUTER SCIENCE, 2009, : 140 - 145
  • [24] On refactoring support based on code clone dependency relation
    Yoshida, N
    Higo, Y
    Kamiya, T
    Kusumoto, S
    Inoue, K
    2005 11TH INTERNATIONAL SYMPOSIUM ON SOFTWARE METRICS (METRICS), 2005, : 133 - 142
  • [25] Security-Aware Refactoring Alerting its Impact on Code Vulnerabilities
    Maruyajna, Katsuhisa
    Tokoda, Kensuke
    APSEC 2008:15TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2008, : 445 - +
  • [26] Conflict-aware optimal scheduling of prioritised code clone refactoring
    Zibran, Minhaz Fahim
    Roy, Chanchal Kumar
    IET SOFTWARE, 2013, 7 (03) : 167 - 186
  • [27] A Refactoring Suggestion Tool for Removing Clones in Java']Java Code
    Fontana, Francesca Arcelli
    Zanoni, Marco
    Zanoni, Francesco
    ERCIM NEWS, 2014, (99): : 25 - 26
  • [28] An infrastructure to support meta-differencing and refactoring of source code
    Collard, ML
    18TH IEEE INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2003, : 377 - 380
  • [29] Development of a tool to support refactoring for object pascal programs
    Hatano, Katsuhiko
    Nomura, Yoshinari
    Taniguchi, Hideo
    2002, Kyushu University (07):
  • [30] Prototype of Refactoring Support Tool MCC Focusing on the Naming of Variables
    Tanoue, Satoshi
    Katayama, Teturou
    Kita, Yoshihiro
    Yamaba, Hisaaki
    Okazaki, Naonobu
    ICAROB 2017: PROCEEDINGS OF THE 2017 INTERNATIONAL CONFERENCE ON ARTIFICIAL LIFE AND ROBOTICS, 2017, : P279 - P282