Időzített rendszerek és az UPPAAL II

Hasonló dokumentumok
A modell-ellenőrzés gyakorlata UPPAAL

Alapszintű formalizmusok

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Alapszintű formalizmusok

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

Időzített átmeneti rendszerek

A modell-ellenőrzés gyakorlata

Formális verifikáció Modellezés és modellellenőrzés

Alapszintű formalizmusok

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

Formális modellezés és verifikáció

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Automatikus tesztgenerálás modell ellenőrző segítségével

Alprogramok, paraméterátadás

A SPIN használata, példák II

Java II. I A Java programozási nyelv alapelemei

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Modellezés UPPAAL-ban

Osztott rendszer. Osztott rendszer informális definíciója

Occam 1. Készítette: Szabó Éva

8. gyakorlat Pointerek, dinamikus memóriakezelés

Java II. I A Java programozási nyelv alapelemei

BUDAPESTI MÛSZAKI EGYETEM Méréstechnika és Információs Rendszerek Tanszék. SPIN Mérési útmutató. Készítette: Jávorszky Judit

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Már megismert fogalmak áttekintése

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Programozási nyelvek (ADA)

C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:

1. Bevezetés A C++ nem objektumorientált újdonságai 3

Bevezetés a programozásba. 9. Előadás: Rekordok

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Készítette: Nagy Tibor István

Interfészek. PPT 2007/2008 tavasz.

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással

Programozási nyelvek (ADA)

OOP #14 (referencia-elv)

A C programozási nyelv III. Pointerek és tömbök.

Formális modellezés alkalmazásának lehetőségei a vasúti biztosítóberendezések területén 2. rész

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Programozás II. 2. Dr. Iványi Péter

C memóriakezelés. Mutató típusú változót egy típus és a változó neve elé írt csillag karakterrel hozhatjuk létre.

A C programozási nyelv III. Pointerek és tömbök.

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Operációs rendszerek gyak.

Szoftver-modellellenőrzés absztrakciós módszerekkel

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Újrakonfigurálható eszközök

Fine-Grained Network Time Synchronization using Reference Broadcast

Kommunikáció. 3. előadás

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Programozási nyelvek 6. előadás

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

SMS küldő központ Leírás

Időzített rendszerek és az UPPAAL

FUNKCIONÁLIS PROGRAMOZÁS

Dinamikus modellek szerkezete, SDG modellek

Kifejezések. Kozsik Tamás. December 11, 2016

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

InFo-Tech emelt díjas SMS szolgáltatás. kommunikációs protokollja. Ver.: 2.1

Logika és informatikai alkalmazásai

A rendszer célja. Funkciók

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Laborsegédlet 3. Labor

C programozási nyelv

3. gyakorlat Folyamatmodellek, kooperáló viselkedésmodellek Megoldások

Operációs Rendszerek II. labor. 2. alkalom

Programozási nyelvek a közoktatásban alapfogalmak II. előadás

AWK programozás Bevezetés

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

Taninform KIR kapcsolat

Logika es sz am ıt aselm elet I. r esz Logika 1/36

Programozás módszertan

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

Logika és informatikai alkalmazásai

SZAKDOLGOZAT ÓBUDAI EGYETEM. Neumann János Informatikai kar Alba Regia Egyetemi Központ

A WEBOPAC (online elektronikus katalógus) használata. 1. Keresés az adatbázisban (összetett):

8.3. AZ ASIC TESZTELÉSE

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása

Objektumelvű programozás

10. gyakorlat Struktúrák, uniók, típusdefiníciók

Számítógépes Hálózatok 2010

Átírás:

Időzített rendszerek és az UPPAAL II Dr. Németh L. Zoltán (zlnemeth@inf.u-szeged.hu) SZTE, Informatikai Tanszékcsoport 2008/2009 I. félév 2008.11.15 MODELL 11 1

Rendszerek leírása az UPPAAL-ban Modellelenőrzés = modell + specifikációk a specifikációk megadását, már láttuk időzített CTL formulák (megszorításokkal): A[ ] P, A<>P, E[ ]P, E<> P, P --> Q a modell megadásához kiterjesztett időzített automata hálózatokat használunk időzített: valós idejű órák, melyek újraindíthatók és tesztelhetők kiterjesztett: korlátos egész változókat is használhatunk hálózat: az automaták, a csatornák szerint szinkronizálnak: egy üzenet? átmenet csak egy másik automata üzenet! átmenetével egyszerre hajtható végre 2008.11.14 MODELL 11 2

