  Developers often need to decide which APIs to use for the functions being
implemented. With the ever-growing number of APIs and libraries, it becomes
increasingly difficult for developers to find appropriate APIs, indicating the
necessity of automatic API usage recommendation. Previous studies adopt
statistical models or collaborative filtering methods to mine the implicit API
usage patterns for recommendation. However, they rely on the occurrence
frequencies of APIs for mining usage patterns, thus prone to fail for the
low-frequency APIs. Besides, prior studies generally regard the API call
interaction graph as homogeneous graph, ignoring the rich information (e.g.,
edge types) in the structure graph. In this work, we propose a novel method
named MEGA for improving the recommendation accuracy especially for the
low-frequency APIs. Specifically, besides call interaction graph, MEGA
considers another two new heterogeneous graphs: global API co-occurrence graph
enriched with the API frequency information and hierarchical structure graph
enriched with the project component information. With the three multi-view
heterogeneous graphs, MEGA can capture the API usage patterns more accurately.
Experiments on three Java benchmark datasets demonstrate that MEGA
significantly outperforms the baseline models by at least 19% with respect to
the Success Rate@1 metric. Especially, for the low-frequency APIs, MEGA also
increases the baselines by at least 55% regarding the Success Rate@1.

Software Engineering