Figures – Chapter 15. Figure 15.1 Model checking.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000CS 365 Critical Systems ValidationSlide 1 Chapter 21 Critical Systems Validation.
Advertisements

1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Critical Systems Validation IS301.
Chapter 15 Dependability and Security Assurance Lecture 1 1Chapter 15 Dependability and Security Assurance.
Verification and Validation
Software Engineering-II Sir zubair sajid. What’s the difference? Verification – Are you building the product right? – Software must conform to its specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
Figures – Chapter 12.
Figures – Chapter 24.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
1 / 28 CS 425/625 Software Engineering Verification and Validation Based on Chapter 19 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6.
Modified from Sommerville’s originals Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 91 Formal Specification l Techniques for the unambiguous specification of software.
CS 501: Software Engineering Fall 2000 Lecture 22 Dependable Systems II Validation and Verification.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 10 Slide 1 Formal Specification.
©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.
The embedded control software for a personal insulin pump
 Lionel Briand Safety Analysis.  Lionel Briand Safety-critical Software Systems whose failure can threaten human life or cause serious.
Verification and Validation CIS 376 Bruce R. Maxim UM-Dearborn.
Examining the Code [Reading assignment: Chapter 6, pp ]
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Critical Systems Specification 3 Formal Specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 10 Slide 1 Formal Specification.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
Chapter 24 - Quality Management Lecture 1 1Chapter 24 Quality management.
CSCI 5801: Software Engineering
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Project Quality Management
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Chapter 1- “Diversity” “In higher education they value diversity of everything except thought.” George Will.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 9 Slide 1 Formal Specification l Techniques for the unambiguous specification of software.
Software Engineering DKT 311 Lecture 11 Verification and critical system validation.
Computer Security and Penetration Testing
Product Development Chapter 6. Definitions needed: Verification: The process of evaluating compliance to regulations, standards, or specifications.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor.
Configuration Management (CM)
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
WXGE6103 Software Engineering Process and Practice Formal Specification.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
CS CS 5150 Software Engineering Lecture 20 Reliability 2.
Security - Why Bother? Your projects in this class are not likely to be used for some critical infrastructure or real-world sensitive data. Why should.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
CHAPTER 9: VERIFICATION AND VALIDATION 1. Objectives  To introduce software verification and validation and to discuss the distinction between them 
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Slide 1 Critical Systems Specification 1.
SAFEWARE System Safety and Computers Chap18:Verification of Safety Author : Nancy G. Leveson University of Washington 1995 by Addison-Wesley Publishing.
Design Principles and Common Security Related Programming Problems
CS223: Software Engineering Lecture 21: Unit Testing Metric.
An insulin pump. Needle Assembly: Connected to pump. Component used to deliver insulin into the diabetic body.
Pepper modifying Sommerville's Book slides
EKT421 SOFTWARE ENGINEERING
Chapter 12 – Safety Engineering
Formal Specification.
Software Testing.
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Verification and Validation
Verification & Validation
Verification and Validation
Verification and Validation
Critical Systems Validation
Testing and Test-Driven Development CSC 4700 Software Engineering
Chapter 12 – Safety Engineering
Lecture 06:Software Maintenance
Presentation transcript:

Figures – Chapter 15

Figure 15.1 Model checking

Figure 15.2 Automated static analysis checks Fault classStatic analysis check Data faultsVariables used before initialization Variables declared but never used Variables assigned twice but never used between assignments Possible array bound violations Undeclared variables Control faultsUnreachable code Unconditional branches into loops Input/output faultsVariables output twice with no intervening assignment Interface faultsParameter-type mismatches Parameter number mismatches Non-usage of the results of functions Uncalled functions and procedures Storage management faultsUnassigned pointers Pointer arithmetic Memory leaks

Figure 15.3 Reliability measurement

Figure 15.4 An operational profile

