Állapot alapú modellezés

Hasonló dokumentumok
Állapot alapú modellezés

Rendszermodellezés. Állapot alapú modellezés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

2. gyakorlat Állapot alapú modellezés Megoldások. 1. feladat. Rendszermodellezés (BMEVIMIAA00), tavaszi félév

Alapszintű formalizmusok

2. gyakorlat Állapot alapú modellezés Megoldások

2. gyakorlat Állapot alapú modellezés Megoldások

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

Szimuláció. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics. Department of Measurement and Information Systems

2. gyakorlat Állapot alapú modellezés Megoldások

Diszkrét állapotú rendszerek modellezése. Petri-hálók

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

Folyamatmodellezés. Budapesti Műszaki és Gazdaságtudományi Egyetem. Hibatűrő Rendszerek Kutatócsoport. Budapesti Műszaki és Gazdaságtudományi Egyetem

Elérhetőségi probléma egyszerűsítése: Állapottér és struktúra redukció Petri-háló alosztályok

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

Modellek ellenőrzése és tesztelése

5. Hét Sorrendi hálózatok

Diszkrét állapotú rendszerek modellezése. Petri-hálók

Szekvenciális hálózatok és automaták

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

folyamatrendszerek modellezése

Szimuláció. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics. Department of Measurement and Information Systems

Szoftverminőségbiztosítá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

Modellek végrehajtása, kódgenerálás

Szoftverminőségbiztosítás

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

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

Elérhetőségi analízis Petri hálók dinamikus tulajdonságai

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

Rendszermodellezés: házi feladat bemutatás

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

Rendszermodellezés 1. ZH, A csoport, nagyfeladatok

5. gyakorlat Modellek ellenőrzése és tesztelése Megoldások

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

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

Modell alapú tesztelés mobil környezetben

Strukturális modellezés

Valószínűségi modellellenőrzés Markov döntési folyamatokkal

Formális nyelvek - 9.

Újrakonfigurálható eszközök

Strukturális modellezés

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

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

Állapotalapú modellezés

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

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

Digitális technika (VIMIAA02) Laboratórium 4

Részletes szoftver tervek ellenőrzése

UML (Unified Modelling Language)

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

Időzített átmeneti rendszerek

Kiterjesztések sek szemantikája

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

Számítógép architektúra

Logikai hálózatok. Dr. Bede Zsuzsanna St. I. em. 104.

Digitális technika (VIMIAA02) Laboratórium 4

Állapotalapú modellezés

Temporális logikák és modell ellenırzés

Digitális technika (VIMIAA02) Laboratórium 5.5

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Automaták mint elfogadók (akceptorok)

S01-7 Komponens alapú szoftverfejlesztés 1

OOP. Alapelvek Elek Tibor

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

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

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

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

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

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

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

Programfejlesztési Modellek

Részletes tervek ellenőrzése

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Modellezési alapismeretek

A MEGBÍZHATÓSÁGI ELEMZŐ MÓDSZEREK

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

Szoftver-ergonómiára vonatkozó szabvány, avagy ISO 9241

Logikai áramkörök. Informatika alapjai-5 Logikai áramkörök 1/6

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

Relációs algebra 1.rész alapok

Alapszintű formalizmusok

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Bevezetés az informatikába

Diszkrét Eseményű Rendszerek Diagnosztikája és Irányítása

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

2014. szeptember 24. és 26. Dr. Vincze Szilvia

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

Adatszerkezetek 1. előadás

Modellezési alapismeretek

Modellezési esettanulmányok. elosztott paraméterű és hibrid példa

Petri hálók strukturális tulajdonságai Invariánsok és számításuk

Objektumorientált paradigma és programfejlesztés Bevezető

Dr. Oniga István DIGITÁLIS TECHNIKA 8

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

Modell alapú tesztelés: célok és lehetőségek

2.előadás. alapfogalmak, formális definíció

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

Átírás:

Állapot alapú modellezés Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1

Tartalom Előismeretek Állapotterek Egyszerű (Mealy) állapotgépek Összetett (Harel) állapotgépek Kitekintés, szoftverek 3

Előismeretek Állapottér Mealy gépek Harel gépek Kitekintés ELŐISMERETEK 4

Felépítési és viselkedési modellezés Felépítési (structural) o Statikus o Rész és egész, összetevők o Kapcsolatok, összeköttetések Viselkedési (behavioral) o Dinamikus o Időbeli lefolyás o Állapot, folyamat o Reakciók a külvilágra A robotporszívó főbb részei a vezérlő, a hajtómű, és a porszívó. A hajtómű jobbra parancs hatására átvált kanyarodás üzemmódba 5

