Focus: A recommender system for mining api function calls and usage patterns

Phuong T. Nguyen, Juri Di Rocco, Davide Di Ruscio, Lina Ochoa Venegas, Thomas Degueule, Massimiliano Di Penta

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

79 Citations (Scopus)


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 stateof-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.
Original languageEnglish
Title of host publicationProceedings - 2019 IEEE/ACM 41st International Conference on Software Engineering, ICSE 2019
Number of pages11
ISBN (Electronic)9781728108698
Publication statusPublished - May 2019
Externally publishedYes


  • api mining
  • api recommendation
  • api usage pattern
  • recommender system


Dive into the research topics of 'Focus: A recommender system for mining api function calls and usage patterns'. Together they form a unique fingerprint.

Cite this