Recommendation systems in software engineering

This book surveys and analyzes information on recommendation systems in software engineering, in separate sections on Techniques, Evaluation and Applications. A supplemental website offers additional material, including lecture slides, source code and more.

Saved in:
Bibliographic Details
Main Authors Robillard, Martin P., Maalej, Walid, Walker, Robert J., Zimmermann, Thomas
Format eBook Book
LanguageEnglish
Published Berlin, Heidelberg Springer 2014
Springer Berlin / Heidelberg
Springer Berlin Heidelberg
Edition1
Subjects
Online AccessGet full text

Cover

Loading…
Abstract This book surveys and analyzes information on recommendation systems in software engineering, in separate sections on Techniques, Evaluation and Applications. A supplemental website offers additional material, including lecture slides, source code and more.
AbstractList This book surveys and analyzes information on recommendation systems in software engineering, in separate sections on Techniques, Evaluation and Applications. A supplemental website offers additional material, including lecture slides, source code and more.
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.
Author Zimmermann, Thomas
Maalej, Walid
Robillard, Martin P.
Walker, Robert J.
Author_xml – sequence: 1
  fullname: Robillard, Martin P.
– sequence: 2
  fullname: Maalej, Walid
– sequence: 3
  fullname: Walker, Robert J.
– sequence: 4
  fullname: Zimmermann, Thomas
BackLink https://cir.nii.ac.jp/crid/1130000793834182528$$DView record in CiNii
BookMark eNpFkMtOwzAQRY14iLb0A9h1gYRYpLU9dmwvaVUeUiUkhNhaTuKU0NQucaDi73EaBJuZudK5o5k7RCfOO4vQJcFTgrGYKSETSFJGE8YJ8IQfoSFEeVDi-F8wdYYGUiigaaroORqH8I4xJkQpwfkATZ9t7rdb6wrTVt5Nwndo7TZMqjj6st2bxk6sW1fO2qZy6wt0Wpo62PFvH6HXu-XL4iFZPd0_Lm5XiQGqIN5WcpApL1mWs4xRkYlSEQxQZIUhwkgpypQXOQBIltFUGFUIjmluC8bKIscwQjf9YhM2dh_efN0G_VXbzPtN0PH9v295ZGc9G3bdjbbRPUWw7sLqaA068vpg0J3junfsGv_xaUOrD4tz69rG1Ho5XxABhFIayauedFWl86qrhEBMEMdMJTAiKacSfgAgBnFd
ContentType eBook
Book
Copyright Springer-Verlag Berlin Heidelberg 2014
Copyright_xml – notice: Springer-Verlag Berlin Heidelberg 2014
DBID RYH
DEWEY 005.1
DOI 10.1007/978-3-642-45135-5
DatabaseName CiNii Complete
DatabaseTitleList

DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 3642451357
9783642451355
Edition 1
2014
Editor Zimmermann, Thomas
Maalej, Walid
Robillard, Martin P.
Walker, Robert J.
Editor_xml – sequence: 1
  givenname: Martin P.
  surname: Robillard
  fullname: Robillard, Martin P.
  email: martin@cs.mcgill.ca
– sequence: 2
  givenname: Walid
  surname: Maalej
  fullname: Maalej, Walid
  email: maalej@informatik.uni-hamburg.de
– sequence: 3
  givenname: Robert J.
  surname: Walker
  fullname: Walker, Robert J.
  email: walker@ucalgary.ca
– sequence: 4
  givenname: Thomas
  surname: Zimmermann
  fullname: Zimmermann, Thomas
  email: tzimmer@microsoft.com