Viselkedésmodellek fő kérdései Mit csinál a rendszer? Esemény alapú modell Folyamat alapú modell Most milyen, és hogyan változik a rendszer? Állapot alapú modell 6

Motiváló példa: virtuális billentyűzet Mi történik, ha megérintem a bal felső sarokban? o Q, q, 1 vagy = o Csak a múlt alapján eldönthető q Q Q 1 = 7

Alapozás: diszkrét eseménysor Esemény o pillanatszerű változás (a rendszerben vagy ki/bemeneten) Eseményfolyam o Pl. input/output adatforrás Eseménytér {megengedett események} o Beolvasható input értékek, kibocsátható output értékek Pillanatszerű események sora, egyszerre 1 Eseményfolyam: telefon értesítési jelzései Eseménytér: {Email, SMS, Alacsony töltöttség} E E S E S E E E A E 4:00 8:00 12:00 16:00 20:00 24:00 t 8

Eseményorientált programozás 9

Előismeretek Állapottér Mealy gépek Harel gépek Kitekintés ÁLLAPOTTEREK 10

Az állapottér Definíció: Állapottér egymástól megkülönböztetett rendszerállapotok halmaza, amelynek minden időpontban pontosan egy eleme (a pillanatnyi állapot) jellemzi a rendszert. o Állapottér példák {hétfő, kedd, szerda, csütörtök, péntek, szombat, vasárnap} mikró állapotai: {teljes fokozat, kiolvasztó mód, kikapcsolva} o Pillanatnyi állapot példák ma szerda van a mikró most éppen kiolvasztó módban üzemel 11

Az állapottér tulajdonságai pontosan egy eleme jellemzi a rendszert o Nem minden állapothalmaz lehet állapottér! Teljesség o Mindig legalább az egyik állapot fennáll o Ellenpélda (nem alkalmas állapottérnek!) {hétfő, kedd, csütörtök, szombat} nem teljes Kölcsönös kizárólagosság o Egyszerre legfeljebb egy állapot állhat fent o Ellenpéldák (nem alkalmasak állapottérnek!) {hétköznap, hétvége, délután} nem kizárólagos (holott teljes) mikró {ajtaja tárva, kikapcsolva} 12

Miért fontosak ezek a tulajdonságok? Szökőnap a Düsseldorfi Reptéren 13

Definíció: Állapotfinomítás és -absztrakció Az állapotfinomítás ill. állapotabsztrakció az állapottéren mint halmazon végzett halmazfinomítás ill. halmazabsztrakció, melynek eredménye egy újabb állapottér. o (Másfajta absztrakciókkal is találkozunk majd ) Ismétlés: halmazfinomítás a 1 a 2 B 1 a 3 B 3 B 2 14

Állapotfinomítás, állapotabsztrakció Kevesebb információ Absztrakció Finomítás Több információ Állapotfinomítás/absztrakció: az állapottéren végzett halmazfinomítás/absztrakció o {Hé, Ke, Sze, Csü, Pé, Szo, Va} o {hétköznap, hétvége} o Mikró állapotabsztrakciója A menetrend tervezőjét csak ennyi érdekli {teljes fokozat, olvasztó, kikapcsolva} {bekapcsolva, kikapcsolva} kikapcsolva változatlan IGAZ-E? 15

Finomítás motivációja Állapotfinomítás: miért? o Tervezés előrehaladása, több megvalósítási részlet Pl. erősáramú tervezéshez fontos a mikró fokozata o Specializáció / kiegészítés Pl. egy fejlettebb mikró már időzítőt is tartalmaz o Több rendszer együttes vizsgálata (ld. később) Több információ, több tudás o Ez vajon mindig jó? 16

Absztrakció motivációja Állapotabsztrakció: miért? o Akkor hasznos, ha az absztrakt állapotok egységesek majdnem ekvivalensek Valamilyen szempontból egyformák az összevont állapotok Ld. helyettesítési tulajdonságú partíció Digit o Bizonyos feladatokra kevesebb információ is elég Kisebb, egyszerűbb állapottérrel könnyebb tervezni Állapot tárolása, feldolgozása könnyebb Elrejtett részletek szabadon változtathatóak Szélsőséges eset: állapotmentes modell ( S = 1) o Néha csak kevesebb információt szabad felfedni Gyakori formája: dekompozíció (ld. később) 17

Partícionálás több szempont szerint Egy rendszer akár több helyes állapottér Pl.: a mikró két külön állapottere o üzemteljesítmény szerint {teljes fokozat, olvasztó mód, kikapcsolva} o az ajtó nyitottsága szerint {nyitva, zárva} o nem teljesen függetlenek: ha nyitva, akkor kikapcsolva részrendszer állapottere a teljes rendszerállapot ismerete nélkül eldönthető, melyik áll fenn 18

