SD3049 Formal Methods. Formal Methods Module Leader Dr Aaron Kans

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Design by Contract.
Inspection of Safety-Critical Software Using Program- Function Tables Jeffrey Smith, Richard Bruno, Vince Fumo.
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Software system modeling
Requirement Analysis and Specification Mr. Manoj Kumar Kar.
ISBN Chapter 3 Describing Syntax and Semantics.
SD3049 Formal Methods Module Leader Dr Aaron Kans Module website
Requirements and Design
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Shaoying Liu Department of Computer Science
ITIS 3200: Introduction to Information Security and Privacy Dr. Weichao Wang.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Unit 211 Requirements Phase The objective of this section is to introduce software system requirements and to explain different ways of expressing these.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 91 Formal Specification l Techniques for the unambiguous specification of software.
Describing Syntax and Semantics
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 10 Slide 1 Formal Specification.
© The McGraw-Hill Companies, 2006 Chapter 7 Implementing classes.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
MCA –Software Engineering Kantipur City College. Topics include  Formal Methods Concept  Formal Specification Language Test plan creation Test-case.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
©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.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
Chapter 2 The process Process, Methods, and Tools
Compositional IS Development Framework Application Domain Application Domain Pre-existing components, legacy systems Extended for CD (ontologies) OAD Methods.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 9 Slide 1 Formal Specification l Techniques for the unambiguous specification of software.
Mohammad Amin Kuhail M.Sc. (York, UK) University of Palestine Faculty of Engineering and Urban planning Software Engineering department Requirements Engineering.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
25 November 2002 DeSIRE, Pisa Methods and Tools for Formal Design and Validation Michael Butler University of Southampton
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 10 – Classes and operations Dr Richard.
Software Engineering Management Lecture 1 The Software Process.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
WXGE6103 Software Engineering Process and Practice Formal Specification.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
Formal Methods.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor.
Formal Methods in SE Software Verification Using Formal Methods By: Qaisar Javaid, Assistant Professor Formal Methods1.
CSCI1600: Embedded and Real Time Software Lecture 11: Modeling IV: Concurrency Steven Reiss, Fall 2015.
November 2003J. B. Wordsworth: J3ISDQR41 Information Systems Development Quality and Risk (4)
Fall 2008Programming Development Techniques 1 Topic 20 Concurrency Section 3.4.
PROGRAMMING PRE- AND POSTCONDITIONS, INVARIANTS AND METHOD CONTRACTS B MODULE 2: SOFTWARE SYSTEMS 13 NOVEMBER 2013.
1 10/15/04CS150 Introduction to Computer Science 1 Reading from and Writing to Files Part 2.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Requirements Engineering Methods for Requirements Engineering Lecture-31.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Agenda  Quick Review  Finish Introduction  Java Threads.
Formal Methods. What Are Formal Methods Formal methods refers to a variety of mathematical modeling techniques that are applicable to computer system.
Software Design and Development Development Methodoligies Computing Science.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini VII. System Specification (I)
Formal Specification.
Introduction to Formal Methods
Lecture 3 Prescriptive Process Models
Software Design Methodology
Advantages of Formal Methods
Department of Computer Science Abdul Wali Khan University Mardan
Software system modeling
Activities of Formal Methods
Presentation transcript:

SD3049 Formal Methods

Formal Methods Module Leader Dr Aaron Kans

What is this module about?

Ariane5 rocket crash

What is this module about? Ariane5 rocket crash NASA’s Mars Climate Orbitor November 1999 Total project cost : $327.6 million

What is this module about? Developing software like an ENGINEER

High Integrity Software Development By the end of this lecture you should be able to: define the term high integrity software; distinguish between different types of critical software; identify the weaknesses of testing as an approach to software verification; identify the weaknesses of natural language specifications; distinguish between formal and informal methods of software development;

Introduction Often software is integrated into a mechanical or electronic system Such software is known as embedded software Costs of software failure in these systems can be dangerously high Require a higher degree of confidence in the correctness of the software. Such software is known as HIGH INTEGRITY SOFTWARE.

Critical Software business critical software mission critical software safety critical software

Integrity Levels Integrity level 5 Integrity level 1

CLIENT DEVELOPER FINAL APPLICATION TESTING SPECIFICATION The importance of the specification

Limitations of Testing 1.Testing cannot take place until some implementation is available. 2.Testing can only help to uncover errors - it cannot guarantee the absence of them. 3.Testing is always carried out with respect to requirements as laid down in the specification.

UML: a review BankAccount accountNumber: String accountName: String balance: Real deposit (Real) withdraw (Real) : Boolean currentBalance(): Real

Weakness of natural language specifications Withdraw: “Receives a requested amount to withdraw from the bank account and, if there are sufficient funds in the account, meets the request. Returns a boolean value indicating success or failure of the attempt to withdraw money from the account.” Natural language descriptions do not have a fixed meaning, they are ambiguous. These notations do not have a fixed semantics

Incomplete specifications A specification can be considered incomplete when the behaviour is not completely defined. Withdraw: “Receives a requested amount to withdraw from the bank account and, if there are sufficient funds in the account, meets the request. Returns a boolean value indicating success or failure of the attempt to withdraw money from the account.”

Inconsistent specifications A specification is inconsistent when it contains within it contradictions. Withdraw: “Receives a requested amount to withdraw from the bank account and, if there are sufficient funds in the account, meets the request. Returns a boolean value indicating success or failure of the attempt to withdraw money from the account.” OVERDRAFT?

Formal languages It is desirable to use a specification notation with a fixed, unambiguous, semantics. Notations that have a fixed semantics are known as formal notations, or formal languages. A fixed semantics is achieved by defining a language in a completely unambiguous way using a mathematical framework.

Formal Methods initial formal specification 1st transformation 2nd transformation nth transformation final program A formal method includes a proof system for demonstrating that each transformation preserves the formal meaning captured in the previous step.

Advantages of formal methods Generates good test cases; increases confidence that the specification accurately captures the real system requirements; important properties of the initial specification can be checked mathematically; proofs can help uncover design errors as soon as they are made; a proof of program correctness can be constructed.

Classifying formal methods AlgebraicModel-based Sequential systems Larch Vienna Development Method (VDM) Z B Concurrent Systems Calculus of Communicating Systems (CCS) OBJ Prototype Verification System (PVS) Concurrent Sequential Processes (CSP)