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



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

Alapszintű formalizmusok

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

Alapszintű formalizmusok

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

Alapszintű formalizmusok

Időt kezelő modellek és temporális logikák

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

Előzmények

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Futásidőbeli verifikáció

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

A könyv tartalomjegyzéke

2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA

Tartalom Kontextus modellek Viselkedési modellek Adat-modellek Objektum-modellek CASE munkapadok (workbench)

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar május 27.

A hierarchikus adatbázis struktúra jellemzői

Modellalkotás UML-ben

TERMÉKTERVEZÉS PANDUR BÉLA TERMÉKTERVEZÉS

LÉTESÍTMÉNYGAZDÁLKODÁS. Változáskezelés. Változás Pont Cím Oldal A teljes dokumentáció átírásra került

Részletes szoftver tervek ellenőrzése

WebSphere Adapters. 6. változat 2. alváltozat. WebSphere Adapter for SAP Software felhasználói kézikönyv 6. változat 2. kiadás

Objektum Orientált Szoftverfejlesztés (jegyzet)

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar január 4.

Számítógépes grafika

WiLARM-1 GSM Átjelző Modul Telepítői útmutató












Termékismertető Keskeny kivitelű, video beltéri állomás IUK50

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

DEBRECENI EGYETEM INFORMATIKAI KAR. Az UML gyakorlati alkalmazásának bemutatása az AutoWorld rendszer tervezésén keresztül

Részletes tervek ellenőrzése

TERMÉK FEJLESZTÉS PANDUR BÉLA TERMÉK TERVEZÉSE

A SZOFTVERTECHNOLÓGIA ALAPJAI

A FÖDRAJZI HELYHEZ KAPCSOLÓDÓ ÉS A HAGYOMÁNYOS MAGYAR TERMÉKEK LEHETSÉGES SZEREPE AZ ÉLELMISZERFOGYASZTÓI MAGATARTÁSBAN

axióma alapú automatizált teszteléssel

A formális módszerek szerepe

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Pantone szín táblázat.

Bánsághi Anna 1 of 67

NYOMDAI SEGÉDLET. Ha nem talál választ a kérdésére, kérjük hívja a kapcsolattartóját!

A kvantummechanika általános formalizmusa

Programozás 1. 2.gyakorlat

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for felhasználói kézikönyv 7. változat 5.kiadás

GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR KOMPETENCIA FELMÉRÉSÉNEK KIÉRTÉKELÉSE TÁMOP /1

SZÍNES KÉPEK FELDOLGOZÁSA

... 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.

Gate Control okostelefon-alkalmazás

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

3. Az univerzális szabályozó algoritmusai.

Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar

HÍRLEVÉL HASZNÁLATI ÚTMUTATÓ

EC Digitális csoportaggregát vezérlő

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Információ-architektúra

SAP vállalatirányítási rendszer alapjai

Követelmény, projekt, funkcionalitás 41 CSK 1

Összeszerelési és kezelési útmutató. VideoTerminal

ScopeImage 9.0. Kamera és képfeldolgozó szoftver. Felhasználói kézikönyv

BBM-27F Valós D&N ipari kamera Felhasználói kézikönyv Használat előtt olvassa el a kézikönyvet és őrizze meg a későbbiekre.

ISE makró (saját alkatrész) készítése

Műszaki dokumentáció. Szabályok, eljárások III.

Széchenyi István Szakképző Iskola

Lineáris. Soros. Okozati FIFO. Belépő

HP Photosmart R837 Digitális Fényképezőgép. Felhasználói Kézikönyv

Adatfolyam hálók Dr. Bartha Tamás, Dr. Pataricza András fóliái

Külvilági kapcsolat. UPS séma ábra, kétsoros LCD DISPLAY, 8db nyomógomb. A B C D E F G H

Szelepmozgató AME 335

JOGSZABÁLY. LI. ÉVFOLYAM, 15. SZÁM Ára: 693 Ft JÚNIUS 5. TARTALOM. 1. (1) A rendelet hatálya fenntartótól függetlenül