Állapotterek (direkt) szorzata Két állapottér együttes figyelembevétele o S 1 = {teljes fokozat, olvasztó mód, kikapcsolva} o S 2 = {nyitva, zárva} S 1 S 2 nyitva zárva teljes olvasztó kikapcsolva teljes és nyitva olvasztó és nyitva kikapcsolva és nyitva teljes és zárva olvasztó és zárva kikapcsolva és zárva állapotabsztrakció állapotabsztrakció (vetítés) Észrevétel: S 1 S 2 = S 1 S 2 19

Definíció: Állapotterek (direkt) szorzata Az állapotterek direkt szorzata komponens állapottereken végzett kompozíciós művelet, melynek eredménye egy újabb állapottér (szorzat állapottér), o amely a komponens állapotterek mint halmazok Descartesszorzataként áll elő A szorzat állapottérben a komponens állapotterek minden állapot-kombinációjának egy-egy összetett állapot (állapotvektor) felel meg. {AM,PM} {1h..12h} {0m..59m} PM, 12h, 08m 20

Definíció: Állapottér vetítése komponensre A komponens(ek)re történő vetítés egy állapotabsztrakciós művelet, amely a szorzat állapottérből o egy vagy több komponenst tart meg, o a többit elhanyagolja. {AM,PM} {1h..12h} {0m..59m} PM, 12h, 08m PM, 12h (Gondolkodtató feladat: mi köze van a táblázat vetítéséhez?) 21

Állapotváltozók finomított kompozíciója Nem független állapotváltozók o Nem minden kombináció fordul elő ténylegesen o A szorzatnál finomabb kompozit állapottér S S 1 S 2 nyitva zárva teljes olvasztó kikapcsolva teljes és nyitva olvasztó és nyitva kikapcsolva és nyitva teljes és zárva olvasztó és zárva kikapcsolva és zárva állapotabsztrakció állapotabsztrakció (vetítés) Észrevétel: a vetítés mint absztrakciós viszony megmarad 22

Még egyszer a finomításról A szorzatnál finomabb kompozit állapottér o mivel két kompozit állapot előfordulását kizártuk o Itt a finomított állapottérnek van kevesebb eleme! Ez tehát nem állapotfinomítás, ott nőtt az állapotok száma Tanulság: finomításoktól nőhet is, csökkenhet is az állapottér mérete A lényeg, hogy többet tudunk a rendszerről Avagy: kevesebb rendszer illik a modellre S S 1 S 2 nyitva zárva teljes olvasztó kikapcsolva 23 teljes és nyitva olvasztó és nyitva kikapcsolva és nyitva teljes és zárva olvasztó és zárva kikapcsolva és zárva

Dekompozíció állapotváltozókra Dekompozíció: szorzat / kompozíció megfordítása o kikapcsolva és nyitva o kikapcsolva és zárva o olvasztó és zárva o teljes és zárva A vetített állapotváltozók absztrakciók Miért dekomponálunk? o Állapotváltozók külön kezelhetőek o Állapotváltozók külön tárolhatóak S 1 = {teljes, olvasztó, kikapcsolva} S 2 = {nyitva, zárva} 24

Kitekintés: szakmai példák Hol jön elő az állapot alapú modellezés az IT-ban? Közösségi háló Jancsi és Juliska ismeretsége o (ettől függ néhány funkció, pl. milyen képek látszanak) o Állapotváltozók: Jancsi bejelölte-e Juliskát Vice versa S 1 S 2 Tárolandó: Memóriában Adatbázisban (hosszabb távra) nem ismerősök Juliska bejelölte Jancsit Jancsi bejelölte Juliskát ismerősök 25

Kitekintés: szakmai példák Virtuális billentyűzet érintőképernyőre o állapotváltozók? 27

Kitekintés: szakmai példák Programozás: hogy tároljuk az állapotot? o Megfelelő értékkészletű változó (objektum mező, stb.) enum VirtualKeyboardState { LOWER_CASE, UPPER_CASE_ONCE, UPPER_CASE_LOCK, NUMBERS_COMMON_SYMBOLS, RARE_SYMBOLS } //... VirtualKeyboardState keyboardstate; o Kiegészítés: emlékezzünk a SHIFT állására! Az alfanumerikus mód az elhagyott SHIFT állással tér vissza 28

