Recommending API Function Calls and Code Snippets to Support Software Development
Phuong T.Nguyen, Juri Di Rocco, Claudio Di Sipio, Davide Di Ruscio,, Massimiliano Di Penta

TL;DR
This paper introduces FOCUS, a context-aware collaborative filtering system that recommends API calls and code snippets to developers, demonstrating improved accuracy over existing tools in Android development scenarios.
Contribution
The paper presents FOCUS, a novel recommendation system leveraging collaborative filtering to enhance API and code snippet suggestions for software developers.
Findings
FOCUS outperforms UP-Miner and PAM in prediction accuracy.
No significant correlation between app categories and API usage patterns.
Developers perceive FOCUS's recommendations as relevant and helpful.
Abstract
Software development activity has reached a high degree of complexity, guided by the heterogeneity of the components, data sources, and tasks. The proliferation of open-source software (OSS) repositories has stressed the need to reuse available software artifacts efficiently. To this aim, it is necessary to explore approaches to mine data from software repositories and leverage it to produce helpful recommendations. We designed and implemented FOCUS as a novel approach to provide developers with API calls and source code while they are programming. The system works on the basis of a context-aware collaborative filtering technique to extract API usages from OSS projects. In this work, we show the suitability of FOCUS for Android programming by evaluating it on a dataset of 2,600 mobile apps. The empirical evaluation results show that our approach outperforms two state-of-the-art API…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Engineering Techniques and Practices · Open Source Software Innovations
