Formal Methods for Software Engineering

Slides:



Advertisements
Similar presentations
Recognising Languages We will tackle the problem of defining languages by considering how we could recognise them. Problem: Is there a method of recognising.
Advertisements

Recognising Languages We will tackle the problem of defining languages by considering how we could recognise them. Problem: Is there a method of recognising.
Formal Methods for Software Engineering Lecture 5, Part II: FSP.
Models of Concurrency Manna, Pnueli.
Theory Of Automata By Dr. MM Alam
PROTOCOL VERIFICATION & PROTOCOL VALIDATION. Protocol Verification Communication Protocols should be checked for correctness, robustness and performance,
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
CSC321 §6 Modelling Processes using FSP 1 Section 6 Modelling Processes using FSP.
Process Algebra (2IF45) Probabilistic Process Algebra Suzana Andova.
Introduction to Computability Theory
1 Introduction to Computability Theory Lecture2: Non Deterministic Finite Automata Prof. Amos Israeli.
Introduction to Computability Theory
1 The SOCK SAGA Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro.
An Introduction to Input/Output Automata Qihua Wang.
Finite Automata Finite-state machine with no output. FA consists of States, Transitions between states FA is a 5-tuple Example! A string x is recognized.
Software Engineering, COMP201 Slide 1 Protocol Engineering Protocol Specification using CFSM model Lecture 30.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
EECS 20 Chapter 3 Sections State Machines Continued Last time we Introduced the deterministic finite state machine Discussed the concept of state.
CSE 311: Foundations of Computing Fall 2014 Lecture 23: State Minimization, NFAs.
Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
A summary of our activities about WSI Philippe Giabbanelli CMPT 894 – Spring 2008.
Process Algebra (2IF45) Probabilistic Branching Bisimulation: Exercises Dr. Suzana Andova.
1 Unit 1: Automata Theory and Formal Languages Readings 1, 2.2, 2.3.
SDS Foil no 1 Process Algebra Process Algebra – calculating with behaviours.
Lecture 05: Theory of Automata:08 Kleene’s Theorem and NFA.
Reactive systems – general
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
CSC321 §6 Modelling Processes using FSP 1 Chapter 6 Modelling Processes using FSP.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Internet Security CSCE 813 Communicating Sequential Processes.
Formal Methods for Software Engineering Part II: Modelling & Analysis of System Behaviour.
Commit Algorithms Hamid Al-Hamadi CS 5204 November 17, 2009.
Holger Hermanns Formal Methods for Software Engineering Part III: Applications of Formal Methods Lecture 8: SDL.
2G1516 Formal Methods2005 Mads Dam IMIT, KTH 1 CCS: Processes and Equivalences Mads Dam Reading: Peled 8.5.
Recognising Languages We will tackle the problem of defining languages by considering how we could recognise them. Problem: Is there a method of recognising.
Donghyun (David) Kim Department of Mathematics and Physics North Carolina Central University 1 Chapter 1 Regular Languages Some slides are in courtesy.
UNIT - I Formal Language and Regular Expressions: Languages Definition regular expressions Regular sets identity rules. Finite Automata: DFA NFA NFA with.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Process Algebra (2IF45) Analysing Probabilistic systems Dr. Suzana Andova.
Operational Semantics Mooly Sagiv Tel Aviv University Sunday Scrieber 8 Monday Schrieber.
Today’s Agenda  Quiz 4  Temporal Logic Formal Methods in Software Engineering1.
CS 367: Model-Based Reasoning Lecture 7 (02/05/2002) Gautam Biswas.
Operational Semantics Mooly Sagiv Reference: Semantics with Applications Chapter 2 H. Nielson and F. Nielson
Operational Semantics Mooly Sagiv Reference: Semantics with Applications Chapter 2 H. Nielson and F. Nielson
7/7/20161 Formal Methods in software development a.a.2015/2016 Prof.Anna Labella.
Week 13 - Friday.  What did we talk about last time?  Regular expressions.
Theory of Computation Automata Theory Dr. Ayman Srour.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini VII. System Specification (I)
Requirements Techniques, cont.
Formal methods: Lecture
Prof. Dr. Holger Schlingloff 1,2 Dr. Esteban Pavese 1
Hardware Verification
Dr. Eng Amr T. Abdel-Hamid
Clockless Computing COMP
Instructor Mazhar Hussain
G. Pullaiah College of Engineering and Technology
Flow Control.
Amir Kamil and Katherine Yelick
Flow and Error Control.
Alternating Bit Protocol
SS 2018 Software Verification ML, state machines
Non-Deterministic Finite Automata
Formal Methods in software development
Formal Methods in software development
Amir Kamil and Katherine Yelick
Linear Time Properties
Translating Linear Temporal Logic into Büchi Automata
Presentation transcript:

Formal Methods for Software Engineering Part II: Modelling & Analysis of System Behaviour

Contents Part I In Part I we used Z as a formalism to model the static aspects of software systems, i.e. definition of system states & data structures definition of operations & preconditions The tool Z-Eves was used for specification support and analysis. Ed Brinksma FMSE, Lecture 4

