Á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