680 likes | 844 Views
mCRL2 and Visualization of State Spaces. Bas Ploeger s.c.w.ploeger@tue.nl. mCRL2 and Visualization of State Spaces. Bas Ploeger s.c.w.ploeger@tue.nl. Behavioral models of software. Manual analysis techniques. Tool based analysis techniques. mCRL2.
E N D
mCRL2 and Visualization ofState Spaces Bas Ploeger s.c.w.ploeger@tue.nl UNSW / NICTA, Sydney
mCRL2 and Visualization ofState Spaces Bas Ploeger s.c.w.ploeger@tue.nl UNSW / NICTA, Sydney
Behavioral models of software Manual analysis techniques Tool based analysis techniques UNSW / NICTA, Sydney
mCRL2 • Based on mCRL: has been used in many case studies for verification of protocols and distributed systems • Language: process algebra (ACP) extended with data • Tool set: supports analysis of real-life systems and protocols UNSW / NICTA, Sydney
mCRL2: Process algebra • Processes • Actions: a, b, c,... • Operators: +, ·, d, ||, |, GC, V,… act a, b, c, error ; procP = a·(b + c)·P + error · d ; Q = a·Q ; init P || Q ; UNSW / NICTA, Sydney
mCRL2: Data types • Bool,ℕ, ℤ, sets, bags, lists • Functions, structs • Lambda-expressions • Operators: ⋀,⋁,∀,∃,+,-,div,mod,∈,⋂,⋃,⊆,⊇,++,⊳,⊲, … sortTree = structleaf(value:ℤ)?isLeaf | node(left:Tree,right:Tree)?isNode; mapsquare: ℕℕ; eqnsquare= lx:ℕ. x * x; UNSW / NICTA, Sydney
Example up down set display 34 proc C(n:ℕ) = up · C(n+1) + n>0down · C(n-1)+ display(n) · C(n) + Sm:ℕ. set(m) · C(m) UNSW / NICTA, Sydney
c2 c3 Parallel processes s2 r2 s3 r3 r1 P Q R s4 P || Q || R G{s2|r2c2, s3|r3c3}(P || Q || R) P=r1·s2·PQ=r2·s3·Q R=r3·s4·R {r1,c2,c3,s4}(G{s2|r2c2, s3|r3c3}(P || Q || R)) UNSW / NICTA, Sydney
Parallel processes Hide to t action r1 P Q R s4 P || Q || R G{s2|r2c2, s2|r2c2}(P || Q || R) P=r1·s2·PQ=r2·s3·Q R=r3·s4·R {r1,c2,c3,s4}(G{s2|r2c2, s3|r3c3}(P || Q || R)) t{c2,c3}({r1,c2,c3,s4}(G{s2|r2c2, s3|r3c3}(P || Q || R))) UNSW / NICTA, Sydney
mCRL2 LPE LTS mCRL2 tool set philosophy current state list of P(d:D)=SiISei:Ei ci(d,ei) ai(fi(d,ei)) · P(gi(d,ei)) Linear Process Equation condition action effect UNSW / NICTA, Sydney
b=true b=false B r s A simple buffer procB =Sn:ℕr(n) · s(n) · B b:Bool procP(b:Bool,n:ℕ) = Sm:ℕb r(m) · P(true,m) + b s(n) · P(false,n) UNSW / NICTA, Sydney
mCRL2 tool set • Linearizer: mCRL2 spec → LPE • LPE modifiers and simulators • LTS generator, converter and minimizer • GUI tool interface (under construction) • LTS visualizer (under construction) • Model-checking tools (under construction) Freely available (Boost license) for Unix, Linux, Windows and Mac OSX UNSW / NICTA, Sydney
Large applications 100% rule • Philips Consumer Electronics • Philips Medical • ASML (Wafer steppers) • Dutch railway company (Prorail, Holland Railconsult) • Océ (copiers) • Chess (ES) • Thales • Java distributed memory (free university) • Dutch Ministry of defense • Add-controls • VVSL • Nedcar • Nyquist • NBG • Firewire protocol • CVSS • Security protocol • Imtech UNSW / NICTA, Sydney
Visualization of state spaces Consider 7 dining philosophers: procPhil(n:ℕ) = get(n,n)·get(n,(n+1)mod 7)·eat(n)·put(n,n)· put(n,(n+1)mod7)·Phil(n); procFork(n:ℕ) = Sm:ℕup(m,n)·down(m,n)·Fork(n); init ∇{lock,free,eat}(G{get|up→lock, put|down→free}( Fork(0)|| Phil(0)|| … || Fork(6)|| Phil(6))); State space has 4,286 states and 19,159 transitions… UNSW / NICTA, Sydney
What’s wrong? • Too much detail: all states and transitions are shown in one picture So: • Give the user a structure of the state space • A backbone on which the states and transitions can be visualized • FSMView by Frank van Ham (2000) UNSW / NICTA, Sydney
What did we do? • Rank states • Cluster states • Position and visualize the clusters UNSW / NICTA, Sydney
0 1 2 Iterative 3 Rank states Cluster states Initial state Back pointer PhD of Frank van Ham UNSW / NICTA, Sydney
Resulting structure Draw knotted cones between clusters Draw ‘leaf-clusters’ as spheres. Rotate clusters outward. Draw tree as 3D object UNSW / NICTA, Sydney
Functionalities • Find the deadlock… UNSW / NICTA, Sydney
Case study: a modular lift system start start stop stop start start stop stop Relay UNSW / NICTA, Sydney
The lift system with 3 lifts UNSW / NICTA, Sydney
VLTS Benchmark suite CWI/SEN2 in Amsterdam (NL) INRIA/VASY in Grenoble (F) UNSW / NICTA, Sydney
Visualization based on state vectors • View N state parameters as a vector in N-dimensional space • StateVis and NoodleView by Hannes Pretorius UNSW / NICTA, Sydney
StateVis UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney
Scheduling wafers at ASML Robot Store Robot Robot Locks Vacuum UNSW / NICTA, Sydney