Rigorous Methods for Software Engineering (F21RS1) High Integrity Software Development



Similar documents
Safety-Critical Systems: Processes, Standards and Certification

Testing of safety-critical software some principles

SOFTWARE VERIFICATION RESEARCH CENTRE SCHOOL OF INFORMATION TECHNOLOGY THE UNIVERSITY OF QUEENSLAND. Queensland 4072 Australia TECHNICAL REPORT

Design of automatic testing tool for railway signalling systems software safety assessment

Reduce Medical Device Compliance Costs with Best Practices.

Software in safety critical systems

Overview of IEC Design of electrical / electronic / programmable electronic safety-related systems

F-22 Raptor. Agenda. 1. Motivation

Industrial case study: Zero defect secure software for the National Security Agency

CSE4213 Lecture Notes

Parameters for Efficient Software Certification

IEC Overview Report

Controlling Risks Safety Lifecycle

ELECTROTECHNIQUE IEC INTERNATIONALE INTERNATIONAL ELECTROTECHNICAL

Testing the Internet of Things

Software Verification and System Assurance

Introduction of ISO/DIS (ISO 26262) Parts of ISO ASIL Levels Part 6 : Product Development Software Level

Best Practices for Verification, Validation, and Test in Model- Based Design

Software Verification/Validation Methods and Tools... or Practical Formal Methods

University of Paderborn Software Engineering Group II-25. Dr. Holger Giese. University of Paderborn Software Engineering Group. External facilities

SOFTWARE-IMPLEMENTED SAFETY LOGIC Angela E. Summers, Ph.D., P.E., President, SIS-TECH Solutions, LP

Identifying and Understanding Relevant System Safety Standards for use in the Automotive Industry

The Software Development Process

Introducing Formal Methods. Software Engineering and Formal Methods

A Methodology for Safety Critical Software Systems Planning

Software Testing Standards: Do They Know What They re Talking About?

1. Software Engineering Overview

IEC Functional Safety Assessment. Project: K-TEK Corporation AT100, AT100S, AT200 Magnetostrictive Level Transmitter.

4 Applying DO-178B for safe airborne software

Software Certification and Software Certificate Management Systems

Rigorous Software Development An introduction

CASS TEMPLATES FOR SOFTWARE REQUIREMENTS IN RELATION TO IEC PART 3 SAFETY FUNCTION ASSESSMENT Version 1.0 (5128)

Software Testing & Analysis (F22ST3): Static Analysis Techniques 2. Andrew Ireland

SAFE SOFTWARE FOR SPACE APPLICATIONS: BUILDING ON THE DO-178 EXPERIENCE. Cheryl A. Dorsey Digital Flight / Solutions cadorsey@df-solutions.

Qualifying Software Tools According to ISO 26262

VDM vs. Programming Language Extensions or their Integration

Frequently Asked Questions

The SPES Methodology Modeling- and Analysis Techniques

SILs and Software. Introduction. The SIL concept. Problems with SIL. Unpicking the SIL concept

Introduction to Formal Methods. Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm

When COTS is not SOUP Commercial Off-the-Shelf Software in Medical Systems. Chris Hobbs, Senior Developer, Safe Systems

HazLog: Tool support for hazard management

Dr. Brian Murray March 4, 2011

Formal Verification and Linear-time Model Checking

OpenGL ES Safety-Critical Profile Philosophy

4.1. Title: data analysis (systems analysis) Annotation of educational discipline: educational discipline includes in itself the mastery of the

The Impact of RTCA DO-178C on Software Development

An Iterative Approach for Development of Safety-Critical Software and Safety Arguments

The MILS Component Integration Approach To Secure Information Sharing

SOFTWARE ENGINEERING PROGRAM

An Agile Formal Development Methodology

Frequently Asked Questions

Vetting Smart Instruments for the Nuclear Industry

Embedded Systems Conference April 3-7, San Jose [ESC-447] Safety-Critical Design Techniques for Secure and Reliable Systems

Development of AUTOSAR Software Components within Model-Based Design

Programme Specification (Undergraduate) Date amended: 28 August 2015

Introduction to Software Engineering

ASSESSMENT OF THE ISO STANDARD, ROAD VEHICLES FUNCTIONAL SAFETY

