FOCUS: A Recommender System for Mining API Function Calls and Usage Patterns
Software developers interact with APIs on a daily basis and, therefore, often face the need to learn how to use new APIs suitable for their purposes. Previous work has shown that recommending usage patterns to developers facilitates the learning process. Current approaches to usage pattern recommendation, however, still suffer from high redundancy and poor run time performance. In this paper, we reformulate the problem of usage pattern recommendation in terms of a collaborative filtering recommender system. We present a new tool, FOCUS, which mines open source project repositories to recommend API method invocations and usage patterns by analyzing how APIs are used in projects similar to the current project. We evaluate FOCUS on a large number of Java projects extracted from GitHub and Maven Central and find that it outperforms the state of the art approach PAM with regards to success rate, accuracy, and execution time. Results indicate the suitability of context aware collaborative filtering recommender systems to provide API usage patterns.
2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)