Cover

Scrivener Publishing
100 Cummings Center, Suite 541J
Beverly, MA 01915-6106

Performability Engineering Series
Series Editors: Krishna B. Misra (kbmisra@gmail.com)
and John Andrews (John.Andrews@nottingham.ac.uk)

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 (martin@scrivenerpublishing.com)
Phillip Carmical (pcarmical@scrivenerpublishing.com)

Artificial Neural Network for Software Reliability Prediction

 

 

 

By

Manjubala Bisi

Neeraj Kumar Goyal

 

 

 

Wiley Logo

Dedicated

To

Our Families

Preface

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 Bisi
Neeraj Kumar Goyal
June 2017

Acknowledgement

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

Abbreviations

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