1st Edition

Ensuring Software Reliability

By Ann Marie Neufelder Copyright 1993

    Explains how software reliability can be applied to software programs of all sizes, functions and languages, and businesses. This text provides real-life examples from industries such as defence engineering, and finance. It is aimed at software and quality assurance engineers and graduate students.

    About the Series Preface INRODUCTION TO SOFTWARE RELIABILITY Introduction Measurement and Analysis of Software Reliability Development Techniques for Reliable Software Improving the Process Management of the Process Summary Defining Software Reliability Software Reliability Definitions How Can Software Be Unreliable? Why Is Software Reliability Important Today? The Cost of Unreliable Software Summary References Software Failures and Failure Processes Software Errors, Faults, and Failures Software Versus Hardware Failures Software Versus Hardware Failure Process Summary References Government and Industry Objectives Measurement of Software Reliability and Goals for Improving it Allocations for System and Software Reliability Summary References Factors that Affect Software Reliability Methodologies and Tools Learning Factor Organization Documentation Complexity Environment Presence of Prototyping Requirements Translation and Traceability Test Methodology Maintenance Schedule Language Existence of Similar Software Qualitative Characteristics of Software Tradeoffs of Design Parameters Summary References Software Reliability Terms and Definitions Types of Software Errors Criticality of Software Errors Types of Software Testing Software Reliability Testing Randomness of Software Faults Distribution of Software Faults Software Reliability Parameters Summary References MEASURING SOFTWARE RELIABILITY Software Reliability Data Collection Collecting and Measuring Error Data Via the Problem-Reporting Process Process Data to Be Collected Product Data to Be Collected and Measured Case Studies Summary References Software Reliability Models Software Reliability Model Parameters The Musa Models Shooman's Model Jelinski-Moranda Deutrophication Model Lipow Modified Jelinski-Moranda Model Goel-Okumoto Model Jelinski-Moranda Geometric Deutrophication Model Duane Growth Model Schick-Wolverton Model Leone Test Coverage Model Error Seeding Models Dual Test Group Model Testing Success Model Weibull Model Predictive Models Case Studies of Reliability Models Summary References IMPROVING SOFTWARE RELIABILITY Designing for More Reliable Software Structured Design and Code Conventions for a Structured Design Documenting Source Code Reusability Fault Tolerance and Error Prevention Summary References Testing and Maintaining for More Reliable Software Structural Complexity and Structured Testing Algorithm Testing Logical Testing Maintenance and Regression Testing Functional Testing Summary References Software Analyses Fault-Tree Analysis Failure Modes Effects and Criticality Analysis Summary References Automating Software Reliability Tools for Estimating Software Reliability Analysis Tools Design Tools Tools that Compute Complexity Tools that Produce Test Cases Configuration Management Tools Summary References MANAGEMENT OF SOFTWARE RELIABILITY Developing a Program Plan for Software Reliability Steps for Implementing Software Reliability at Your Organization Implementing Software Reliability on a Particular Project Medium- and Long-Term Objectives Lessons Learned Summary References Index

    Biography

    Ann Marie Neufelder