Hardware & Software Reliability

Slides:



Advertisements
Similar presentations
Critical Systems Specification
Advertisements

CSE3308/CSC Software Engineering: Analysis and DesignLecture 7B.1 Software Engineering: Analysis and Design - CSE3308 Reliability CSE3308/CSC3080/DMS/2000/17.
Software Quality Assurance (SQA). Recap SQA goal, attributes and metrics SQA plan Formal Technical Review (FTR) Statistical SQA – Six Sigma – Identifying.
SWE Introduction to Software Engineering
Dependability Evaluation. Techniques for Dependability Evaluation The dependability evaluation of a system can be carried out either:  experimentally.
Modified from Sommerville’s originals Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation.
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 9 Title : Reliability Reading: I. Sommerville, Chap. 16, 17 and 18.
1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.
©Ian Sommerville 2004Software Engineering, 7th edition. Insulin Pump Slide 1 An automated insulin pump.
©Ian Sommerville 2004Software Engineering, 7th edition. Insulin Pump Slide 1 The portable insulin pump Developing a dependability specification for the.
3. Software product quality metrics The quality of a product: -the “totality of characteristics that bear on its ability to satisfy stated or implied needs”.
CIS 376 Bruce R. Maxim UM-Dearborn
Software Testing and QA Theory and Practice (Chapter 15: Software Reliability) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
Non-functional requirements
Overview Software Quality Assurance Reliability and Availability
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
Software Reliability Categorising and specifying the reliability of software systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation 1.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
1 Copyright © 2003 M. E. Kabay. All rights reserved. Critical Systems Specification IS301 – Software Engineering Lecture #18 – M. E. Kabay,
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 15 Software Reliability
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Slide 1 Critical Systems Specification 2.
Software Reliability SEG3202 N. El Kadri.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 3 Slide 1 Critical Systems 1.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Ch. 1.  High-profile failures ◦ Therac 25 ◦ Denver Intl Airport ◦ Also, Patriot Missle.
Software Reliability (Lecture 13) Dr. R. Mall. Organization of this Lecture: $ Introduction. $ Reliability metrics $ Reliability growth modelling $ Statistical.
Building Dependable Distributed Systems Chapter 1 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
1 Software Quality Assurance. 2 Quality Concepts - 1 Variation control is the heart of quality control Software engineers strive to control the – process.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Reliability [Kehandalan Perangkat Lunak] Catur Iswahyudi.
©Ian Sommerville 2000Dependability Slide 1 Chapter 16 Dependability.
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
Certification of Reusable Software Artifacts
Chapter 11 – Reliability Engineering
Software Quality I.
Software Defects Cmpe 550 Fall 2005
Formal Specification.
Software Metrics and Reliability
Software Quality Assurance
Testing Tutorial 7.
Critical Systems.
Approaches to ---Testing Software
Critical Systems Specification
Software Testing An Introduction.
Software Reliability Definition: The probability of failure-free operation of the software for a specified period of time in a specified environment.
Software Reliability PPT BY:Dr. R. Mall 7/5/2018.
Verification and Testing
Software Reliability: 2 Alternate Definitions
Critical Systems Validation
Software Reliability Models.
Critical Systems.
Lecture 09:Software Testing
Critical Systems Validation
Software reliability CS 560 Lecture 15.
Critical Systems Specification
Software Reliability (Lecture 12)
Chapter 13 Quality Management
Welcome to Corporate Training -1
Software Quality Assurance
System Testing.
Critical Systems.
Software Reliability It is defined as the ability of a system or component to perform its required functions under stated conditions for a specified period.
Critical Systems.
Presentation transcript:

Hardware & Software Reliability Importance Hardware & Software Reliability

Introduction Reliability : The probability that software will contribute to failure-free system performance for a specified time under specified conditions. The probability depends on information input into the system, system use, and the existence of software faults encountered during input Availability :Availability of the module is the percentage of time when system is operational. Availability of a hardware/software module can be obtained by the formula given below. MTTR : Mean Time To Repair (MTTR), is the time taken to repair a failed hardware module. In an operational system, repair generally means replacing the hardware module. MTBF: Mean Time Between Failures (MTBF), as the name suggests, is the average time between failure of hardware modules. It is the average time a manufacturer estimates before a failure occurs in a hardware module. MEAN: the expected value of a random variable, which is also called the population mean.