A modell leírásának részei: globális és lokális deklarációk konstansok változók csatornák órák tömbök, rekordok, skalárok, metaváltozók, felhasználói típusok automata sablonok (automata templates) ezek az egyes folyamatok modelljei ide tartoznak a lokális deklarációk rendszer komponenseinek megadása (system definition) a rendszer felépítése a sablonok folyamatokká példányosítsásaival,pl: ember1:=embertipus(1000); ember2:=embertipus(2000); system lampa,ember1,ember2; lampa4.xml 2008.11.14 MODELL 11 3

Típusok, változó, konstansok, tömbök Az UPPAAL deklarációi a C nyelvhez hasonlóak: Type ::= Prefix TypeId Prefix ::= 'urgent' 'broadcast' 'meta' 'const' TypeId ::= ID 'int' 'clock' 'chan' 'bool' 'int''['expression','expression'']' 'scalar''['expression']' 'struct''{'fielddecl(fielddecl)*'}' FieldDecl ::= Type ID ArrayDecl* (','ID ArrayDecl*)*'; ArrayDecl ::= '['Expression']' '[' Type ']' Expression szintén a C-hez hasonló kifejezés, ld. a HELPben 2008.11.14 MODELL 11 4

Példák I const int a = 1; bool b[8], c[4]; Nem keverendő! int[0,100] a=5; a egész típusú konstans, kezdeti értéke 1, az egészek alapértelmezett értékkészlete [-32768, 32767] b és c két 8 illetve 4 elemű tömb, melyek Boole értékeket tartalmaznak a egy korlátozott egész, értéke 1 és 100 közötti lehet, kezdetben 5 int a[2][3]= kétdimenziós egész értékeket {{1,2,3},{4,5,6}}; tartalmazó tömb, kezdeti értékadással 2008.11.14 MODELL 11 5

Példák II clock x, y; x és y két óra chan d; d egy csatorna avagy tevékenység neve, d? és d! használható a szinkronizáláshoz urgent chan e; e egy sürgős (urgent) csatorna, ha az üzenet küldés-fogadás létrejöhet nem választhatunk helyette szünet átmenetet struct{int a;bool b;} s1={2,true}; s1 egy olyan rekord, melynek a komponense egész (kezdetben 2), második komponense Boole típusú (kezdetben igaz). meta int swap; metaváltozó, a modell állapotait nem növeli int a; int b; assign swap=a; a=b; b=swap; 2008.11.14 MODELL 11 6

Kiterjesztett időzített automaták 2.szinkronizálás 3.értékadások invariánsok 1.őrfeltételek 2008.11.14 MODELL 11 7

1. Őrfeltételek Boole értékre értéklődjenek ki csak óra változókra, egészekre és konstansokra (valamint azok tömbjeinek elemeire) hivatkozhatunk az operandusok megfelelő típusúak kell, hogy legyenek kivéve az int bool konverziót óra változók, és azok különbsége csak egészekkel hasonlítható össze (ezért az órákat egész értékűeknek gondolhatjuk) mellékhatás mentesek (side-effect free) kell hogy legyenek különböző órákra vonatkozó feltételeket csak konjunkvióval köthetünk össze diszjunkcióval nem, pl: x <100 or y==50 tilos 2008.11.14 MODELL 11 8

2. Szinkronizációk I a csatornákat (avagy cselekvések (actions) neveit) globálisan kell deklariálni lokális csatornáknak nincs értelme, mert nem látja a másik automata, amivel szinkronizálni akarunk szabad belőlük tömböt szervezni, azaz egész értékekkel paraméterezni pl. chan csat[3] ekkor csat[2]! alatt gondolhatjuk azt, hogy 2-t küldjük el a csat csatornába de gondolhatjuk azt is, hogy 3 különböző cselekvéssel tudunk szinkronizálni csat[0], csat[1], csat[2] a sürgős (urgent) csatornákról később lesz szó 2008.11.14 MODELL 11 9

