Recommending API Function Calls and Code Snippets to Support Software Development

02/15/2021
by   Phuong T. Nguyen, et al.
0

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 recommenders, UP-Miner and PAM, in terms of prediction accuracy. We also point out that there is no significant relationship between the categories for apps defined in Google Play and their API usages. Finally, we show that participants of a user study positively perceive the API and source code recommended by FOCUS as relevant to the current development context.

READ FULL TEXT
research
12/12/2018

A4: Automatically Assisting Android API Migrations Using Code Examples

The fast-paced evolution of Android APIs has posed a challenging task fo...
research
05/01/2020

Designing Robust API Monitoring Solutions

Tracing the sequence of library and system calls that a program makes is...
research
03/11/2022

MemoRec: A Recommender System for Assisting Modelers in Specifying Metamodels

Model Driven Engineering (MDE) has been widely applied in software devel...
research
03/21/2021

Mining API Interactions to Analyze Software Revisions for the Evolution of Energy Consumption

With the widespread use and adoption of mobile platforms like Android a ...
research
03/10/2020

Engineering Human Values in Software through Value Programming

Ignoring human values in software development may disadvantage users by ...
research
07/27/2017

Find, Understand, and Extend Development Screencasts on YouTube

A software development screencast is a video that captures the screen of...

Please sign up or login with your details

Forgot password? Click here to reset