2. gyakorlat: Részletes tervek és forráskód ellenőrzése

Contents. 1 Bevezetés 11

SATEL. CA-64 RIASZTÓKÖZPONT ( es szoftver verzió) Telepítési útmutató

Széchenyi István Szakképző Iskola

Dr. Jelasity Márk. Mesterséges Intelligencia I. Előadás Jegyzet (2008. október 6) Készítette: Filkus Dominik Martin

STYLUS-5010 /µ STYLUS-7040 /µ Kezelési útmutató DIGITÁLIS FÉNYKÉPEZŐGÉP

Programozás elmélet tananyag

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

A High-tech fényezőkabin

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

Automatikai technikus Automatikai technikus

Szakmai program 2015

9. Jelzőlámpás csomópontok forgalomszabályozása

MATEMATIKA TAGOZAT 5-8. BEVEZETŐ. 5. évfolyam

Azonosító jel: MATEMATIKA EMELT SZINTŰ ÍRÁSBELI VIZSGA október 21. 8:00. Az írásbeli vizsga időtartama: 240 perc

Az elektronikus számlázás március

Osztályozóvizsga követelményei

Tel Web: DIGITÁLIS VEZÉRLŐEGYSÉG NAPKOLLEKTOROS RENDSZEREKHEZ

Állapotalapú modellezés

Szóbeli vizsgatantárgyak

Átírás:

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

Modellek a formális ellenőrzéshez Mivel nyújt többet egy magasabb szintű formalizmus? Hogyan használható szoftver szintézisre és verifikációra? Mérnöki modellek Modelltranszformációk Magasabb szintű formalizmusok SC, PN, CPN, DFN Alapszintű matematikai formalizmusok KS, LTS, KTS 2

Tartalomjegyzék Alapelemek Az állapottérkép szintaxisa UML 2 statechart diagram Az állapottérkép szemantikája UML 2 State Machine szemantika A modell használata 3

Mi az állapottérképek célja? Állapot alapú, eseményvezérelt rendszerek viselkedésének megadására alkalmasak Egy állapotgép viselkedésének leírása Reaktívviselkedés: Külső események hatására történő állapotváltást ír le Pl. bejövő üzenet, jelzés, hívás, Akciók: az állapotátmenetekhez rendelt tevékenységek, történések Pl. értékadás, kimenő üzenet, Szokásos használat: Beágyazott rendszerek: bejövő események feldolgozása (pl. robot vezérlése, vagyonvédelmi rendszer, ) Protokollok: üzenetek feldolgozása 4

Alapfogalmak Állapot, aktív állapot Adott feltételek teljesülése (pl. művelet végrehajtható) Állapotváltozók adott állapota Állapotátmenet Állapot változása Trigger esemény válthatja ki Trigger nélküli átmenet: önmagától következik be Őrfeltétel rendelhető hozzá Állapotátmenet csak akkor történhet meg, ha az őrfeltétel igaz Akciórendelhető hozzá Állapotátmenethez rendelt tevékenység, történés Esemény Aszinkron történés, paraméterei is lehetnek Önálló elem, eseményosztály példánya Öröklés: esemény attribútumok bővítése 5

Új igények Állapotok finomítása: Állapothierarchia Szuperállapot: alállapotokra bontható Konkurens viselkedés leírása Nem akarunk sorrendi kötöttséget megadni (egyidejűleg, vagy tetszőleges sorrendben végzett feldolgozás) Többszálú / elosztott / párhuzamos végrehajtás esetén Összetett állapotátmenetek Szétváló, egyesülő, feltételtől függő elágazó átmenet Emlékezés: Visszatérés egy korábbi aktív állapotkonfigurációra Visszatérés adott feldolgozáshoz közbenső esemény után Egy állapotfinomítási szinten vagy mélyebben is 6