Kitekintés: szakmai példák Programozás: hogy tároljuk az állapotot? o Kiegészítés: emlékezzünk a SHIFT állapotára! enum VirtualKeyboardStateWithMemory { LOWER_CASE, UPPER_CASE_ONCE, UPPER_CASE_LOCK, NUMBERS_COMMON_SYMBOLS_WITH_LOWER_CASE, NUMBERS_COMMON_SYMBOLS_WITH_UPPER_CASE_ONCE, NUMBERS_COMMON_SYMBOLS_WITH_UPPER_CASE_LOCK, RARE_SYMBOLS_WITH_LOWER_CASE, RARE_SYMBOLS_WITH_UPPER_CASE_ONCE, RARE_SYMBOLS_WITH_UPPER_CASE_LOCK } //... VirtualKeyboardStateWithMemory keyboardstatewithmemory; o Állapottér-robbanás jelensége 29

Kitekintés: szakmai példák Programozás: hogy tároljuk az állapotot? o Tömör megoldás: több állapotváltozóval enum VirtualKeyboardFacet { ALPHABETIC, NUMBERS_COMMON_SYMBOLS, RARE_SYMBOLS } enum CapsState { LOWER_CASE, UPPER_CASE_ONCE, UPPER_CASE_LOCK } //... VirtualKeyboardFacet keyboardfacet; CapsState capsstate; 30

Kitekintés: más mérnöki diszciplínák Potenciálisan végtelen (akár kontinuum) állapottér o Pl. a repülő állapotváltozói v R sebesség h R magasság α π 2, π 2 emelkedési szög Ezzel szemben tipikus IT rendszermodellekben o Diszkrét állapotok (nincs köztük folytonos átmenet) o Gyakran véges állapottér (ellenpélda: számláló N ) h h 2 h 1 0 Kvantálás / Diszkretizálás t 31

Előismeretek Állapottér Mealy gépek Harel gépek Kitekintés EGYSZERŰ (MEALY) ÁLLAPOTGÉPEK 32

Kitekintés: más mérnöki diszciplínák Potenciálisan végtelen (akár kontinuum) állapottér o Pl. a repülő állapotváltozói v R sebesség h R magasság α π 2, π 2 emelkedési szög o Az állapot időbeli változása lehet folytonos Pl. a repülő emelkedése: h t = v sin α Ezzel szemben tipikus IT rendszermodellekben o Diszkrét állapotok (nincs köztük folytonos átmenet) o Gyakran véges állapottér (ellenpélda: számláló N ) o Pillanatszerű állapotátmenetek, köztük állandó állapot 33

Állapotátmenetek Állapottér: S o Pl. S = {Hé, Ke, Sze, Csü, Pé, Szo, Va} s(t) S o A pillanatnyi állapot az idő függvényeként Pillanatszerű állapotátmenet (esemény) e Sze Csü Pé Szo Va H 0:00 24:00 48:00 72:00 96:00 120:00 s(t) állandó t 34

Bináris reláció: Ismétlés: (bináris) reláció o két halmaz Descartes-szorzatának a részhalmaza o R D 1 D 2 b d a c 1 2 3 4 D 1 D 2 R = a, 1, a, 2, c, 2, d, 4 35

Állapotátmeneti szabályok r R Állapotátmenetek Mely állapotokat mely állapotok követhetnek? o Állapottér S = {Hé, Ke, Sze, Csü, Pé, Szo, Va} o Eseménytér: állapotátmeneti reláció R S S r 1 =(Hé, Ke) r 2 =(Ke, Sze) r 3 =(Sze, Csü) r 4 =(Csü, Pé) r 5 =(Pé, Szo) r 6 =(Szo, Va) r 7 =(Va, Hé) o Más néven: állapotgráf 36 Szo Pé Hé Csü-ből Pé-be át tud lépni a rendszer Va r 7 r 1 r 6 r 5 Szokásos grafikus ábrázolás r 4 r 3 Csü r 2 Ke Sze

Észrevételek az állapotgráfról Lehetséges, hogy o teljes gráf minden átmenet engedélyezett Pl. S kismacska ={alszik, játszik, iszik} o nem minden állapotból érhető el az összes többi Pl. S pohár = {üres, teli, törött} nincs törött üres út o bizonyos állapotoknak több rákövetkezője is van kikapcsolva és nyitva kikapcsolva és zárva olvasztó és zárva Nemdeterminizmus o Lehetséges eredetei: A modellezett rendszer működése Modellalkotás során bevezetett absztrakció 37 Pl. figyelembe nem vett belső változó, vezérlő input

A NAGY KÍSÉRLET AZ USÁBAN Strukturális dekompozíció 38

Bal oldali kávéfőző A vizsgálati objektum Jobb oldali kávéfőző 39

Kapcsoló 40

Kávétartó 41

Jobb fedél 42

