Software and Hardware Reliability




                                    1
Software Reliability Definition


The probability that the software will;
  operate as required (i.e., without fail),
  for a specified time,
  in a specified environment.


                                 2
Software Reliability - features

• failures in software are design faults,
• reliability during test changes continually
  (new problems are found as old ones are
  fixed / new code is never perfect)
• phenomenon of software reliability growth
• environment is important (platform/inputs)
       - new envt. may require s/w retest

                                   3
Hardware Reliability - features

• failure is usually due to physical deterioration
• hardware reliability tends, more than software,
  towards a constant value,
• hardware reliability usually follows the
  ‘bathtub’ principle,
• again, environment is important; a proportion
  of hardware faults are design faults

                                     4
Fault, Error, Failure
    (PERSON MAKES)
                                                   ENVIRONMENT
                                          INPUT
                MISTAKES                                       OPERATOR
CAN BE ATTRIBUTED TO   POTENTIALLY
ONE OR MANY            LEADS TO ZERO OR MANY          OR

                  FAULTS

                                                   REVEALING
CAN BE ATTRIBUTED TO
                       AND                         MECHANISM
ONE OR MANY

                           LEADS TO ZERO OR MANY

                  ERRORS
CAN BE ATTRIBUTED TO
                           LEADS TO ZERO OR MANY
ONE OR MANY

                 FAILURE
                                                     5
Reliability Measures
When we talk of reliability measures the irony is
that we invariably talk about failure measures.
There are four general ways of measuring
failures against time;
  •   time of failure,
  •   interval between failures,
  •   cumulative failures experienced up to a given time,
  •   failures experienced in a time interval.

                                           6
Ensuring Hardware Reliability
Hardware Reliability is ensured by conducting the
following tests:
• Fault Tree Analysis
• Failure Modes Effects and Criticality Analysis
• Failsafe Tests
• Fault Injection Tests
• PCB Trace Anaysis and Circuit Simulation
• Environmental Tests
                                        7
Ensuring Software Reliability
Software Reliability is ensured by following the following Techniques:

• Defensive Programming
    To produce programs which detect anomalous control flow, data flow
    or data values during their execution and react to these in a redetermined
    and acceptable manner.

• Fault Detection & Diagnosis
    To detect faults in a system, which might lead to a failure, thus providing
    the basisfor countermeasures in order to minimise the consequences of
    failures.



                                                          8
• Error Detecting and Correcting Codes
   To detect and correct errors in sensitive information.


• Diverse Programming
   Detect and mask residual software design faults during execution of a
   program, in order to prevent Safety critical failures of the system, and
   to continue operation for high reliability.


• Software Error Effect Analysis
   To identify software modules, their criticality; to propose means for
   detecting software errors and enhancing software robustness; to
   evaluate the amount of validation needed on the various software
   components.

                                                         9
Software Reliability Tests
•   Software Quality Audit
•   Software Rule Checking
•   Unit Testing
•   Software Integration Tests
•   Software/Hardware Integration Tests
•   Fault Injection Tests
•   System Validation


                                          10

Software and Hardware Reliability

  • 1.
    Software and HardwareReliability 1
  • 2.
    Software Reliability Definition Theprobability that the software will; operate as required (i.e., without fail), for a specified time, in a specified environment. 2
  • 3.
    Software Reliability -features • failures in software are design faults, • reliability during test changes continually (new problems are found as old ones are fixed / new code is never perfect) • phenomenon of software reliability growth • environment is important (platform/inputs) - new envt. may require s/w retest 3
  • 4.
    Hardware Reliability -features • failure is usually due to physical deterioration • hardware reliability tends, more than software, towards a constant value, • hardware reliability usually follows the ‘bathtub’ principle, • again, environment is important; a proportion of hardware faults are design faults 4
  • 5.
    Fault, Error, Failure (PERSON MAKES) ENVIRONMENT INPUT MISTAKES OPERATOR CAN BE ATTRIBUTED TO POTENTIALLY ONE OR MANY LEADS TO ZERO OR MANY OR FAULTS REVEALING CAN BE ATTRIBUTED TO AND MECHANISM ONE OR MANY LEADS TO ZERO OR MANY ERRORS CAN BE ATTRIBUTED TO LEADS TO ZERO OR MANY ONE OR MANY FAILURE 5
  • 6.
    Reliability Measures When wetalk of reliability measures the irony is that we invariably talk about failure measures. There are four general ways of measuring failures against time; • time of failure, • interval between failures, • cumulative failures experienced up to a given time, • failures experienced in a time interval. 6
  • 7.
    Ensuring Hardware Reliability HardwareReliability is ensured by conducting the following tests: • Fault Tree Analysis • Failure Modes Effects and Criticality Analysis • Failsafe Tests • Fault Injection Tests • PCB Trace Anaysis and Circuit Simulation • Environmental Tests 7
  • 8.
    Ensuring Software Reliability SoftwareReliability is ensured by following the following Techniques: • Defensive Programming To produce programs which detect anomalous control flow, data flow or data values during their execution and react to these in a redetermined and acceptable manner. • Fault Detection & Diagnosis To detect faults in a system, which might lead to a failure, thus providing the basisfor countermeasures in order to minimise the consequences of failures. 8
  • 9.
    • Error Detectingand Correcting Codes To detect and correct errors in sensitive information. • Diverse Programming Detect and mask residual software design faults during execution of a program, in order to prevent Safety critical failures of the system, and to continue operation for high reliability. • Software Error Effect Analysis To identify software modules, their criticality; to propose means for detecting software errors and enhancing software robustness; to evaluate the amount of validation needed on the various software components. 9
  • 10.
    Software Reliability Tests • Software Quality Audit • Software Rule Checking • Unit Testing • Software Integration Tests • Software/Hardware Integration Tests • Fault Injection Tests • System Validation 10

Editor's Notes

  • #4 an elaboration of the pdca