Állapotdiagramok és állapottérképek Állapotdiagram: Egyszintű, egyszerű állapotok és átmenetek Pl. UPPAAL esetén látott automaták leírása Állapottérkép: az állapotdiagram kiterjesztése Állapothierarchia: állapotok finomítása Konkurens régiók: konkurens viselkedés leírása Összetett átmenetek: szétváló, egyesülő, feltételes Emlékezés: Legutolsó aktív állapotkonfiguráció tárolása Szintaktikai segédelemek Ritkán használt (nem intuitív) kiegészítések Késleltetett esemény Szinkronizációs állapot 7

Egy állapottérkép out Off do/blink in On T2 Yellow T1 Green T4 Red Yellow T3 H Red On ManualOff ManualOn Off Camera CarGo Shoot Count Count0 CarIn Count1 CarIn Count2 CarIn 8

Az állapottérképek szintaxisa (UML szerinti szintaxis) 9

Állapotok: Akciók és állapotfinomítás Állapotok: Alapszintű modellelem Állapotokhoz kötődő akciók: Belépési akció (entry /...) Kilépési akció (exit /...) Belső akciók (do /...) Állapotfinomítás Egyszerű állapot: nincs finomítása OR jellegű finomítás: alárendelt állapotok Ezek közül egyszerre egy állapot lehet aktív AND jellegű finomítás: konkurens régiók print_job entry / init() exit / reset() do / poll() job / print() Egyidejűleg minden egyes régióban kell legyen aktív állapot! 10

Példa: Állapotfinomítás On Off off on out 11

Példa: Állapotfinomítás On Off off Standby on out in out Disconnected OR jellegű finomítás 12

Példa: Állapotfinomítás On Image Sound off on Off Standby out in out Disconnected AND jellegű finomítás 13

Példa: Állapotfinomítás On Image Sound Off Picture SoundOn off Standby on snd mute out in txt txt Videotext SoundOff out Disconnected AND jellegű finomítás OR jellegű finomítás 14

Példa: Állapotfinomítás On Image Picture Clock clk clk NoClock Off Sound off Standby SoundOn on snd mute out in txt txt Videotext SoundOff out Disconnected 15

Pszeudo-állapotok Kezdőállapot jelzés: régióba való belépéskor lesz aktív Minden OR finomításban egy Minden AND régióban egy Végállapot jelzés: állapotgép terminálás Emlékező állapotok (history state) A legutolsó aktív állapotkonfigurációt tárolja Egyszerű emlékező állapot: csak az adott finomítási szinten Mélyen emlékező állapot: a mélyebb finomítási szinteket is Mit jelent az emlékező állapothoz húzott bemenő átmenet? Tüzelésekor a tárolt állapotkonfigurációba kerül az objektum Az emlékező állapot egy hivatkozás a tárolt állapotkonfigurációra Mit jelent az emlékező állapotból húzott kimenő átmenet? Alapértelmezett tárolt állapotot jelöl ki arra az esetre, ha előzőleg még nem volt aktív állapot H H * 16

Példa: Emlékező állapot Print_job Proc_ev Get ev1 H Process Print Handle Close 17

Állapottérképek elemei Állapot Állapotátmenet Emlékező állapot Feltétel Kezdőállapot Végállapot Állapotcsonk (Szinkronizáció) StateName s1 s2 H H* s1 sn * 18

(Állapot)átmenetek Állapotátmenetek megadása Szintaxis: trigger [guard] / action trigger: kiváltó esemény guard: az átmenet őrfeltétele Predikátum az állapotváltozók és esemény paraméterek felhasználásával Állapotra való hivatkozás is lehet: is_in(state) action: akció (művelet) akció szemantika: művelet részletezése 19

Time-out mint trigger: Átmenetek specialitásai Fennáll, ha az objektum az átmenethez tartozó kiindulási állapotban tartózkodik végig az adott időintervallumban Összetett átmenetek: Szétváló (fork): konkurens régiókban lévő állapotokba való együttes belépés Egyesülő (join): konkurens régiókban lévő állapotokból való együttes kilépés Elágazó (condition): több, őrfeltételtől függő átmenet egyszerűsített jelölése (szegmensek) Állapothierarchián átívelő átmenetek Megengedett (nem elegáns) 20

