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 [J].
An Ngoc Lam ;
Anh Tuan Nguyen ;
Hoan Anh Nguyen ;
Nguyen, Tien N. .
2015 30TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2015, :476-481
[2]  
[Anonymous], 2010, PROC IEEE INT CONF S
[3]  
[Anonymous], 2005, Proceedings_of_the_10th_European_software_engineering conference_held_jointly_with_13th_ACM_SIGSOFT_international_symposium_on Foundations_of_software_engineering
[4]   A differencing algorithm for object-oriented programs [J].
Apiwattanapong, T ;
Orso, A ;
Harrold, MJ .
19TH INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, PROCEEDINGS, 2004, :2-13
[5]  
Bacchelli A, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P712, DOI 10.1109/ICSE.2013.6606617
[6]   Comparison and evaluation of clone detection tools [J].
Bellon, Stefan ;
Koschke, Rainer ;
Antoniol, Giuliano ;
Krinke, Jens ;
Merlo, Ettore .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2007, 33 (09) :577-591
[7]   Large-Scale Machine Learning with Stochastic Gradient Descent [J].
Bottou, Leon .
COMPSTAT'2010: 19TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL STATISTICS, 2010, :177-186
[8]  
Chesley OC, 2005, PROC IEEE INT CONF S, P401
[9]  
Chollet Francois, KERAS DEEP NEURAL NE
[10]  
Demaine ED, 2007, LECT NOTES COMPUT SC, V4596, P146