Evaluation of Safety Critical Software -- David L. Parnas, -- A. John van Schouwen, -- Shu Po Kwan -- June 1990 Presented By Zhuojing Li.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Inspection of Safety-Critical Software Using Program- Function Tables Jeffrey Smith, Richard Bruno, Vince Fumo.
Lecture 8: Testing, Verification and Validation
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Object-Oriented Software Development CS 3331 Fall 2009.
Design Concepts and Principles
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
Software Requirements Engineering
Software Engineering and Design Principles Chapter 1.
Exam 1 Review u Scores Min 30 Max 96 Ave 63.9 Std Dev 14.5.
Presented by: Hatem Halaoui
1 Evaluation of Safety Critical Software David L. Parnas, C ACM, June 1990.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
1 CIS 100 Winter 2005 Week 10 Lecture Dr. David Gadish.
PRE-PROGRAMMING PHASE
A User-Oriented Software Reliability Model Per Trygve Myhrer 20 februar Roger C. Cheung.
1 841f06parnas13 Evaluation of Safety Critical Software David L. Parnas, C ACM, June 1990.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Evaluation of Safety-Critical Software David L. Parnas, A.John van Schouwen, and Shu Po Kwan 1990 June CACM Wei Huang and Zhenxiao Yang.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
CSE 303 – Software Design and Architecture
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
SOFTWARE DESIGN.
CSE 219 Computer Science III Program Design Principles.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Safety-Critical Systems 7 Summary T V - Lifecycle model System Acceptance System Integration & Test Module Integration & Test Requirements Analysis.
Exam 1 Review u Scores Min 30 Max 96 Ave 63.9 Std Dev 14.5.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Data Structures Using C++ 2E
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
Dr D. Greer, Queens University Belfast )Chapter Six 1 Software Engineering Chapter Six Software Design Quality Learning Outcomes.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Chapter 2 Principles of Programming and Software Engineering.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
CS220:INTRODUCTION TO SOFTWARE ENGINEERING CH1 : INTRODUCTION 1.
Principles of Programming & Software Engineering
7. Modular and structured design
Coupling and Cohesion Rajni Bhalla.
Chapter - 8 Implementation.
Verification and Validation Overview
About the Presentations
Software Quality Engineering
Important Software Performance Testing That Ensure High Quality Solutions.
Programmable Logic Controllers (PLCs) An Overview.
Design for Quality Design for Quality and Safety Design Improvement
Chapter 1 Introduction(1.1)
Programming Logic and Design Fourth Edition, Comprehensive
Chapter 10 – Software Testing
Software Development Chapter 1.
Computer in Safety-Critical Systems
Presentation transcript:

Evaluation of Safety Critical Software -- David L. Parnas, -- A. John van Schouwen, -- Shu Po Kwan -- June 1990 Presented By Zhuojing Li

Outline Overview Why is Software a Special Concern Why is software used How is software different from other controllers Software testing concerns Software review concerns Modular structure Reliability assessment Conclusions

Overview Can we trust software? The authors present some important questions.

Why is Software a special concern? Software systems do not work well until they have been used and have failed repeatedly Errors are more common, and more troublesome Can be used in safety- critical applications. –Example: Military and civilian aircraft, nuclear plants, medical devices

Why is software used? More logic Easier to change More flexible

How are software controllers like other controllers Similarities: Both can be described as black box mathematical models.

How is software different from other controller technologies More complex More error sensitive –For example: sensitive to small errors –Conventional engineering is tolerant Harder to test Has correlated failures Lack of Professional standards

Software testing concerns  Cannot test software for correctness:  Testing can show the presence of bugs but it can not show that software is free of design errors.  Difficult to make prediction of software reliability and availability:  Impractical to measure the trustworthiness of software  Need for an independent agency

Software review concerns 1 st question: Why is reviewability a particular concern for software? –Each programmer has his/her own style. –Software structure and documentation were dismissed. –There is problem of clarity

Software review concerns 2 nd question: what reviews are needed? Correct intended functions. Maintainable, understandable, well documented structures. Each module to verify the algorithm and data structure design. Code for consistency with the algorithm and data structure design. Test completeness.

Software review concerns 3 rd question: What documentation is required to review the functional requirements? Description should use the mathematics of control systems.

Software review concerns 4 th question: What documentation is required to review the software structure? Three types of documents are required.  Requirement specification  Informal documents: Describing the responsibilities of each modules.  Module specification: Provides black box description of each modules

Software review concerns 5 th question: What documentation is required to review the module’s internal design? Description of the data structures that will be used. Description of the program functions and abstraction functions. Programs that cannot be described on a single page must be presented in a layered way.

Software review concerns 6 th question: What documentation is required to review the code?  Examine the correctness between the algorithms and the actual code  No need to examine the global design of the system

Software review concerns 7 th question: What documentation is required to review the test plan? -Reviewed by specialists, who compare it with requirement specification

Software review concerns 8 th question : Why is configuration management essential for rigorous reviews? –Complexity of software, and tremendous amount of documents.

Software review concerns Solution for 8 th question: Use online documentation instead of paper copies of the documents. Changes in the documentation should be notified by the computer system to all persons who have used the affected document. Online versions must be kept under strict control.

Modular structure Information Hiding Object-oriented programming Separation of Concerns Encapsulation Data Abstraction Principle: increase “ cohesion ” and reduce “ coupling ”

Reliability Assessment for safety–critical software All software failures would be predictable if we fully understand the software

Reliability Assessment for safety–critical software Software Measurements –Reliability: Probability of not encountering a sequence of inputs that leads to failure. –Availability: Fraction of time that the system is running and assumed to be ready to function.

Reliability Assessment for safety–critical software We cannot predict a software failure rate from failure rates for individual lines or subprograms The finite state machine model help us to determine the number of tests.

Reliability Assessment for safety–critical software Use of hypothesis testing: (1-1/h) N = M 1/h: the probability of failure in a test N: randomly selected tests M: the probability that an unacceptable product would pass our test.

Reliability Assessment for safety–critical software Three classes of program: –For memoryless batch program, use a randomly selected set of input data. –For a batch program with memory, a test is selected by choosing both input data and an internal state. –For real time system, use a multidimensional trajectory.

Conclusions Software can be used in certain safety- critical applications, but extreme discipline in design, documentation, testing and review is needed. Operating conditions and requirements should be well understood and fully documented the end