171,99 €
This book provides a starting point for software professionals to apply artificial neural networks for software reliability prediction without having analyst capability and expertise in various ANN architectures and their optimization.
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 are presented. 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.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 270
Veröffentlichungsjahr: 2017
Cover
Title page
Copyright page
Dedication
Preface
Acknowledgement
Abbreviations
Chapter 1: Introduction
1.1 Overview of Software Reliability Prediction and Its Limitation
1.2 Overview of the Book
1.3 Organization of the Book
Chapter 2: Software Reliability Modelling
2.1 Introduction
2.2 Software Reliability Models
2.3 Techniques used for Software Reliability Modelling
2.4 Importance of Artificial Neural Network in Software Reliability Modelling
2.5 Observations
2.6 Objectives of the Book
Chapter 3: Prediction of Cumulative Number of Software Failures
3.1 Introduction
3.2 ANN Model
3.3 Experiments
3.4 ANN-PSO Model
3.5 Experimental Results
3.6 Performance Comparison
Chapter 4: Prediction of Time Between Successive Software Failures
4.1 Time Series Approach in ANN
4.2 ANN Model
4.3 ANN-PSO Model
4.4 Results and Discussion
Chapter 5: Identification of Software Fault-Prone Modules
5.1 Research Background
5.2 ANN Model
5.3 ANN-PSO Model
5.4 Discussion of Results
Chapter 6: Prediction of Software Development Efforts
6.1 Need for Development Efforts Prediction
6.2 Efforts Multipliers Affecting Development Efforts
6.3 Artificial Neural Network Application for Development Efforts Prediction
6.4 Performance Analysis on Data Sets
Chapter 7: Recent Trends in Software Reliability
References
Appendix Failure Count Data Set
Appendix Time Between Failure Data Set
Appendix CM1 Data Set
Appendix COCOMO 63 Data Set
Index
End User License Agreement
Cover
Copyright
Contents
Begin Reading
Chapter 1
Figure 2.1
Concave and S-shaped models.
Figure 2.2
Two-stage model.
Figure 2.3
Recent failure data with sliding window size
K
.
Figure 2.4
Total failure data at present with sliding window size K.
Figure 2.5
ANN for software reliability prediction.
Chapter 3
Figure 3.1
Prediction system.
Figure 3.2
Architecture of ANN.
Figure 3.3
Mathematical model of a neuron.
Figure 3.4
Comparison of MAPE on DS1-DS6 for different value of t*
max
(NEE).
Figure 3.5
Comparison of MAPE on DS7-DS12 for different value of t*
max
(NEE).
Figure 3.6
Comparison of MAPE on DS13-DS18 for different value of t*
max
(NEE).
Figure 3.7
Comparison of MAPE on DS1-DS6 for different value of t*
max
(NLE).
Figure 3.8
Comparison of MAPE on DS7-DS12 for different value of t*
max
(NLE).
Figure 3.9
Comparison of MAPE on DS13-DS18 for different value of t*
max
(NLE).
Figure 3.10
Effect of number of hidden nodes on MAPE.
Figure 3.11
ANN architecture.
Figure 3.12
Actual vs. predicted (DS16) using NLE approach.
Figure 3.13
Actual vs. predicted (DS16) using ANN-PSO approach.
Figure 3.14
Actual vs. predicted (DS17) using NLE approach.
Figure 3.15
Actual vs. predicted (DS17) using ANN-PSO approach.
Figure 3.16
Actual vs. predicted (DS18) using NLE approach.
Figure 3.17
Actual vs. predicted (DS18) using ANN-PSO approach.
Chapter 4
Figure 4.1
Feed forward artificial neural network.
Figure 4.2
Software failure process.
Figure 4.3
Effect of y*
max
on NRMSE.
Figure 4.4
ANN architecture.
Figure 4.5
Effect of hidden neurons on NRMSE for DS1 (ANN model).
Figure 4.6
Effect of hidden neurons on NRMSE for DS2 (ANN model).
Figure 4.7
Effect of hidden neurons on NRMSE for DS3 (ANN model).
Figure 4.8
Effect of hidden neurons on NRMSE for DS4 (ANN model).
Figure 4.9
Effect of hidden neurons on NRMSE for DS5 (ANN model).
Figure 4.10
Effect of hidden neurons on NRMSE for DS6 (ANN model).
Figure 4.11
Effect of hidden neurons on NRMSE for DS7 (ANN model).
Figure 4.12
Effect of hidden neurons on NRMSE for DS1 (ANN-PSO model).
Figure 4.13
Effect of hidden neurons on NRMSE for DS2 (ANN-PSO model).
Figure 4.14
Effect of hidden neurons on NRMSE for DS3 (ANN-PSO model).
Figure 4.15
Effect of hidden neurons on NRMSE for DS4 (ANN-PSO model).
Figure 4.16
Effect of hidden neurons on NRMSE for DS5 (ANN-PSO model).
Figure 4.17
Effect of hidden neurons on NRMSE for DS6 (ANN-PSO model).
Figure 4.18
Effect of hidden neurons on NRMSE for DS7 (ANN-PSO model).
Chapter 5
Figure 5.1
ANN with single hidden layer.
Figure 5.2
Overall methodology of SA-ANN approach.
Figure 5.3
ANN architecture.
Figure 5.4
Variation of principal components for CM1.
Figure 5.5
Variation of principal components for PC1.
Figure 5.6
Variation of principal components for KC1.
Figure 5.7
Variation of principal components for KC2.
Figure 5.8
Mean vs. standard deviation of accuracy: CM1 data set.
Figure 5.9
Mean vs. standard deviation of f-measure: CM1 data set.
Figure 5.10
Mean vs. standard deviation of accuracy: PC1 data set.
Figure 5.11
Mean vs. standard deviation of f-measure: PC1 data set.
Figure 5.12
Mean vs. standard deviation of accuracy: KC1 data set.
Figure 5.13
Mean vs. standard deviation of f-measure: KC1 data set.
Figure 5.14
Mean vs. standard deviation of accuracy: KC2 data set.
Figure 5.15
Mean vs. standard deviation of f-measure: KC2 data set.
Chapter 6
Figure 6.1
Methodology.
Figure 6.2
Additional input scaling layer ANN architecture.
Figure 6.3
System architecture of ANN-PSO-PCA-GA approach.
Figure 6.4
Variation of PCs for COCOMO data set.
Figure 6.5
Variation of PCs for NASA data set.
Figure 6.6
Variation of PCs for Desharnais data set.
Figure 6.7
Variation of PCs for Albrecht data set.
Chapter 1
Table 2.1
Examples of software reliability growth models.
Table 2.2
Techniques used for Software Reliability Modeling,
Chapter 3
Table 3.1
Data sets used.
Table 3.2
Comparison of MAPE using actual, exponential and logarithmic encoded input.
Table 3.3
Comparison of MAPE using actual, exponential and logarithmic encoded input.
Table 3.4
Comparison of RMSE and RRMS value on DS16.
Table 3.5
Comparison of RMSE and RRMS value on DS17.
Table 3.6
Comparison of RMSE and RRMS value on DS18.
Chapter 4
Table 4.1
Benchmark data sets (with their references).
Table 4.2
Lag value and no. of hidden neurons giving best accuracy for data sets using ANN model.
Table 4.3
Lag value and no. of hidden neurons giving best accuracy for data sets using ANN-PSO model.
Table 4.4
Comparison of NRMSE value using ANN and ANN-PSO model.
Table 4.5
Comparison of NRMSE values of proposed approaches with statistical models.
Table 4.6
Model comparison based on NRMSE for DS1.
Table 4.7
Model comparison based on SSE for DS2.
Table 4.8
Next-step prediction for DS3, DS4 and DS7.
Chapter 5
Table 5.1
Characteristics of data set.
Table 5.2
Metrics used in the data sets.
Table 5.3
ASCI of each metric in decreasing order (left to right) for CM1.
Table 5.4
ASCI of each metric in decreasing order (left to right) for PC1.
Table 5.5
ASCI of each metric in decreasing order (left to right) for KC1.
Table 5.6
ASCI of each metric in decreasing order (left to right) for KC2.
Table 5.7
Confusion matrix.
Table 5.8
Prediction performance measures: CM1 data set.
Table 5.9
Prediction performance measures: PC1 data set.
Table 5.10
Prediction performance measures: KC1 data set.
Table 5.11
Prediction performance measures: KC2 data set.
Table 5.12
Performance comparison of KC2 data set.
Table 5.13
Best subset of metrics by applying SFPM.
Table 5.14
Best subset of metrics by applying CFS.
Table 5.15
Comparison of performance measure for CM1 data set.
Table 5.16
Mean and standard deviation of CM1 data set.
Table 5.17
Comparison of performance measure for PC1 data set.
Table 5.18
Mean and standard deviation of PC1 data set.
Table 5.19
Comparison of performance measure for KC1 data set.
Table 5.20
Mean and standard deviation of KC1 data set.
Table 5.21
Comparison of performance measure for KC2 data set.
Table 5.22
Mean and standard deviation of KC2 data set.
Chapter 6
Table 6.1
Effort multipliers of COCOMO data set.
Table 6.2
Division of COCOMO data set.
Table 6.3
MMRE value of COCOMO data set using presnted approaches.
Table 6.4
PRED(25) value of COCOMO data set using presented approaches.
Table 6.5
Comparison of MMRE value on COCOMO data set.
Table 6.6
Comparison of PRED(25) value on COCOMO data set.
Table 6.7
MMRE and PRED(25) value of NASA data set using presented approaches
Table 6.8
Comparison of MMRE and PRED(25) value on NASA data set.
Table 6.9
MMRE and PRED(25) value of Desharnais data set using presented approaches.
Table 6.10
Comparison of MMRE and PRED(25) value on Desharnais data set.
Table 6.11
MMRE and PRED(25) value of Albrecht data set using presented approaches.
Table 6.12
Comparison of MMRE and PRED(25) value on Albrecht data set
ii
iii
iv
v
xi
xii
xiii
xiv
xv
xvi
xvii
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
Scrivener Publishing 100 Cummings Center, Suite 541J Beverly, MA 01915-6106
Performability Engineering Series Series Editors: Krishna B. Misra ([email protected]) and John Andrews ([email protected])
Scope: A true performance of a product, or system, or service must be judged over the entire life cycle activities connected with design, manufacture, use and disposal in relation to the economics of maximization of dependability, and minimizing its impact on the environment. The concept of performability allows us to take a holistic assessment of performance and provides an aggregate attribute that reflects an entire engineering effort of a product, system, or service designer in achieving dependability and sustainability. Performance should not just be indicative of achieving quality, reliability, maintainability and safety for a product, system, or service, but achieving sustainability as well. The conventional perspective of dependability ignores the environmental impact considerations that accompany the development of products, systems, and services. However, any industrial activity in creating a product, system, or service is always associated with certain environmental impacts that follow at each phase of development. These considerations have become all the more necessary in the 21st century as the world resources continue to become scarce and the cost of materials and energy keep rising. It is not difficult to visualize that by employing the strategy of dematerialization, minimum energy and minimum waste, while maximizing the yield and developing economically viable and safe processes (clean production and clean technologies), we will create minimal adverse effect on the environment during production and disposal at the end of the life. This is basically the goal of performability engineering.
It may be observed that the above-mentioned performance attributes are interrelated and should not be considered in isolation for optimization of performance. Each book in the series should endeavor to include most, if not all, of the attributes of this web of interrelationship and have the objective to help create optimal and sustainable products, systems, and services.
Publishers at Scrivener Martin Scrivener ([email protected]) Phillip Carmical ([email protected])
By
Manjubala Bisi
Neeraj Kumar Goyal
This edition first published 2017 by John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, USA and Scrivener Publishing LLC, 100 Cummings Center, Suite 541J, Beverly, MA 01915, USA © 2017 Scrivener Publishing LLC For more information about Scrivener publications please visit www.scrivenerpublishing.com. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, except as permitted by law. Advice on how to obtain permission to reuse material from this title is available at http://www.wiley.com/go/permissions.
Wiley Global Headquarters 111 River Street, Hoboken, NJ 07030, USA
For details of our global editorial offices, customer services, and more information about Wiley products visit us at www.wiley.com.
Limit of Liability/Disclaimer of Warranty While the publisher and authors have used their best efforts in preparing this work, they make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives, written sales materials, or promotional statements for this work. The fact that an organization, website, or product is referred to in this work as a citation and/or potential source of further information does not mean that the publisher and authors endorse the information or services the organization, website, or product may provide or recommendations it may make. This work is sold with the understanding that the publisher is not engaged in rendering professional services. The advice and strategies contained herein may not be suitable for your situation. You should consult with a specialist where appropriate. Neither the publisher nor authors shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages. Further, readers should be aware that websites listed in this work may have changed or disappeared between when this work was written and when it is read.
Library of Congress Cataloging-in-Publication Data
ISBN 978-1-119-22354-2
DedicatedToOur Families
This book presents artificial neural network (ANN) applications to estimate/ predict important software reliability indicators such as expected number of failures in a given time, expected time between successive failures, identification of fault-prone modules and estimation of development efforts. Applications of artificial neural network for the above purposes are briefly presented and discussed as a case study with experimental results in this book.
These days, software is an integral part of most systems with responsibility of carrying out critical tasks and, therefore, the demand for application of software is increasing day-by-day. The failures in the software may lead to minor inconvenience and customer dissatisfaction, economic loss, loss of life, and total system failure. Therefore, software professionals are constantly trying to develop software which are not only functionally efficient but also safe, reliable and cost effective. A reliable software can be achieved by good software development practices. However, these practices provide only directions on how to develop and verify/ validate software as well as suggest/enforce good development practices. There is a need to measure and understand software failure behavior, which will in turn help to evaluate or predict software performance, optimize resources, control the factos affecting software reliability with reduction in development time.
Some important measures reflecting software reliability are: cumulative number of failures in a given time, time between successive failures, software fault-proneness of software modules, software reliability, software availability, software failure intensity etc. Prediction of the above parameters help the software professionals to mange the resources in optimal way and ensure release the software within time and lesser cost while meeting reliability/ safety criteria. This book is a result of our research carried out at the Reliability Engineering Centre, Indian Institute of Technology, Kharagpur.
This book can be used as a valuable tool for software practitioners and managers in software reliability prediction and for researchers in the field. Also, the researchers can pursue advanced studies and research in this area. Sufficient research background have been given through illustrations of various techniques. It can also be used by undergraduate or postgraduate students who want to research/ learn software reliability prediction.
The book is divided into seven chapters. In Chapter 1, general concepts of software reliability are presented, need of software reliability evaluation along with associated terms such as faults, errors, failures, and reliabiity is discussed. Overview of software reliability modelling is also described in this chapter.
In Chapter 2, literature survey on software reliability modelling is presented. Classification of existing models according to various criterions followed in literature is presented in this chapter. Different techniques used for software reliability prediction such as statistical methods, fuzzy logic, artificial neural networks, genetic algorithm, baysian approach, support vector machine, naive bayes, and some hybrid techniques are breifly discussed in this chapter.
In Chapter 3, two artificial neural network (ANN) models are presented to predict cumulative number of failures in software. These models use single input (testing time), single output (failure count) ANN. These models are experimented with multiple data sets to show how they work and their performance in terms of prediction accuracy. These models will help to determine time to stop testing and software release.
In Chapter 4, two ANN models using time series approach are presented to predict time between successive software failures. These models use multiple delayed inputs, single output ANN architecture. These models are applied on multiple data sets to show and compare their prediction accuracy with other models.
In Chapter 5, two ANN models are presented to identify fault-prone modules in software. These models are configured as multiple inputs (software quality metrics) and single output ANN archtectures to predict fault-prone modules. Sensitivity analysis and principal component analysis (PCA) are employed to identify important software quality metrics from a set of available quality metrics. This process is called dimension reduction and it helps to achieve better accuracy by simplifying the model and reducing dependant metrics.
In Chapter 6, ANN models are presented to predict software development efforts from effort multipliers. Effect of optimizing ANN architecture using genetic algorithm (GA) on prediction accuracy is studied and found to be providing better accuracy.
In Chapter 7, recent trends as well as future trends in software reliability are presented.
In the appendices, different data sets used throughout the book are provided for reference and practical purposes.
Manjubala BisiNeeraj Kumar GoyalJune 2017
This book has been a culmination of my research at the Reliability Engineering Centre, Indian Institute of Technology, Kharagpur, India. I wish to express my gratitude to all who helped me during preparation of this book. Much of the content and concepts of the book are based on existing research available in literature. I would like to express my appreciation to those authors who have published excellent materials on Software Reliability Modelling and Artificial Neural Networks in form of books and research articles.
I would like to thank Professor K. B. Misra and Professor Neeraj Kumar Goyal, who motivated me to write this book. I would also thank Professor V.N.A. Naikan, S. K. Chaturvedi and Rajib Mall who gave some excellent suggestions to improve my research work at Indian Institute of Technology, Kharagpur, India.
I am also thankful to my husband Dr. R. R. Rout for his moral support during preparation of this book. Lastly my gratitude to my parents, my in-laws and my only daughter (Trisha Rout) for their unconditional love, suport and prayers for my success in achieving this goal.
I always thank God for guiding and taking care of me in every step of the way.
Manjubala Bisi
AE
Average Error
ANN
Artificial Neural Network
ANOVA
One-way Analysis of Variance
ASCI
Average Sensitivity Casual Index
CFS
Correalation-based Feature Selection
DS
Data Set
FN
Fault Negative
FP
FaultProne
FP
Fault Positive
GA
Genetic Algorithm
GP
Genetic programming
GRA
Gray Relational Analysis
LR
Logistic Regression
MAPE
Mean Absolure Percentage Error
MLP
Multilayer perceptron
MMRE
Mean magnitude Relative Error
NB
Naïve Bayes
NEE
Neural Network with Exponential Encoding
NFP
Not Fault-Prone
NHPP
Non-homogeneous Poison Process
NLE
Neural Network with Logarithmic Encoding
NRMSE
Normalized Root Mean Square Error
PCA
Principal Component Analysis
PRED (25)
Prediction within 25%
PSO
Particle swarm Optimization
RBF
Radial Basis Function
RE
Relative Error
RF
Random Forest
RMSE
Root Mean square Error
RRMS
Relative Root Mean Square Error
SA
Simulated Annealing
SDLC
Software Development Life Cycle
SRGMs
Software Reliability Growth Models
SSE
Sum of Squared Error
SVM
Support Vector Machine
TN
True Negative
TP
True Positive
Computer systems controlled by software play a major role in day-to-day activities of the modern society. Applications of software has now reached diverse fields such as home appliances, hospital health care unit, industrial control, nuclear reactor plant, air traffic control, aircraft, shopping and many more. Many commercial and government organizations depend on software to increase their efficiency and effectiveness. The demand for application of software is increasing day-by-day. The failures in the software may lead to minor inconvenience and customer dissatisfaction, economic loss, loss of life and total system failure. Some of the tragic consequences of software failures are: i) Therac-25 accident: It is a computer controlled radiation therapy machine. Software failures led to death of six patients due to therapeutic overdose ii) Obama care health insurance portal: Due to software failures, this portal shallows one third insurance applications which leads to customer dissatisfaction iii) Social network: Due to automatic generation and recommendation of add friend request, private data of six million members of the network was made public iv) 22 people wrongly arrested in Australia due to failures in “NZ million courts computer system” v) Telephone outage: After changing three lines of code in a signaling program which contains millions lines of code, the local telephone systems in California stopped. Therefore, software professionals are constantly trying to develop software which are not only functionally attractive but also safe and reliable.
According to ANSI (American National Standards Institute), software reliability is defined as the probability of failure-free software operation for a specified period of time in a specified environment. It is also an important attribute of software quality, together with functionality, usability, performance, serviceability, capability, install ability, maintainability and documentation.
Software reliability prediction is an important step in the development of reliable software. It aids to develop reliable software within given time and budget constraints. Software reliability prediction is carried throughout software development process. Different terminologies such as fault, error, failure, bug, mistake, malfunction and defect are associated with software reliability problems. A fault is created when programmer makes some error during requirement, design, coding and testing phase. Software contains fault, if for some input, the output is incorrect. It can be removed by correcting the erroneous part of the software. Failure occurs in software, if the faulty part is executed. Wrong input, incorrect printing of output and misinterpretation of output may cause failures in software. The failures are classified as transient, permanent, recoverable and unrecoverable depending upon severity. Transient failures occur only for certain input values while permanent failures occur for all input values. When recoverable failure occurs, the system recovers with or without operator intervention. The system may have to be restarted when unrecoverable failure occurs.
Software reliability measurement is gaining importance in software industry. So, various techniques have been developed to predict software failures with time, which characterize the software failure behavior. The existing software reliability prediction models are divided into two categories. First category of methods utilize failure data recorded during testing to estimate current reliability of the software and assess the efforts required to achieve certain level of software reliability before releasing it. These models generally model the software reliability growth considering impact of testing and debugging efforts. Second category of models assess development efforts to achieve a certain level of reliability utilizing software quality indices. These models are generally called early software reliability prediction models as they try to assess software reliability before testing phase allowing better planning and utilization of resources. These models allow to monitor software reliability throughout development process and provide feedback at right time during development resulting in lesser development cost and achieving quality and reliable software within budget and time constraint. However, early software reliability prediction models show larger prediction errors, in general, compared to growth models as the testing data provides more information about software reliability built in the system.
Predicting cumulative number of failures and time between successive software failures help software professionals for determining release time of software. If the number of failures are not increasing after testing the software for a certain period of time and the time between successive failures are very high, then software managers can stop testing and release the software. Large and complex software systems are developed by integrating various software modules. All modules are neither equally important nor do they contain an equal amount of faults. Therefore, researchers started focusing on the classification of software modules as fault-prone (FP) and not fault-prone modules (NFP). Fault-proneness of a module can be determined from software quality metrics. Some metrics are interrelated and redundant with each other. Therefore, determination of important software metrics is required to predict fault-pone modules. Software development efforts need to be accurately predicted during early phases of software development process using software quality metrics affecting efforts known as effort multipliers. It helps to produce reliable software within time and budget constraint. If a software is released with higher reliability than the desired reliability, additional testing resources are required which reduces the profit margin for the developer and delay in development schedule. If a software is released with lower reliability than the desired reliability, then the maintenance cost will be more than testing cost.
This book presents prediction of above software reliability applications: number of failures in a given time, time between failures, classification of fault-prone modules and development efforts prediction. The major content of this book are as follows:
Predicting Cumulative Number of Software Failures in a Given Time:
In this work, two artificial neural network (ANN) models are presented to predict cumulative number of failures in software. These models use single input (testing time), single output (failure count) and experimented with multiple data sets. The results show better prediction accuracy. These models help to determine time to stop testing and release time of software.
Predicting Time between Successive Software Failures:
In this work, two ANN based models using time series approach are presented to predict time between successive software failures. These models use multiple delayed inputs, single output and their application on multiple data sets also show better prediction accuracy.
Predicting Software Fault-Prone Modules:
In this work, ANN models are presented to predict fault-prone modules in software. These models are configured as multiple inputs (software quality metrics) and single output to predict fault-prone modules. Sensitivity analysis and principal component analysis (PCA) are studied for the purpose of input dimension reduction and PCA is found to be providing better accuracy.
Predicting Software Development Efforts:
In this work, ANN models are presented to predict software development efforts from effort multipliers. Effect of optimizing ANN architecture using genetic algorithm (GA) on prediction accuracy is studied and found to be providing better accuracy.
This chapter explains the overview and necessity of software reliability. The overview of software reliability modeling and its limitations are also described in this chapter. This chapter defines objectives of this book. Finally, organization of the book is presented in this chapter.
The rest of this chapter is organized as follows. Overview of software reliability modeling and its limitations are discussed in Section 1.1. The objectives and overview of the book are presented in Section 1.2. The organization of book is presented in Section 1.3.
In this section, an overview of software reliability prediction and its limitations are presented.
In software industry, time, budget and testing resources are limited. So, it is necessary to develop reliable software within budget and time constraint. Software reliability is hard to achieve, because the complexity of software tends to be high. Software reliability is measured to determine quality of current product, to predict quality of product and to improve quality of a product. However, it is a difficult problem to measure software reliability because we do not have a good understanding of the nature of software. It can be measured as estimation, prediction and certification of software reliability. Software reliability estimation is used to quantify current reliability level. Some statistical inferences are applied to failure data obtained during software testing to determine whether the applied reliability model is good enough for the current software project. Software reliability prediction is used to forecast the future reliability. The future failure behavior is predicted from present and past failures. Software reliability certification ensures a certain reliability level.
Software reliability modeling and prediction is an important step to develop reliable software. Reliability prediction is carried throughout the software development process. Reliability prediction carried out before testing phase (requirement, design and coding phase) is called early reliability prediction. Testing data are not available during these phases. Therefore, using some software development characteristics, software project, use/test characteristics and fault statistics obtained
