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

Hasonló dokumentumok
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

Követelmények formalizálása: Temporális logikák

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

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

Alapszintű formalizmusok

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

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

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

Formális módszerek. A formális modellezés és a formális verifikáció alapjai. dr. Bartha Tamás BME Közlekedés- és Járműirányítási Tanszék

Részletes szoftver tervek ellenőrzése

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

Alapszintű formalizmusok

A formális módszerek szerepe

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

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

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

Alapszintű formalizmusok

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

Részletes tervek ellenőrzése

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

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

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

Sztochasztikus temporális logikák

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

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

A formális módszerek szerepe

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

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

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

Programok értelmezése

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

Modell alapú tesztelés mobil környezetben

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

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

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

Kiterjesztések sek szemantikája

Szoftverminőségbiztosítás

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

8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus.

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

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

Formális módszerek. A formális modellezés és a formális verifikáció alapjai. dr. Bartha Tamás BME Közlekedés- és Járműirányítási Tanszék

Időzített átmeneti rendszerek

Logikai ágensek. Mesterséges intelligencia március 21.

Futásidőbeli verifikáció

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

Szoftverminőségbiztosítás

BPEL nyelvű üzleti folyamatok modellezése és formális ellenőrzése

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

A modell-ellenőrzés gyakorlata UPPAAL

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

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

Verifikáció és validáció Általános bevezető

Matematikai logika és halmazelmélet

Elosztott adatbázis-kezelő formális elemzése

Bevezetés az informatikába

Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

2. Logika gyakorlat Függvények és a teljes indukció

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Komputeralgebra Rendszerek

A formális módszerek szerepe

Biológiai rendszerek modellellenőrzése bayesi megközelítésben

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák.

Specifikáció alapú teszttervezési módszerek

Futásidőbeli verifikáció

Specifikáció alapú teszttervezési módszerek

Elsőrendű logika. Mesterséges intelligencia március 28.

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

5. Hét Sorrendi hálózatok

LOGIKA ÉS ÉRVELÉSTECHNIKA

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

A matematika nyelvér l bevezetés

ÁRAMKÖRÖK SZIMULÁCIÓJA

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Java programozási nyelv

S0-01 Szintézis és verifikáció (Programozás elmélet)

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

Temporális logikai specifikációk vizsgálata

Múlt és jövő: Új algoritmusok lineáris temporális tulajdonságok szaturáció-alapú modellellenőrzésére

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 1

Java II. I A Java programozási nyelv alapelemei

folyamatrendszerek modellezése

Véges automaták, reguláris nyelvek

Összeállította Horváth László egyetemi tanár

A helyességbizonyítás klasszikus módszerei

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

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

Diagnosztika Petri háló modellek felhasználásával

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2)

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)

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

Rendszermodellezés: házi feladat bemutatás

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Logika és informatikai alkalmazásai

Programfejlesztési Modellek

Átírás:

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 1

Mire kellenek a temporális logikák? 2

