Ensuring Software Reliability

By Ann Marie Neufelder

Published by Marcel Dekker Incorporated (now Taylor Francis Publishing)

  • 270 Madison Avenue, New York, NY 10016-0602.

  • To order call MDI at 1-212-696-9000 or 1-800-228-1160.

  • ISBN 0-8247-8762-5, 242 pages.


Contents

PART I: INTRODUCTION TO SOFTWARE RELIABILITY
       1  Introduction                                                                                      
              1.1        Measurement and Analysis of Software Reliability                   
              1.2        Development Techniques for Reliable Software                      
              1.3        Improving the Process                                                          
              1.4        Management of the Process Summary                                    
                          Summary

       2  Defining Software Reliability

              2.1        Software Reliability Definitions                                             
              2.2        How Can Software Be Unreliable?                                        
              2.3        Why Is Software Reliability Important Today?                        
              2.4        The Cost of Unreliable Software                                           
                          Summary                                                                            
                          References                                                                        

       3  Software Failures and Failure Processes
           
              3.1        Software Errors, Faults, and Failures
              3.2        Software Versus Hardware Failures
              3.3        Software Versus Hardware Failure Process
                          Summary
                          References

        4  Government and Industry Objectives

              4.1        Measurement of Software Reliability and Goals for Improving it
              4.2        Allocations for System and Software Reliability
                          Summary
                          References

        5  Factors that Affect Software Reliability
            
              5.1        Methodologies and Tools
              5.2        Learning Factor
              5.3        Organization
              5.4        Documentation
              5.5        Complexity
              5.6        Environment
              5.7        Presence of Prototyping
              5.8        Requirements Translation and Tracability
              5.9        Test Methodology
              5.10       Maintenance
              5.11       Schedule
              5.12       Language
              5.13       Existence of Similar Software
              5.14       Qualitative Characteristics of Software
              5.15       Tradeoffs of Design Parameters
                           Summary
                           References

        6  Software Reliability Terms and Definitions
           
              6.1        Types of Software Errors
              6.2        Criticality of Software Errors
              6.3        Types of Software Testing
              6.4        Software Reliability Testing
              6.5        Randomness of Software Faults
              6.6        Distribution of Software Faults
              6.7        Software Reliability Parameters
                          Summary
                          References
PART II: MEASURING SOFTWARE RELIABILITY
        7  Software Reliability Data Collection
           
              7.1        Collecting and Measuring Error Data Via the Problem-Reporting Process
              7.2        Process Data to Be Collected
              7.3        Product Data to Be Collected and Measured
              7.4        Case studies
                          Summary
                          References

         8  Software Reliability Models
           
              8.1        Software Reliability Model Parameters
              8.2        The Musa Models
              8.3        Shooman's Model
              8.4        Jelinski-Moranda Deutrophication Model
              8.5        Lipow Modified Jelinski-Moranda Model
              8.6        Goel-Okumoto Model
              8.7        Jelinski-Moranda Geometric Deutrophication Model
              8.8        Duane Growth Model
              8.9        Schick-Wolverton Model
              8.10       Leone Test Group Model
              8.11       Error Seeding Models
              8.12       Dual Test Group Model
              8.13       Testing Success Model
              8.14       Weibull Model
              8.15       Predictive Models
              8.16       Case Studies of Reliability Models
                           Summary
                           References
PART III: IMPROVING SOFTWARE RELIABILITY
       9  Designing for More Reliable Software
           
              9.1       Structured Design and Code
              9.2       Conventions for a Structured Design
              9.3       Documenting Source Code
              9.4       Reusability
              9.5       Fault Tolerance and Error Prevention
                         Summary
                         References
  
      10  Testing and Maintaining for More Reliable Software

              10.1       Structural Complexity and Structured Testing
              10.2       Algorithm Testing
              10.3       Logical Testing
              10.4       Maintenance and Regression Testing
              10.5       Functional Testing
                           Summary
                           References

      11  Software Analyses

              11.1       Fault-Tree Analysis
              11.2       Failure Modes Effects and Criticality Analysis
                           Summary
                           References
    
      12  Automating Software Reliability
         
              12.1       Tools for Estimating Software Reliability
              12.2       Analysis Tools
              12.3       Design Tools
              12.4       Tools that Compute Complexity
              12.5       Tools that Produce Test Cases
              12.6       Configuration Management Tools
                           Summary
                           References
PART IV: MANAGEMENT OF SOFTWARE RELIABILITY
       13  Developing a Program Plan for Software Reliability
           
              13.1       Steps for Implementing Software Reliability at Your Organization
              13.2       Implementing Software Reliability on a Particular Project
              13.3       Medium- and Long- Term Objectives
              13.4       Lessons Learned
                          Summary
                          References