Contents Part II In this part we introduce FSP as a formalism to model the dynamic aspects of software systems, i.e. definition of system behaviour (control flow) definition of control distribution (concurrency) We introduce the tool LTSA for modelling support and analysis. Ed Brinksma FMSE, Lecture 4

FSP and LTS Models are described using state machines, known as Labelled Transition Systems. These are described textually as Finite State Processes and displayed and analysed by the LTSA analysis tool. LTS - graphical form FSP - algebraic form Ed Brinksma FMSE, Lecture 4

LTS: a definition A labelled transition system T consists of the following ingredients: a set S of states a set L of actions a set -> of transitions of the form s-a->t with s,tS and aL or a=tau an initial state s0 S We also write T=(S,L,->, s0 ). Ed Brinksma FMSE, Lecture 4

Modelling Processes A process is modelled as a finite LTS which transits from state to state by executing a sequence of atomic actions. on a light switch LTS 1 off a sequence of actions or trace onoffonoffonoff … Ed Brinksma FMSE, Lecture 4

A Simple Transmission Protocol in send getack 1 2 SENDER = (in -> send -> getack -> SENDER). RECEIVER = (rec -> out -> ack -> RECEIVER). rec out 1 2 ack get put 1 BUFFER = (get -> put -> BUFFER). Ed Brinksma FMSE, Lecture 4

Composing the System Buffer2 Sender Receiver Buffer1 Medium in send out ack getack Medium ||MEDIUM = (a:BUFFER||b:BUFFER) /{send/a.get,rec/a.put,ack/b.get,getack/b.put}. ||SYSTEM = (SENDER || MEDIUM ||RECEIVER). Ed Brinksma FMSE, Lecture 4

The System Behaviour parallel composition with synchronized communication equivalent single process can be calculated (with LTSA) in send rec out ack getack 1 2 3 4 5 Ed Brinksma FMSE, Lecture 4

||SYSTEM = (SENDER||MEDIUM||RECEIVER). Observable Behaviour Observable behaviour abstracts away from internal system actions . in out getack ack Sender Medium Receiver send rec ||SYSTEM = (SENDER||MEDIUM||RECEIVER). Ed Brinksma FMSE, Lecture 4

||SYSTEM = (SENDER||MEDIUM||RECEIVER)@{in,out}. Observable Behaviour Observable behaviour abstracts away from internal system actions . in out System Sender Medium Receiver ||SYSTEM = (SENDER||MEDIUM||RECEIVER)@{in,out}. Ed Brinksma FMSE, Lecture 4

||SYSTEM = (SENDER||MEDIUM||RECEIVER)@{in,out}. Observable Behaviour Observable behaviour abstracts away from internal system actions . tau denotes internal action in tau out 1 2 3 4 5 ||SYSTEM = (SENDER||MEDIUM||RECEIVER)@{in,out}. Ed Brinksma FMSE, Lecture 4

SYS=(in->out->SYS). Observable Behaviour Observable behaviour abstracts away from internal system actions . Same LTS as: SYS=(in->out->SYS). in out 1 minimise SYSTEM Ed Brinksma FMSE, Lecture 4

Behavioural Equivalence In what sense is the minimized process SYS comparable to SYSTEM@{in,out}? When can we identify system states? Ed Brinksma FMSE, Lecture 4

Bisimulation Idea: identify states that can imitate each other’s observable steps leading to states that again can be identified An observable step consists of either observing nothing, or observing a non-internal action Ed Brinksma FMSE, Lecture 4

Example in tau tau out tau 1 2 3 4 5 tau Ed Brinksma FMSE, Lecture 4

Observable Steps Observing nothing: Observing non-internal action: s==>t: s=t or s-tau->…-tau->t i.e. s reaches t by doing nothing, or by executing internal actions only. Observing non-internal action: s=a=>t: s==>s’-a->t’==>t for some s’,t’ i.e. s reaches t by doing a, possibly preceeded or followed by some internal actions Ed Brinksma FMSE, Lecture 4

Examples 0==>0, 0=a=>1, 0=a=>2 tau b c 1 2 3 0==>0, 0=a=>1, 0=a=>2 1==>1, 1==>2, 1=b=>3, 1=c=>2 2==>2, 2=c=>2 3==>3, 3=b=>3 Ed Brinksma FMSE, Lecture 4

Weak Bisimulation Relations Let R be a relation between states,then R is a weak bisimulation relation iff for all (s,t)R and all observable actions a: if for some s’: s==>s’ then for some t’: t==>t’ such that (s’,t’)R if for some s’: s=a=>s’ then for some t’: t=a=>t’ such that (s’,t’)R if for some t’: t==>t’ then for some s’: s==>s’ such that (s’,t’)R if for some t’: t=a=>t’ then for some s’: s=a=>s’ such that (s’,t’)R Ed Brinksma FMSE, Lecture 4

