Cover image for Machine Learning Applications in Software Engineering.
Machine Learning Applications in Software Engineering.
Title:
Machine Learning Applications in Software Engineering.
Author:
Zhang, Du.
ISBN:
9789812569271
Personal Author:
Physical Description:
1 online resource (367 pages)
Contents:
ACKNOWLEDGMENT -- TABLE OF CONTENTS -- Chapter 1 Introduction to Machine Learning and Software Engineering -- 1.1. The Challenge -- 1.2. Overview of Machine Learning -- 1.2.1. Target functions -- 1.2.2. Hypothesis space -- 1.2.3. Search and bias -- 1.2.4. Prior knowledge -- 1.2.5. Training data -- 1.2.6. Theoretical underpinnings and practical considerations -- 1.3. Learning Approaches -- 1.3.1. Concept learning -- 1.3.2. Decision trees -- 1.3.3. Neural networks -- 1.3.4. Bayesian learning -- 1.3.5. Genetic algorithms and genetic programming -- 1.3.6. Instance-based learning -- 1.3.7. Inductive logic programming -- 1.3.8. Analytical learning -- 1.3.9. Inductive and analytical learning -- 1.3.10. Reinforcement learning -- 1.3.11. Ensemble learning -- 1.3.12. Support vector machines -- 1.4. SE Tasks for ML Applications -- 1.5. State-of-the-Practice in ML&SE -- 1.5.1. Prediction and estimation -- 1.5.2. Property and model discovery -- 1.5.3. Transformation -- 1.5.4. Generation and synthesis -- 1.5.5. Reuse library construction and maintenance -- 1.5.6. Requirement acquisition -- 1.5.7. Capture development knowledge -- 1.6. Status -- 1.7. Applying ML Algorithms to SE Tasks -- Problem Formulation. -- Problem representation. -- Data collection. -- Domain theory preparation. -- Performing the learning process. -- Analyzing and evaluating learned knowledge. -- Fielding the knowledge base. -- 1.8. Organization of the Book -- Chapter 2 ML Applications in Prediction and Estimation -- Bayesian Analysis of Empirical Software Engineering Cost Models -- 1 CLASSICAL MULTIPLE REGRESSION APPROACH -- 2 THE BAYESIAN APPROACH -- 3 CONCLUSIONS -- APPENDIX A -- ACKNOWLEDGMENTS -- REFERENCES -- Machine Learning Approaches to Estimating Software Development Effort -- I. INTRODUCTION -- II. MODELS FOR ESTIMATING SOFTWARE DEVELOPMENT EFFORT.

III. MACHINE LEARNING APPROACHES TO ESTIMATING DEVELOPMENT EFFORT -- IV. OVERVIEW OF EXPERIMENTAL STUDIES -- V. GENERAL DISCUSSION -- VI. CONCLUDING REMARKS -- APPENDIX A DATA DESCRIPTIONS -- ACKNOWLEDGMENT -- REFERENCES -- Estimating Software Project Effort Using Analogies -- 1 INTRODUCTION -- 2 A BRIEF HISTORY OF EFFORT PREDICTION -- 3 ANALOGY -- 4 COMPARING ESTIMATION BY ANALOGY WITH REGRESSION MODELS -- 5 SENSITIVITY ANALYSIS -- 6 AN ESTIMATION PROCESS -- 7 CONCLUSIONS -- APPENDIX A -- ACKNOWLEDGMENTS -- REFERENCES -- A Critique of Software Defect Prediction Models -- 1 INTRODUCTION -- 2 PREDICTION USING SlZE AND COMPLEXITY METRICS -- 3 PREDICTION USING TESTING METRICS -- 4 PREDICTION USING PROCESS QUALITY DATA -- 5 MULTIVARIATE APPROACHES -- 6 A CRITIQUE OF CURRENT APPROACHES TO DEFECT PREDICTION -- 7 PREDICTING DEFECTS USING BBNs -- 8 CONCLUSIONS -- ACKNOWLEDGMENTS -- REFERENCES -- Using Regression Trees to Classify Fault-Prone Software Modules -- I. INTRODUCTION -- II. A CLASSIFICATION RULE FOR REGRESSION TREES -- III. EMPIRICAL CASE STUDY -- APPENDIX BUILDING A REGRESSION TREE WITH S-PLUS -- ACKNOWLEDGMENT -- REFERENCES -- Can genetic programming improve software effort estimation? A comparative evaluation -- 1. Introduction -- 2. Background to the problem -- 3. Data set used for comparisons and Weibull distribution modelling -- 4. How to evaluate the techniques? -- 5. Previous related work using machine learning -- 6. Background to genetic programming -- 7. Applying GP to software effort estimation -- 8. Results of the comparison -- 9. Conclusions and future work -- References -- Optimal software release scheduling based on artificial neural networks -- 1. Introduction -- 2. Background and literature survey -- 3. Cost-based software release problem -- 4. Statistical estimation procedure -- 5. Estimation via artificial neural networks.

