CSE4213 Lecture Notes



Similar documents
Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Introducing Formal Methods. Software Engineering and Formal Methods

Chap 1. Introduction to Software Architecture

Chapter 13: Program Development and Programming Languages

RATP safety approach for railway signalling systems

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

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Specification and Analysis of Contracts Lecture 1 Introduction

Chapter 13: Program Development and Programming Languages

Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model

Lecture 9: Requirements Modelling

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

Software Engineering Reference Framework

ESKITP5023 Software Development Level 3 Role

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Generating Aspect Code from UML Models

Computer Science Information Sheet for entry in What is Computer Science?

Chapter 10. Practical Database Design Methodology. The Role of Information Systems in Organizations. Practical Database Design Methodology

Dr. Jana Koehler IBM Zurich Research Laboratory

UML TUTORIALS THE USE CASE MODEL

Kirsten Sinclair SyntheSys Systems Engineers

Sofware Requirements Engineeing

Data Modeling Basics

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Budapest University of Technology and Economics Department of Measurement and Information Systems. Business Process Modeling

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Communication Diagrams

The ProB Animator and Model Checker for B

Object-Oriented Design Guidelines

To introduce software process models To describe three generic process models and when they may be used

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

F-16 Modular Mission Computer Application Software

Adversary Modelling 1

VAIL-Plant Asset Integrity Management System. Software Development Process

Developing SOA solutions using IBM SOA Foundation

Chapter 4 Software Lifecycle and Performance Analysis

ABET General Outcomes. Student Learning Outcomes for BS in Computing

Computer Programming. Course Details An Introduction to Computational Tools. Prof. Mauro Gaspari:

Information systems modelling UML and service description languages

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

3C05: Unified Software Development Process

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Software Development Methodologies

[Refer Slide Time: 05:10]

SysML Modelling Language explained

2. Analysis, Design and Implementation

11 Tips to make the requirements definition process more effective and results more usable

Software Development in the Large!

Modeling, Computers, and Error Analysis Mathematical Modeling and Engineering Problem-Solving

Foundations of Model-Driven Software Engineering

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Software Development Methodologies

Basic Unified Process: A Process for Small and Agile Projects

Introduction. Compiler Design CSE 504. Overview. Programming problems are easier to solve in high-level languages

CS 40 Computing for the Web

Programme Specification for the. Cardiff Metropolitan University. Master of Science (MSc) in Information Technology

Domains and Competencies

CIS570 Modern Programming Language Implementation. Office hours: TDB 605 Levine

Classical Software Life Cycle Models

Engineering Process Software Qualities Software Architectural Design

TECH. Requirements. Why are requirements important? The Requirements Process REQUIREMENTS ELICITATION AND ANALYSIS. Requirements vs.

Software Engineering

Lecture 3 Software Development Processes

Advanced Software Engineering FYI!

Software Architecture Document

What is AWOL? Absence Without Leave: AWOL is a non-pay status that covers an absence from duty which has not been approved.

Rigorous Software Development An introduction

The Impact of RTCA DO-178C on Software Development

Execution of A Requirement Model in Software Development

Enterprise architecture Manufacturing operations management Information systems in industry ELEC-E8113

2. Basic Relational Data Model

How To Write An Slcm Project Plan

Describe the process of parallelization as it relates to problem solving.

CS 51 Intro to CS. Art Lee. September 2, 2014

Algorithms are the threads that tie together most of the subfields of computer science.

A Methodology for the Development of New Telecommunications Services

The SPES Methodology Modeling- and Analysis Techniques

Introduction to programming

Factsheet ITIL -V3 Capability module Release, Control and Validation

(Refer Slide Time: 01:52)

Formalization of Functional Requirements and Their Traceability in UML Diagrams A Z Notation Based Approach

Automata Theory. Şubat 2006 Tuğrul Yılmaz Ankara Üniversitesi

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

Software Development Methodologies

Section C. Requirements Elicitation

COCOVILA Compiler-Compiler for Visual Languages

The Role of the Software Architect

Software Development: The Waterfall Model

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

1. Software Engineering Overview

Transcription:

CSE4213 Lecture Notes Introduction to B Tools Computer Science and Software Engineering Monash University 20070226 / Lecture 1 ajh 1/15

1 Outline 2 3 4 5 ajh 2/15

