1 Modellering med Uppaal Tobias Amnell (Materialet lånat av Paul Pettersson)

Slides:



Advertisements
Liknande presentationer
INTRODUKTION TILL PROGRAMMERING
Advertisements

Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Att programmera i språket Java
Grundläggande programmering
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Distribuerade filsystem
Algoritm analys och rekursiva metoder kap 5,7
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Alice in Action with Java
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
EN KOMPLETT INDUSTRIPARTNER ! ALLMÄNT OM MELSEC STYRSYSTEM.
Programmering B PHP Lektion 2
INTRODUKTION TILL PROGRAMMERING
Föreläsning 11 Arrayer.
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Att gå från magkänsla till faktabaserad utveckling Stöd för förskolor och skolor som vill ordna analysgrupp Metoden har utvecklats och prövats i Eu-projektet.
William Sandqvist C:s minnesmodell.
Föreläsning 3 Programmeringsteknik och Matlab DD1312
Grundläggande programmering
Diskreta, deterministiska system Projekt 1.2; Vildkatt
Algoritmer. Ordet kommer från en persisk författare som kom från al’Khowârizmi (engelskans algorithm). Han skrev boken ’Kitab al jabr w’al-muqabala’.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
William Sandqvist Kodlåsmall lockmall.vhd William Sandqvist
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 6: Process- synkronisering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 11 J-uppgiften. Nästa period ägnas åt J-uppgiften. Den är individuell, dvs man jobbar på egen hand med uppgiften (inte tillsammans med labbkompisen).
Styrteknik 7.5 hp distans: PLC-Program, kaffe-automat PLC7B:1
Skattning av trendkurvor/trendytor och förändringar över tiden Claudia von Brömssen SLU.
6558/G558 DATAKOMMUNIKATION Kapitel 3: Nätverk, ruttning.
Utvecklingsprocessen Webbutveckling. Utvecklingsprocessen Bli inte rädd för alla begrepp och alla verktyg man verkar behöva kunna. Du måste inte använda.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Schemaläggning Mål –Att förstå den roll som schemaläggning och schemaläggnings-analys spelar för att förutsäga hur realtids-tillämpningar uppfyller sina.
INTRODUKTION TILL PROGRAMMERING
Styrteknik: Boolesk algebra D1:1
Föreläsning 11 Logik med tillämpningar Innehåll u Generell resolution u Kapitel i Ben-Ari.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Föreläsning 9 Logik med tillämpningar Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5,
William Sandqvist Flera saker samtidigt? /* Blink1: 1s ON - 1s OFF */ /* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
TATA31 Linjär algebra Examinator, föreläsare: Ulf Janfalk
Objekt, Klass och Instans Analys av systemet ger mer eller mindre detaljerade objekt Objekten sorteras och klass-diagram ritas upp där relationer reds.
Föreläsning 14 Logik med tillämpningar Innehåll u Cuts och negation u Input/output u Extralogiska predikat u Interaktiva program, failure-drivna.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
Föreläsning2 Operativsystem.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Lite ObjektOrienterad Analys och Design sid. 1 6/1/2015 CD5250 OOP med C++ Mats Medin MDH/IDT Lite OOA/OOD.
Formella metoder i MDI Behovet Vad menas med formell? Verktyg Exempel Att läsa: Kapitel 14 i kursboken.
William Sandqvist Tillståndsmaskiner  Moore-automat  Mealy-automat William Sandqvist
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
MTM:S PRODUKTION AV KURSLITTERATUR EN FÖRDJUPNING Kerstin Ekman.
Selektion jämförande och logiska operatorer
Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet.
Operativsystem - Baklås Mats Björkman
KPP053, HT2015 MATLAB, Föreläsning 4
Användarguide WhatsApp för iPhone
TFYY51 Informationssökning
Föreläsning 16: Tentan, att förbereda sig…
Föreläsning 3: Booleans, if, switch
Datalängd och datatyper
Digitala tal och Boolesk algebra
Digitalteknik 3p - Sekvenskretsar
Presentationens avskrift:

1 Modellering med Uppaal Tobias Amnell (Materialet lånat av Paul Pettersson)

2 I Uppaal kan man beskriva modeller av program, kommunikationsprotokoll m.m. Modellerna bygger på s.k. tillståndsautomater Exempel: Automat med tre tillstånd: A,B,C och tre övergångar: B  A, A  B och B  C. B är starttillstånd, C sluttillstånd. x,y,z är händelser. Ändliga Tillståndsautomater A BC x y z

3 Exempel: Smart Lysknapp ÖNSKAT BETEENDE: Om man trycker två gånger snabbt så skall ljuset bli ljusare än om man bara trycker en gång.

4 Exempel: Smart Lysknapp ÖNSKAT BETEENDE: Om man trycker två gånger snabbt så skall ljuset bli ljusare än om man bara trycker en gång. OffLightBright Press?

5 Vi använder “!” och “?” för par av komplementära händelser som kan synkronisera på övergångarna. Automaterna kan synkronisera på x och sedan på y. Nätverk av Automater x? y? z! y! x!

6 Exempel: Smart Lysknapp OffLightBright Press? ABC Press! Press? Kan utföra (Off, A), (Light, B), (Off, C) eller......(Off, A), (Light, B), (Bright, C). Hur modellera två snabbt utförda Press?

7 Klockor I Uppaal hanteras tid m.h.a. klockor. Från början är alla klockor noll. Alla klockor har exakt samma hastighet. Övergångarna kan ha klockvillkor där klockorna testas. Klockorna kan även nollställas på övergångarna. X:=0 X>3

8 Exempel: Smart Lysknapp (forts.) OffLightBright Press?

9 Exempel: Smart Lysknapp (forts.) LÖSNING: Vi lägger till en klocka x som mäter tiden. OffLightBright X:=0 X<=3 X>3 Press?

10 Tidsautomater Timed Automata n m a (Alur & Dill 1990) Klockor: x, y x 3 x := 0 Klockvillkor Boolesk kombination av jämförelser av klockor med heltalsgränser Tilldelning Nollställning av klockor Händelse används för synkronisering mellan automater

11 Oförutsägbarhet i Automater Modeller i Uppaal är inte alltid förutsägbara Extern oförutsägbarhet (synkronisering) Oförutsägbarhet i tid. x? x?x? x! x:=0x<=3

12 n m a x 3 x := 0 x<=5 y<=10 g1 g2 g3 g4 En invariant används för att tvinga systemet att utföra en övergång (dvs lämna tillståndet) innan invarianten blir falsk!! Tidsautomater med Invarianter Timed Automata + Invariants (Henzinger et al, 1992) Tillstånds- invarianter Klockor: x, y

13 Data i Automater Förutom klockor finns datavariabler (int). Alla heltal är begränsade exempel: int[0,1] a; Datavarialer kan användas i villkor på övergångar Kan tilldelas nya värden då en övergång tas i>3 & j==0j:=4

14 Deklarationer i U PPAAL clock x 1, …, x n ; int i 1, …, i m ; chan a 1, …, a o ; const c 1 n 1, …, c p n p ; Exempel: clock x, y; int i, J0; int[0,1] k[5]; const delay 5, true 1, false 0; Array k med 5 booleska variabler

15 Urgent Channels/Händelse urgent chan skynda; Informell betydelse: Ingen väntan möjlig om övergång med urgent händelse kan utföras. Begränsningar: Inget klockvillkor på övergång med urgent händelse. Invarianter och variabelvillkor kan användas som vanligt. WAIT skynda! x>=MAX_TIME TIME- OUT Måste tas om möjligt

16 Urgent Locations/Tillstånd Klicka på “Urgent” i State Editorn. Ingen väntan i urgent tillstånd. Not: Användandet av Urgent tillstånd kan reducera antalet klockor i modellen och därmed den tid och utrymme som krävs för att analysera modellen. U NOWAIT Någon av ut- övergångarna måste tas direkt

17 Commited Locations/Tillstånd Automaten måste fortsätta direkt Inga andra övergångar möjliga Används t.ex. för multicast C COMMIT Någon av ut- övergångarna måste tas direkt x>3a! b! b? a? C

18 Verifiering med UPPAAL UPPAAL är en s.k. model-checker Ett verktyg som undersöker om en modell uppfyller en egenskap Modellen beskrivs m.h.a. tidsautomater Egenskapen beskrivs av logiska formler UPPAAL använder en begränsad variant av ”Timed Computation Tree Logic” (TCTL)

19 UPPAAL Specifikationsspråk p::= a.l | g d | g c | p and p | p or p | not p | p imply p | ( p ) klockvillkor variabelvillkor processtillstånd processnamn A[] p E<> p egenskapen p är alltid sann i modellen. det går att nå ett tillstånd i modellen där egenskapen p är sann.

20 Exempel på frågor A[] p - egenskapen p är alltid sann i modellen. E<> p - det går att nå ett tillstånd i modellen där egenskapen p är sann. A[] not (ProcessA.S1 and ProcessB.S2); A[] ClockA <= 100; A[] ProcessA.S1 imply ProcessB.S3; E<> Process.Error; E<> Clock > 200;

21 Nya frågor i version 3.2 A<> p För alla körningar kommer p att gälla E[] p Det finns en körning där p alltid gäller p --> q När p gäller kommer q att gälla senare A[] not deadlock Systemet kan inte låsa sig A<> Process.Safe; E[] Clock <= 100; ProcessA.S1 --> ProcessB.S2; A[] not deadlock;

22 System i UPPAAL I UPPAAL skapas ett system av processer En process är en instans av en template En template är en automat + lokala variabler och klockor En template kan initialiseras med variabler och konstanter const i 2; const j 3; int k; P1:=T(i,k); P2:=T(j,k) system P1,P2,P3; dedded deklarationer dede processer

23 Uppgift 1 - Kaffemaskin Person automat given. Konstruera automat Machine för att producera kaffe. Konstruera automat Observer för att kont- rollera att publikationer sker tillräckligt ofta. Synkronisera de tre automaterna.

24 2. Kommunikationsprotokoll Tre automater: Sender skickar meddelanden via Medium till Receiver. Varje meddelande har längd length. Mediet Medium har en överföringstid delay. bs (begin send) och es (end send) synkar Sender och Medium. br (begin receive) och er (end receive) synkar Medium och Receiver.

25 Uppgift 3 Telefonskvaller Varje person vet ett saftigt skvaller var. Varje person kan tala i telefon med en annan person åt gången och då dela det skvaller som de båda vet. Vad är det minimala antalet telefonsamtal som behövs för att att fyra personer skall veta alla andras hemligheter? Vi använder reachability analys för att lösa schemaläggningsproblem.