2. Szinkronizációk II Bináris szinkronizáció két folyamat (automata) között egy küldő egy fogadó fél Példa: chan a, b[3]; küldés: c[t]! (ha t értéke 2) fogadás: c[2]? Csak akkor hajtható végre, ha van fogadó fél különben blokkol. Brodcast szinkronizáció több folyamat (automa között) egy küldő teszőleges számú (esetleg nulla!) fogadó fél Pl: broadcast chan a; küldés: a! fogadás: a? minden végrehajtható a? átmenettel rendelkező automatának szinkronizálni kell a küldővel küldeni mindig lehet a! soha sem blokkol ebreszto.xml 2008.11.14 MODELL 11 10

3. értékadások az átmenet sorrendben harmadik lépései, megváltoztatják a modell állapotát az őrfeltételekkel szemben itt éppen a mellékhatás a lényeg a típusokat itt is egyeztetni kell itt is csak konstansa, órára, egész változóra (és ezek tömbjeire) hivatkozhatunk az óra változóknak csak egész érték adható 2008.11.14 MODELL 11 11

Invariánsok az állapotokhoz és nem az átmenetkhez kapcsolódnak Boole értékre értékelődnek ki mellékhatás mentesek (x < e) és (x <= e) alakú feltételek konjunkciói ahol x óraváltozó e pedig egész értékű kifejezés 2008.11.14 MODELL 11 12

Sablonok (Templates) kényelmes módszer több azonos, vagy hasonló folyamat definiálására mint a SPIN-ben a proctype az automata sablonokat korlátozott egész értékű paraméterekkel láthatjuk el a sablon neve utáni Parameters mezőben kell megadni őket a változó deklarációhoz hasonlóan a rendszerdeklarációkban példányosíthatjuk őket a konkrét paraméterek megadásával (ekkor érték szerinti paraméterátadás történik) vagy ha nem adjuk meg a paramétereket az UPPAAL önműködően létrehozza a példányokat a paramétereket az összes lehetséges módom megválasztva Példák régebbről: lampa4.xml, ebreszto.xml 2008.11.14 MODELL 11 13

Sürgősség és elkötelezettség (Urgency and commotment) a modellezéshez sokszor szükségünk van arra, hogy a rendszer ne várkozhasson bizonyos állapotokban hanem haladás (progress) történjen, például egy szinkronizáció azonnal létrejöjjön, mihelyt mindkét fél készen áll az erre szolgálló eszközök: sürgős csatornák (urgent channels) sürgős helyek (urgent locations) elkötelezett helyek (committed locations) ezek az eszközök jelentősen csökkenthetik a szükséges órák számát és az állapottér méretét is 2008.11.14 MODELL 11 14

Sürgős csatornák, sürgős helyek, elkötelezett helyek 1. sürgős csatornák (urgent channels) ha a csatornán keresztül szinkronizálni lehet sem a küldő sem a fogadó nem tehet szünet átmenetet de egymást persze meg kell várniuk órákra vonatkozó őrfeltétel nem lehet a szinkronizáló átmeneten de egészekre vonatkozó őrfeltétel igen deklarációja urgent chan a, b[12]; 2. sürgős helyek (urgent locations) ezen a helyen nem telhet az idő de a többi folyamat diszkrét átmeneteket tehet közben (azok alatt nem telik az idő) 3. elkötelezett helyek (committed locations) ezen a helyen sem telhet az idő, sőt a következő átmenetnek innen, vagy legalább egy másik elkötelezett helyről kell indulnia azaz a többi folyamat normál állapotaival szemben elsőbbséget élvez surgos.xml 2008.11.14 MODELL 11 15

További lehetőségek Néhány további eszköz mely hasznos lehet a modellezéshez: választások (select statements) select = nemtereminisztikus választás az átmenet,,előtt pl. k : int[1,6] egy 1 és 6 közötti számot választ felhasználói típusok, és rekordok (mint a C-ben.) forall / exists kifejezések forall (x:int[0,50]) expr exists (x:int[0,50]) expr skalárok scalar[3] d, a skalárok csak értékadásra és egyenlőség tesztelésére használatos így köztük nincs < >rendezés így a szimmetriájuk kihasználható az állapoptszám csökkentésére metaváltozók meta int swap 2008.11.14 MODELL 11 16

Gyakorlat Egy LEGO kocka válogató UPPAAL modllje LEGO kocka válogató (brick sorter) valami hasonló, mint: http://www.norgesgade14.dk/bricksorter.php elemezzük a modellt: további példák: www.cs.aau.dk/~kgl/esv04/exercises/index.html könnyű HF zuhanyos példa (18) boxes.xml 2008.11.14 MODELL 11 17