You are previewing Sharing Data and Models in Software Engineering.
O'Reilly logo
Sharing Data and Models in Software Engineering

Book Description

Data Science for Software Engineering: Sharing Data and Models presents guidance and procedures for reusing data and models between projects to produce results that are useful and relevant. Starting with a background section of practical lessons and warnings for beginner data scientists for software engineering, this edited volume proceeds to identify critical questions of contemporary software engineering related to data and models. Learn how to adapt data from other organizations to local problems, mine privatized data, prune spurious information, simplify complex results, how to update models for new platforms, and more. Chapters share largely applicable experimental results discussed with the blend of practitioner focused domain expertise, with commentary that highlights the methods that are most useful, and applicable to the widest range of projects. Each chapter is written by a prominent expert and offers a state-of-the-art solution to an identified problem facing data scientists in software engineering. Throughout, the editors share best practices collected from their experience training software engineering students and practitioners to master data science, and highlight the methods that are most useful, and applicable to the widest range of projects.



  • Shares the specific experience of leading researchers and techniques developed to handle data problems in the realm of software engineering
  • Explains how to start a project of data science for software engineering as well as how to identify and avoid likely pitfalls
  • Provides a wide range of useful qualitative and quantitative principles ranging from very simple to cutting edge research
  • Addresses current challenges with software engineering data such as lack of local data, access issues due to data privacy, increasing data quality via cleaning of spurious chunks in data

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Why this book?
  6. Foreword
  7. List of Figures
  8. Chapter 1: Introduction
    1. 1.1 Why read this book?
    2. 1.2 What do we mean by “sharing”?
    3. 1.3 What? (our executive summary)
    4. 1.4 How to read this book
    5. 1.5 But what about …? (what is <span xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" class="italic">not</span> in this book) in this book)
    6. 1.6 Who? (about the authors)
    7. 1.7 Who else? (acknowledgments)
  9. Part I: Data Mining for Managers
    1. Chapter 2: Rules for Managers
      1. Abstract
      2. 2.1 The inductive engineering manifesto
      3. 2.2 More rules
    2. Chapter 3: Rule #1: Talk to the Users
      1. Abstract
      2. 3.1 Users biases
      3. 3.2 Data mining biases
      4. 3.3 Can we avoid bias?
      5. 3.4 Managing biases
      6. 3.5 Summary
    3. Chapter 4: Rule #2: Know The Domain
      1. Abstract
      2. 4.1 Cautionary tale #1: “discovering” random noise
      3. 4.2 Cautionary tale #2: jumping at shadows
      4. 4.3 Cautionary tale #3: it pays to ask
      5. 4.4 Summary
    4. Chapter 5: Rule #3: Suspect Your Data
      1. Abstract
      2. 5.1 Controlling Data Collection
      3. 5.2 Problems With Controlled Data Collection
      4. 5.3 Rinse (and Prune) Before Use
      5. 5.4 On the Value of Pruning
      6. 5.5 Summary
    5. Chapter 6: Rule #4: Data Science is Cyclic
      1. Abstract
      2. 6.1 The Knowledge Discovery Cycle
      3. 6.2 Evolving Cyclic Development
      4. 6.3 Summary
  10. Part II: Data Mining: A Technical Tutorial
    1. Chapter 7: Data Mining and SE
      1. Abstract
      2. 7.1 Some Definitions
      3. 7.2 Some Application Areas
    2. Chapter 8: Defect Prediction
      1. Abstract
      2. 8.1 Defect Detection Economics
      3. 8.2 Static Code Defect Prediction
    3. Chapter 9: Effort Estimation
      1. Abstract
      2. 9.1 The Estimation Problem
      3. 9.2 How To Make Estimates
    4. Chapter 10: Data Mining (Under The Hood)
      1. Abstract
      2. 10.1 Data carving
      3. 10.2 About the data
      4. 10.3 Cohen pruning
      5. 10.4 Discretization
      6. 10.5 Column pruning
      7. 10.6 Row pruning
      8. 10.7 Cluster pruning
      9. 10.8 Contrast pruning
      10. 10.9 Goal pruning
      11. 10.10 Extensions for continuous classes
  11. Part III: Sharing Data
    1. Chapter 11: Sharing Data: Challenges and Methods
      1. Abstract
      2. 11.1 Houston, We Have A Problem
      3. 11.2 Good News, Everyone
    2. Chapter 12: Learning Contexts
      1. Abstract
      2. 12.1 Background
      3. 12.2 Manual Methods for Contextualization
      4. 12.3 Automatic Methods
      5. 12.4 Other Motivation To Find Contexts
      6. 12.5 How To Find Local Regions
      7. 12.6 Inside Chunk
      8. 12.7 Putting It All Together
      9. 12.8 Using Chunk
      10. 12.9 Closing Remarks
    3. Chapter 13: Cross-Company Learning: Handling The Data Drought
      1. Abstract
      2. 13.1 Motivation
      3. 13.2 Setting the ground for analyses
      4. 13.3 Analysis #1: can CC data be useful for an organization?
      5. 13.4 Analysis #2: how to cleanup CC data for local tuning?
      6. 13.5 Analysis #3: how much local data does an organization need for a local model?
      7. 13.6 How trustworthy are these results?
      8. 13.7 Are these useful in practice or just number crunching?
      9. 13.8 What's new on cross-learning?
      10. 13.9 What's the takeaway?
    4. Chapter 14: Building Smarter Transfer Learners
      1. Abstract
      2. 14.1 What is actually the problem?
      3. 14.2 What do we know so far?
      4. 14.3 An example technology: TEAK
      5. 14.4 The details of the experiments
      6. 14.5 Results
      7. 14.6 Discussion
      8. 14.7 What are the takeaways?
    5. Chapter 15: Sharing Less Data (Is a Good Thing)
      1. Abstract
      2. 15.1 Can We Share Less Data?
      3. 15.2 Using Less Data
      4. 15.3 Why Share Less Data?
      5. 15.4 How To Find Less Data
      6. 15.5 What's Next?
    6. Chapter 16: How To Keep Your Data Private
      1. Abstract
      2. 16.1 Motivation
      3. 16.2 What is PPDP and why is it important?
      4. 16.3 What is considered a breach of privacy?
      5. 16.4 How to avoid privacy breaches?
      6. 16.5 How are privacy-preserving algorithms evaluated?
      7. 16.6 Case study: privacy and cross-company defect prediction
    7. Chapter 17: Compensating for Missing Data
      1. Abstract
      2. 17.1 Background notes on see and instance selection
      3. 17.2 Data sets and performance measures
      4. 17.3 Experimental conditions
      5. 17.4 Results
      6. 17.5 Summary
    8. Chapter 18: Active Learning: Learning More With Less
      1. Abstract
      2. 18.1 How does the quick algorithm work?
      3. 18.2 Notes on active learning
      4. 18.3 The application and implementation details of quick
      5. 18.4 How the experiments are designed
      6. 18.5 Results
      7. 18.6 Summary
  12. Part IV: Sharing Models
    1. Chapter 19: Sharing Models: Challenges and Methods
      1. Abstract
    2. Chapter 20: Ensembles of Learning Machines
      1. Abstract
      2. 20.1 When and why ensembles work
      3. 20.2 Bootstrap aggregating (bagging)
      4. 20.3 Regression trees (RTs) for bagging
      5. 20.4 Evaluation framework
      6. 20.5 Evaluation of bagging + RTs in SEE
      7. 20.6 Further understanding of bagging + RTs in SEE
      8. 20.7 Summary
    3. Chapter 21: How to Adapt Models in a Dynamic World
      1. Abstract
      2. 21.1 Cross-company data and questions tackled
      3. 21.2 Related work
      4. 21.3 Formulation of the problem
      5. 21.4 Databases
      6. 21.5 Potential benefit of CC data
      7. 21.6 Making better use of CC data
      8. 21.7 Experimental analysis
      9. 21.8 Discussion and implications
      10. 21.9 Summary
    4. Chapter 22: Complexity: Using Assemblies of Multiple Models
      1. Abstract
      2. 22.1 Ensemble of methods
      3. 22.2 Solo methods and multimethods
      4. 22.2.3 Experimental conditions
      5. 22.3 Methodology
      6. 22.4 Results
      7. 22.5 Summary
    5. Chapter 23: The Importance of Goals in Model-Based Reasoning
      1. Abstract
      2. 23.1 Introduction
      3. 23.2 Value-based modeling
      4. 23.3 Setting up
      5. 23.4 Details
      6. 23.5 An experiment
      7. 23.6 Inside the models
      8. 23.7 Results
      9. 23.8 Discussion
    6. Chapter 24: Using Goals in Model-Based Reasoning
      1. Abstract
      2. 24.1 Multilayer Perceptrons
      3. 24.2 Multiobjective evolutionary algorithms
      4. 24.3 HaD-MOEA
      5. 24.4 Using MOEAs for creating see models
      6. 24.5 Experimental setup
      7. 24.6 The relationship among different performance measures
      8. 24.7 Ensembles based on concurrent optimization of performance measures
      9. 24.8 Emphasizing particular performance measures
      10. 24.9 Further analysis of the model choice
      11. 24.10 Comparison against other types of models
      12. 24.11 Summary
    7. Chapter 25: A Final Word
      1. Abstract
  13. Bibliography