Példa: Állapotátmenetek Work Phase1 Phase2 Prepare Passed Act1 Act2 Act3 tm(50) Missed [not_fatal] / recovery error [fatal] / report_status illegal_activity [fatal] / report_status Failure 21

Az állapottérképek informális szemantikája (UML szerinti szemantika) 22

Alapelemek: Szemantika: Hogyan működik? Állapotgép: Az állapottérkép írja le a viselkedését Eseménysor + Ütemező: Futtató rendszer (az állapotgép szempontjából külső elemek) e Eseménysor Ütemező Állapotgép 23

Mit ad meg a szemantika? Mit tesz az állapotgép egy esemény hatására állapotgép egy lépése Állapotátmenetek tüzelnek Újdonság: egy esemény hatására több konkurens állapotátmenet tüzelhet Állapotkonfiguráció változik Több aktív állapot lehet Aktív állapot minden régiójában kell legyen egy aktív állapot Aktív állapot OR finomításában kell legyen egy aktív állapot Egy OR finomításban illetve egy régióban csak egy aktív állapot lehet Rekurzívan érvényes 24

A szemantika alaptulajdonságai Egyenként feldolgozott események Az ütemező akkor küld újabb eseményt, ha az előző feldolgozása teljes egészében megtörtént Stabil állapotkonfiguráció kialakult: nincs trigger nélküli átmenet Események teljes feldolgozása (run to completion) Átmenetek maximális halmaza tüzel Minden engedélyezett átmenet tüzel, kivéve ha ezt konfliktus megakadályozza Ezek tüzelése után dolgozza fel a következő eseményt Az eseményfeldolgozás a szemantika lényege Ez alapján lehet programkód alakjában megvalósítani az állapotgépet (forráskód generálás) 25

Az eseményfeldolgozás lépései 1/4 Külső feltétel: Ütemező a stabil konfigurációban lévő állapotgépnek egy eseményt juttat Engedélyezett átmenetek: Kiindulási (forrás-) állapot aktív A kiválasztott esemény az átmenet triggere Az őrfeltételek teljesülnek Esetek az engedélyezett átmenetek száma alapján: Ha csak egy van: Tüzelhet! Ha nincs: Halasztott-e az esemény? Igen: tárolás, új esemény kérése az ütemezőtől Nem: esemény eldobható (hatás nélküli)... Ha több van: Tüzelő átmenetek kiválasztása szükséges Befolyásol: A konfliktus 26

Példa: Konfliktus A t1,, t5 átmenetek ugyanazon e eseményre triggereltek. Melyek nem tüzelhetnek együtt? a1 a111 a11 a121 a12 t4: a21 a2 t1: t2: t3: t5: a112 a113 a122 a22 - Egyszerre nem tüzelhetnek: (t1,t2); (t1,t4); (t2,t4); (t3,t4) - Nem engedélyezett: t5 (forrásállapota nem aktív) - Egyszerre is tüzelhetnek: (t1,t3); (t2,t3); 27

Eseményfeldolgozás lépései 2/4 Tüzelő átmenetek kiválasztása: Maximális számú átmenet, nem lehet közöttük konfliktus Konkurens átmenetek szimultán tüzelése Konfliktusban lévő átmenetek: Ugyanazt az állapotot hagyják el, pontosabban az elhagyott állapothalmazok metszete nem üres Konfliktus feloldása: Prioritás alapján: egy átmenet prioritása nagyobb, ha az átmenet kiindulási állapota az állapothierarchiában (finomításban) alacsonyabb szintű OO koncepció: a finomítás felüldefiniál Véletlenszerű választás, ha azonos prioritásúak 28

Példa: Konfliktusfeloldás A t1,, t5 átmenetek ugyanazon e eseményre triggereltek. Melyek tüzelhetnek együtt? a1 a2 a11 a12 t4: a21 a111 a121 t1: t2: t3: t5: a112 a113 a122 a22 - Nagyobb prioritású t4-nél: t1 és t2 - Tüzelhet: (t1,t3) vagy (t2,t3) 29

