studies in fuzziness and soft computing - home - springer 978-81-322-1176-1/1.pdf · studies in...
Post on 27-Jun-2018
Embed Size (px)
Studies in Fuzziness and Soft Computing
Janusz Kacprzyk, Warsaw, Poland
For further volumes:http://www.springer.com/series/2941
The series Studies in Fuzziness and Soft Computing contains publications onvarious topics in the area of soft computing, which include fuzzy sets, rough sets,neural networks, evolutionary computation, probabilistic and evidential reasoning,multi-valued logic, and related fields. The publications within Studies in Fuzzi-ness and Soft Computing are primarily monographs and edited volumes. Theycover significant recent developments in the field, both of a foundational andapplicable character. An important feature of the series is its short publication timeand world-wide distribution. This permits a rapid and broad dissemination ofresearch results. Contact the series editor by e-mail: firstname.lastname@example.org.
Ajeet Kumar Pandey Neeraj Kumar Goyal
Early Software ReliabilityPrediction
A Fuzzy Logic Approach
Ajeet Kumar PandeyAECOMHyderabad, Andhra PradeshIndia
Neeraj Kumar GoyalReliability Engineering CentreIndian Institute of Technology KharagpurKharagpur, West BengalIndia
ISSN 1434-9922 ISSN 1860-0808 (electronic)ISBN 978-81-322-1175-4 ISBN 978-81-322-1176-1 (eBook)DOI 10.1007/978-81-322-1176-1Springer New Delhi Heidelberg New York Dordrecht London
Library of Congress Control Number: 2013940762
Springer India 2013This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part ofthe material is concerned, specifically the rights of translation, reprinting, reuse of illustrations,recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission orinformation storage and retrieval, electronic adaptation, computer software, or by similar or dissimilarmethodology now known or hereafter developed. Exempted from this legal reservation are briefexcerpts in connection with reviews or scholarly analysis or material supplied specifically for thepurpose of being entered and executed on a computer system, for exclusive use by the purchaser of thework. Duplication of this publication or parts thereof is permitted only under the provisions ofthe Copyright Law of the Publishers location, in its current version, and permission for use mustalways be obtained from Springer. Permissions for use may be obtained through RightsLink at theCopyright Clearance Center. Violations are liable to prosecution under the respective Copyright Law.The use of general descriptive names, registered names, trademarks, service marks, etc. in thispublication does not imply, even in the absence of a specific statement, that such names are exemptfrom the relevant protective laws and regulations and therefore free for general use.While the advice and information in this book are believed to be true and accurate at the date ofpublication, neither the authors nor the editors nor the publisher can accept any legal responsibility forany errors or omissions that may be made. The publisher makes no warranty, express or implied, withrespect to the material contained herein.
Printed on acid-free paper
Springer is part of Springer Science+Business Media (www.springer.com)
Late Prof. R. B. Misra
Due to continuous growth in size and complexity of software system, reliabilityassurance becomes tough for developers while satisfying user expectations.Applicability of software keeps on increasing for products/systems ranging frombasic home appliances to safety critical business applications. Development ofreliable software with acceptable level of quality within available time frame andbudget has become a challenging objective. This objective could be achieved tosome extent through early prediction of number of faults present in the software.Early prediction of faults provides an opportunity to make early corrections duringdevelopment process and reduces the cost of development. Further it also helps inbetter planning and utilization of development resources. This book is an upshot ofour research at Reliability Engineering Center IIT Kharagpur, India. During ourresearch we struggled a lot to find the way to predict software reliability at earlystages of software development.
The book is intended to serve three associated audiences: software profes-sionals, project managers, and researchers. For software professionals, this bookserves as a means to understand reliability of their product, the potential factorsaffecting it, and adoption of best practices to reduce number of errors in thesoftware. For software project manager, this book serves as a collection of tools,which can be easily modeled and used for monitoring reliability of softwarethroughout the development process. Further, the reliability information obtainedcan be used for reducing software development time and cost. For software reli-ability and quality researcher, this book provides important references in the area.Besides, the models proposed in this book are basic framework. This frameworkcan be put to critical investigation to find better methods which remain easy tounderstand, implement, and use. We hope that this book will help software pro-fessionals and researchers to solve complicated problems in the area of earlysoftware reliability with ease.
The book is divided into seven chapters. Chapter 1 starts with a discussion onthe need of reliability and quality software. By providing various standard defi-nitions of software reliability, error, fault, and failure, chapter has discussed twoapproaches for measuring reliability of a software system. First, a developersview focusing on software faults; if the developer has grounds for believing thatthe software is relatively fault-free, then the system is assumed to be reliable.
Second, a user-based view which defines software reliability as the probabilityfailure-free software operation for a specified period of time in a specified envi-ronment. Irrespective of these viewpoints, software reliability measurementincludes two types of activities: estimation and prediction. This chapter also dis-cusses about the software reliability growth model (SRGMs) and its limitations.Chapter has highlighted the need of early software reliability prediction, itspractical challenges, and solutions. The reliability relevant metrics and CapabilityMaturity Model (CMM) are also discussed in the chapter.
Chapter 2 provides background on software reliability and quality predictions.This chapter has focused on the literature surveys on software reliability models,reliability relevant software metrics, software capability maturity models, softwaredefect prediction model, software quality prediction models, regression testing,software, and operational profile.
Chapter 3 proposes an early fault prediction model using software metrics andprocess maturity. For this, various reliability relevant software metrics applicableto different phase of software development are collected along with processmaturity. Model approach is modular in the sense that it can be applied at eachphase of Software Development Life Cycle (SDLC) and suitable for all type ofsoftware projects.
Chapter 4 has focused on fault density which seems to be a more desirablemeasure than number of fault for reliability and quality indicator. Fault densitymetric can be found for requirement document, design document, code document,and also for test report. The chapter proposes a multistage fault prediction modelwhich predicts the number of residual faults present in the software as softwareindustries are more interested to know residual faults present in their software.
Chapter 5 presents an approach to classify software modules as fault-prone (FP)and not fault-prone (NFP). Besides, the approach also predicts degree of faultproneness on a scale of zero to one, and ranks the module accordingly. ID3algorithm along with fuzzy inference system is used for classifying softwaremodules as FP or NFP. ID3 algorithm provides the required rules by analyzinghistory data for proposed fuzzy inference system.
Chapter 6 discusses an integrated and cost-effective approach to test prioriti-zation that increases the test-suites fault detection rate. The proposed approachconsiders the three important factors, program change level (PCL), test-suitechange level (TCL) and test-suite size (TS), before applying any techniques toexecute test-cases. These factors can be derived by using the information from themodified program version. A cost-effective reliability centric test case prioritiza-tion is also discussed in this chapter.
Chapter 7 discusses the way to develop the operational profile of a softwaresystem, to compute the number of test case required, and the way to allocate them.The chapter explains how the reliability of a software-based product depends on itsoperational profile. If developed early, an operational profile may be used toprioritize the development process, so that more resources are put on the mostimportant operations. A case study using the traditional and operational profile-based testing is also discussed.
Appendices containing the data set used in various chapters of this are given theend. Readers are advised to synchronize with these dataset while utilizing themodel for reliability prediction of any software or module. Any forms of con-structive suggestion