10 research outputs found
Boosting API Recommendation with Implicit Feedback
Developers often need to use appropriate APIs to program efficiently, but it
is usually a difficult task to identify the exact one they need from a vast of
candidates. To ease the burden, a multitude of API recommendation approaches
have been proposed. However, most of the currently available API recommenders
do not support the effective integration of users' feedback into the
recommendation loop. In this paper, we propose a framework, BRAID (Boosting
RecommendAtion with Implicit FeeDback), which leverages learning-to-rank and
active learning techniques to boost recommendation performance. By exploiting
users' feedback information, we train a learning-to-rank model to re-rank the
recommendation results. In addition, we speed up the feedback learning process
with active learning. Existing query-based API recommendation approaches can be
plugged into BRAID. We select three state-of-the-art API recommendation
approaches as baselines to demonstrate the performance enhancement of BRAID
measured by Hit@k (Top-k), MAP, and MRR. Empirical experiments show that, with
acceptable overheads, the recommendation performance improves steadily and
substantially with the increasing percentage of feedback data, comparing with
the baselines.Comment: 15 pages, 4 figure
Recommending Stack Overflow Posts for Fixing Runtime Exceptions using Failure Scenario Matching
Using online Q&A forums, such as Stack Overflow (SO), for guidance to resolve
program bugs, among other development issues, is commonplace in modern software
development practice. Runtime exceptions (RE) is one such important class of
bugs that is actively discussed on SO. In this work we present a technique and
prototype tool called MAESTRO that can automatically recommend an SO post that
is most relevant to a given Java RE in a developer's code. MAESTRO compares the
exception-generating program scenario in the developer's code with that
discussed in an SO post and returns the post with the closest match. To extract
and compare the exception scenario effectively, MAESTRO first uses the answer
code snippets in a post to implicate a subset of lines in the post's question
code snippet as responsible for the exception and then compares these lines
with the developer's code in terms of their respective Abstract Program Graph
(APG) representations. The APG is a simplified and abstracted derivative of an
abstract syntax tree, proposed in this work, that allows an effective
comparison of the functionality embodied in the high-level program structure,
while discarding many of the low-level syntactic or semantic differences. We
evaluate MAESTRO on a benchmark of 78 instances of Java REs extracted from the
top 500 Java projects on GitHub and show that MAESTRO can return either a
highly relevant or somewhat relevant SO post corresponding to the exception
instance in 71% of the cases, compared to relevant posts returned in only 8% -
44% instances, by four competitor tools based on state-of-the-art techniques.
We also conduct a user experience study of MAESTRO with 10 Java developers,
where the participants judge MAESTRO reporting a highly relevant or somewhat
relevant post in 80% of the instances. In some cases the post is judged to be
even better than the one manually found by the participant
A Survey on Query-based API Recommendation
Application Programming Interfaces (APIs) are designed to help developers
build software more effectively. Recommending the right APIs for specific tasks
has gained increasing attention among researchers and developers in recent
years. To comprehensively understand this research domain, we have surveyed to
analyze API recommendation studies published in the last 10 years. Our study
begins with an overview of the structure of API recommendation tools.
Subsequently, we systematically analyze prior research and pose four key
research questions. For RQ1, we examine the volume of published papers and the
venues in which these papers appear within the API recommendation field. In
RQ2, we categorize and summarize the prevalent data sources and collection
methods employed in API recommendation research. In RQ3, we explore the types
of data and common data representations utilized by API recommendation
approaches. We also investigate the typical data extraction procedures and
collection approaches employed by the existing approaches. RQ4 delves into the
modeling techniques employed by API recommendation approaches, encompassing
both statistical and deep learning models. Additionally, we compile an overview
of the prevalent ranking strategies and evaluation metrics used for assessing
API recommendation tools. Drawing from our survey findings, we identify current
challenges in API recommendation research that warrant further exploration,
along with potential avenues for future research
Holistic recommender systems for software engineering
The knowledge possessed by developers is often not sufficient to overcome a programming problem. Short of talking to teammates, when available, developers often gather additional knowledge from development artifacts (e.g., project documentation), as well as online resources. The web has become an essential component in the modern developer’s daily life, providing a plethora of information from sources like forums, tutorials, Q&A websites, API documentation, and even video tutorials. Recommender Systems for Software Engineering (RSSE) provide developers with assistance to navigate the information space, automatically suggest useful items, and reduce the time required to locate the needed information. Current RSSEs consider development artifacts as containers of homogeneous information in form of pure text. However, text is a means to represent heterogeneous information provided by, for example, natural language, source code, interchange formats (e.g., XML, JSON), and stack traces. Interpreting the information from a pure textual point of view misses the intrinsic heterogeneity of the artifacts, thus leading to a reductionist approach. We propose the concept of Holistic Recommender Systems for Software Engineering (H-RSSE), i.e., RSSEs that go beyond the textual interpretation of the information contained in development artifacts. Our thesis is that modeling and aggregating information in a holistic fashion enables novel and advanced analyses of development artifacts. To validate our thesis we developed a framework to extract, model and analyze information contained in development artifacts in a reusable meta- information model. We show how RSSEs benefit from a meta-information model, since it enables customized and novel analyses built on top of our framework. The information can be thus reinterpreted from an holistic point of view, preserving its multi-dimensionality, and opening the path towards the concept of holistic recommender systems for software engineering