Preface Since I entered the field of software reliability engineering some years ago, I have been looking for a book which exclusively and comprehensively deals with subjects I, as both a researcher and a practitioner, want to know about software reliability. I wasn't able to find one. So I started this project by inviting the leading experts in this field to write chapters for this book. I laid out the framework of the book, identified its essential components, and integrated them by maintaining completeness and avoiding redundancies. As an editor, my duty is to ensure breadth, while the chapter authors treat the delegated chapters with depth.
This is a handbook on software reliability engineering. The theme underlying the book is the formulation, application, and evaluation of software reliability engineering techniques in practice. Reliability is obviously related to many characteristics of the software product and development process. This handbook intends to address all its aspects in a quantitative way.
The book is designed for practitioners or researchers of all levels of expertise from novice to expert. It is targeted for several large general groups of people who need information on software reliability engineering. They include:
Each of the book's individual topics could be considered as a compact, self-contained mini-book right under its title. However, these topics are presented in relation to the basic principles and practices of software reliability engineering. The approach is to provide a framework and a set of techniques for evaluating and improving the engineering of software reliability. It presents a specific set of solutions, mostly obtained from real world projects and experimental studies, for routine applications. It further highlights promising emerging techniques for research and exploration opportunities.
This book is also designed to be used as a textbook by students of software engineering or system reliability, either in a classroom or for self-study. Examples, case studies, and problems have been provided throughout the book to illustrate the concepts and to walk through the techniques. A Solution Manual is available with solutions to some of the exercises. The book has been thoroughly indexed so that it can serve as a true handbook for convenient use, and a comprehensive list of reference is provided for the purpose of literature search. As a unique value-added feature, this book carries a CD-ROM which contains 40 published and unpublished software project failure data and some of the most advanced software reliability tools for ready application of software reliability techniques and a jump-start on software reliability engineering program.
What is finally presented here in the book is the work contributed by celebrated international experts for their best knowledge and practices on specific reliability-related topics. As a development team of this book we want to thank our colleagues who made contributions to this book by providing continuous encouragements and thorough reviews of the chapters of the book. They are: Jean Arlat, Phillip Babcock, Farokh B. Bastani, Brian Beckman, Justin Biddle, James Bieman, Harry S. Burns, Sid Dalal, Chris Dale, Adrian Dolinsky, George Finelli, Amrit Goel, Jack Goldberg, Myron Hecht, Walter Heimerdinger, Yu-Yun Ho, Yennun Huang, Robert Jackson, Mohamed Kaaniche, Kalai Kalaichelvan, Rick Karcich, Ted Keller, Elaine Keramidas, Chandra Kintala, Sy-Yen Kuo, Ming Y. Lai, Alice Lee, Haim Levendel, Yi-Bing Lin, Peng Lu, Richard E. Machol, Suku Nair, Mits Ohba, Gardner Patton, Hoang Pham, Francesca Saglietti, Norm Schneidewind, Robert Sherman, David Siefert, Pradip Srimani, Mark Sullivan, Robert Swarz, K.C. Tai, Yoshi Tohma, Randy Van Buren, C.W. Vowell, Anneliese von Mayrhauser, Chris J. Walter, Yi-Ming Wang, Pramod Warty, Chuck Weinstock, Min Xie, and Jinsong Yu.
We are most appreciative of the organizations and projects who provided us funding supports for the work conducted in some of the book chapters. They are: the Advanced Research Projects Agency, the ESPRIT Basic Research Action on Predictably Dependable Computing Systems, the ESPRIT programme as part of the PDCS1 and PDCS2 projects, the EU Environment programme as part of the SHIP project, IBM at Poughkeepsie, New York, the Illinois Computer Laboratory for Aerospace Systems and Software (ICLASS), National Aeronautics and Space Administration (NASA), NASA AMES Research Center, Office of Naval Research, Tandem Computers Incorporated, the UK EPSRC as part of the DATUM project, and the US Air Force Operational Test and Evaluation Center (AFOTEC).
I also want to particularly thank Al Aho and Rich DeMillo for writing a foreword to this book. Their review comments are helpful and rewarding.
My appreciation goes to Jean Glasser, Marjorie Spencer, and John Wyzalek, who were the three managing editors at McGraw-Hill at different development stages of this book. Midge Haramis's assistance is also acknowledged. The invaluable guidance and help of Christine Furry at North Market Street Graphics during many revision, editing and production cycles have also made this book project much easier than it would have been.
Finally I want to dedicate this book to my wife Felicia, for her love, understanding, and support throughout this book project.
Michael R. Lyu