Recommendation Systems in Software Engineering [electronic resource] /
Robillard, Martin P.editor.
Maalej, Walid.editor.
Walker, Robert J.editor.
Zimmermann, Thomas.editor.
With the growth of public and private data stores and the emergence of off-the-shelf data-mining technology, recommendation systems have emerged that specifically address the unique challenges of navigating and interpreting software engineering data. This book collects, structures, and formalizes knowledge on recommendation systems in software engineering. It adopts a pragmatic approach with an explicit focus on system design, implementation, and evaluation. The book is divided into three parts: "Part I - Techniques" introduces basics for building recommenders in software engineering, including techniques for collecting and processing software engineering data, but also for presenting recommendations to users as part of their workflow. "Part II - Evaluation" summarizes methods and experimental designs for evaluating recommendations in software engineering. "Part III - Applications" describes needs, issues, and solution concepts involved in entire recommendation systems for specific software engineering tasks, focusing on the engineering insights required to make effective recommendations. The book is complemented by the webpage rsse.org/book, which includes free supplemental materials for readers of this book and anyone interested in recommendation systems in software engineering, including lecture slides, data sets, source code, and an overview of people, groups, papers, and tools with regard to recommendation systems in software engineering. The book is particularly well-suited for graduate students and researchers building new recommendation systems for software engineering applications or in other high-tech fields. It may also serve as the basis for graduate courses on recommendation systems, applied data mining, or software engineering. Software engineering practitioners developing recommendation systems or similar applications with predictive functionality will also benefit from the broad spectrum of topics covered.
Description based upon print version of record.
Includes bibliographical references and index.
1 An Introduction to Recommendation Systems in Software Engineering -- Part I Techniques -- 2 Basic Approaches in Recommendation Systems -- 3 Data Mining -- 4 Recommendation Systems in-the-Small -- 5 Source Code Based Recommendation Systems -- 6 Mining Bug Data -- 7 Collecting and Processing Interaction Data for Recommendation Systems -- 8 Developer Profiles for Recommendation Systems -- 9 Recommendation Delivery -- Part II Evaluation -- 10 Dimensions and Metrics for Evaluating Recommendation Systems -- 11 Benchmarking -- 12 Simulation -- 13 Field Studies -- Part III Applications -- 14 Reuse-Oriented Code Recommendation Systems -- 15 Recommending Refactoring Operations in Large Software Systems -- 16 Recommending Program Transformations -- 17 Recommendation Systems in Requirements Discovery -- 18 Changes, Evolution and Bugs -- 19 Recommendation Heuristics for Improving Product Line Configuration Processes.
With the growth of public and private data stores and the emergence of off-the-shelf data-mining technology, recommendation systems have emerged that specifically address the unique challenges of navigating and interpreting software engineering data. This book collects, structures, and formalizes knowledge on recommendation systems in software engineering. It adopts a pragmatic approach with an explicit focus on system design, implementation, and evaluation. The book is divided into three parts: "Part I - Techniques" introduces basics for building recommenders in software engineering, including techniques for collecting and processing software engineering data, but also for presenting recommendations to users as part of their workflow. "Part II - Evaluation" summarizes methods and experimental designs for evaluating recommendations in software engineering. "Part III - Applications" describes needs, issues, and solution concepts involved in entire recommendation systems for specific software engineering tasks, focusing on the engineering insights required to make effective recommendations. The book is complemented by the webpage rsse.org/book, which includes free supplemental materials for readers of this book and anyone interested in recommendation systems in software engineering, including lecture slides, data sets, source code, and an overview of people, groups, papers, and tools with regard to recommendation systems in software engineering. The book is particularly well-suited for graduate students and researchers building new recommendation systems for software engineering applications or in other high-tech fields. It may also serve as the basis for graduate courses on recommendation systems, applied data mining, or software engineering. Software engineering practitioners developing recommendation systems or similar applications with predictive functionality will also benefit from the broad spectrum of topics covered.
Software engineering.
Management information systems.
Computer science.
Information storage and retrieval.
Software Engineering.
Management of Computing and Information Systems.
Information Storage and Retrieval.