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)
By
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
Dedicated
To
Our 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 Bisi
Neeraj Kumar Goyal
June 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 |