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

Hasonló dokumentumok
Alapszintű formalizmusok

A modell-ellenőrzés gyakorlata UPPAAL

Alapszintű formalizmusok

Időzített rendszerek és az UPPAAL II

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

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

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

Modellezés UPPAAL-ban

Alapszintű formalizmusok

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

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

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

Informatika terméktervezőknek

Időzített átmeneti rendszerek

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)

UNIX: folyamatok kommunikációja

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Apple Swift kurzus 3. gyakorlat

Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

1. Egyszerű (primitív) típusok. 2. Referencia típusok

A C# programozási nyelv alapjai

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Komputeralgebra Rendszerek

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

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

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

Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD)

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

Petri hálók: Alapelemek és kiterjesztések

A modell-ellenőrzés gyakorlata

Szkriptnyelvek. 1. UNIX shell

Követelmények formalizálása: Temporális logikák. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

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

Pénzügyi algoritmusok

6. Közös változóval rendelkező párhuzamos program, Közös változó,

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

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

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

Modellező eszközök, kódgenerálás

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD)

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

Magasabb szintű formalizmus: Állapottérképek (statecharts) dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

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

Dr. Mileff Péter

Adatbányászati szemelvények MapReduce környezetben

Tartalom Tervezési egység felépítése Utasítások csoportosítása Értékadás... 38

Java II. I A Java programozási nyelv alapelemei

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

Java II. I A Java programozási nyelv alapelemei

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

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

The modular mitmót system. DPY kijelző kártya C API

Petri hálók: Alapelemek és kiterjesztések

The Flooding Time Synchronization Protocol

Modellezés Petri hálókkal. dr. Bartha Tamás dr. Majzik István dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék

ködös határ (félreértés, hiba)

Hatékony technikák modellellenőrzéshez: Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Petri hálók: alapfogalmak, kiterjesztések

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

Tartalomjegyzék. Előszó... 10

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

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

Zárthelyi mintapéldák. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

AWK programozás, minták, vezérlési szerkezetek

ISA szimulátor objektum-orientált modell (C++)

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

Részletes szoftver tervek ellenőrzése

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Maximum kiválasztás tömbben

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

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

Operációs rendszerek II. Folyamatok ütemezése

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

Matematikai programok

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Smalltalk 2. Készítette: Szabó Éva

Dinamikus modell: állapotdiagram, szekvencia diagram

Részletes tervek ellenőrzése

AWK programozás, minták, vezérlési szerkezetek

Python tanfolyam Python bevezető I. rész

Programozási nyelvek JAVA EA+GY 1. gyakolat

Kiterjesztések sek szemantikája

OOP. Alapelvek Elek Tibor

Párhuzamos és Grid rendszerek

Modell alapú tesztelés mobil környezetben

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

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

Mintavételes szabályozás mikrovezérlő segítségével

és az instanceof operátor

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Forráskód generálás formális modellek alapján

Szekvencia diagram. Szekvencia diagram Dr. Mileff Péter

Elosztott adatfeldolgozás

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

5. Hét Sorrendi hálózatok

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

A C programozási nyelv IV. Deklaráció és definíció

Átírás:

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

Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron üzenetküldés Alapértelmezett szemantika a csatorna (chan) esetén Randevú (kölcsönös várakozás) közvetlenül támogatott Aszinkron üzenetküldés Csatorna explicit modellezése szükséges (átvesz és továbbít) Konkurens üzenettovábbítás korlátozott (ha kézbesítésre vár, nem tud újat fogadni) Broadcast üzenetküldés Broadcast csatorna használata (broadcast chan) Küldő feltétel nélkül továbbléphet (akkor is, ha nincs fogadó) Az éppen várakozó fogadók szinkronizálódnak Paraméterezhető számú résztvevő Processz paraméterek, automatikus példányosítással is Paraméterezett méretű csatorna- és adatvektorok használata Követelményekben: paraméterekre forall és exists kvantorok

Résztvevők együttműködése (2) Automaták interakciói megosztott változókkal Globális változó deklarálása és használata Megosztott beállítás és lekérdezés Lazán csatolt elosztott rendszerekben az implementáció kérdéses Konkurencia problémákat vethet fel (atomi hozzáférés) Üzenetküldés adattartalommal Szinkron üzenetküldés és megosztott változó használata az adattartalomra A megosztott változó beállítása majd a szinkronizáció kezdeményezése Atomi műveletekre figyelni kell (beállítás és szinkronizáció) Modellezési technika lehet (nem implementációs mintaként!)

Konkurens viselkedés Atomi műveletek Committed állapot: Bejövő állapotátmenet után csak committed állapotból kimenő állapotátmenet következhet Könnyű modellezés, de használatát különösen meg kell gondolni (a modellezett valós világban valóban támogatott-e?) Implementációs nehézségek lazán csatolt elosztott rendszerekben Hasonló hatású: Feltételvizsgálat és értékadás egy élen (egy állapotátmenet esetén) Pl. test-and-set, nem ugyanaz, mintha külön átmeneten lenne Függvények belseje nincs lépésenként kezelve Prioritás aktivitások között Prioritás processzek között Prioritás csatornák (azaz szinkronizációs lehetőségek) között Használhatók, de a modellellenőrzést korlátozzák: A<>, E[], -->, deadlock nem ellenőrizhető

Időbeliség Várakozás korlátozása Állapot invariáns (legfeljebb meddig) Időhöz kötött feltétel (legalább meddig) Várakozás tiltása (de nem atomi művelet) Sürgős (urgent) állapot: Nem várakozhat az adott állapotban, ha kiléphet Sürgős (urgent) csatorna: Ha lehetséges a szinkronizáció, akkor nem várakozhat

Adattípusok Adattípusok finomítása Tömbök, rekordok létrehozhatók Paraméterezhető méretű vektorok hasznosak Értékek tartománya megadható Célszerű a legkisebb tartományt megadni (tárigény csökkenthető modellellenőrzéskor) Meta változók Állapotvektorba bekerül, de nem számít különbségnek az állapotban, ha eltérő az értéke Processzek és függvények paraméterei Érték és referencia szerinti paraméterek lehetnek

Adatmanipuláció Összetett feltételvizsgálat Boole függvény használata őrfeltételben (áttekinthetőbb) Konkurens viselkedést korlátozza (függvények belseje nincs lépésenként kezelve) Összetett adatmanipuláció Függvény használata akcióban Feltételes végrehajtás (if else ), iteráció (for, while, do) és return Példák: Üzenetsor kezelés, adatvektorok inicializálása, Konkurens viselkedést korlátozza (függvények belseje nincs lépésenként kezelve)

Véletlen választás és kiértékelés Véletlen választás modellezése Választás (select) konstrukció egy átmenethez: Változót véletlenszerűen adatértékhez köt egy adott tartományból Az átmeneten szinkronizációban, őrfeltételben, akcióban használható a kötött változó Minden lehetséges választást bejár modellellenőrzéskor A szekciók kiértékelési sorrendje: Select» Sync» Guard» Update Szinkronizáló élek esetén a küldő Update-ja a fogadóé előtt fut le Nem tesztelhetünk az őrfeltételben szinkronizáló él által beállított globális változót Nem védhetünk meg Guard-dal egy Sync-ben levő változót