Using formal methods means. Industrial use of formal methods 6. Traditional software construction. Mathematical models.

Similar documents
Siemens Rail Automation Embedding Innovation: A Case Study. Introduction of Mathematical Verification techniques to Railway Interlockings

The Road from Software Testing to Theorem Proving

Using Formal Methods in a Retrospective Safety Case

9. Verification, Validation, Testing

Deterministic Modeling and Qualifiable Ada Code Generation for Safety-Critical Projects

Requirements Verification and Validation

Interlocking Design Automation. The Process

Automated Black Box Testing Using High Level Abstraction SUMMARY 1 INTRODUCTION. 1.1 Background

A Formal Approach in the Implementation of a Safety System for Automatic Control of Platform Doors

Changing the way the world thinks about software systems

ETLS Validation & Verification University of St. Thomas. John Engelman Fall 2016

Designed-in Logic to Ensure Safety of Integration and Field Engineering of Large Scale CBTC Systems

Research on software systems dependability at the OECD Halden Reactor Project

Advanced Design and Verification Environment for Cyber- physical System Engineering

Vector Software. Understanding Verification and Validation of software under IEC :2010 W H I T E P A P E R

Agile Formal Methods

Next Generation Design and Verification Today Requirements-driven Verification Methodology (for Standards Compliance)

Checking formal specifications by testing. How to enhance the value of your test results with requirement observers

Certification of Safety-Critical Software Under DO-178C and DO-278A

Testing 2. Testing: Agenda. for Systems Validation. Testing for Systems Validation CONCEPT HEIDELBERG

DR MARC ANTONI - UIC

Compliance driven Integrated circuit development based on ISO26262

Software verification and validation. Introduction

DO-178B 김영승 이선아

REQUIREMENTS FOR SAFETY RELATED SOFTWARE IN DEFENCE EQUIPMENT PART 1: REQUIREMENTS

Application of DO-254 Level A (Appendix B) Design Assurance Objectives of. Elemental Analysis. Mixed Signal (Analog/Digital) Discrete Circuitry

Introducing SAFETY in ORGANIZATIONS Lessons Learned. Henrik Thane Adj. Professor in Functional Safety, MDH SAFETY INTEGRITY AB

AUTOMATIC VERIFICATION OF SAFETY INSTRUMENTED SYSTEM IN CHEMICAL PROCESSES

IMPLEMENTATION, EVALUATION & MAINTENANCE OF MIS:

GUIDE TO GOOD MANUFACTURING PRACTICE FOR MEDICINAL PRODUCTS

Lecture # 01 Introduction to Formal Methods Instructor: Saima Zareen Assistant Professor Department of Software Engineering

A Formal Approach in the Implementation of a Safety System for Automatic Control of Platform Doors

MTAT : Software Testing

MODPROD 2017, Linköping February 8, 2017

CHAPTER 39 AVAILABILITY DEMONSTRATION CONTENTS

Mentor Safe IC ISO & IEC Functional Safety

Model-based Requirement Verification : A Case Study

Testing. Testing is the most important component of software development that must be performed throughout the life cycle

CS 313 High Integrity Systems/ CS M13 Critical Systems

BASICS OF SOFTWARE TESTING AND QUALITY ASSURANCE. Yvonne Enselman, CTAL

SIG on Formal Methods

Existing Building Commissioning

CSC313 High Integrity Systems/CSCM13 Critical Systems CSC313 High Integrity Systems/ CSCM13 Critical Systems

DEPARTMENT OF DEFENSE STANDARD PRACTICE

ISTQB Sample Question Paper Dump #11

Requirements-driven Verification Methodology for Standards Compliance Serrie-justine Chapman (TVS) Dr Mike Bartley (TVS)

Safety principles of SIMIS interlocking systems

SE curriculum in CC2001 made by IEEE and ACM: What is Software Engineering?

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

TASK REQUIREMENTS. Supplier Quality Requirements

Whitepaper. Five steps to safer machines. A primer on safety technology in standard automation. usa.siemens.com/motioncontrol

CBTC (Communication Based Train Control): system and development

Document Rev: 18 State: RELEASED see Smarteam for approval authorities TASK REQUIREMENTS. Supplier Quality Requirements

A new approach to verifying and validating medical device development.

White paper. Author: Michael Green managing director at integrated packaging and processing solutions provider tna

Introduction to Software Testing

Chapter 6. Software Quality Management & Estimation

Microgeneration Installation Standard MIS 3006

Model Based Design in Automation

Achieving ISO Compliance in Silicon (And Beyond?)

A Candid Industrial Evaluation of Formal Software Verification using Model Checking

Safety assurance for a signalling system based on quality management

CLEARSY PRODUCTS AND SERVICES SAFETY SYSTEMS SAFETY SOFTWARE CLEARSY OFFER RAILWAY PRODUCTS AND SERVICES

Reactive Systems, inc

Audit questions for DB Audit Tool Version 4.00

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Hippocratic Database Privacy Enforcement and Compliance Auditing - An Overview. Financial Markets