FUNKCIONÁLIS MODELL 43

Bal fedél 1. Töltse meg a BAL tartályt hideg vízzel 2. Tegyen egy bögrét vagy poharat a BAL pohártartóra 3. Tegyen be egy kávépárnát a BAL oldali tartóba 4. Dugja be a kábelt és nyomja meg a BAL OLDAL START/STOP gombot Ha egyszerre két kávét akar főzni, egyszerre kövesse a BAL és JOBB utasításokat 44

Állapotgráf példa: Kávéfőző KÁVÉFŐZŐ Így hagyja a szobalány tisztít feltölt Tartály feltöltve Kávé kész filtert behelyez Kávéfilter behelyezve bögrét behelyez Bögre behelyezve START Kávét főz 45

Példa: Kávéfőző KÁVÉFŐZŐ tisztít Tartály nincs feltöltve feltölt Tartály feltöltve Kávéfilter nincs behelyezve Kávéfilter behelyezve filtert behelyez Bögre nincs behelyezve Bögre behelyezve bögrét behelyez Kávét főz START Kávé kész 46

IMPLEMENTÁCIÓ TESZTELÉSE 47

Sikertelen teszt 48

Sikertelen teszt 49

Sikeres teszt 50

Hibadiagnosztika B J J J 51

Tanulságok A strukturális és funkcionális dekompozíció o Általában független o Azonos modulok egy leírás OO modellezés: egy viselkedéstípus több példány Ellenőrzés modell és implementáció összehasonlításával o Verifikáció: jól építem-e a rendszert? o Modell alapú tesztelés A professzor olyan őrült, aki o Kávéját automatelmélettel főzi o Cipőjét diffegyenletekkel köti meg. 52

Előismeretek Állapottér Mealy gépek Harel gépek Kitekintés EGYSZERŰ (MEALY) ÁLLAPOTGÉPEK 53

Állapotgráf példa: ATM BANK ATM Off turnoff turnoff turnon Self Test failure service failure Idle Maintenance Out of Service cardinserted cancel cancel service cancel failure Customer Authentication Selecting Transaction Transaction 54

Állapotátmenet címkézése eseménnyel Átmeneti szabály címkéje o Pillanatszerű esemény o Az átmenet csak az eseménnyel együtt következhet be Különféle értelmezés: lehet az esemény o... az állapotátmenet következménye (posztkondíció/utófeltétel) olvasztó o az állapotátmenet oka (prekondíció/előfeltétel) kikapcsolva csengetés gombnyomás Egy szabály címkézhető több eseménnyel is o input beolvasás / output kiírás 55 esemény s 1 s 2 kikapcsolva olvasztó időzítő jel / csengetés

Emlékeztető: Mealy véges automata Kijelölt kezdőállapot s 0 = s(t=0) Minden lépés determinisztikus, inputot olvas és outputot ad 0 / 0 s 0 1 / 0 1 / 0 s 1 s 2 0 / 0 r 6 : 1 / 1 0 / 0 Input Klasszikus rendszerelméleti automata-modell 56 Gondolkodtató: Mit csinál ez a gép? És ha r 6 szabály s 0 -ba vinne? RENDSZER Állapot G(Input, Állapot) Állapotváltozás

A Mealy-gép kiterjesztései Nemdeterminisztikus modell (vs. input) Input olvasás nélküli (spontán) lépés o Belső, nem modellezett esemény hatására o Pl. mikró elkészül, leáll időzítőt nem modellezzük Több output csatorna (külön eseményfolyam!) o Külön-külön jelkészlettel o A szabály egy részhalmazra küld ki oda illő jeleket Több input csatorna (külön eseményfolyam!) o A szabály egy részhalmazról olvas jeleket o Ebből is adódhat nemdeterminizmus 57

Gép neve Input csatorna {0,1} i 1 Kiterjesztett állapotgép Konfliktus M 1 (nemdeterminizmus) s 0 i 1 :0 / - i 1 :1, i 2 :a / o 1 :1 s 1 Címkében Csak címkében (feltétel/akció) különböznek különböznek {0,1} o 1 Jelkészlet / eseménytér {a,b,c} i 2 s 4 Belső átmenet Potenciális konfliktus s 3 58 s 2 Önhurok Csapda / nyelő Jel (token, szimbólum) {d,e,f} o 2 Output csatorna

Specifikálatlan input kezelése Minden állapotban minden inputra kell szabály? o Ha nincs szabály esemény nem történhet meg Matematikailag így van, de inputokra nem reális feltételezés Mi van, ha a gyakorlatban mégis megtörténik? o Ha nincs szabály láthatatlan hurokél Minden egyéb input beolvasva, figyelmen kívül hagyva o Ha nincs szabály érvénytelen a modell Mindenképp kell visszajelzés az eseményre Pl. kritikus beágyazott rendszereknél Az is érvénytelen, ha több szabály van (determinizmus kell) Ha mindig van szabály teljesen specifikált 59

