Skip to main content

Artificial Neural Network Applications for Software Reliability Prediction

Hardcover

$202.75

Artificial Neural Network Applications for Software Reliability Prediction

Manjubala Bisi, Neeraj Kumar Goyal

ISBN: 978-1-119-22354-2 September 2017 312 Pages

E-Book
$162.99
Hardcover
$202.75
O-Book

Description

Artificial neural network (ANN) has proven to be a universal approximator for any non-linear continuous function with arbitrary accuracy. This book presents how to apply ANN to measure various software reliability indicators: number of failures in a given time, time between successive failures, fault-prone modules and development efforts. The application of machine learning algorithm i.e. artificial neural networks application in software reliability prediction during testing phase as well as early phases of software development process is presented as well. Applications of artificial neural network for the above purposes are discussed with experimental results in this book so that practitioners can easily use ANN models for predicting software reliability indicators.

Preface xi

Acknowledgement xv

Abbreviations xvii

1 Introduction 1

1.1 Overview of Software Reliability Prediction and Its Limitation 6

1.2 Overview of the Book 8

1.2.1 Predicting Cumulative Number of Software Failures in a Given Time 9

1.2.2 Predicting Time Between Successive Software Failures 11

1.2.3 Predicting Software Fault-Prone Modules 13

1.2.4 Predicting Software Development Efforts 15

1.3 Organization of the Book 17

2 Software Reliability Modelling 19

2.1 Introduction 19

2.2 Software Reliability Models 20

2.2.1 Classification of Existing Models 21

2.2.2 Software Reliability Growth Models 25

2.2.3 Early Software Reliability Prediction Models 27

2.2.4 Architecture based Software Reliability Prediction Models 29

2.2.5 Bayesian Models 31

2.3 Techniques used for Software Reliability Modelling 31

2.3.1 Statistical Modelling Techniques 31

2.3.2 Regression Analysis 35

2.3.3 Fuzzy Logic 37

2.3.3.1 Fuzzy Logic Model for Early Fault Prediction 38

2.3.3.2 Prediction and Ranking of Fault-prone Software Modules using Fuzzy Logic 39

2.3.4 Support Vector Machine 40

2.3.4.1 SVM for Cumulative Number of Failures Prediction 41

2.3.5 Genetic Programming 45

2.3.6 Particle Swarm Optimization 49

2.3.7 Time Series Approach 50

2.3.8 Naive Bayes 51

2.3.9 Artificial Neural Network 52

2.4 Importance of Artificial Neural Network in Software Reliability Modelling 54

2.4.1 Cumulative Number of Software Failures Prediction 55

2.4.2 Time Between Successive Software Failures Prediction 58

2.4.3 Software Fault-Prone Module Prediction 60

2.4.4 Software Development Efforts Prediction 64

2.5 Observations 67

2.6 Objectives of the Book 70

3 Prediction of Cumulative Number of Software Failures 73

3.1 Introduction 73

3.2 ANN Model 76

3.2.1 Artificial Neural Network Model with Exponential Encoding 77

3.2.2 Artificial Neural Network Model with Logarithmic Encoding 77

3.2.3 System Architecture 78

3.2.4 Performance Measures 80

3.3 Experiments 81

3.3.1 Effect of Different Encoding Parameter 82

3.3.2 Effect of Different Encoding Function 83

3.3.3 Effect of Number of Hidden Neurons 86

3.4 ANN-PSO Model 88

3.4.1 ANN Architecture 89

3.4.2 Weight and Bias Estimation Through PSO 91

3.5 Experimental Results 93

3.6 Performance Comparison 94

4 Prediction of Time Between Successive Software Failures 103

4.1 Time Series Approach in ANN 105

4.2 ANN Model 106

4.3 ANN- PSO Model 113

4.4 Results and Discussion 116

4.4.1 Results of ANN Model 116

4.4.2 Results of ANN-PSO Model 121

4.4.3 Comparison 125

5 Identification of Software Fault-Prone Modules 131

5.1 Research Background 133

5.1.1 Software Quality Metrics Affecting Fault-Proneness 134

5.1.2 Dimension Reduction Techniques 135

5.2 ANN Model 137

5.2.1 SA-ANN Approach 139

5.2.1.1 Logarithmic Scaling Function 139

5.2.1.2 Sensitivity Analysis on Trained ANN 140

5.2.2 PCA-ANN Approach 142

5.3 ANN-PSO Model 145

5.4 Discussion of Results 148

5.4.1 Results of ANN Model 149

5.4.1.1 SA-ANN Approach Results 149

5.4.1.2 PCA-ANN Approach Results 152

5.4.1.3 Comparison Results of ANN Model 155

5.4.2 Results of ANN-PSO Model 162

5.4.2.1 Reduced Data Set 162

5.4.2.2 Comparison Results of ANN-PSO Model 163

6 Prediction of Software Development Efforts 175

6.1 Need for Development Efforts Prediction 178

6.2 Efforts Multipliers Affecting Development Efforts 178

6.3 Artificial Neural Network Application for Development Efforts Prediction 179

6.3.1 Additional Input Scaling Layer ANN Architecture 181

6.3.2 ANN-PSO Model 183

6.3.3 ANN-PSO-PCA Model 186

6.3.4 ANN-PSO-PCA-GA Model 188

6.3.4.1 Chromosome Design and Fitness Function 189

6.3.4.2 System Architecture of ANN-PSOPCA-GA Model 190

6.4 Performance Analysis on Data Sets 192

6.4.1 COCOMO Data Set 194

6.4.2 NASA Data Set 202

6.4.3 Desharnais Data Set 206

6.4.4 Albrecht Data Set 209

7 Recent Trends in Software Reliability 215

References 219

Appendix Failure Count Data Set 231

Appendix Time Between Failure Data Set 235

Appendix CM1 Data Set 241

Appendix COCOMO 63 Data Set 283

Index 289