Design for Quality Design for Quality and Safety Design Improvement

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 2.
Advertisements

Programming Types of Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
CS 582 / CMPE 481 Distributed Systems Fault Tolerance.
Games as Systems Administrative Stuff Exercise today Meet at Erik Stemme
1 Software Testing and Quality Assurance Lecture 39 – Software Quality Assurance.
Developing Dependable Systems CIS 376 Bruce R. Maxim UM-Dearborn.
Basics of Fault Tree and Event Tree Analysis Supplement to Fire Hazard Assessment for Nuclear Engineering Professionals Icove and Ruggles (2011) Funded.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
CC0002NI – Computer Programming Computer Programming Er. Saroj Sharan Regmi Week 7.
Evaluation of Safety Critical Software -- David L. Parnas, -- A. John van Schouwen, -- Shu Po Kwan -- June 1990 Presented By Zhuojing Li.
Distributed Algorithms – 2g1513 Lecture 9 – by Ali Ghodsi Fault-Tolerance in Distributed Systems.
Additional Problems.
FAULT TREE ANALYSIS (FTA). QUANTITATIVE RISK ANALYSIS Some of the commonly used quantitative risk assessment methods are; 1.Fault tree analysis (FTA)
Software Testing and Quality Assurance Software Quality Assurance 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Quality Assurance.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
1 Phase Implementation. Janice Regan, Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine subphases)
Safety-Critical Systems 7 Summary T V - Lifecycle model System Acceptance System Integration & Test Module Integration & Test Requirements Analysis.
An introduction to Fault Detection in Logic Circuits By Dr. Amin Danial Asham.
1 Fault-Tolerant Computing Systems #1 Introduction Pattara Leelaprute Computer Engineering Department Kasetsart University
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SENG521 (Fall SENG 521 Software Reliability & Testing Fault Tolerant Software Systems: Techniques (Part 4a) Department of Electrical.
Fundamentals of Fault-Tolerant Distributed Computing In Asynchronous Environments Paper by Felix C. Gartner Graeme Coakley COEN 317 November 23, 2003.
Week#3 Software Quality Engineering.
 As we progress from a beginner to a skilled performer we must pass through different stages of learning  There is no definitive point at which an athlete.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
RANDOM TESTING & PROTOTYPING Presented By: Presented By: Vipul Rastogi M.Tech (S.E.) SRMSCET Presented To: Dr. Himanshu Hora Chief Proctor SRMSCET.
Steve Chenoweth Office Phone: (812) Cell: (937)
Serial Communications
COTS testing Torbjørn Skramstad.
CLINICAL DECISION MAKING
Formal Specification.
7. Modular and structured design
Hardware & Software Reliability
Concurrency: Deadlock and Starvation
Approaches to ---Testing Software
System Design and Modeling
Chapter 8 – Software Testing
FAULT TOLERANCE TECHNIQUE USED IN SEAWOLF SUBMARINE
ATTRACT TWD Symposium, Barcelona, Spain, 1st July 2016
Why did you choose us? To address and provide a solution to the many problems associated with your current manual filing system -Problems include: -Lack.
Software Processes (a)
Some Simple Definitions for Testing
Verification and Validation
Real-time Software Design
Unit Test: Functions, Procedures, Classes, and Methods as Units
Chapter 6: CPU Scheduling
Chapter 9 Structuring System Requirements: Logic Modeling
Fault Tolerance Distributed Web-based Systems
Creating Functions with Parameters
CS 1120: Computer Science II Software Life Cycle
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
The Alpha-Beta Procedure
System Testing.
Automatic Test Pattern Generation
Chapter 8 Software Evolution.
Distributed Error- Confinement
Software Engineering for Safety: a Roadmap
Chapter 9 Structuring System Requirements: Logic Modeling
CS 1120: Computer Science II Software Life Cycle
Requirements Analysis and Negotiation
Cohesion and Coupling.
M. Kezunovic (P.I.) S. S. Luo D. Ristanovic Texas A&M University
Abstractions for Fault Tolerance
Review and comparison of the modeling approaches and risk analysis methods for complex ship system. Author: Sunil Basnet.
Chapter 2: Building a System
Presentation transcript:

Design for Quality Design for Quality and Safety Design Improvement Assessing Design Quality

Design for Quality and Safety Although there are many ways to detect faults, remove faults, and improve the general quality of the design, we must assume that there may be some undetected error made and faults left not found. For systems such as medical, aero-space, or any with potential life threatening situations, we may need to “design-in” (place into the design) a certain amount of fault processing : fault detection fault correction fault tolerance

Fault Processing and Safety Fault Detection: Passive fault detection “run the design” (in this case design inspection or prototype), wait for the failure and then correct it Active fault detection “placed in” the design include in the design, functions that will check inputs instead of assuming its correctness use some amount of redundant processing and compare the results (e.g. sum of a spreadsheet may be checked by adding the sum all the rows against the sum of all columns instead of depending on just one of them assume its correctness.) use special algorithms such as checksum.

Fault Correction Assume that fault detection in the design actually detects a fault, depending on the requirements the fault correction design may be of the following : report on the fault and “automatically” terminate the system and restart which is a “fix” --- automatic correction regardless of fault ( e.g. a telephone system ) “attempt to correct” the fault and terminate if not successful (e.g. process control ) “assess the criticality” of the fault and take different degree of correction (e.g. in hospital patient care system may include the sounding of some alarm to get human intervention). assess the type of fault, report, and terminate (& no fix) (e.g. hazardous product processing - may terminate first then assess and report) may jump to

Fault Tolerance Fault tolerating design is one such that the system is not terminated, but carried on with: assessment of the fault report on the detected fault bypass or branch around (as opposed to fault correction) the faulty area continue to process Fault Tolerance assumes that failures may be predicted and by passed (note: failure is a result of a fault which is in turn a result of a human “design” error.)

A Design Technique for Fault Processing Fault-Tree analysis is based on a method developed by the US government defense system identify a possible failure of the system that’s critical identify all the failures that will contribute to or cause this critical failure continue this for each of level of the failures identified until one arrives at a “basic” failure With a Fault-tree, we can determine how we may want to design our fault processing

A Fault-Tree Example Critical Failure event Z OR Failure event A event B OR AND Failure event C Failure event D Failure event E

Fault Tree Example (cont.) Note that critical failure Z is caused by either event A or event B Event A , in turn, is caused by either event C or event D Event B , in turn, is caused by event D and event E Therefore the following set of events need to be viewed as the potential causes of critical failure Z that we must decide on what type of fault processing we must design: {Event C} {Event D} {Event D , Event E} This set is called the Cut-Set As a designer, you may choose to only design fault correction/tolerance for Event C and Event D, noting that {Event D and Event E} must occur for Event B failure.

There are several techniques for further improving our design Improving Design There are several techniques for further improving our design use more prototyping to improve the design use Boolean algebra to reduce the complexity of logic where possible Clearly identify and assert for each designed component : the pre-conditions, the post-conditions, and the invariants

Assess Design Quality Via Design Inspection or Review Completeness (components and functionalities) Consistency (structure and interfaces) Clarity and Correctness (functionalities, behavior, interactions) Complexity in the form of: levels of cohesion, degree of coupling, amount of fan-ins and fan-outs. Compare the amount of and the severity of errors found during reviews with past history, if available. Compare the size of the artifacts and the time required to complete the design activities (needs lots of experience to make sense).

Notes on Design Activities Design activities may lead to modifications of requirements Design will also be influenced by the programming facilities like programming language Most design is not completed with one approach; it also requires several iterations (but do not get stuck in analysis-paralysis) Errors found during design phase are still easier and cheaper to fix than design errors found in later phases.