Learning Code Changes by Exploiting Bidirectional Converting Deviation

Jia-Wei Mi, Shu-Ting Shi, Ming Li
Proceedings of The 12th Asian Conference on Machine Learning, PMLR 129:481-496, 2020.

Abstract

Software systems evolve with constant code changes when requirements change or bugs are found. Assessing the quality of code change is a vital part of software development. However, most existing software mining methods inspect software data from a static view and learn global code semantics from a snapshot of code, which cannot capture the semantic information of small changes and are under{-}representation for rich historical code changes. How to build a model to emphasize the code change remains a great challenge. In this paper, we propose a novel deep neural network called CCL, which models a forward converting process from the code before change to the code after change and a backward converting process inversely, and the change representations of bidirectional converting processes can be learned. By exploiting the deviation of the converting processes, the code change can be evaluated by the network. Experimental results on open source projects indicate that CCL significantly outperforms the compared methods in code change learning.

Cite this Paper


BibTeX
@InProceedings{pmlr-v129-mi20a, title = {Learning Code Changes by Exploiting Bidirectional Converting Deviation}, author = {Mi, Jia{-}Wei and Shi, Shu{-}Ting and Li, Ming}, booktitle = {Proceedings of The 12th Asian Conference on Machine Learning}, pages = {481--496}, year = {2020}, editor = {Pan, Sinno Jialin and Sugiyama, Masashi}, volume = {129}, series = {Proceedings of Machine Learning Research}, month = {18--20 Nov}, publisher = {PMLR}, pdf = {http://proceedings.mlr.press/v129/mi20a/mi20a.pdf}, url = {https://proceedings.mlr.press/v129/mi20a.html}, abstract = {Software systems evolve with constant code changes when requirements change or bugs are found. Assessing the quality of code change is a vital part of software development. However, most existing software mining methods inspect software data from a static view and learn global code semantics from a snapshot of code, which cannot capture the semantic information of small changes and are under{-}representation for rich historical code changes. How to build a model to emphasize the code change remains a great challenge. In this paper, we propose a novel deep neural network called CCL, which models a forward converting process from the code before change to the code after change and a backward converting process inversely, and the change representations of bidirectional converting processes can be learned. By exploiting the deviation of the converting processes, the code change can be evaluated by the network. Experimental results on open source projects indicate that CCL significantly outperforms the compared methods in code change learning.} }
Endnote
%0 Conference Paper %T Learning Code Changes by Exploiting Bidirectional Converting Deviation %A Jia-Wei Mi %A Shu-Ting Shi %A Ming Li %B Proceedings of The 12th Asian Conference on Machine Learning %C Proceedings of Machine Learning Research %D 2020 %E Sinno Jialin Pan %E Masashi Sugiyama %F pmlr-v129-mi20a %I PMLR %P 481--496 %U https://proceedings.mlr.press/v129/mi20a.html %V 129 %X Software systems evolve with constant code changes when requirements change or bugs are found. Assessing the quality of code change is a vital part of software development. However, most existing software mining methods inspect software data from a static view and learn global code semantics from a snapshot of code, which cannot capture the semantic information of small changes and are under{-}representation for rich historical code changes. How to build a model to emphasize the code change remains a great challenge. In this paper, we propose a novel deep neural network called CCL, which models a forward converting process from the code before change to the code after change and a backward converting process inversely, and the change representations of bidirectional converting processes can be learned. By exploiting the deviation of the converting processes, the code change can be evaluated by the network. Experimental results on open source projects indicate that CCL significantly outperforms the compared methods in code change learning.
APA
Mi, J., Shi, S. & Li, M.. (2020). Learning Code Changes by Exploiting Bidirectional Converting Deviation. Proceedings of The 12th Asian Conference on Machine Learning, in Proceedings of Machine Learning Research 129:481-496 Available from https://proceedings.mlr.press/v129/mi20a.html.

Related Material