Skip to main content
  • Book
  • © 2014

Recommendation Systems in Software Engineering

  • First book to highlight recommendation systems in high-tech fields in general and in software engineering in particular

  • Unique focus on systems issues like system architectures, specific applications and evaluation studies

  • Additional materials including lecture slides, data sets and source code available online

  • Includes supplementary material:

Buying options

eBook USD 109.00
Price excludes VAT (USA)
  • ISBN: 978-3-642-45135-5
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book USD 139.99
Price excludes VAT (USA)
Hardcover Book USD 199.99
Price excludes VAT (USA)

This is a preview of subscription content, access via your institution.

Table of contents (19 chapters)

  1. Front Matter

    Pages i-xiii
  2. An Introduction to Recommendation Systems in Software Engineering

    • Martin P. Robillard, Robert J. Walker
    Pages 1-11
  3. Techniques

    1. Front Matter

      Pages 13-13
    2. Basic Approaches in Recommendation Systems

      • Alexander Felfernig, Michael Jeran, Gerald Ninaus, Florian Reinfrank, Stefan Reiterer, Martin Stettinger
      Pages 15-37
    3. Data Mining

      • Tim Menzies
      Pages 39-75
    4. Recommendation Systems in-the-Small

      • Laura Inozemtseva, Reid Holmes, Robert J. Walker
      Pages 77-92
    5. Source Code-Based Recommendation Systems

      • Kim Mens, Angela Lozano
      Pages 93-130
    6. Mining Bug Data

      • Kim Herzig, Andreas Zeller
      Pages 131-171
    7. Collecting and Processing Interaction Data for Recommendation Systems

      • Walid Maalej, Thomas Fritz, Romain Robbes
      Pages 173-197
    8. Developer Profiles for Recommendation Systems

      • Annie T. T. Ying, Martin P. Robillard
      Pages 199-222
    9. Recommendation Delivery

      • Emerson Murphy-Hill, Gail C. Murphy
      Pages 223-242
  4. Evaluation

    1. Front Matter

      Pages 243-243
    2. Dimensions and Metrics for Evaluating Recommendation Systems

      • Iman Avazpour, Teerat Pitakrat, Lars Grunske, John Grundy
      Pages 245-273
    3. Benchmarking

      • Alan Said, Domonkos Tikk, Paolo Cremonesi
      Pages 275-300
    4. Simulation

      • Robert J. Walker, Reid Holmes
      Pages 301-327
    5. Field Studies

      • Ayşe Tosun Mısırlı, Ayşe Bener, Bora Çağlayan, Gül Çalıklı, Burak Turhan
      Pages 329-355
  5. Applications

    1. Front Matter

      Pages 357-357
    2. Reuse-Oriented Code Recommendation Systems

      • Werner Janjic, Oliver Hummel, Colin Atkinson
      Pages 359-386
    3. Recommending Refactoring Operations in Large Software Systems

      • Gabriele Bavota, Andrea De Lucia, Andrian Marcus, Rocco Oliveto
      Pages 387-419
    4. Recommending Program Transformations

      • Miryung Kim, Na Meng
      Pages 421-453

About this book

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, 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.


  • Code Reuse
  • Data Mining
  • Program Transformation
  • Recommender Systems
  • Requirements Engineering
  • Software Defect Analysis
  • Software Development
  • Software Evolution
  • Software Testing


"The book is a perfect starting point of study for graduate students of software engineering, especially when specializing in recommendation. It is highly recommended also to software professionals seeking to learn what are the possible future directions of their professional field. The book is impressive. [...] I highly recommend this book to software engineering students, professionals, experts, and other interested readers." P. Navrat, ACM Computing Reviews, November 2014

Editors and Affiliations

  • McGill University, Montréal, Canada

    Martin P. Robillard

  • University of Hamburg, Hamburg, Germany

    Walid Maalej

  • University of Calgary, Calgary, Canada

    Robert J. Walker

  • Microsoft Research, Redmond, USA

    Thomas Zimmermann

About the editors

Martin P. Robillard is an Associate Professor of Computer Science at McGill University. His current research focuses on problems related to API usability, information discovery and knowledge management in software engineering.

Walid Maalej is a Professor of Informatics at the University of Hamburg. He previously led a research group on human and context factors in software at the TU Munich. His current research interests include the context-aware recommendation systems and social software engineering.

Robert J. Walker is an Associate Professor of Computer Science at the University of Calgary. His current research involves automated analysis and support for unanticipated software reuse tasks.

Thomas Zimmermann is a researcher at Microsoft Research, Adjunct Assistant Professor at the University of Calgary and an affiliate faculty member at the University of Washington. He is best known for his research on systematic mining of version archives and bug databases to conduct empirical studies and to build tools.

Bibliographic Information

  • Book Title: Recommendation Systems in Software Engineering

  • Editors: Martin P. Robillard, Walid Maalej, Robert J. Walker, Thomas Zimmermann

  • DOI:

  • Publisher: Springer Berlin, Heidelberg

  • eBook Packages: Computer Science, Computer Science (R0)

  • Copyright Information: Springer-Verlag Berlin Heidelberg 2014

  • Hardcover ISBN: 978-3-642-45134-8

  • Softcover ISBN: 978-3-662-52404-6

  • eBook ISBN: 978-3-642-45135-5

  • Edition Number: 1

  • Number of Pages: XIII, 562

  • Number of Illustrations: 109 b/w illustrations

  • Topics: Software Engineering, IT Operations, Information Storage and Retrieval

Buying options

eBook USD 109.00
Price excludes VAT (USA)
  • ISBN: 978-3-642-45135-5
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book USD 139.99
Price excludes VAT (USA)
Hardcover Book USD 199.99
Price excludes VAT (USA)