What Is Assurance? John Rushby Based on joint work with Bev Littlewood (City University UK)

Understanding the Use, Misuse and Abuse of Safety Integrity Levels 1

Test-Driven Approach for Safety-Critical Software Development

ARINC 653. An Avionics Standard for Safe, Partitioned Systems

Fundamental Principles of Software Safety Assurance

Logic solver application software and operator interface

DEGREE PLAN INSTRUCTIONS FOR COMPUTER ENGINEERING

Engineering Process Software Qualities Software Architectural Design

New Challenges In Certification For Aircraft Software

WORKSHOP RC EVI Integração de Sistemas Junho de 2011 Eng. Nelson José Wilmers Júnior

URBANA HIGH SCHOOL SUMMER SCHOOL Urbana School District #116. Summer School Principal Mr. Michael Gourley (217)

Critical Systems and Software Solutions

Verifying Specifications with Proof Scores in CafeOBJ

Executive Summary - 1 -

Model-Based Development of Safety-Critical Software: Safe and Effi cient

Meeting DO-178B Software Verification Guidelines with Coverity Integrity Center

School of Computer Science

HIPEAC Segregation of Subsystems with Different Criticalities on Networked Multi-Core Chips in the DREAMS Architecture

Lecture 9: Requirements Modelling

ida.com excellence in dependable automation

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

ISO Functional Safety Draft International Standard for Road Vehicles: Background, Status, and Overview

Safety critical software and development productivity

CSE 307: Principles of Programming Languages

IBM Rational systems and software solutions for the medical device industry

Abstract Interpretation-based Static Analysis Tools:

A New Paradigm for COTS and SOUP

Transcription:

Rigorous Methods for Software Engineering (F21RS1) High Integrity Software Development Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh

Module Road Map Andrew Ireland: Room G.57, a.ireland@hw.ac.uk Lilia Georgieva: Room G.54, lilia@macs.hw.ac.uk Delivery = Lectures + Labs + Workshops + Directed Reading Labs take place in 2.50 (Fri at 3.15pm) NO LAB WEEK 1! Materials available via VISION Assessment: Written examination (60%) (end of semester 1) Coursework (40%) My teaching materials also available via http://www.macs.hw.ac.uk/~air/rmse/

Module Road Map Andrew: High integrity software engineering: Safe and secure code via structured programming Program analysis techniques Formal verification Weeks 1, 3, 5, 7, 8, 11, 12 Lilia: Design and reasoning: Design level specification & analysis Specification via Alloy Analysis via Alloy Analyzer Weeks 1, 2, 4, 6, 9, 10, 12

High Integrity Computing? The goal of high integrity computing is to provide tools, techniques and methodologies that effectively support the development of highly reliable software: Reliability = Robustness + Correctness Crucial for software systems that are: safety critical: avionics, automotives,... security critical: telecommunications, smart cards,... business critical: databases, non-safety related embedded systems,... Note that there is increasing evidence that a high integrity approach means getting the software right first time.

Overview Standards for system and software development The IEC 61508 standard in particular High integrity software and formal methods

Software Standards Software standards encapsulate the lessons learned by trail and error on government and commercial projects. Standards will typically evolve and change over time. Standards are guidelines that can be tailored to the characteristics of a particular project. Standards assist in the development of high quality software while reducing time-to-market. Standards play a crucial role within the development of high integrity software.

Examples of Software Standards MoD 00-55: Requirements for the Procurement of Safety-Critical Software in Defence Equipment. Produced by the UK MoD. The use of formal methods, in particular formal code level verification is mandatory. DO-178B: Software Considerations in Airborne Systems and Equipment Certification. Produced by the US Government and relates to civil aircraft. Key standard within the US and European aircraft industry. Places significant emphasis on software testing, in particular MC-DC testing.

More Examples of Software Standards ITSEC: Information Technology Security Evaluation Criteria. Produced by UK Government. Formal methods required for the highest levels of security, e.g. for banking and state security related applications (NSA, GCHQ). IEC 61508: Functional Safety: Safety-Related Systems. Produced by the International Electrotechnical Commission. Key feature of IEC 61508 is that it is a generic standard, that is, its scope is not limited to a particular industrial sector. The idea is that it provides a standard upon which sector-specific standards can be defined.