In this course we will be introducing you to the formal method, whose full name is the B, but which is usually known simply as B. B is one of the few formal software development methods that covers the complete software lifecycle, from requirements (specification), through design (refinement) to implementation, code generation, and maintenance. In this course we will be concerned only with the use of B for specification. To assist developments in B, we will be use the B-Toolkit, a configuration management tool. ajh 3/15

What do we mean by Formal s? In our use of the term Formal s we mean the application of mathematics set theory and logic to specify, design and implement software or more generally systems in such a way that the resulting code has been proved to be consistent with the original specification. In B, a specification is a mathematical model of the required behaviour of a system. Specifications are generally abstract. We then transform the specification through a sequence of formally defined refinement steps towards a concrete implementation. During the process we have a number of proof obligations that must be discharged. ajh 4/15

Connection with conventional methods Conventional software development methods usually express the requirements informally: either structured or unstructured English, or using some structured notation: dataflow, entity relationship diagrams, or the unified modelling language (UML). Specifications are frequently expressed directly in programming code. Design then consists of fleshing out the code to produce an implementation. ajh 5/15

Connection with conventional methods (cont. 2) In contrast, when using a formal development method, like B, the specification is an abstract description of the requirements, expressing what behaviour is required, rather than how to produce that behaviour. It follows the design phase must effect a radical transformation of the specification in order to obtain executable code. ajh 6/15

Testing within traditional engineering disciplines Consider traditional engineering disciplines, such as electrical engineering, or civil engineering Designs are based on a mathematical theory of materials, components, used in the implementation of bridges, electronic circuits, etc.. Testing consists of physical testing of the implementation, or a model of the implementation. Successful strategy because domains are described by continuous mathematics: if a model conforms for some specific test input, it will also conform for input that is less than that input. Hence we need only test for extreme values. This strategy would not work for discrete valued domains. ajh 7/15

Contrast with testing of software Software executes over discrete domains, and testing usually consists of probing points within that space. Thus testing can only confirm conformance of behaviour at specific points. Testing is therefore incapable, in general, of demonstrating conformance over the complete application domain. Thus testing may confirm the presence of bugs, but not their absence. ajh 8/15

Advantages of formal development and proof Using a formal development method, build a model using constructs described by precise mathematical theories. These models capture the behaviour in a complete application domain. As we develop our specifications into implementations, the formal method produces proof obligations that describe the complete set of tests that confirm that the behaviours of the specification and the design are consistent more correctly, not inconsistent. Discharging the proof obligations is thus the counterpart of testing in other engineering disciplines. A proof validates behaviour in a complete domain, not simply at a single point. ajh 9/15

What has been done with formal methods? Formal methods have been used in various mission critical applications, for example train control systems and smart cards. In some countries the use of formal methods is mandatory for certain critical systems. The most famous and significant use of B is for the control system of the Météor line, a new driverless train line of the Paris metro opened in October 1998. See http://www.siemens-ts.com/pagesus/realisations/paris.htm http://www.siemens-ts.com/pagesus/produits/meteor.htm ajh 10/15

What has been done with formal methods? (cont. 2) The distributed control system handled the critical parts of the central control room, the wayside equipment along the track and on the platform, the onboard train control. The use of B was mandated by the Paris transit authority, RATP. The Météor system was developed by Matra Transport, now owned by Siemens. ajh 11/15

More Industrial Pages The following pages on the Siemens site mention the B- in connection with Safety and Innovation http://www.siemens-ts.com/pagesus/engagements/ {Securite.htm,Innovation.htm} The following page talks about the announcement of the award of contract to install the Météor system on the New York subway. http://www.siemens-ts.com/pagesus/realisations/newyork.htm Or, see the pages at http://www.gemplus.com/smart/r d/trends/system model/b method/ GEMPLUS is a company that develops smart cards. ajh 12/15

Formality is inexorable The increase in the use of formality in software development has been continuous, from formal grammars to specify programming language syntax, to the semi-formal application of translator generators in compiler implementation. High-level programming languages themselves are an instance of increased formality, over machine level (assembler) programming in this case. ajh 13/15

Formality is inexorable (cont. 2) Everywhere rigour and formality has been used there has been an increase in the reliability of implementations. There is no reason to believe that this progress will not continue. ajh 14/15

of Main Points The B is a formal method for software development. Here focus on use of B for specification. Formal methods bring mathematical rigour to software development. Formal methods have been used to build practical computer systems. ajh 15/15