Figure 15.5 Examples of entries in a security checklist Security checklist 1. Do all files that are created in the application have appropriate access permissions? The wrong access permissions may lead to these files being accessed by unauthorized users. 2. Does the system automatically terminate user sessions after a period of inactivity? Sessions that are left active may allow unauthorized access through an unattended computer. 3. If the system is written in a programming language without array bound checking, are there situations where buffer overflow may be exploited? Buffer overflow may allow attackers to send code strings to the system and then execute them. 4. If passwords are set, does the system check that passwords are ‘strong’? Strong passwords consist of mixed letters, numbers, and punctuation, and are not normal dictionary entries. They are more difficult to break than simple passwords. 5. Are inputs from the system’s environment always checked against an input specification? Incorrect processing of badly formed inputs is a common cause of security vulnerabilities.

Figure 15.6 A simplified hazard log entry Hazard Log Page 4: Printed System: Insulin Pump System Safety Engineer: James Brown File: InsulinPump/Safety/HazardLog Log version: 1/3 Identified HazardInsulin overdose delivered to patient Identified byJane Williams Criticality class1 Identified riskHigh Fault tree identifiedYESDate LocationHazard Log, Page 5 Fault tree creatorsJane Williams and Bill Smith Fault tree checkedYESDate CheckerJames Brown System safety design requirements 1. The system shall include self-testing software that will test the sensor system, the clock, and the insulin delivery system. 2. The self-checking software shall be executed once per minute. 3.In the event of the self-checking software discovering a fault in any of the system components, an audible warning shall be issued and the pump display shall indicate the name of the component where the fault has been discovered. The delivery of insulin shall be suspended. 4.The system shall incorporate an override system that allows the system user to modify the computed dose of insulin that is to be delivered by the system. 5.The amount of override shall be no greater than a pre-set value (maxOverride), which is set when the system is configured by medical staff.

Figure 15.7 The contents of a software safety case ChapterDescription System descriptionAn overview of the system and a description of its critical components. Safety requirementsThe safety requirements abstracted from the system requirements specification. Details of other relevant system requirements may also be included. Hazard and risk analysisDocuments describing the hazards and risks that have been identified and the measures taken to reduce risk. Hazard analyses and hazard logs. Design analysisA set of structured arguments (see Section ) that justify why the design is safe. Verification and validationA description of the V & V procedures used and, where appropriate, the test plans for the system. Summaries of the test results showing defects that have been detected and corrected. If formal methods have been used, a formal system specification and any analyses of that specification. Records of static analyses of the source code. Review reportsRecords of all design and safety reviews. Team competencesEvidence of the competence of all of the team involved in safety-related systems development and validation. Process QARecords of the quality assurance processes (see Chapter 24) carried out during system development. Change management processesRecords of all changes proposed, actions taken and, where appropriate, justification of the safety of these changes. Information about configuration management procedures and configuration management logs. Associated safety casesReferences to other safety cases that may impact the safety case.

Figure 15.8 Structured arguments

Figure 15.9 A safety claim hierarchy for the insulin pump

Figure Insulin dose computation with safety checks -- The insulin dose to be delivered is a function of blood sugar level, -- the previous dose delivered and the time of delivery of the previous dose currentDose = computeInsulin () ; // Safety check—adjust currentDose if necessary. // if statement 1 if (previousDose == 0) { if (currentDose > maxDose/2) currentDose = maxDose/2 ; } else if (currentDose > (previousDose * 2) ) currentDose = previousDose * 2 ; // if statement 2 if ( currentDose < minimumDose ) currentDose = 0 ; else if ( currentDose > maxDose ) currentDose = maxDose ; administerInsulin (currentDose) ;

Figure Informal safety argument based on demonstrating contradictions

Figure Door entry code 1entryCode = lock.getEntryCode () ; 2if (entryCode == lock.authorizedCode) 3{ 4shieldStatus = Shield.getStatus (); 5radiationLevel = RadSensor.get (); 6if (radiationLevel < dangerLevel) 7state = safe; 8else 9state = unsafe; 10if (shieldStatus == Shield.inPlace() ) 11state = safe; 12if (state == safe) 13{ 14Door.locked = false ; 15Door.unlock (); 16} 17else 18{ 19Door.lock ( ); 20Door.locked := true ; 21} 22}