ExternalDocumentID 9783642451355
311938
EBC1731222
BB15561013
GroupedDBID 0D6
0DA
20A
38.
A0U
A3-
AABBV
AAPCR
ABFTD
ABMNI
ACBPT
ACKEY
ACTXJ
AEJLV
AEKFX
AETDV
AEZAY
AHJUR
ALMA_UNASSIGNED_HOLDINGS
ANZUN
AZZ
BBABE
BZAQK
CZZ
I4C
IEZ
JJU
MYL
RYH
SBO
TPJZQ
UZ6
Z5O
Z7R
Z7S
Z7U
Z7W
Z7X
Z7Y
Z7Z
Z81
Z83
Z84
Z85
Z87
Z88
SAO
Z7V
Z82
ID FETCH-LOGICAL-a32938-3f53865f4bc4b427b7f91033dbda17a887f65dc33384b267a9d7502ced44fdc03
ISBN 3642451349
9783642451348
IngestDate Fri Nov 08 00:11:45 EST 2024
Tue Jul 29 20:16:05 EDT 2025
Fri May 30 22:51:11 EDT 2025
Thu Jun 26 23:27:30 EDT 2025
IsPeerReviewed false
IsScholarly false
LCCallNum_Ident QA76.758
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a32938-3f53865f4bc4b427b7f91033dbda17a887f65dc33384b267a9d7502ced44fdc03
Notes Includes bibliographical references
OCLC 879326692
PQID EBC1731222
PageCount 560
ParticipantIDs askewsholts_vlebooks_9783642451355
springer_books_10_1007_978_3_642_45135_5
proquest_ebookcentral_EBC1731222
nii_cinii_1130000793834182528
PublicationCentury 2000
PublicationDate c2014
2014
20131220
2014-04-30
PublicationDateYYYYMMDD 2014-01-01
2013-12-20
2014-04-30
PublicationDate_xml – year: 2014
  text: c2014
