Code Inspection Support for Recurring Changes with Deep Learning in Evolving Software

被引:3
作者
Ayinala, Krishna Teja [1 ]
Cheng, Kwok Sun [1 ]
Oh, Kwangsung [1 ]
Song, Teukseob [2 ]
Song, Myoungkyu [1 ]
机构
[1] Univ Nebraska, Omaha, NE 68182 USA
[2] Mokwon Univ, Daejeon, CN, South Korea
来源
2020 IEEE 44TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE (COMPSAC 2020) | 2020年
关键词
ALGORITHM;
D O I
10.1109/COMPSAC48688.2020.0-149
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Developers often make recurring changes, similar but different changes across multiple locations. They inspect such code changes per source file (i.e., a diff patch) during code reviews; however, diff patches represent low-level code modification without summarizing recurring changes, leading to tedious and error-prone code inspection. To address this problem, we propose a novel code review approach, Recurring Code Changes Inspection with Deep Learning (RIDL) that leverages change patterns of an edit script by learning code clones, identical or nearly similar code fragments. To train a classifier, RIDL learns 13,940 clones with four different clone types (e.g., Type-1, Type-2, Type-3, and Type-4 clones) from a clone database mined from 25,000 subject programs. Our approach then leverages the classifier to (1) interactively summarize recurring changes and (2) detect change mistakes, potential anomalies in a given codebase. In the evaluation, after 2 hours of training, RIDL analyzes code changes in four open source projects. It summarizes recurring changes with 95.1% accuracy and detects change anomalies with 93.1% accuracy. Our results show that RIDL should help developers effectively inspect recurring changes during code reviews.
引用
收藏
页码:931 / 942
页数:12
相关论文
共 43 条
  • [1] Combining Deep Learning with Information Retrieval to Localize Buggy Files for Bug Reports
    An Ngoc Lam
    Anh Tuan Nguyen
    Hoan Anh Nguyen
    Nguyen, Tien N.
    [J]. 2015 30TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2015, : 476 - 481
  • [2] [Anonymous], 2010, PROC IEEE INT CONF S
  • [3] A differencing algorithm for object-oriented programs
    Apiwattanapong, T
    Orso, A
    Harrold, MJ
    [J]. 19TH INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2004, : 2 - 13
  • [4] Bacchelli A, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P712, DOI 10.1109/ICSE.2013.6606617
  • [5] Comparison and evaluation of clone detection tools
    Bellon, Stefan
    Koschke, Rainer
    Antoniol, Giuliano
    Krinke, Jens
    Merlo, Ettore
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2007, 33 (09) : 577 - 591
  • [6] Large-Scale Machine Learning with Stochastic Gradient Descent
    Bottou, Leon
    [J]. COMPSTAT'2010: 19TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL STATISTICS, 2010, : 177 - 186
  • [7] Chesley OC, 2005, PROC IEEE INT CONF S, P401
  • [8] Chollet Francois, KERAS DEEP NEURAL NE
  • [9] Demaine ED, 2007, LECT NOTES COMPUT SC, V4596, P146
  • [10] Change distilling:: Tree differencing for fine-grained source code change extraction
    Fluri, Beat
    Wuersch, Michael
    Pinzger, Martin
    Gall, Harald C.
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2007, 33 (11) : 725 - 743