Recommendation systems for software engineering (RSSEs) 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, they provide managers with information that is relevant to make a certain decision (e.g., bug distribution when allocating resources).
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 recommenders? How can we integrate recommendations from different sources? How can we protect the privacy of developers? How can new recommendation systems leverage lessons from existing ones? In this workshop, we will study advances in recommendation systems, with a special focus on evaluation, integration, and usability. The RSSE workshop series bring together interested researchers and practitioners to discuss these questions, present recent advances from their work, and exchange ideas and issues around this topic. Our goals are (1) to consolidate a diverse segment of the community, in terms of career stage, geography, and background; (2) to solidify a body of knowledge about RSSEs; and (3) to identify ways in which RSSE research can be applied to, and benefit from, other research efforts.
Proceeding Downloads
Recommendation system for design patterns in software development: an DPR overview
Software maintenance can become monotonous and expensive due to ignorance and misapplication of appropriate design patterns during the early phases of design and development. To have a good and reusable system, designers and developers must be aware of ...
Annotation support for generic patches
In large projects parallelization of existing programs or refactoring of source code is time consuming as well as error-prone and would benefit from tool support. However, existing automatic transformation systems are not extensively used because they ...
Actionable identification of emergent teams in software development virtual organizations
We present a method for identifying emergent teams of developers who need to work together and coordinate, within larger software development organizations. Our goal is to identify these socio-technical constructs as they emerge, so that we can provide ...
Facilitating reuse in model-based development with context-dependent model element recommendations
Reuse recommendation systems suggest code entities useful for the task at hand within the IDE. Current approaches focus on code-based development. However, model-based development poses similar challenges to developers regarding the identification of ...
A cost-benefit approach to recommending conflict resolution for parallel software development
Merging parallel versions of source code is a common and essential activity during the lifespan of large-scale software systems. When a non-trivial number of conflicts is detected, there is a need to support the maintainer in investigating and resolving ...
Harnessing stack overflow for the IDE
Developers often consult online tutorials and message boards to find solutions to their programming issues. Among the many online resources, Question & Answer websites are gaining popularity. This is no wonder if we consider a case like Stack Overflow, ...
Recommendations as learning: from discrepancies to software improvement
Successful software development requires software engineering skills as well as domain and user knowledge. This knowledge is difficult to master. Increasing complexity and fast evolving technologies cause deficits in development and system behavior. ...
Connecting user stories and code for test development
User Stories are short feature descriptions from the user's point of view. Functional tests ensure that the feature described by a User Story is fully implemented.
We present a tool that builds an ontology for code and links completed User Stories in ...
Example overflow: using social media for code recommendation
Modern Q&A websites, such as Stack Overflow, use social media to provide concise answers, and offer rich technical context with quality assessment capabilities. Although some of the answers may include executable code snippets, they are entangled in ...
Combining activity metrics and contribution topics for software recommendations
In this paper we outline work in progress for the development of a recommender system for open source software development communities that takes into account information from multiple sources. Specifically our approach combines latent semantics of ...
Software feature model recommendations using data mining
Feature Models are popular tools for describing software product lines. Analysis of feature models has traditionally focused on consistency checking (yielding a yes/no answer) and product selection assistance, interactive or offline. In this paper, we ...
Automated assessment of correctness of recommendation systems
Using a concrete example, this position paper makes a case for evaluating the correctness of software recommendation systems in an automated way, prior to conducting user studies, in order to assess the validity of the results and ideal configuration of ...
A comparison of recommender systems for mashup composition
Web mashups are a new generation of applications created by composing contents and functions available through Web services and APIs. A central activity in mashup development is the retrieval and selection of components to be included in the ...
Group recommendation algorithms for requirements prioritization
Group recommendation is successfully applied in different domains such as Interactive Television, Ambient Intelligence, and e-Tourism. The focus of this paper is to analyze the applicability of group recommendation to requirements prioritization. We ...
Recommending mentors to software project newcomers
Open Source Software projects success depends on the continuous influx of newcomers and their contributions. Newcomers play an important role as they are the potential future developers, but they face difficulties and obstacles when initiating their ...
Optimizing a search-based code recommendation system
Search-based code recommendation systems with a large-scale code repository can provide the programmers example code snippets that teach them not only names in application programming interface of libraries and frameworks, but also practical usages ...
Interaction histories mining for software change guide
This paper presents a prediction model for change propagation based on the developers • interaction history. Since artifacts have internal and external dependencies, a change will cause some changes on related artifacts. In order to guide change ...
Recommending relevant code artifacts for change requests using multiple predictors
Finding code artifacts affected by a given change request is a time-consuming process in large software systems. Various approaches have been proposed to automate this activity, e.g., based on information retrieval. The performance of a particular ...
Context-aware recommender systems for non-functional requirements
For large software projects, system designers have to adhere to a significant number of functional and non-functional requirements, which makes software development a complex engineering task. If these requirements change during the development process, ...
Context-based recommendation to support problem solving in software development
During the software development process, developers are often faced with problem solving situations. For instance, it is common the occurrence of exceptions, that originate stack traces in the Console View of the IDE. These situations motivate the ...
Automatically detecting architecturally-relevant code anomalies
Software architecture degradation is a long-standing problem in software engineering. Previous studies have shown that certain code anomalies - or patterns of code anomalies - are likely to be harmful to architecture design, although their ...
Extending recommendation systems with software maps
In practice, recommendation systems have evolved as helpful tools to facilitate and optimize software engineering processes. Serving both developers and managers, specific recommendation systems address their individual problems. Yet, in a number of ...