Equivalent Transition Systems Two transition systems T and U are observably equivalent iff there is a weak bisimulation relation R with (t0,u0)R with t0 and u0 their respective initial states. Ed Brinksma FMSE, Lecture 4

Example c T a c tau b S Ed Brinksma FMSE, Lecture 4

Negative Example a b c 1 2 3 4 ? Ed Brinksma FMSE, Lecture 4

Traces Again Let T=(S,L,->,s0) be a labelled transition system. Traces(T) is the set of strings a1…anL* such that there is an sL with s0=a1=>…=an=>s Two LTSs T and U are trace equivalent iff Traces(T)=Traces(U) Ed Brinksma FMSE, Lecture 4

Example Traces: (empty trace), a,ab,abb,abbb,abbbb,… tau b c 1 2 3 Traces: (empty trace), a,ab,abb,abbb,abbbb,… a,ac,acc,accc,acccc,… Ed Brinksma FMSE, Lecture 4

Trace sets are identical! (Non)determinism An LTS T=(S,L,->,s0) is deterministic iff for every trace  of T there is a unique state sS with s0==>s. deterministic a b c 1 2 3 4 Trace sets are identical! nondeterministic 0=a=>1 and 0=a=>2 Ed Brinksma FMSE, Lecture 4

Do we need nondeterministic processes? FACTS Let T and U be LTSs. If T and U are observation equivalent then T and U are trace equivalent. If T and U are trace equivalent then T and U generally are not observation equivalent. If T and U are deterministic then they are trace equivalent iff they are observation equivalent. Do we need nondeterministic processes? Ed Brinksma FMSE, Lecture 4

Nondeterminism nondeterminism BUFFER = (get -> put -> BUFFER |get -> BUFFER). What happens with our protocol if a Buffer can lose data? in tau out 1 2 3 4 Compiled: SENDER Compiled: BUFFER Compiled: RECEIVER Composition: SYSTEM = SENDER || MEDIUM.a:BUFFER || MEDIUM.b:BUFFER || RECEIVER State Space: 3 * 2 * 2 * 3 = 36 Composing potential DEADLOCK States Composed: 7 Transitions: 8 in 0ms SYSTEM minimising.... Minimised States: 5 in 60ms Deadlock state Ed Brinksma FMSE, Lecture 4

Revision 1 Keep sending until a getack is received SENDER = (in -> send -> WAIT), WAIT = (getack -> SENDER |send -> WAIT). Keep sending until a getack is received RECEIVER = (rec -> OUT), OUT = (out -> ack -> WAIT), WAIT = (rec -> OUT |ack -> WAIT). Keep sending acks until a rec is received Ed Brinksma FMSE, Lecture 4

Sys=(in->out->Sys). Analysis This cannot be equivalent to the 2-state Sys process with Sys=(in->out->Sys). Reason: There is no difference between send actions that are repeated and those related to a new in action. Compiled: SENDER Compiled: BUFFER Compiled: RECEIVER Composition: SYSTEM = SENDER || MEDIUM.a:BUFFER || MEDIUM.b:BUFFER || RECEIVER State Space: 3 * 2 * 2 * 4 = 48 Composing States Composed: 34 Transitions: 57 in 50ms SYSTEM minimising..... Minimised States: 17 in 110ms Ed Brinksma FMSE, Lecture 4

Revision 2 Alternating Bit Protocol: send along a bit that is flipped to distinguish old and new data and acknowledgements. range B= 0..1 SENDER = (in -> SENDING[0]), SENDING[b:B] = (send[b] -> SENDING[b] |getack[1-b] -> SENDING[b] |getack[b] -> in -> SENDING[1-b]). RECEIVER = (rec[0] -> out -> ACKING[0]), ACKING[b:B] = (ack[b] -> ACKING[b] |rec[b] -> ACKING[b] |rec[1-b] -> out -> ACKING[1-b]). BUFFER = (get[b:B] -> put[b] -> BUFFER |get[b:B] -> BUFFER). ||MEDIUM = (a:BUFFER || b:BUFFER) /{send/a.get,rec/a.put,ack/b.get,getack/b.put}. ||SYSTEM = (SENDER || MEDIUM || RECEIVER)@{in,out}. Ed Brinksma FMSE, Lecture 4

Does It Work? Composition: SYSTEM = SENDER || MEDIUM.a:BUFFER || MEDIUM.b:BUFFER || RECEIVER State Space: 5 * 3 * 3 * 6 = 270 Composing States Composed: 45 Transitions: 86 in 0ms in tau out 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 Ed Brinksma FMSE, Lecture 4

Minimization in out 1 The Alternating Bit system (service) is observational equivalent with a 1-place buffer Ed Brinksma FMSE, Lecture 4

Summary Dynamic system behaviour can be modelled by LTS/FSP specifications LTS/FSP models can composed and analysed using the LTSA tool LTS/FSP models can be minimized to observational equivalent behaviours using bisimulations Nondeterminism is an essential modelling feature for system behaviours Ed Brinksma FMSE, Lecture 4