6. Numerical examples -- 7. Concluding remarks -- Acknowledgement -- References -- Chapter 3 ML Applications in Property and Model Discovery -- Identifying Objects in Procedural Programs Using Clustering Neural Networks -- 1. Introduction -- 2. Related work -- 3. Clustering neural networks -- 4. Object identification via clustering neural networks -- 5. Implementation and evaluation -- 6. Conclusions -- References -- BAYESIAN-LEARNING BASED GUIDELINES TO DETERMINE EQUIVALENT MUTANTS -- 1. Introduction -- 2. Background -- 3. Related Work -- 4. Experiment Description -- 5. A Case Study: Sort Program -- 6. Conclusion and Future Work -- Acknowledgments -- References -- Chapter 4 ML Applications in Transformation -- Using Neural Networks to Modularize Software -- 1. Introduction -- 2. The information-hiding principle -- 3. A model for human software classification -- 4. Learning architectural judgment -- 5. Advising architects -- 6. Discussion -- 7. Future work -- 8. Conclusions -- Notes -- References -- Chapter 5 ML Applications in Generation and Synthesis -- Generating Software Test Data by Evolution -- 1 INTRODUCTION -- 2 TEST ADEQUACY CRITERIA AND TEST DATA GENERATION -- 3 GENETIC ALGORITHMS FOR TEST DATA GENERATION -- 4 THE GENETIC ALGORITHM DATA GENERATION TOOL (GADGET) -- 5 EXPERIMENTAL RESULTS -- 6 OPEN RESEARCH ISSUES -- 7 CONCLUSIONS -- APPENDIX RESULTS FOR SYNTHETIC PROGRAMS -- ACKNOWLEDGMENTS -- REFERENCES -- Chapter 6 ML Applications in Reuse -- On the Reuse of Software: A Case-Based Approach Employing a Repository -- 1. Introduction -- 2. Organizational Framework -- 3. The Method -- 4. Complexity Issues -- 5. Conclusions -- Appendix A. Illustration -- References -- Chapter 7 ML Applications in Requirement Acquisition -- Inductive Specification Recovery: Understanding Software by Learning from Example Behaviors -- 1. Introduction.

2. A Specification Recovery Problem -- 3. Inductive Specification Recovery -- 4. Exploratory Experiments and New Learners -- 5. Evaluation of Discovery Systems -- 6. Experimental Results -- 7. Related Work -- 8. Conclusions -- Acknowledgments -- Notes -- References -- Explanation-Based Scenario Generation for Reactive System Models -- 1. Introduction -- 2. Background: spec modeling -- 3. The scenario generation problem -- 4. The SGEN2 approach -- 5. Case study -- 6. Related work -- 7. Limitations and future work -- 8. Conclusions -- Appendix: SGEN2 pseudocode -- References -- Chapter 8 ML Applications in Management of Development Knowledge -- Case-Based Knowledge Management Tools for Software Development -- 1. Knowledge requirements for software engineering -- 2. A case-based approach to knowledge management -- 3. Knowledge acquisition through a community of practice -- 4. Integrating cases and organizing principles -- 5. Evaluation and use of BORE -- 6. Conclusions and future directions -- Acknowledgments -- Note -- References -- Chapter 9 Guidelines and Conclusion -- 9.1. Guidelines for ML Method Selection -- 9.2. Guidelines in Formulating SE Tasks as A Learning Problem -- Component reuse -- Rapid prototyping -- Requirement engineering -- Reverse engineering -- Validation -- Test oracle generation -- Test adequacy criteria -- Software defect prediction -- Project effort (cost) prediction -- 9.3. Concluding Remarks -- References.
Abstract:
Machine learning deals with the issue of how to build computerprograms that improve their performance at some tasks throughexperience. Machine learning algorithms have proven to be of greatpractical value in a variety of application domains. Not surprisingly,the field of software engineering turns out to be a fertile groundwhere many software development and maintenance tasks could beformulated as learning problems and approached in terms of learningalgorithms.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Added Author:
Electronic Access:
Click to View
Holds: Copies: