Notes on:

Introduction to Software Reliability: a state of the art review

RAC

     

Introduction to Software Reliability: a state of the art review, Report # F30602-94-0087, Reliability Analysis Center (Mary Hartz, Ellen Walker, David Mahar listed as authors), Rome NY, 1996. (183 pages).

I DON'T PUBLISH NOR SELL THIS BOOK -- CONTACT RAC FOR INFO ON OBTAINING IT!

This book attempts to bring together concepts from both hardware and software reliability so that engineers from either area can begin to understand the other. However, it is clearly meant more for a hardware audience trying to understand software than for the other way around. While there are no deep theoretical results unifying the two fields, there is a good survey of software development methods, metrics, and reliability models.

This book should serve as a good starting point for a hardware engineer or engineering manager who suddenly finds himself immersed in the realm of software reliability.


Topic coverage: (*** = emphasized; ** = discussed with some detail; * = mentioned)

*** Dependability ** Electronic Hardware ** Requirements
Safety *** Software *** Design
Security Electro-Mechanical Hardware * Manufacturing
Scalability Control Algorithms * Deployment
Latency Humans Logistics
Affordability Society/Institutions Retirement

Abstract:

This document is written for a broad audience of readers with two main objectives:

For the hardware engineer, this books performs comparative analyses referencing the language of the hardware environment, describing conceptual differences between hardware and software and explaining methods and models currently available for determining software reliability. For the software community, this book addresses the need to quantify reliability and to measure progress toward reliability and quality. It describes reliability efforts to date in terms that are meaningful to the software developer.


Contents:

PREFACE                                                v

1.0 INTRODUCTION: SOFTWARE ISSUES                      1
   1.1 A Little Reliability History                    1
   1.2 Why Consider Software Reliability?              1
   1.3 Reliability Definitions                         2
   1.4 Philosophical and Conceptual Similarities and
        Differences Between Hardware and Software
        Quality and Reliability                        4
   1.5 Software Reliability Terminology                5
   1.6 Life Cycle Considerations                       7
   1.7 Software Failures Modes, Effects and
        Criticality Issues                             11
   1.8 System Reliability Issues                       14
   1.9 Software Product, Process and Resultant
        Reliability Metrics                            15
   1.10 Summary: Hardware and Software Reliability
        Differences                                    16

2.0 THE SOFTWARE DEVELOPMENT PROCESS                   17
   2.1 Ad Hoc Software Development                     19
   2.2 Waterfall Model                                 19
   2.3 Classic Development Model                       20
   2.4 Prototyping Approach                            23
   2.5 Spiral Model                                    25
   2.6 Incremental Development Model                   28
   2.7 Cleanroom Model                                 29
   2.8 Software Reuse Approach                         32
   2.9 Concurrent Development Approach                 34
   2.10 Automated Development Techniques               35

3.0 CONTRASTING HARDWARE AND SOFTWARE DEVELOPMENT      37
   3.1 Requirements Definition and Analysis Phases     37
   3.2 Design Phase                                    38
   3.3 Code Phase                                      40
   3.4 Test Phase                                      40
   3.5 Maintenance Phase                               45
   3.6 Development Process Reviews                     46

4.0 PRODUCT METRICS                                    49
   4.1 Lines of Code Metric                            49
   4.2 Function Point Metric                           50
   4.3 Comparison of Lines of Code and Function Point
        Values                                         55
   4.4 Characteristics and Requirements Metrics        55
   4.5 Complexity-Oriented Metrics                     56
   4.6 Test Coverage Metrics                           61
        4.6.1 Test Coverage Reliability Metrics        61
        4.6.2 Estimating Total Number of Faults Using
             Tagging                                   63

5.0 PROJECT MANAGEMENT METRICS                         65
   5.1 Project Schedule, Effort and Cost Metrics       65
   5.2 Productivity Metrics                            68
   5.3 Risk Metrics                                    70
   5.4 Configuration Management Metrics                72

6.0 PROCESS METRICS                                    75
   6.1 Capability Maturity Model (CMM)                 75
        6.1.1 Model Focus                              76
        6.1.2 Common Model Architecture                77
        6.1.3 Assessment Summary                       80
   6.2 Malcolm Baldrige National Quality Award         80
   6.3 ISO-9000 Certification                          82

7.0 FAULT AND FAILURE METRICS                          85
   7.1 Introduction to General Concepts                85
   7.2 Detailed Concepts                               89
   7.3 Failure Data                                    91

8.0 SOFTWARE RELIABILITY MODELS                        93
   8.1 Prediction Models                               96
        8.1.1 In-House Historical Data Collection
                Model                                  96
        8.1.2 Musa's Execution Time Model              96
        8.1.3 Putnam's Model                           97
        8.1.4 Rome Laboratory Prediction Model:
                RL-TR-92-15                            99
        8.1.5 Rome Laboratory Prediction Model:
                RL-TR-92-52                            100
   8.2 Classical Fault Count/Fault Rate Estimation
          Models                                       102
        8.2.1 Exponential Distribution Models          102
        8.2.2 Weibull Distribution Model               108
   8.3 Bayesian Fault Rate Estimation Models           108
        8.3.1 Thompson and Chelson's Model             108

Appendix A: Reference List                             111
Appendix B: Acronyms And Glossary                      117
Appendix C: Detailed Information Required To Predict
        Fault Density At Delivery                      141
Appendix D: Additional Resources                       165

Go to: other books | resource page

Philip Koopman: koopman@cmu.edu