Safety Integrity Levels (SILs) SILs are a qualitative measure of the required protection against software or system failure. Based upon the results of hazard analysis and risk assessment, SILs are assigned to the safety functional requirements. SILs provide guidance in selecting appropriate techniques and measures for safety related software development. SILs are understandable across different industrial sectors and between customers and software vendors.

Example SILs Definition: IEC 61508 Safety Integrity Level Low Demand Mode of Operation (Average probability of failure to perform its safety function on demand) 4 10 5 to 10 4 (> 99.99% reliable) 3 10 4 to 10 3 (> 99.9% reliable) 2 10 3 to 10 2 (> 99% reliable) 1 10 2 to 10 1 (> 90% reliable)

Software Specification: IEC 61508 Examples Technique SIL 1 SIL 2 SIL 3 SIL 4 Structured HR HR HR HR Methodology Computer-aided R R HR HR Tools Semi-Formal R R HR HR Methods Formal Methods NC R R HR HR = Highly Recommended; R = Recommend; NR = No Recommendation; NC = No Comment

Software Design: IEC 61508 Examples Technique SIL 1 SIL 2 SIL 3 SIL 4 Fault detection & NR R HR HR diagnosis Error detecting codes R R R HR Programming with R R R HR assertions Diverse programming R R R HR Recovery blocks R R R R A key goal should be to minimize the number and complexity of critical components. Particular attention should be paid to the boundaries between critical and non-critical components.

Software Implementation: IEC 61508 Examples Technique SIL 1 SIL 2 SIL 3 SIL 4 Modular approach NR R HR HR Defence programming NC R HR HR Code standards R HR HR HR Analysable programs R HR HR HR Suitable programming HR HR HR HR language Language subset NC NC HR HR Certified translator R HR HR HR Verified library R HR HR HR modules

Suitable Programming Languages Programming languages typically contain features that increase the risk of software failures, e.g. undefined behaviour (evaluation order in C) behaviour hard to predict (dynamic binding in C++) For some programming languages there exists subsets that eliminate the unsafe features, e.g. MISRA C: Motor Industry Software Reliability Association SPARK: Ada subset, Praxis Critical Systems (more later) IEC 61508 highly recommends the use of Ada, Modula-2, Pascal and subsets of Fortran. IEC 61508 does not recommend the use of C without subsets.

Software Verification: IEC 61508 Examples Technique SIL 1 SIL 2 SIL 3 SIL 4 Formal Proof NC R R HR Probabilistic testing NC R R HR Static analysis R HR HR HR Dynamic analysis & R HR HR HR testing Software complexity R R R R

Formal Methods Formal Methods = Formal Modelling + Formal Analysis Requirements capture Modelling Specification Analysis Documentation Note that in reality some of these phases may overlap, in addition the overall process should be seen as iterative rather than sequential.

Rigour in the Application of Formal Methods Level 0: No use of formal methods. Level 1: Use of concepts and notations from discrete mathematics. Level 2: Use of formalized specification languages with some mechanized support tools. Level 3: Use of fully formal specification languages with comprehensive support environments, including mechanized theorem proving or proof checking. Source: Rushby, Formal Methods and the Certification of Critical Systems. Technical Report CSL-93-7, SRI International, Menlo Park, CA.

Modelling Sequential Systems Algebraic specification: typically applied to abstract data types. A specification has 2 parts: a signature - syntax and types of functions & relations a set of axioms where the axioms define the meaning of the functions & relations. The best known example of algebraic specification is OBJ. Model-based specification: involves the development of a model of the system in terms on mathematical entities, e.g. sets, sequences, relations,... etc. The best known model-based approaches are the Vienna Development Method (VDM), Z, B-Method and Event-B.

Summary Learning outcomes: Understand the notion of SILs. Gain an understanding of the role of standards within the development of high integrity software, and where formal methods fit in. Recommended reading: Safety-Critical Computer Systems, Storey, N. Addison-Wesley, 1996. http://formalmethods.wikia.com [ formal methods ] Formal Methods Specification and Analysis Guidebook for the Verification of Software Systems: Volume II A Practitioner s Companion, Published by NASA, see http//eis.jpl.nasa. gov/quality/formal_methods/