Eseményfeldolgozás lépései 3/4 Kiválasztott átmenetek tüzelnek: Sorrend véletlenszerű (nincs köztük konfliktus) Akció végrehajtási sorrend nemdeterminisztikus Egy átmenet tüzelése: 1. Kiindulási állapotok elhagyása Alacsonyabb hierarchiaszinten először Kilépési akciók végrehajtása (exit akciók) 2. Átmenetek akcióinak végrehajtása 3. Célállapotokba való belépés új konfiguráció Magasabb hierarchiaszinten először Belépési akciók végrehajtása (entry akciók) 30

Példa: Akciók sorrendezése S1 entry / e1 exit / x1 S2 entry / e2 exit / x2 S11 entry / e11 exit / x11 t: e / a1; a2 S21 entry / e21 exit / x21 Akciók sorrendje: x11; x1; a1; a2; e2; e21 31

Eseményfeldolgozás lépései 4/4 Belépés új konfigurációba különféle jellegű célállapotok esetén: Ha egyszerű (nem finomított) a célállapot: Új konfiguráció része lesz Ős állapotai (amelyek finomításában szerepel) is aktívak lesznek Aktívvá váló ős állapotok minden régiójában lesz aktív állapot (kezdőállapot jelöli ki) Ha OR finomítása van a célállapotnak: A finomításban a kezdőállapot jelöli ki az aktív állapotot Ha AND finomítása van a célállapotnak: Minden régiójában kell legyen aktív állapot (kezdőállapot jelöli ki) Ha emlékező állapot: Az utoljára elhagyott állapotkonfiguráció lesz újra aktív Ha nem volt még ilyen: a kimenő él határozza meg Ha nem stabil az állapot: azonnali továbblépés 32

Példa: Belépés konkurens állapotba S1 S2 S21 S22 S24 t: S23 H S31 S32 S25 A t átmenet tüzelése után mi lesz az új állapotkonfiguráció? 33

Mintapélda Közlekedési lámpa vezérlője egy főútvonal és egy mellékútvonal kereszteződésében Bekapcsoláskor: kezdetben főútvonal számára zöld Kikapcsoláskor: villogó sárga Zöld, sárga, piros váltás: időzítő eseményre Főútvonalon 3 várakozó: időzítőtől függetlenül zöld jelzés szükséges Főútvonalon tilosban áthajtók: fényképezés Ez a funkció kézzel ki-be kapcsolható 34

1. Lámpaváltás Off off do/blink off off T2 Yellow T1 Green Red on off T4 Red Yellow T3 35

2. Állapothierarchia Off off do/blink On T2 Yellow T1 Green Red on T4 Red Yellow T3 36

3. Konkurens alállapotok off On T2 Yellow Red Camera Count Off do/blink T1 Green T4 on Red Yellow T3 37

4. Teljes vezérlő off Off do/blink on On T2 Yellow T1 Green T4 Red Yellow T3 H Red On ManualOff ManualOn Off Camera CarGo Shoot Count Count0 CarIn Count1 CarIn Count2 CarIn 38

Állapottérképek szerepe az UML 2 esetén Állapot alapú, eseményvezérelt működés leírása Aktív objektumok viselkedésének leírása Felhasználás: Viselkedés szintű kódgenerálás Viselkedés verifikációja Akciók formalizálása: UML 2 Action Semantics Metódushívás Attribútum olvasás, írás (sokféle művelet) 39

Állapottérképek alapjai (összefoglalás) Kiterjesztések Állapottérkép szintaxis Állapothierarchia Konkurens régiók Összetett átmenetek Emlékező állapotok Állapottérkép informális szemantika Átmenetek engedélyezettsége Tüzelő átmenetek kiválasztása Átmenetek tüzelése Új állapotkonfiguráció kialakulása 40