Recommendation systems for software engineering are tools that help developers and managers to better cope with the huge amount of information faced in today's software projects. They provide developers with information to guide them in a number of activities (e.g., software navigation, debugging, refactoring), or to alert them of potential issues (e.g., conflicting changes, failure-inducing changes, duplicated functionality). Similarly, managers get only to see the information that is relevant to make a certain decision (e.g., bug distribution when allocating resources). Recommendation systems can draw from a wide variety of input data, and benefit from different types of analyses.
Although many recommendation systems have demonstrable usefulness and usability in software engineering, a number of questions remain to be discussed and investigated: What recommendations do developers and managers actually need? How can we evaluate recommendations? Are there fundamentally different kinds of recommendation systems? How can we integrate recommendations from different sources? How can we protect the privacy of developers? In this workshop, we will study advances in recommendation systems, with a special focus on evaluation, integration, and usability.
The goal of this workshop is to bring together researchers and practitioners with interest and experience in the elaboration and evaluation of concepts, techniques, and tools for providing recommendations to developers involved in software engineering tasks.
Proceeding Downloads
Recommending method invocation context changes
Our investigations of bug fixes in Eclipse showed that a significant amount of bugs were fixed by moving invocations of certain methods into the then or else-part of if-statements with similar conditions. Based on this finding, we leverage such context ...
Not all classes are created equal: toward a recommendation system for focusing testing
When evolving an object oriented system, one relevant question is the following: given a finite amount of resources, what are the most critical classes on which testers should focus their attention? In this paper, we propose a new way for identifying ...
Potentials and challenges of recommendation systems for software development
By surveying recommendation systems in software development, we found that existing approaches have been focusing on "you might like what similar developers like" scenarios. However structured artifacts and semantically well-defined development ...
On evaluating recommender systems for API usages
To ease framework understanding, tools have been developed that analyze existing framework instantiations to extract API usage patterns and present them to the user. However, detailed quantitative evaluations of such recommender systems are lacking. In ...
Dimensions of tools for detecting software conflicts
Previous work has found that the number of defects in a source file is proportional to the number of developers who concurrently access the file. Several "conflict-recommender" tools have been proposed that can aid programmers in detecting conflicts ...
Understanding interaction differences between newcomer and expert programmers
Newcomer and expert programmers often interact with development artifacts differently. Ideally, software development tools should support these different styles of work. In this paper, we describe our investigations into the interaction difference ...
What is the long-term impact of changes?
During their life cycle, programs undergo many changes. Each of these changes may introduce new features---or new problems. While most of the impact of a change is immediate, some of the impact may become evident only in the long term. For instance, ...
Evaluating recommended applications
Large open source software repositories are polluted with incomplete or inadequately functioning projects having scarce or poor descriptions. Developers often search these repositories to find sample applications containing implementations of relevant ...
Seven habits of a highly effective smell detector
The process of refactoring code---changing its structure while preserving its meaning---has been identified as an important way of maintaining code quality over time. However, it is sometimes difficult for progammers to identify which pieces of code are ...
Project-specific deletion patterns
We apply data mining to version control data in order to detect project-specific deletion patterns---subcomponents or features of the software that were deleted on purpose. We believe that locations that are similar to earlier deletions are likely to be ...
Chat to succeed
Effective coordination within a project is one key factor to successful software projects. While research shows that communication structures can predict the outcome of an integration build, we would like to take a step further making recommendations ...
Towards an agent-based framework for guiding design exploration
One of the premises of conceptual design is that the designer must evaluate a range of candidate solutions before selecting the final solution. Tool support is critical to aid designers in that exploration, because the design space is usually large and ...
Improving the readability of defect reports
Bug reports and the user comments associated with them are an important source of information for developers. When many comments are posted in response to a bug description, the discussion becomes difficult to understand. In order to keep discussions ...
SRRS: a recommendation system for security requirements
Despite the availability of approaches to specifying security requirements, we have identified a lack of comparative studies of those approaches and, subsequently, lack of guidance and useful tools to determine the most appropriate approach for a ...
- Proceedings of the 2008 international workshop on Recommendation systems for software engineering