Hippocratic Database Privacy Enforcement and Compliance Auditing - Value Proposition. FOAK in the Healthcare Industry

Software processes, quality, and standards VTV, fast methods, automation

1 Management Responsibility 1 Management Responsibility 1.1 General 1.1 General

Formal, Model-based Development and Verification of Hardware, Software and Cyber-Physical Systems. John Colley, Michael Butler Reading, May 21st 2015

Formal Methods in Aerospace: Constraints, Assets and Challenges. Virginie Wiels ONERA/DTIM

System Operation Guideline (SOGL) GB Implementation

A Swedish Model for PPP in Infrastructure Investment

Baselining Software Processes as a Starting Point for Research and Improvement

Microgeneration Installation Standard MIS 3006

Software Next Release Planning Approach through Exact Optimization

Contract Quality Requirements Manual SLM Issue 3

Software Testing Level Part 2. Adam Hendra Brata

TOPIC DESCRIPTION SUPPLEMENT for the SYSTEMS ENGINEERING SURVEY DESCRIPTION

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

mywbut.com Software Reliability and Quality Management

Vacancy for two posts of Programme Manager (Contract Agent FG IV) in the Shift2Rail Joint Undertaking. REF.: Shift2Rail/2016/01.

Towards Automated Alignment of Web Services to Requirements

Development of Formal Method Application for Ensuring Safety in Train Control System

Verification and Validation of Embedded Systems The good, the bad, the ordinary

Project Summary. Acceptanstest av säkerhetskritisk plattformsprogramvara

C. Wohlin, P. Runeson and A. Wesslén, "Software Reliability Estimations through Usage Analysis of Software Specifications and Designs", International

Technical Integration Testing Requirements. Trusted Digital Identity Framework August 2018, version 1.0

A methodology for improving reliability of complex systems

Usine Logicielle. Position paper

Introduction. Fundamental concepts in testing

Accelerating Xilinx All Programmable FPGA and SoC Design Verification with Blue Pearl Software

Automated Statistical Testing Suite for Software Validation

New control strategies and user interfaces for train traffic control

Verification and Validation

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

How to Reach Complete Safety Requirement Refinement for Autonomous Vehicles

FACULTY OF ENGINEERING AND TECHNOLOGY ELECTRICAL AND COMPUTER ENGINEERING LEARNING GUIDE: WORK INTEGRATED LEARNING

Rexroth Safety on Board Your path to intelligent and economical machine safety

Transcription:

Industrial use of formal methods 1 Industrial use of formal methods Lars-Henrik Eriksson Dept. of Information Technology (Computing Science) Uppsala University lhe@it.uu.se http://user.it.uu.se/~lhe Industrial use of formal methods 2 Using formal methods means using mathematically exac techniques to improve quality increase productivity when developing systems performing computations in a broad sense. Such as computer software electronic control systems electromechanical control systems 2004-09-27 Industrial use of formal methods 3 Traditional software construction Describing the task to be performed by the program using natural language (possibly supplemented with tables etc.) System design and coding Testing and debugging leads to large costs for testing and debugging delivering software which still is not bug-free Different software development methodologies have improved the situation, but not led to decisive improvements. Industrial use of formal methods 4 Mathematical models Other engineering disciplines would never accept a methodology that relies so heavily on testing. Instead, designs are analysed using mathematical models from e.g. material science (e.g. bridge construction) control theory (e.g. process control) electricity theory (e.g. electronics) giving a much lower probability of incorrect design. methods is a methodology with a similar role in the development of software and related systems. Industrial use of formal methods 5 are based on formal, that is methods mathematical/logical requirements specifications design models proofs of relations between design models and specifications. Discrete mathematics and mathematical logic is used. Industrial use of formal methods 6 Concepts of formal methods Validation Synthesis Requirements/ Needs specification model ising requirements Verification Translation Modelling development Implementation verification

Industrial use of formal methods 7 specifications The formal specification should give an exact description of the requirements of the system. Requirements can concern e.g.: Functionality Time aspects Fault tolerance Incomplete requirements can still be of good use. Industrial use of formal methods 8 Validating the specification How do you know that the formal specification correctly represents the necessary requirements? A good understanding of the formal language used is needed in order to avoid mistakes, but the specification must also be validated. A formal specification can be validated with the aid of a computer using software tools to do: Simulation (the computer simulates the specified system) Testing (also by proving properties of the specification) Industrial use of formal methods 9 Using formal specifications A formal specification is a prerequisite for using formal methods, e.g. for the verification of programs and systems. The specifications are of value even if formal methods are not otherwise used. Among other things, they can be used to Improve understanding of requirements. Improve communication of requirements. Automatically construct test data. A large part of software errors are caused by poor and/or incorrect requirements specifications. Industrial use of formal methods 10 verification ly verifying the system means proving that the model of the implementation fulfils the requirements as expressed by the formal specification. Since proofs are exact, a successful proof ensures that the requirements are satisfied (provided that the proof has been carried out correctly). Proofs can be carried out By hand With computer support Automatically Industrial use of formal methods 11 development means that the implementation is constructed formally from the specification. Typically the end result is in a formal notation that can be automatically translated into ordinary code (C, Ada etc.) If every step in the construction process is correct, the result is guaranteed to fulfil the requirements. development is a more difficult problem than verification, since there is not a single correct solution. Fully automated development is not possible in practise (but you can get close se Siemens experience further on) Industrial use of formal methods 12 Z / B / VDM-SL Z, B and VDM-SL are model-oriented specification languages. Z and B are based on Zermelo-Fraenkel set theory. B was developed from Z by J.R. Abrial with the intention of making a more practically useful system for formal development. VDM-SL is based on the logic of partial functions. Many concepts are similar, but VDM-SL has a three valued logic. VDM-SL is a result of IBM research on formal semantics for the programming language PL/1.

