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 条
  • [11] Refactoring-aware configuration management for object-oriented programs
    Dig, Danny
    Manzoor, Kashif
    Johnson, Ralph
    Nguyen, Tien N.
    ICSE 2007: 29TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2007, : 427 - +
  • [12] Code Smell Analyzer: A Tool To Teaching Support Of Refactoring Techniques Source Code
    Sirqueira, T. F. M.
    Brandl, A. H. M.
    Pedro, E. J. P.
    Silva, R. S.
    Araujo, M. A. P.
    IEEE LATIN AMERICA TRANSACTIONS, 2016, 14 (02) : 877 - 884
  • [13] Beyond the refactoring browser:: Advanced tool support for software refactoring
    Mens, T
    Tourwé, T
    Muñoz, F
    SIXTH INTERNATIONAL WORKSHOP ON PRINCIPLES OF SOFTWARE EVOLUTION, PROCEEDINGS, 2003, : 39 - 44
  • [14] Evaluating software refactoring tool support
    Mealy, Erica
    Strooper, Paul
    2006 AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2006, : 331 - +
  • [15] Toward a Database Refactoring Support Tool
    Hamaji, Kohei
    Nakamoto, Yukikazu
    2016 FOURTH INTERNATIONAL SYMPOSIUM ON COMPUTING AND NETWORKING (CANDAR), 2016, : 443 - 446
  • [16] Tool Support for Refactoring Functional Programs
    Li, Huiqing
    Thompson, Simon
    PEPM'08: PROCEEDINGS OF THE 2008 ACM SIGPLAN SYMPOSIUM ON PARTIAL EVALUATION AND SEMANTICS-BASED PROGRAM MANIPULATION, 2008, : 199 - 203
  • [17] Tool Support for Refactoring Manual Tests
    Bernard, Elodie
    Botella, Julien
    Ambert, Fabrice
    Legeard, Bruno
    Utting, Mark
    2020 IEEE 13TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VALIDATION AND VERIFICATION (ICST 2020), 2020, : 332 - 342
  • [18] Refactoring support based on code clone analysis
    Higo, Y
    Kamiya, T
    Kusumoto, S
    Inoue, K
    PRODUCT FOCUSED SOFTWARE PROCESS IMPROVEMENT, 2004, 3009 : 220 - 233
  • [19] SCRUB: a tool for code reviews
    Holzmann, Gerard J.
    INNOVATIONS IN SYSTEMS AND SOFTWARE ENGINEERING, 2010, 6 (04) : 311 - 318
  • [20] SYMake: A Build Code Analysis and Refactoring Tool for Makefiles
    Tamrawi, Ahmed
    Hoan Anh Nguyen
    Hung Viet Nguyen
    Nguyen, Tien N.
    2012 PROCEEDINGS OF THE 27TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2012, : 366 - 369