Kitekintés: szakmai példák Csomag alapú adatátviteli protokoll o Csomagok elveszhetnek, megsérülhetnek o Nyugtázás, újraküldés {ép csomag, sérült csomag} I 1 (küldőtől) Fogadó fél i 1 :sérült / o 1 :NACK vár i 1 :ép / o 1 :ACK (Bővebben ld. Kommunikációs hálózatok 1. tárgy) 60 i 1 :sérült / - megjött {ACK, NACK} O 1 (visszajelzés küldő felé) {csomag jött} O 2 (alkalmazás felé)

Emlékeztető Virtuális billentyűzet érintőképernyőre 61

Kitekintés: szakmai példák Virtuális billentyűzet (részleges) állapotgépe VIRTUAL KEYBOARD {BUTTON 1,..} BUTTON 1 /q lower case Numbers, common symbols upper case once BUTTON 1 /1 rare symbols {q,q,1,=, } upper case lock BUTTON 1 /= 62

Kitekintés: szakmai példák Programozás: állapotgép megvalósítása Prog1 6. ea o Elágazási feltétel: állapotváltozók és input alapján o Minden ágon: output kiadás (ha van) állapotváltás (ha kell) void handlekey(keycode input) { switch(input) { 63 case BUTTON_1: switch(keyboardstate) { case LOWER_CASE: emit('q'); break; Q case UPPER_CASE_ONCE: keyboardstate = LOWER_CASE; case UPPER_CASE_LOCK: emit('q'); Q break; case NUMBERS_COMMON_SYMBOLS: emit('1'); break; case RARE_SYMBOLS: emit('='); } break; case SWITCH_1: //... q = 1

Kitekintés: szakmai példák Ha az (állapotgép)modell o kellően részletes (determinisztikus), és o olyan formában van, amit fel lehet dolgozni Ld. szakterület-specifikus célnyelvek (pl. protokolltervezésre) Ld. szabványos modellezési formátumok (pl. UML) akkor automatikusan programkóddá fordítható o Pl. kódgenerálás kommunikációs protokollokhoz o Pl. beágyazott vezérlőeszközök modell alapú fejlesztése vagy általános interpreterrel értelmezhető o Pl. IT rendszerüzemeltetés automatizálása 66

Előismeretek Állapottér Mealy gépek Harel gépek Kitekintés ÖSSZETETT (HAREL) ÁLLAPOTGÉPEK 67

Statechart nyelvek Statechart (vagy Harel-féle összetett állapotgép) Pl. o Mealy-féle egyszerű állapotgép + Állapothierarchia Ortogonalitás Változók Pszeudoállapotok o Yakindu (HF) o UML (SzoftTech) 68

Számológép 11676 278 42 4 On Off 7 8 9 4 5 6 1 0 2 3 = - + 69

Állapothierarchia CALCULATOR Off Off On Off Off Digit Reading operand1 Digit Operator Reading operand2 Eval Displaying result On On, Digit 70

Állapothierarchia CALCULATOR Off Off On Off Off Digit Digit Reading operand1 Operator Reading operand2 Eval Displaying result On On, Digit Bemenet: {on, off, digit, operand, eval} Feltételezés: kétoperandusú műveteleteink vannak 71

Állapothierarchia CALCULATOR Off On Off Digit Reading operand1 Digit Operator On Reading operand2 Eval Displaying result Digit Közös viselkedés kiemelése közös absztrakcióba 72

Állapothierarchia CALCULATOR Off On Off Digit Reading operand1 Digit Operator On Reading operand2 Eval Displaying result Digit Állapotkonfiguráció: {Off} 73

Állapothierarchia CALCULATOR Off On Off Digit Reading operand1 Digit Operator On Reading operand2 Eval Displaying result Digit Állapotkonfiguráció: {On, Reading operand1} 74

Állapothierarchia CALCULATOR Off On Off Digit Reading operand1 Digit Operator On Reading operand2 Eval Displaying result Digit Állapotkonfiguráció: {On, Reading operand2} 75

Állapothierarchia CALCULATOR Digit On Off Reading operand1 Két állapot egyszerre sérti a kizárólagosságot? Nem, a statechart nem állapottér Csak az egy szinten lévő állapotok alkotnak kizárólagos állapothalmazt Off Digit Operator On Reading operand2 Digit Eval Displaying result Állapotkonfiguráció: {On, Reading operand2} 76

Példa: ATM BANK ATM Off turnoff turnoff turnon Self Test failure Idle service Maintenance failure Out of Service cardinserted cancel service failure Serving Customer Customer Authentication Selecting Transaction Transaction 77

Példa: robotporszívó 78

Ortogonalitás ROBOTPORSZÍVÓ HELYE ROBOTPORSZÍVÓ ÜZEMMÓDJA bolyhos felületen inaktív vizes felületen v s sima felületen takarít deaktivál aktivál Megj: kétirányú nyíl nem szokásos, csak a tömör ábrázolás miatt használjuk 79

Ortogonalitás ROBOTPORSZÍVÓ HELYE ÉS ÜZEMMÓDJA bolyhos felületen inaktív vizes felületen v s sima felületen takarít deaktivál aktivál 80

Ortogonalitás ROBOTPORSZÍVÓ HELYE ÉS ÜZEMMÓDJA bolyhos felületen inaktív vizes felületen v s sima felületen takarít deaktivál aktivál Állapotkonfiguráció: {bolyhos felületen, inaktív} 81

Ortogonalitás ROBOTPORSZÍVÓ HELYE ÉS ÜZEMMÓDJA bolyhos felületen inaktív vizes felületen v s sima felületen takarít deaktivál aktivál Állapotkonfiguráció: {bolyhos felületen, takarít} 82

Régiók aszinkron szorzata ROBOTPORSZÍVÓ HELYE ÉS ÜZEMMÓDJA bolyhos felületen inaktív deaktivál aktivál Pl. kikapcsolt állapotban nem mozog bolyhos felületen takarít vizes felületen inaktív v s sima felületen inaktív vizes felületen takarít v s sima felületen takarít deaktivál aktivál deaktivál aktivál További finomítást igényel: átmenetek kieshetnek Állapotok így elérhetetlenné válhatnának 83

Definíció: Aszinkron szorzat A (Mealy-) állapotgépek aszinkron szorzata (régióknak is nevezett) komponens állapotgépeken végzett kompozíciós művelet. A szorzat eredménye egy (Mealy) állapotgép, melynek állapottere a régiók állapottereinek direkt szorzata, kezdőállapotában az összes régió kezdőállapotban van, és átmeneti szabályait az összes olyan lépés alkotja, amelyben pontosan egy régió állapotátmenetet végez, míg a többi régió állapota nem változik. e s 1 s 2 f t 1 t 2 e s 1 ;t 1 s 2 ;t 1 f s 1 ;t 2 84

Változók Végtelen számláló o S = N tick tick tick 0 1 2 Változó bevezetése: x x := 0 tick / x := x + 1 count Valójában x odaképzelhető egy másik állapotrégióba count, x 0 count, x 1 85

Változók + őrfeltételek Ciklikus számláló o S = 0,1,, i Őrfeltételekkel: tick tick tick 0 1 i tick tick [x < i] / x := x + 1 Változó vagy állapotrégió figyelembe vehető x := 0 count tick [x i] / x := 0 86

Pszeudoállapot: Pszeudoállapotok o Szemantikailag nem állapot: Nincs olyan időpillanat, amikor a rendszert jellemezné o Szintaktikailag állapot: Lehet tranzíció kezdő- vagy célállapota [x < i] / x := x + 1 x := 0 count tick [x i] / x := 0 87

Előismeretek Állapottér Mealy gépek Harel gépek Kitekintés KITEKINTÉS, SZOFTVERTÁMOGATÁS 88

Az állapotátmenet értelmezése Digitális áramkörtervezésnél o Szinkron sorrendi hálózat (ld. Digitális Technika) o Egyféle input esemény (órajel) o Állapotátmeneten feltüntetett input feltételek Mindig órajelre lép fel se tüntetjük Input feltétel: a bemenő jelvezetékek állapotára vonatkozik Ezzel szemben általános rendszermodellezésnél o Sokféle modellezett input esemény (jel) o Állapotátmeneten feltüntetett input feltételek Elsődleges feltétel: kiváltó input esemény Opcionálisan más részrendszerek állapotától függ: őrfeltétel 89

X Az állapotátmenet értelmezése Digit állapotgép szinkron sorrendi hálózathoz a 1 / 0 b Y { órajel } AZONOS JELENTÉSŰ REMO ÁLLAPOTGÉP a órajel [X=1] / Y:=0 b Az órajel input esemény, a vezetékeken lévő jel állapotváltozó 90

Yakindu Statechart Tools Kompozit állapotgépek szerkeszthetőek o (statechart nyelv tömören kifejezhető kompozíció) 91

Yakindu Statechart Tools Kész állapotgépből C / Java / kód generálható o Magnetron lép On állapotban (egyszerűsítve) 92

UPPAAL Állapotgépek vegyes szorzata Kompozit állapotgép viselkedése o szimulálható o verifikálható 93

ÖSSZEFOGLALÁS 94

Definíció: Állapottér Az állapottér egymástól megkülönböztetett rendszerállapotok halmaza, amelynek minden időpontban pontosan egy eleme jellemzi a rendszert. Egy adott időpontban a rendszer pillanatnyi állapota az állapottér azon egyetlen eleme, amelyik abban az időpontban jellemző a rendszerre. o Állapottér példák {hétfő, kedd, szerda, csütörtök, péntek, szombat, vasárnap} mikró állapotai: {teljes fokozat, kiolvasztó mód, kikapcsolva} o Pillanatnyi állapot példák ma szerda van a mikró ajtaja nyitva 95

Definíció: Állapotfinomítás és -absztrakció Az állapotfinomítás ill. állapotabsztrakció az állapottéren mint halmazon végzett halmazfinomítás ill. halmazabsztrakció, melynek eredménye egy újabb állapottér. o (Másfajta absztrakciókkal is találkozunk majd ) Ismétlés: halmazfinomítás a 1 a 2 B 1 a 3 B 3 B 2 96

Definíció: Állapotterek (direkt) szorzata Az állapotterek direkt szorzata komponens állapottereken végzett kompozíciós művelet. A szorzat eredménye egy újabb állapottér, amely a komponens állapotterek mint halmazok Descartes-szorzataként áll elő A szorzat állapottérben a komponens állapotterek minden állapot-kombinációjának egy összetett állapot felel meg. A komponens(ek)re történő vetítés egy állapotabsztrakciós művelet, amely a szorzat állapottérből egy vagy több komponenst tart meg, a többit elhanyagolja. 97

Gép neve Input csatorna {0,1} i 1 Kiterjesztett állapotgép Konfliktus M 1 (nemdeterminizmus) s 0 i 1 :0 / - i 1 :1, i 2 :a / o 1 :1 s 1 Címkében Csak címkében (feltétel/akció) különböznek különböznek {0,1} o 1 Jelkészlet / eseménytér {a,b,c} i 2 s 4 Belső átmenet Potenciális konfliktus s 3 98 s 2 Önhurok Csapda / nyelő Jel (token, szimbólum) {d,e,f} o 2 Output csatorna

Állapothierarchia CALCULATOR Digit On Off Reading operand1 Két állapot egyszerre sérti a kizárólagosságot? Nem, a statechart nem állapottér Csak az egy szinten lévő állapotok alkotnak kizárólagos állapothalmazt Off Digit Operator On Reading operand2 Digit Eval Displaying result Állapotkonfiguráció: {On, Reading operand2} 99

Definíció: Aszinkron szorzat A (Mealy-) állapotgépek aszinkron szorzata (régióknak is nevezett) komponens állapotgépeken végzett kompozíciós művelet. A szorzat eredménye egy (Mealy) állapotgép, melynek állapottere a régiók állapottereinek direkt szorzata, kezdőállapotában az összes régió kezdőállapotban van, és átmeneti szabályait az összes olyan lépés alkotja, amelyben pontosan egy régió állapotátmenetet végez, míg a többi régió állapota nem változik. e s 1 s 2 f t 1 t 2 e s 1 ;t 1 s 2 ;t 1 f s 1 ;t 2 100

Magyar - English Felépítési modell Viselkedési modell Esemény Pillanatszerű Eseményfolyam Állapot Állapot alapú modell Állapottér Kölcsönösen kizárólagos Teljes Állapotmentes Structural model Behavioural model Event Instantaneous Event stream State State based model State space Mutually exclusive Complete Stateless 101

Magyar - English Állapotterek szorzata Állapotváltozó Összetett Állapottér-robbanás Véges Diszkrét ( szétválasztható ) Diszkrét ( nem pletykál ) Állapotátmenet Állapotátmeneti szabály Nemdeterminizmus / Konfliktus Product of state spaces State variable Composite State space explosion Finite Discrete Discreet Transition Transition rule Nondeterminism / Conflict 102

Magyar - English Állapotgép / Automata Kezdőállapot Címke Ok / Előfeltétel Következmény / Utófeltétel Hurokél Csatorna Jel / Szimbólum Nyelő / Csapda Szinkron szorzat Aszinkron szorzat State machine / Automaton Initial state Label Cause / Precondition Consequence / Postcondition Loop edge Channel Signal / Token / Symbol Sink / Trap Synchronous product Asynchronous product 103