Theoretical Foundations of the UML Lecture 15+16: A Logic for MSCs Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group moves.rwth-aachen.de/teaching/ss-20/fuml/ June 15, 2020 Joost-Pieter Katoen Theoretical Foundations of the UML 1/41
Outline Introduction 1 Local Formulas and Path Expressions 2 Syntax Formal Semantics PDL Formulas 3 Verification problems for PDL 4 Model checking MSCs Model checking CFMs Model checking MSGs Satisfiability Joost-Pieter Katoen Theoretical Foundations of the UML 2/41
Overview Introduction 1 Local Formulas and Path Expressions 2 Syntax Formal Semantics PDL Formulas 3 Verification problems for PDL 4 Model checking MSCs Model checking CFMs Model checking MSGs Satisfiability Joost-Pieter Katoen Theoretical Foundations of the UML 3/41
A logic for MSCs This lecture will be devoted to a logic that is interpreted over MSCs "÷÷ " ÷ Joost-Pieter Katoen Theoretical Foundations of the UML 4/41
A logic for MSCs This lecture will be devoted to a logic that is interpreted over MSCs The logic is used to umambigously express properties of MSCs does a given MSC M satisfy the logical formula ϕ ? And to characterise a set of MSCs by means of a logical formula all MSCs that satisfy the formula ϕ Based on propositional dynamic logic (PDL) [Fischer & Ladner, 1979] combines easy-to-grasp concepts such as regular expressions and Boolean operators logic modal + a & ; s > V n - ⇒ Atx E ] a* Joost-Pieter Katoen Theoretical Foundations of the UML 4/41
A logic for MSCs This lecture will be devoted to a logic that is interpreted over MSCs The logic is used to umambigously express properties of MSCs does a given MSC M satisfy the logical formula ϕ ? And to characterise a set of MSCs by means of a logical formula all MSCs that satisfy the formula ϕ Based on propositional dynamic logic (PDL) [Fischer & Ladner, 1979] combines easy-to-grasp concepts such as regular expressions and Boolean operators Syntax, semantics, examples and various verification problems. Joost-Pieter Katoen Theoretical Foundations of the UML 4/41
Some informal example properties • co co @ ⑥ O - M right M Mleff Might left 1 The (unique) maximal event of M is labeled by ?(2 , 1 , a ) Yes. No. - Joost-Pieter Katoen Theoretical Foundations of the UML 5/41
Some informal example properties • • Aright M left 1 The (unique) maximal event of M is labeled by ?(2 , 1 , a ) Yes. No. 2 The maximal event on process 2 is labeled by ?(2 , 1 , a ) Yes. Yes. Joost-Pieter Katoen Theoretical Foundations of the UML 5/41
Some informal example properties • • • • • M right M left 1 The (unique) maximal event of M is labeled by ?(2 , 1 , a ) Yes. No. 2 The maximal event on process 2 is labeled by ?(2 , 1 , a ) Yes. Yes. 3 No two consecutive events are labeled with ?(2 , 3 , c ) No. Yes. - - - Joost-Pieter Katoen Theoretical Foundations of the UML 5/41
Some informal example properties @ o ⑥ a M M left right 1 The (unique) maximal event of M is labeled by ?(2 , 1 , a ) Yes. No. 2 The maximal event on process 2 is labeled by ?(2 , 1 , a ) Yes. Yes. 3 No two consecutive events are labeled with ?(2 , 3 , c ) No. Yes. 4 The number of send events at process 3 is odd. No. No. - - Joost-Pieter Katoen Theoretical Foundations of the UML 5/41
The need for logics Properties stated in natural language are ambiguous. We prefer to use a formal language for expressing properties. A formal semantics yields an unambiguous interpretation. This provides the basis for verification algorithms and common understanding. As formal language for properties we use logic. Joost-Pieter Katoen Theoretical Foundations of the UML 6/41
Overview Introduction 1 Local Formulas and Path Expressions 2 Syntax Formal Semantics PDL Formulas 3 Verification problems for PDL 4 Model checking MSCs Model checking CFMs Model checking MSGs Satisfiability Joost-Pieter Katoen Theoretical Foundations of the UML 7/41
The logic PDL Local formulas Statements interpreted for single events in an MSC Express properties about other events at the same process Express properties about send and matched receive events vertical { f be . → 2 2 e . " , e → - horizontal Joost-Pieter Katoen Theoretical Foundations of the UML 8/41
The logic PDL Local formulas Statements interpreted for single events in an MSC Express properties about other events at the same process Express properties about send and matched receive events ' a Path expressions IT > • ' a Lp ¥ ⇒ " Used to navigate through an MSC a . Use choice, concatenation and repetition ;ptx . Can be embraced in box and diamond modalities t ! ! . ← . * ( true ; p > x regular expressions ' ' ( > tone ;p a Joost-Pieter Katoen Theoretical Foundations of the UML 8/41
The logic PDL events - Local formulas Statements interpreted for single events in an MSC Express properties about other events at the same process Express properties about send and matched receive events Path expressions Used to navigate through an MSC - Use choice, concatenation and repetition Can be embraced in box and diamond modalities PDL-formulas Express properties about an entire MSC - Joost-Pieter Katoen Theoretical Foundations of the UML 8/41
Local formulas Local formulas These are statements over single events in an MSC. That is, an event either satisfies or refutes such formula. Example local formulas !(1 , 2 , a ) The current event is labeled with !(1 , 2 , a ) §a ! Caria ) ' E e e e Caza ) tf ! ' e Joost-Pieter Katoen Theoretical Foundations of the UML 9/41
Local formulas Local formulas These are statements over single events in an MSC. That is, an event either satisfies or refutes such formula. Example local formulas !(1 , 2 , a ) The current event is labeled with !(1 , 2 , a ) � proc � true There is a next event at the same process 3 2 I true C proc > e f • e I ' tf • Cpuc > true e ' e - - - Joost-Pieter Katoen Theoretical Foundations of the UML 9/41
Local formulas Local formulas These are statements over single events in an MSC. That is, an event either satisfies or refutes such formula. Example local formulas !(1 , 2 , a ) The current event is labeled with !(1 , 2 , a ) � proc � true There is a next event at the same process � proc ; proc � true There are (at least) two next events at this process - - e tune a ( proc > t e proc ; f ' a e t " • e Joost-Pieter Katoen Theoretical Foundations of the UML 9/41
Local formulas Local formulas These are statements over single events in an MSC. That is, an event either satisfies or refutes such formula. Example local formulas !(1 , 2 , a ) The current event is labeled with !(1 , 2 , a ) � proc � true There is a next event at the same process � proc ; proc � true There are (at least) two next events at this process [ proc ] − 1 false There is no preceding event at this process f T - - - - - proc ] ' - false [ et " look • e " -1 backwards tf Epoc ] false ' , e e • Joost-Pieter Katoen Theoretical Foundations of the UML 9/41
Local formulas Local formulas These are statements over single events in an MSC. That is, an event either satisfies or refutes such formula. Example local formulas !(1 , 2 , a ) The current event is labeled with !(1 , 2 , a ) I � proc � true There is a next event at the same process Ceo -→ ] � proc ; proc � true There are (at least) two next events at this process [ proc ] − 1 false There is no preceding event at this process � msg � true This event is a send matching a (next) receive event . C msg > tune f e , e Joost-Pieter Katoen Theoretical Foundations of the UML 9/41
Local formulas Local formulas These are statements over single events in an MSC. That is, an event either satisfies or refutes such formula. Example local formulas sit !(1 , 2 , a ) The current event is labeled with !(1 , 2 , a ) � proc � true There is a next event at the same process � proc ; proc � true There are (at least) two next events at this process [ proc ] − 1 false There is no preceding event at this process � msg � true This event is a send matching a (next) receive event � proc � ?(1 , 2 , b ) Event ?(1 , 2 , b ) is a possible next event on this process - - Joost-Pieter Katoen Theoretical Foundations of the UML 9/41
Local formulas Local formulas These are statements over single events in an MSC. That is, an event either satisfies or refutes such formula. Example local formulas !(1 , 2 , a ) The current event is labeled with !(1 , 2 , a ) � proc � true There is a next event at the same process � proc ; proc � true There are (at least) two next events at this process [ proc ] − 1 false There is no preceding event at this process � msg � true This event is a send matching a (next) receive event � proc � ?(1 , 2 , b ) Event ?(1 , 2 , b ) is a possible next event on this process ← [ { ¬ !(1 , 2 , a ) } ] true An event is possible after any event di ff erent from !(1 , 2 , a ) - Joost-Pieter Katoen Theoretical Foundations of the UML 9/41
Recommend
More recommend