Перейти к основному содержанию
AkademIndex

Продукты

Для разработчиков

AkademBaseОткрытый API экосистемы
Статья

Review Sharing via Deep Semi-Supervised Code Clone Detection

Chenkai GuoCollege of Computer Science, Nankai University, Tianjin, ChinaHui YangCollege of Computer Science, Nankai University, Tianjin, ChinaDengrong HuangCollege of Computer Science, Nankai University, Tianjin, ChinaJianwen ZhangCollege of Artificial Intelligence, Nankai University, Tianjin, ChinaNaipeng DongSchool of Computing, National University of Singapore, SingaporeJing XuCollege of Artificial Intelligence, Nankai University, Tianjin, ChinaJingwen ZhuCollege of Software, Nankai University, Tianjin, China
2020en
ABI

Аннотация

Code review as a typical type of user feedback has recently drawn increasing attentions for improving code quality. To carry out research on code review, sufficient review data is normally required. As a result, recent efforts commonly focus on analysis for projects with sufficient reviews (called “s-projects”), rather than projects with extremely few ones (called “f-projects”). Actually, through statistics on public platforms, the latter ones dominate open source software, in which novel approaches should be explored to improve their review-based code improvement. In this paper, we try to address the problem via building a review sharing channel where the informative review can be reasonably delivered from s-projects to the f-projects. To ensure the accuracy of shared reviews, we introduce a novel code clone detection model based on Convolutional Neural Network (CNN), and build suitable “s-projects, f-projects” pairs through the clone detection. Especially, to alleviate the dataset heterogeneity between the training and testing, an autoencoder-based semi-supervised learning strategy is employed. Furthermore, to improve the sharing experience, heuristic filtering tactics are applied to reduce the time cost. Meanwhile, the LDA (Latent Dirichlet Allocation)-based ranking algorithm is used for presenting diverse review themes. We have implemented the sharing channel as a prototype system RSharer+, which contains three representative modules: data preprocessing, code clone detection and review presentation. The collected datasets are first transformed into context-sensitive numerical vectors in the data proprecessing. Then in the clone detection, data vectors are trained and tested on the BigCloneBench and real code-review pairs. At last, the presentation module provides review classification and theme extraction for better sharing experience. Extensive comparative experiments on hundreds of real labelled code fragments demonstrate the precision of clone detection and the effectiveness of review sharing.

Перевод пока недоступен

Идентификаторы

Цитирования и источники

Цитирований: 2Использованных источников: 0