Browse > Article
http://dx.doi.org/10.3745/KTSDE.2018.7.12.461

A Code Recommendation Method Using RNN Based on Interaction History  

Cho, Heetae (경상대학교 정보과학과)
Lee, Seonah (경상대학교 항공우주및소프트웨어전공)
Kang, Sungwon (KAIST 전산학부)
Publication Information
KIPS Transactions on Software and Data Engineering / v.7, no.12, 2018 , pp. 461-468 More about this Journal
Abstract
Developers spend a significant amount of time exploring and trying to understand source code to find a source location to modify. To reduce such time, existing studies have recommended the source location using statistical language model techniques. However, in these techniques, the recommendation does not occur if input data does not exactly match with learned data. In this paper, we propose a code location recommendation method using Recurrent Neural Networks and interaction histories, which does not have the above problem of the existing techniques. Our method achieved an average precision of 91% and an average recall of 71%, thereby reducing time for searching and exploring code more than the existing recommendation techniques.
Keywords
Software Engineering; Deep Learning; Interaction History;
Citations & Related Records
연도 인용수 순위
  • Reference
1 J. S. Cho and J. C. Park, "A Study on The Project Schedule Management System Development for Small Scale IT Companies," The KORMS, pp.1264-1272. 2008.
2 S. A. Lee, S. W. Kang, S. H. Kim, and M. Staats, "The Impact of View Histories on Edit Recommendations," IEEE Transactions on Software Engineering, Vol.41, Issue 3, pp.314-330, 2015.   DOI
3 V. Raychev, M. Vechev, and E. Yahav, "Code completion with statistical language models," in Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, Edinburgh, pp.419-428, 2014.
4 K. Damevski, D. C. Shepherd, J. Schneider, and L. Pollock, "Mining sequences of developer interactions in visual studio for usage smells," IEEE Transactions on Software Engineering, Vol.43, No.4, pp.359-371, 2016.   DOI
5 X. Gu, H. Zhang, D. Zhang, and S. Kim, "DeepAM: Migrate APIs with multi-modal sequence to sequence learning," in Proceedings of International Joint Conference on Artificial Intelligence, Melbourne, pp.3675-3681, 2017.
6 T. T. Nguyen, A. T. Nguyen, H. A. Nguyen, and T. N. Nguyen, "A statistical semantic language model for source code," in Proceedings of the Joint Meeting on Foundations of Software Engineering, Saint Petersburg, pp.532-542, 2013.
7 A. T. Nguyen and T. N. Nguyen, "Graph-based statistical language model for code," in IEEE International Conference on Software Engineering, Florence, 2015.
8 X. Gu, H. Zhang, D. Zhang, and S. Kim, "Deep API learning," in Proceedings of the ACM SIGSOFT International Symposium on Foundation of Software Engineering, Seattle, pp.631-642, 2016.
9 S. R. Lee, M. J. Heo, C. G. Lee, M. Kim, and G. Jeong, "Applying deep learning based automatic bug triager to industrial projects," in Proceedings of the Joint Meeting on Foundations of Software Engineering, Paderborn, pp.926-931.
10 S. Hochreiter and J. Schmidhuber, "Long short-term memory," Neural Computation, Vol.9, No.8 pp.1735-1780.   DOI
11 J. Y. Chung, C. Gulcehre, K. H. Cho, and Y. Bengio, "Empirical evaluation of gated recurrent neural networks on sequence modeling," arXiv preprint arXiv:1412.3555, 2014.
12 S. A. Lee, S. W. Kim, S. H. Kim, and M. Staats, "The impact of view histories on edit recommendations," IEEE Transactions on Software Engineering, Vol.41, No.3, pp.314-330, 2015.   DOI
13 D. P. Kingma and J. Ba, "Adam: A method for stochastic optimization," arXiv preprint arXiv:1412.6980, 2014.
14 R. Dyer, H. A. Nguyen, H. Rajan, and T. N. Nguyen, "Boa: Ultra-large-scale software repository and source-code mining," ACM Transactions on Software Engineering and Methodology, Vol.25, Issue 1, Article No.7, 2015.