Holistic combination of structural and textual code information for context based API recommendation
Publication Type
Journal Article
Version
acceptedVersion
Publication Date
8-2022
Abstract
Context based API recommendation is an important way to help developers find the needed APIs effectively and efficiently. For effective API recommendation, we need not only a joint view of both structural and textual code information, but also a holistic view of correlated API usage in control and data flow graph as a whole. Unfortunately, existing API recommendation methods exploit structural or textual code information separately. In this work, we propose a novel API recommendation approach called APIRec-CST (API Recommendation by Combining Structural and Textual code information). APIRec-CST is a deep learning model that combines the API usage with the text information in the source code based on an API Context Graph Network and a Code Token Network that simultaneously learn structural and textual features for API recommendation. We apply APIRec-CST to train a model for JDK library based on 1,914 open-source Java projects and evaluate the accuracy and MRR (Mean Reciprocal Rank) of API recommendation with another 6 open-source projects. The results show that our approach achieves respectively a top-1, top-5, top-10 accuracy and MRR of 60.3%, 81.5%, 87.7% and 69.4%, and significantly outperforms an existing graph-based statistical approach and a tree-based deep learning approach for API recommendation. A further analysis shows that textual code information makes sense and improves the accuracy and MRR. The sensitivity analysis shows that the top-k accuracy and MRR of APIRec-CST are insensitive to the number of APIs to be recommended in a hole. We also conduct a user study in which two groups of students are asked to finish 6 programming tasks with or without our APIRec-CST plugin. The results show that APIRec-CST can help the students to finish the tasks faster and more accurately and the feedback on the usability is overwhelmingly positive.
Keywords
Semantics, Deep Learning, Data Models, Context Modeling, Computational Modeling, Task Analysis, Token Networks, API, Recommendation, Deep Learning, Data Flow, Control Flow, Text
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
IEEE Transactions on Software Engineering
Volume
48
Issue
8
First Page
2987
Last Page
3009
ISSN
0098-5589
Identifier
10.1109/TSE.2021.3074309
Publisher
Institute of Electrical and Electronics Engineers
Citation
CHEN, Chi; PENG, Xin; XING, Zhengchang; SUN, Jun; WANG, Xin; ZHAO, Yifan; and ZHAO, Wenyun.
Holistic combination of structural and textual code information for context based API recommendation. (2022). IEEE Transactions on Software Engineering. 48, (8), 2987-3009.
Available at: https://ink.library.smu.edu.sg/sis_research/6714
Copyright Owner and License
Authors
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/TSE.2021.3074309