PublicationDecade 2010
PublicationPlace Berlin, Heidelberg
PublicationPlace_xml – name: Berlin
– name: Berlin, Heidelberg
PublicationYear 2014
2013
Publisher Springer
Springer Berlin / Heidelberg
Springer Berlin Heidelberg
Publisher_xml – name: Springer
– name: Springer Berlin / Heidelberg
– name: Springer Berlin Heidelberg
SSID ssj0001199755
Score 2.2377357
Snippet This book surveys and analyzes information on recommendation systems in software engineering, in separate sections on Techniques, Evaluation and Applications....
With the growth of public and private data stores and the emergence of off-the-shelf data-mining technology, recommendation systems have emerged that...
SourceID askewsholts
springer
proquest
nii
SourceType Aggregation Database
Publisher
SubjectTerms Computer Science
Information Storage and Retrieval
Management of Computing and Information Systems
Recommender systems (Information filtering)
Software Engineering
TableOfContents Intro -- Preface -- About This Book -- Structure and Content -- Target Audience -- Website and Resources -- Acknowledgments -- Contents -- List of Contributors -- 1 An Introduction to Recommendation Systems in Software Engineering -- 1.1 Introduction -- 1.2 Information Spaces in Software Engineering -- 1.3 Recommendation Systems in Software Engineering -- 1.4 Overview of the Book -- 1.5 Outlook -- 1.6 Conclusion -- References -- Part I Techniques -- 2 Basic Approaches in Recommendation Systems -- 2.1 Introduction -- 2.2 Collaborative Filtering -- 2.3 Content-Based Filtering -- 2.4 Knowledge-Based Recommendation -- 2.5 Hybrid Recommendations -- 2.6 Hints for Practitioners -- 2.6.1 Usage of Algorithms -- 2.6.2 Recommendation Environments -- 2.7 Further Algorithmic Approaches -- 2.7.1 Critiquing-Based Recommendation -- 2.7.2 Group Recommendation -- 2.8 Conclusion -- References -- 3 Data Mining -- 3.1 Introduction -- 3.2 Different Learners for Different Data -- 3.3 Association Rules -- 3.3.1 Technical Aside: How to Discretize? -- 3.4 Learning Trees -- 3.4.1 C4.5 -- 3.4.2 CART -- 3.4.3 Hints and Tips for CART and C4.5 -- 3.4.4 Random Forests -- 3.4.5 Applications of Tree Learning -- 3.5 Naive Bayesian -- 3.5.1 Bayesian and Anomaly Detection -- 3.5.2 Incremental Bayesian -- 3.5.3 Incremental Learning and Dataset Shift -- 3.6 Support Vector Machines -- 3.7 Pruning Data -- 3.7.1 Feature Pruning -- 3.7.2 Row Pruning -- 3.8 Text Mining -- 3.9 Nearest-Neighbor Methods -- 3.10 Some Fast Clustering Methods -- 3.11 Conclusion -- References -- 4 Recommendation Systems in-the-Small -- 4.1 Introduction -- 4.2 Recommendations with and without Data Mining -- 4.3 The Versatility of Recommendation Systems in-the-Small -- 4.3.1 Suade: Feature Location -- 4.3.2 Strathcona: API Exploration -- 4.3.3 Quick Fix Scout: Coding Assistance
10.3 Relation Between Dimensions -- 10.4 Evaluation Approaches and Frameworks -- 10.5 Conclusion -- References -- 11 Benchmarking -- 11.1 Introduction -- 11.2 Benchmarking and Evaluation Settings -- 11.2.1 Datasets -- 11.2.2 Toolkits -- 11.2.3 Accuracy and Error Metrics -- Classification Accuracy -- Predictive Accuracy Metrics -- Coverage Metrics -- Confidence Metrics -- Learning Rate Metrics -- Diversity Metrics -- Novelty and Serendipity Metrics -- User Satisfaction Metrics -- 11.2.4 One-Dimensional Evaluation -- 11.2.5 Multi-dimensional Evaluation and Benchmarking -- User Aspects -- Business Aspects -- Technical Aspects -- 11.2.6 When to Benchmark and When to Evaluate -- 11.3 Benchmarking Example -- 11.3.1 Evaluation Setting -- 11.3.2 Benchmarking Experiment -- 11.3.3 Results -- 11.4 Discussion -- 11.5 Conclusion -- References -- 12 Simulation -- 12.1 Introduction -- 12.2 A General Model of Simulation for Evaluation of RSSEs -- 12.2.1 Inputs and Outputs -- 12.2.2 Characterizing the Results -- Determining Expected Recommendations -- Real Data -- Evaluating the Objective Aspect of Quality -- 12.3 Experience with Simulation to Evaluate RSSEs -- 12.3.1 Recommending Programmatic Entities to Change -- The Recommendation System -- The Evaluation Problem -- How Simulation Was Used -- Reported Threats to Validity -- 12.3.2 Recommending Usage Examples for an API -- The Recommendation System -- The Evaluation Problem -- How Simulation Was Used -- Reported Threats to Validity -- 12.3.3 Recommending Dependency Treatments During Reuse -- The Recommendation System -- The Evaluation Problem -- How Simulation Was Used -- Reported Threats to Validity -- 12.3.4 Recommending Development Environment Commands -- The Recommendation System -- The Evaluation Problem -- How Simulation Was Used -- Reported Threats to Validity -- 12.4 Lessons Learned -- 12.4.1 Triangulation
6.2 Structure and Quality of Bug Reports -- 6.2.1 Anatomy of a Bug Report -- 6.2.2 Influence of Bug-Tracking Systems -- 6.2.3 Peril of Duplicate Bug Reports -- 6.3 How Reliable Are Bug Reports? -- 6.3.1 Matter of Perspective -- 6.3.2 Recommending Bug Report Fields -- 6.4 Mapping Bug Data -- 6.4.1 Relating Bugs to Code Changes -- 6.4.2 Relating Bugs to Code Artifacts -- 6.4.3 Mapping Bias -- Unmapped Bug Reports -- Mismatched Timestamps -- 6.4.4 Error Propagation: Misclassified Bug Reports -- 6.4.5 Impact of Tangled Changes -- 6.4.6 Alternative Mapping Approaches -- 6.5 Predicting Bugs -- 6.5.1 Relating Bugs and Code Features -- 6.5.2 Training Prediction Models -- 6.5.3 From Prediction to Recommendation -- 6.6 Hands-On: Mining Bug Repositories -- 6.6.1 Step 1: Getting Mozkito -- 6.6.2 Step 2: Mining an Issue Repository -- 6.6.3 Step 3: Analyzing Bug Reports in Java -- 6.6.4 Relating Bugs to Changes -- Exporting Bug Count Per Source File -- 6.7 Hands-On: Predicting Bugs -- 6.7.1 Step 1: Load Required Libraries -- 6.7.2 Step 2: Reading the Data -- 6.7.3 Step 3: Splitting the Dataset -- 6.7.4 Step 4: Prepare the Data -- 6.7.5 Step 5: Train the Models -- 6.7.6 Step 6: Make the Prediction -- 6.7.7 Step 7: Compute Precision, Recall, and F-measure -- 6.8 Conclusion -- References -- 7 Collecting and Processing Interaction Data for Recommendation Systems -- 7.1 Introduction -- 7.2 Examples -- 7.2.1 Early Work -- 7.2.2 Mylyn -- 7.2.3 OCompletion -- 7.2.4 Switch! -- 7.3 What Is Interaction Data? -- 7.3.1 Interactions -- 7.3.2 Artifacts -- 7.3.3 Tools -- 7.3.4 Context -- 7.3.5 Interaction Granularity -- 7.4 Collecting Interaction Data -- 7.4.1 Monitoring Developers' Interactions -- 7.4.2 Generating Interaction Events -- 7.4.3 Logging Interaction Data -- 7.5 Processing Interaction Data -- 7.5.1 Sessionization of Interaction Events -- 7.5.2 Filtering of Events
4.3.4 A Tool for Debugging Method Names: Refactoring Support -- 4.3.5 YooHoo: Developer Awareness -- 4.4 Developing Heuristics -- 4.4.1 Human Intuition -- Suade's Heuristics -- Strathcona's Heuristics -- Quick Fix Scout's Heuristics -- Advantages and Disadvantages -- 4.4.2 Off-line Data Mining -- 4.4.3 Machine Learning -- 4.5 Limitations of Recommendation Systems in-the-Small -- 4.6 Conclusion -- References -- 5 Source Code-Based Recommendation Systems -- 5.1 Introduction -- 5.2 Selection of Source Code-Based Recommendation Systems -- 5.2.1 RASCAL -- 5.2.2 FrUiT -- 5.2.3 Strathcona -- 5.2.4 Hipikat -- 5.2.5 CodeBroker -- 5.3 Development Decisions When Building a SCoReS -- 5.3.1 Process -- 5.3.2 Intent -- Intended User -- Supported Task -- Cognitive Support -- Proposed Information -- 5.3.3 Human-Computer Interaction -- Type of System -- Type of Recommender -- User Involvement -- 5.3.4 Corpus -- Program Code -- Complementary Information -- Correlated Information -- 5.3.5 General Input/Output -- Input Mechanism -- Nature of Input -- Response Triggers -- Nature of Output -- Type of Output -- 5.3.6 Method -- Data Selection -- Type of Analysis -- Data Requirements -- Intermediate Data Representation -- Analysis Technique -- Filtering -- 5.3.7 Detailed Input/Output -- Type of Input -- Multiplicity of Output -- 5.3.8 Support -- Empirical Validation -- Usefulness -- Correctness -- 5.3.9 Interaction -- Usability -- System Availability -- Availability of Recommendation Data -- 5.4 Building a Code-Based Recommendation System -- 5.4.1 MEnToR -- Requirements -- Approach -- Limitations -- 5.4.2 From MEnToR to Clairvoyant -- 5.4.3 From Clairvoyant to Mendel -- 5.4.4 Porting Mendel from Smalltalk to Java -- 5.4.5 Adding a Database Storage Back-End to Mendel -- 5.5 Conclusion -- References -- 6 Mining Bug Data -- 6.1 Introduction
7.5.3 Aggregation of Events and Inference of Context Information -- 7.5.4 Pitfalls When Processing Interaction Data -- 7.6 Using Interaction Data -- 7.6.1 Productivity -- 7.6.2 Awareness and Collaboration -- 7.7 Challenges and Future Directions -- 7.7.1 Challenges -- 7.7.2 Future Scenarios -- 7.8 Conclusion -- References -- 8 Developer Profiles for Recommendation Systems -- 8.1 Introduction -- 8.2 Applications of Developer Profiles -- 8.2.1 Personalizing Recommendations -- 8.2.2 Recommending Developers -- 8.3 Development Knowledge -- 8.3.1 Version Control System Data -- 8.3.2 Interaction History Data -- 8.3.3 Issue Tracking System Data -- 8.3.4 Explicit Data Collection -- 8.3.5 Representation -- 8.4 Organizational Information and Communication Networks -- 8.4.1 Data Collection -- 8.4.2 Representation -- 8.5 Profile Maintenance and Storage -- 8.5.1 Adapting Developer Profiles -- 8.5.2 Storing Developer Profiles -- 8.6 Conclusion -- References -- 9 Recommendation Delivery -- 9.1 Introduction -- 9.2 Presenting Recommendations -- 9.2.1 Understandability -- 9.2.2 Transparency -- 9.2.3 Assessability -- 9.2.4 Trust -- 9.2.5 Distraction -- 9.3 Strategies Used in RSSE User Interfaces -- 9.3.1 Interfaces for Getting Users' Attention -- 9.3.2 Descriptive User Interface Options -- 9.4 Conclusion -- References -- Part II Evaluation -- 10 Dimensions and Metrics for Evaluating RecommendationSystems -- 10.1 Introduction -- 10.2 Dimensions -- 10.2.1 Correctness -- Predicting User Ratings -- Ranking Items -- Recommending Interesting Items -- 10.2.2 Coverage -- 10.2.3 Diversity -- 10.2.4 Trustworthiness -- 10.2.5 Recommender Confidence -- 10.2.6 Novelty -- 10.2.7 Serendipity -- 10.2.8 Utility -- 10.2.9 Risk -- 10.2.10 Robustness -- 10.2.11 Learning Rate -- 10.2.12 Usability -- 10.2.13 Scalability -- 10.2.14 Stability -- 10.2.15 Privacy -- 10.2.16 User Preferences
12.4.2 Quality of Real Data
Title Recommendation systems in software engineering
URI https://cir.nii.ac.jp/crid/1130000793834182528
https://ebookcentral.proquest.com/lib/[SITE_ID]/detail.action?docID=1731222
http://link.springer.com/10.1007/978-3-642-45135-5
https://www.vlebooks.com/vleweb/product/openreader?id=none&isbn=9783642451355&uid=none
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1La9tAEF5S99Jc0id12hQReigEGa92V5KPdXAJpgk9pGnoZdmHBKK1C7WTQH59v5FWluwWSntZZCF5xIw0-82bsbfGJBYbdx6bsZEwUJyI89QnsVHSOSvS3HMqcD6_SM8-y_m1uu6aINTVJWs7cvd_rCv5H6niHORKVbL_INnNn-IEjiFfrJAw1h3wu_kZWmnDaFwsijAQKbRjrjNbV1Crd5TNVXSNBrugiqUZQ00ye9M_4OTTqPNJY6-oYzlfgM19z9MeEi-aJOyT-eaOrxV5vRdhzHIv1Sh4Ebjc8SK0XsQt61KkFBblommF-Zuu7adX4MqYLlWx6jaWTbrfdMppCueYpgs_yDIon4fvZ_OPV50zjNJdlKLam5bmpOmO1D1DG5IOXYG3aO6zfbP6hl0BO8Z6BZiwrKotk2Enyl2Dh8vHbEAFJU_YXrF8yg7aMRpR0KrP2GhbmlGQZlThMEgz6knzObv6MLs8PYvDGIvYCIApPGqpaLJqKa2TViaZzUqANCG89YZnBmq-TJV3Qohc2iTNzMQDxyWu8FKW3o3FCzZY_lgWL1nk8WVNPFAvsI1UsgC8tRlgnE_IEOTFkB33GKFvv9ch95XucVKpITsCf7SraOUUzxxTm8QcgCZPVJIPWdRyTtf3hzxhPZue8kxwQMohe9dyVDcU2vbXoKSFBi1dE9Pq8C_UXrFH3Qv5mg3WP2-KIwC9tX0TXpNfXsJGXw
linkProvider Library Specific Holdings
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.title=Recommendation+systems+in+software+engineering&rft.au=Robillard%2C+Martin+P.&rft.au=Maalej%2C+Walid&rft.au=Walker%2C+Robert+J.&rft.au=Zimmermann%2C+Thomas&rft.date=2014-01-01&rft.pub=Springer&rft.isbn=9783642451348&rft_id=info:doi/10.1007%2F978-3-642-45135-5&rft.externalDocID=BB15561013
thumbnail_m http://utb.summon.serialssolutions.com/2.0.0/image/custom?url=https%3A%2F%2Fvle.dmmserver.com%2Fmedia%2F640%2F97836424%2F9783642451355.jpg
thumbnail_s http://utb.summon.serialssolutions.com/2.0.0/image/custom?url=https%3A%2F%2Fmedia.springernature.com%2Fw306%2Fspringer-static%2Fcover-hires%2Fbook%2F978-3-642-45135-5