Motivációs mintapélda: Kölcsönös kizárás 2 résztvevőre, 3 megosztott változóval (H. Hyman, 1966) blocked0: Első résztvevő (P0) be akar lépni blocked1: Második résztvevő (P1) be akar lépni turn: Ki következik belépni (0 esetén P0, 1 esetén P1) while (true) { blocked0 = true; while (turn!=0) { while (blocked1==true) { skip; } turn=0; } // Critical section blocked0 = false; // Do other things } P0 while (true) { blocked1 = true; while (turn!=1) { while (blocked0==true) { skip; } turn=1; } // Critical section blocked1 = false; // Do other things } P1 Helyes-e ez az algoritmus? 3

A modell UPPAAL-ban (első változat) Deklarációk: bool blocked0; bool blocked1; int[0,1] turn=0; system P0, P1; A P0 automata: Kihasznált modellezési lehetőségek: Közös változók rendszerszintű deklarálása Korlátozott értékkészletű változók while (true) { P0 blocked0 = true; while (turn!=0) { while (blocked1==true) { skip; } turn=0; } // Critical section blocked0 = false; // Do other things } 4

Ellenőrizendő követelmények Kölcsönös kizárás: Egyszerre csak az egyik résztvevő lehet a kritikus szakaszban Lehetséges az elvárt viselkedés: P0 egyáltalán beléphet a kritikus szakaszba P1 egyáltalán beléphet a kritikus szakaszba Nincs kiéheztetés: P0 mindenképpen be fog lépni a kritikus szakaszba P1 mindenképpen be fog lépni a kritikus szakaszba Holtpontmentesség: Nem alakul ki kölcsönös várakozás (leállás) 5

Hogyan ellenőrizhetjük a követelményeket? Megvalósítással és annak tesztelésével Létre tudunk-e hozni minden lehetséges végrehajtást lefedő teszt eseteket? A problémás esetek figyeléséhez külön ellenőrző kell A hiba drágán javítható (csak az implementáció után derül ki) Modellezéssel és a modell szimulációjával Tudunk-e szimulálni minden lehetséges végrehajtást? A problémás esetek detektálása nagy odafigyelést igényel A hibák viszont olcsóbban javíthatók modell szinten Modellezéssel és az állapottér teljes ellenőrzésével Minden lehetséges végrehajtást ellenőriz: Modell állapottér bejárás szisztematikus algoritmussal, gombnyomásra Automatikusan ellenőrzött követelmények: Leíró nyelv és hatékony ellenőrző algoritmus kell Modell szinten javítható hibák: Hiba esetén (ellen)példát ad 6

Mit szeretnénk elérni? Alacsony szintű, vagy magasabb szintű, vagy mérnöki modellek Automatikusan ellenőrizhető, precíz követelmények Formális modell Formalizált követelmények i Automatikus modellellenőrző n OK Ellenpélda 7

Követelmények formalizálása 8

Milyen jellegű követelményeket formalizálunk? Verifikáció: Modell <-> Sokféle követelmény Funkcionális: Logikailag helyes a működés <- Most ez a célunk Extra-funkcionális: Teljesítmény, megbízhatóság, <- Később Célkitűzés: Állapotok elérhetőségének ellenőrzése Állapotok bekövetkezési sorrendjét vizsgáljuk Eljuthatunk-e kedvező állapotba? -> Élő jellegű követelmények Elkerüljük-e a kedvezőtlen állapotokat? -> Biztonsági követelmények Ezek az állapottér teljes felderítésével ellenőrizhetők! Állapotok lokális tulajdonságára hivatkozunk Állapot neve, állapotváltozók értéke Fontos állapot alapú, eseményvezérelt rendszerekben 9

Biztonsági jellegű követelmények Veszélyes helyzetek elkerülését írják elő: Minden állapotban kisebb a nyomás a kritikusnál. A présgép csak lecsukott ajtó mellett üzemelhet. Univerzális tulajdonság az elérhető állapotokon: Minden elérhető állapotban igaz, hogy Invariánst fogalmaznak meg Ha egy állapotsorozat nem teljesíti: nem is egészíthető ki úgy, hogy teljesítse Informatikai példák: Holtpontmentesség Kölcsönös kizárás Adatbiztonság (egyik állapotban sincs jogosulatlan hozzáférés) 10

Élő jellegű követelmények Kívánatos helyzetek elérését írják elő Az indítás után a présgép kiadja az elkészült terméket. A zavarás után a folyamat visszakerül stabil állapotba. Egzisztenciális tulajdonság az elérhető állapotokon Létezik (elérhető) olyan állapot, hogy Ha egy állapotsorozat nem teljesíti: elvileg kiegészíthető úgy, hogy teljesítse Informatikai példák: Adott kérés kiszolgálása megtörténik Elküldött üzenet megérkezik A processz kiszámítja a várt értéket 11

Az elérhetőségi követelmények leíró nyelve Elérhetőség: Állapotok bekövetkezésére, állapotok sorrendjére vonatkozik Bekövetkezési sorrend: Megfeleltethető a logikai időnek Jelen időpillanat: Aktuális állapot Következő időpillanat(ok): Rákövetkező állapot(ok) Temporális (logikai időbeli, sorrendi) operátorok használhatók a követelmények kifejezésére Temporális logikák: Formális rendszer arra, hogy kijelentések igazságának logikai időbeli változását vizsgálhassuk Temporális operátorok: mindig, valamikor, mielőtt, addig, amíg, azelőtt, hogy, 12

Lineáris: Temporális logikák osztályozása A modell egy-egy végrehajtását (lefutását) tekintjük Minden állapotnak egy rákövetkezője van Logikai idő egy idővonal mentén (állapotsorozat) {Zöld} {Sárga} {Piros} s1 s 2 s 3 {Piros, Sárga} s4 Elágazó: A modell minden lehetséges végrehajtását tekintjük Az állapotoknak több rákövetkezője lehet Logikai idő elágazó idővonalak mentén jelenik meg (számítási fa) s5 {Piros} s3 {Zöld} s1 {Sárga} s2 s5 {Piros} s3 13

Temporális logikák Hol értelmezhetjük a temporális logikákat? Célkitűzés: Állapottér vizsgálata Legegyszerűbb matematikai modell: Kripke-struktúra Állapotok lokális tulajdonságait címkézéssel vezettük be KS ( S, R, L) és AP, ahol AP= P,Q,R,... S= s,s,s,...s 1 2 3 n atomi kijelentések halmaza (domén-specifikus) állapotok halmaza R S S: állapotátmeneti reláció AP L: S 2 állapotok címkézése atomi kijelentésekkel 14

Kripke-struktúra példa Közlekedési lámpa vezérlője AP={Zöld, Sárga, Piros, Villogó} S = {s1, s2, s3, s4, s5} {Zöld} {Sárga} {Piros} {Piros, Sárga} s1 s2 s3 s4 s5 15

Lineáris idejű temporális logika: PLTL 16

Lineáris idejű temporális logikák A Kripke-struktúra egy-egy útvonalán értelmezhetők Egy-egy lefutás (pl. egy konkrét bemenet hatására) A modell (KS): {Zöld} {Sárga} {Piros} {Piros, Sárga} s1 s 2 s 3 s4 s5 Egy útvonal (állapotsorozat): {Zöld} {Sárga} {Piros} s1 s 2 s 3 {Piros, Sárga} s4 17

PLTL: Egy lineáris idejű temporális logika PLTL (Propositional Linear Time Temporal Logic) p, q, r,... kifejezések konstruálása: Atomi kijelentések (AP elemei): P, Q,... Boole logikai operátorok:,,, : És, : Vagy, : Negálás, : Implikáció Temporális operátorok: F, G, X, U informálisan: X p: next p, a következő állapotban igaz lesz p F p: Future p, egy elérhető állapotban igaz lesz p G p: Globally p, minden elérhető állapotban igaz lesz p p U q: p Until q, egy elérhető állapotban igaz lesz q, és addig minden állapotban igaz p 18

PLTL temporális operátorok Kripke-struktúra egy útvonalán (idővonalán): P P X P P F P G P P U Q P P P P P P P P P Q P 19

PLTL példák I. p Fq Ha a kiindulási állapotra p igaz, akkor valamikor (egy későbbi állapotra) q is igaz lesz. Példa: Start F End G(p Fq) Minden állapotra fennáll, hogy ha p igaz, akkor valamikor q is igaz lesz. Példa: G (Request F Reply) bármikor kiadott kérésre válasz érkezik p U (q r) A kezdőállapotból p fennáll, amíg q vagy r igaz nem lesz. Példa: Requested U (Accept Refuse) folyamatos kérést válasz vagy elutasítás követ (p G(p Xp)) Gp A matematikai indukció leírása: Mindig teljesül 20

GF p FG p PLTL példák II. Minden állapotra igaz, hogy ebből indulva valamikor p igaz lesz. Nem találunk olyan állapotot, ami után p tulajdonságú állapot ne lenne elérhető. Példa: GF Start minden állapotból kezdőállapotba vihető a rendszer Valamikor olyan állapotba kerül a rendszer, hogy azontúl p folyamatosan igaz lesz. Példa: FG Normal a kezdeti tranziens után a Normal tulajdonságú üzemi állapotokba kerül a rendszer 21

Követelmények formalizálása: Példa Adott egy klímaberendezés, aminek a következő üzemmódokat kell biztosítania: AP={Kikapcsolva, Bekapcsolva, Elromlott, GyengénHűt, ErősenHűt, Fűt, Szellőztet} Egy-egy állapothoz több címke tartozhat! A követelmény formalizálás fázisában a teljes viselkedést még nem ismerjük (azt a követelményeknek megfelelően kell majd megterveznünk) 22

Példa (folytatás) AP={Kikapcsolva, Bekapcsolva, Elromlott, GyengénHűt, ErősenHűt, Fűt, Szellőztet} A klímát be fogják kapcsolni: F (Bekapcsolva) A klíma előbb-utóbb mindig elromlik: G F (Elromlott) Ha a klíma elromlik, mindig megjavítják: G (Elromlott F ( Elromlott)) Ha a klíma elromlott, nem fűthet: G ( (Elromlott Fűt)) 23

Példa (folytatás) AP={Kikapcsolva, Bekapcsolva, Elromlott, GyengénHűt, ErősenHűt, Fűt, Szellőztet} A klíma csak úgy romolhat el, ha be volt kapcsolva: G ( X Elromlott Bekapcsolva) A fűtési fázis befejezésekor szellőztetni kell: G ((Fűt X( Fűt)) X (Szellőztet)) de el is romolhat: G ((Fűt X( Fűt)) X (Szellőztet Elromlott)) Szellőztetés után mindaddig nem hűthet erősen, míg egy gyenge hűtéssel nem próbálkozott: G ((Szellőztet X( Szellőztet)) X( ErősenHűt U GyengénHűt)) 24

PLTL nyelv formális kezelése Az eddigiek csak informális bevezetést adtak Kérdések vetődhetnek fel: F p igaz-e, ha p rögtön az első állapotban igaz? p U q igaz-e, ha q az első állapotban igaz? Az automatikus ellenőrzést is lehetővé tevő precíz megadáshoz szükséges: Formális szintaxis szabályok: Mik az érvényes PLTL kifejezések? Formális szemantika szabályok: Adott modellen mikor igaz egy PLTL kifejezés? 25

PLTL formális szintaxis Az érvényes PLTL kifejezések halmaza a következő szabályokkal képezhető: L1: Minden P atomi kijelentés egy kifejezés. L2: Ha p és q egy-egy kifejezés, akkor p q illetve p is L3: Ha p és q egy-egy kifejezés, akkor p U q illetve X p is Operátorok precedenciája növekvő sorrendben:,,,,, (X,U) 26

Kimaradt operátorok true minden állapotra igaz ( beépített ) false egy állapotra sem igaz p q jelentése (( p) ( q)) p q jelentése ( p) q p q jelentése (p q) (q p) F p jelentése true U p G p jelentése F( p) Mielőtt operátor (before): p WB q = (( p) U q) p B q = (( p) U q) F q Informálisan: Nem igaz, hogy nem fordul elő p a q előtt (weak before) (strong before) 27

PLTL szemantika: Jelölések M=(S, R, L) Kripke-struktúra =(s 0, s 1, s 2, ) az M egy útvonala, ahol s 0 a kezdőállapot és i 0: (s i, s i+1 ) R i =(s i, s i+1, s i+2, ) a útvonal szuffixe i-től M, = p jelöli: az M modellben a útvonalon igaz p A PLTL szemantikája megadja, hogy mikor igaz egy adott útvonalon egy adott PLTL kifejezés. 28

PLTL szemantika A szintaxis szabályok alapján képzett kifejezésekhez induktívan megadható a formális szemantika: L1: M, = P a.cs.a. P L(s 0 ) L2: M, = p q a.cs.a. M, = p és M, = q M, = q a.cs.a. M, = q nem igaz. L3: M, = (p U q) a.cs.a. j k j 0 : ( q v a la m i n t 0 k < j : p ) M, = X p a.cs.a. 1 = p 29

PLTL kifejezések értelmezése: Példák M Kripke-struktúra: {Zöld} {Sárga} {Piros} {Piros, Sárga} s1 s 2 s 3 s4 Útvonalak: s5 {Zöld} {Sárga} {Piros} {Piros, Sárga} {Zöld} {Sárga} M, 1 s1 s 2 s 3 s4 s1 s2 {Zöld} {Piros} {Piros} M, 2 s1 s 5 s 3 s5 s3 s5 30

Példák (folytatás) {Zöld} {Sárga} {Piros} {Piros, Sárga} {Zöld} {Sárga} M, 1 s1 s 2 s 3 s4 s1 s2 M, 1 = Zöld, mert Zöld a kezdőállapot címkéje Piros nem igaz M, 1 esetén, mert nem Piros a kezdőállapot címkéje Zöld U Piros nem igaz M, 1 esetén, mert a Sárga közbeszól M, 1 = F Piros, mert elérhető olyan állapot, ahol Piros a címke, Pontosabban: Van olyan szuffix, amely esetén Piros a kezdőállapot címkéje. 31

Példák (folytatás) {Zöld} {Sárga} {Piros} {Piros, Sárga} {Zöld} {Sárga} M, 1 s1 s 2 s 3 M, 1 = F (Piros U Zöld) igaz, mert van olyan szuffix, amire teljesül a (Piros U Zöld): s4 s1 s2 1 2 {Piros} s 3 {Piros, Sárga} s4 {Zöld} s1 {Sárga} s2 32

Példák (folytatás) {Zöld} {Piros} {Piros} M, 2 s1 s 5 s 3 s5 s3 s5 M, 2 = F (Villogó X Piros), mert van olyan szuffix, hogy Villogó X Piros igaz {Piros} {Piros} 2 1 s 5 s 3 s5 s3 s5 {Piros} {Piros} 2 2 s 3 s5 s3 s5 33

Példák (folytatás) {Zöld} {Piros} {Piros} M, 2 s1 s 5 s 3 s5 s3 s5 M, 2 = X F (XX Piros), mert az első szuffixre: 2 1 {Piros} s 5 s 3 s5 {Piros} s3 F (XX Piros) teljesül, mert 21 -nek van olyan szuffixe, ahol XX Piros igaz: s5 {Piros} {Piros} 2 2 s 3 s5 s3 s5 34

PLTL modell kiterjesztése LTS-re LTS, Labeled Transition System Állapotátmenetek címkézhetők egy-egy ún. akcióval, egy átmeneten csak egy akció szerepelhet Állapotátmenetek tulajdonságait fejezzük ki LTS ( S, Act, ), ahol S= s,s,...s 1 2 n Act= a,b,c,... S Act S állapotok halmaza akciók (címkék) halmaza címkézett állapotátmenetek Állapotátmenetek szokásos jelölése: s a s 1 2 35

LTS példák pénz pénz pénz kávé tea kávé tea 36

A struktúra bővülése: PLTL értelmezése LTS-en = (s 0, a 1, s 1, a 2, s 2, a 3, ) A szintaxis módosítása: L1*: Ha a egy akció, akkor (a) egy PLTL kifejezés. A kapcsolódó szemantikai szabály: L1*: M, = (a) a.cs.a. a 1 =a ahol a 1 az első akció -ben. Ilyen módon üzenetküldéssel kommunikáló rendszerek tulajdonságai is megfogalmazhatók. 37

PLTL összefoglalás Követelmények megfogalmazása Temporális logikák Lineáris idejű temporális logikák PLTL Operátorok (intuitív) Formális szintaxis Formális szemantika PLTL kifejezések értelmezése Követelmények formalizálása 38