Industrial use of formal methods 13 A controlled experiment Few studies done on how FM affect software development projects? Controlled experiments difficult: high cost and risk. British Aerospace Systems and Equipment Ltd (BASE) study in the first half of the 1990s: Develop a simple (but realistic!) security-critical program twice with and without formal specifications (VDM-SL) being used. Traditional development process using the V model. Input a natural language customer requirements document. Output software written in C + various development metrics. Same resources to both efforts. Similar staff qualifications. Industrial use of formal methods 14 General results Both teams delivered within schedule and budget. Engineers had little trouble learning and using VDM-SL. Tool support essential! System analysis took longer in the formal project. Design and implementation took less time. Informal development produced slow, poor-quality software because of a mistake detected late in the project. Strict quality standards would force development to start over! No certain conclusions can be drawn, but this all concurs with accepted wisdom in the FM community. Industrial use of formal methods 15 Queries about customer req!s Queries were logged and analysed. team made 50% as many queries as informal team. 24 25 4 19 3 Informal 8 9 8 Industrial use of formal methods 16 How (are) formal spec. used in industry? Not much, but steadily increasing Greatest acceptance with safety-critical applications and digital circuit design (remember the Pentium I floating-point division error about 10 years ago). Several process and quality standards demand or recommend the use of formal methods (e.g. UK DEF STAN 00-55, Cenelec EN5012x series) Function Data Exceptions Design constraints Industrial use of formal methods 17 Industrial use of formal methods 18 (formely MATRA transport) use of B Develops ATP/ATO (Automatic Train Protection/Operation) systems. Have used the B-method for more than 10 years. Complete formal development process from specifications to executable code. Safety-critical part of Météor (software for Paris metro line 14) comprises 86 000 lines of Ada code, all developed formally.

Industrial use of formal methods 19 some statistics Project: Météor (1996) CBTC (2004) (Paris metro 14) (New York Canarsie Line) Staff: 10 4 Proof obligiations 23 000 41 000 Automatically proved 75% 86% Effort, man-years 17 4 Lines of generated code 86 000 > 100 000 Industrial use of formal methods 20 experiences "90% (today) of all proof obligations proved automatically. Several errors detected during development by failed proof. Resulting code is virtually error free. No testing done until the system test. Cost of developing safety-critical software approaching that of non safety-critical software. (Important obstacle to developing non safety-critical software with B is lack of qualified developers.) Industrial use of formal methods 21 Volvo Car Corporation Current family of cars beginning with the S80 model. Most functions computer-controlled. A large number of computers connected by local area network. Completely computerised engine controls no mechanical linkage between accelerator pedal and engine. Very strict requirements on engine control software due to environmental (legal) and safety constraints. Software written by subcontractors. Do they really produce what they are supposed to? specifications (temporal propositional logic) used contractually for the software with very good results. Industrial use of formal methods 22 Bombardier Transportation Rail Control Solutions Develops railway signalling systems. Main product: Ebilock 850/950 computer interlocking ( Ställverk 85/95 in Sweden). Different software versions for different railways. Specification traditionally by use cases. >10 000 use cases for each version of the software. specification notation (predicate logic) used instead. verification integrated into the development process. Testing and debugging effort reduced by 90%. Industrial use of formal methods 23 Banverket (Swedish National Rail Administration) Contract with Vossloh Signal-Technik (Malmö) to develop a new generation of small railway interlocking systems ( Alister ). Development according to the new CENELEC standards EN 50126, 50128 and 50129. Independent validator checks that the developed system complies with the specification. Validator found that the informal specification was insufficient. Central parts of the specification rewritten formally using an extended state-machine notation. Industrial use of formal methods 24 Banverket (more) (Swedish National Rail Administration) verification of Alister software initially revealed many deviations from the specifications. The software could be corrected before being put into operational test. Operational testing revealed problems with the non-verified (non-safety critical) software.

Industrial use of formal methods 25 Methods do not do everything The whole of the development process is not covered by formal methods. Not all kinds of questions can be handled with formal methods (in practise) Testing is still required but to a lesser extent.