System Reliability Specification Hardware reliability probability a hardware component fails Software reliability probability a software component will produce an incorrect output software does not wear out software can continue to operate after a bad result Operator reliability probability system user makes an error

Faults and Failures Failure Probabilities: If there are two independent components in a system and the operation of the system depends on them both then P(S) = P(A) + P(B) If the components are replicated then the probability of failure is P(S) = P(A)n meaning that all components fail at once. Failure & Faults: A failure corresponds to unexpected run-time behaviour observed by a user of the software A fault is a static software characteristic which causes a failure to occur. Faults need not necessarily cause failures. They only do so if the faulty part of the software is used If a user does not notice a failure, is it a failure? Remember most users don’t know the software specification.

Reliability Metrics Hardware Reliability Metrics: Hardware metrics are not suitable for software since its metrics are based on notion of component failure. Software failures are often design failures. Often the system is available after the Software failure has occurred. Hardware components can wear out. Software Reliability Metrics: 1. Reliability metrics are units of measure for system reliability 2. System reliability is measured by counting the number of operational failures and relating these to demands made on the system at the time of failure 3. A long-term measurement program is required to assess the reliability of critical systems

Reliability improvement Reliability is improved when software faults which occur in the most frequently used parts of the software are removed. Removing x% of software faults will not necessarily lead to an x% reliability improvement. Removing faults with serious consequences is the most important objective. The use of formal methods of development may lead to more reliable systems as it can be proved that the system conforms to its specification The development of a formal specification forces a detailed analysis of the system which discovers anomalies and omissions in the specification However, formal methods may not actually improve reliability.

Reliability and efficiency As reliability increases system efficiency tends to decrease To make a system more reliable, redundant code must be includes to carry out run-time checks, etc. This tends to slow it down. Reliability is usually more important than efficiency. No need to utilise hardware to fullest extent as computers are cheap and fast. Unreliable software isn't used. Hard to improve unreliable systems. Software failure costs often far exceed system costs. Costs of data loss are very high.

Reliability Metrics Hardware metrics not really suitable for software as they are based on component failures and the need to repair or replace a component once it has failed. The design is assumed to be correct. Software failures are always design failures. Often the system continues to be available in spite of the fact that a failure has occurred. Some of the Important Software Reliability Metrics are: Probability of failure on demand This is a measure of the likelihood that the system will fail when a service request is made POFOD = 0.001 means 1 out of 1000 service requests result in failure Relevant for safety-critical or non-stop systems

Reliability Metrics Contd.. 2. Rate of fault occurrence (ROCOF) Frequency of occurrence of unexpected behaviour ROCOF of 0.02 means 2 failures are likely in each 100 operational time units Relevant for operating systems, transaction processing systems 3. Mean time to failure Measure of the time between observed failures MTTF of 500 means that the time between failures is 500 time units Relevant for systems with long transactions e.g. CAD systems 4. Availability Measure of how likely the system is available for use. Takes repair/restart time into account Availability of 0.998 means software is available for 998 out of 1000 time units Relevant for continuously running systems e.g. telephone switching systems

Reliability measurement Measure the number of system failures for a given number of system inputs Used to compute POFOD Measure the time (or number of transactions) between system failures Used to compute ROCOF and MTTF Measure the time to restart after failure Used to compute AVAILABILITY Time units Time units in reliability measurement must be carefully selected. Not the same for all systems Raw execution time (for non-stop systems) Calendar time (for systems which have a regular usage pattern e.g. systems which are always run once per day) Number of transactions (for systems which are used on demand)

Reliability specification Reliability requirements are only rarely expressed in a quantitative, verifiable way. To verify reliability metrics, an operational profile must be specified as part of the test plan. Reliability is dynamic - reliability specifications related to the source code are meaningless. No more than N faults/1000 lines. This is only useful for a post-delivery process analysis. Failure classification:

Steps to a reliability specification For each sub-system, analyse the consequences of possible system failures. From the system failure analysis, partition failures into appropriate classes. For each failure class identified, set out the reliability using an appropriate metric. Different metrics may be used for different reliability requirements. Reliability economics: Because of very high costs of reliability achievement, it may be more cost effective to accept unreliability and pay for failure costs However, this depends on social and political factors. A reputation for unreliable products may lose future business Depends on system type - for business systems in particular, modest reliability may be adequate