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

Hasonló dokumentumok
A formális módszerek szerepe

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

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

A formális módszerek szerepe

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

Alapszintű formalizmusok

Részletes szoftver tervek ellenőrzése

A formális módszerek szerepe

Modellellenőrzés. 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. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

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

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 modellezés és verifikáció

A formális módszerek szerepe a rendszerek biztonságának növelésében

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

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

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

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

Részletes tervek ellenőrzése

Korlátos modellellenőrzés. dr. 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

Alapszintű formalizmusok

Alapszintű formalizmusok

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

Szoftverminőségbiztosítás

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

Modell alapú tesztelés mobil környezetben

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

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

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

Autóipari beágyazott rendszerek. Kockázatelemzés

A fejlesztési szabványok szerepe a szoftverellenőrzésben

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

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

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

Sztochasztikus temporális logikák

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

A szoftverellenőrzés szerepe

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

Formális módszerek GM_IN003_1 Bevezeté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

Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése

Időzített átmeneti rendszerek

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

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

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

Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben. Ráth István

Modellezési alapismeretek

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

UML (Unified Modelling Language)

Szoftver értékelés és karbantartás

Szoftver karbantartás

Modellezési alapismeretek

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

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

Szoftver karbantartási lépések ellenőrzése

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Informatikai technológiák szakirány Rendszertervezés ágazat

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

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

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

Szoftver újrafelhasználás

S01-7 Komponens alapú szoftverfejlesztés 1

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

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

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

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

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

A szoftverellenőrzés szerepe Alapfogalmak

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Absztrakció a szoftvertervezésben az Alloy specifikációs nyelv segítségével

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

Modellek fejlesztése

S01-8 Komponens alapú szoftverfejlesztés 2

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

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

Modellek fejlesztése

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Szoftverminőségbiztosítás

Biztonsági folyamatirányító. rendszerek szoftvere

Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Modellezési alapismeretek

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

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

Kiterjesztések sek szemantikája

A modell-ellenőrzés gyakorlata UPPAAL

Futásidőbeli verifikáció

Bokor Péter. DECOS Nemzeti Nap október 15. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

A CMMI alapú szoftverfejlesztési folyamat

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Futásidőbeli verifikáció

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Monitorok automatikus szintézise elosztott beágyazott rendszerek futásidőbeli verifikációjához

Átírás:

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 dr. Majzik István Dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék 1

Mire szeretnénk használni a formális módszereket? Milyen problémákkal nézünk szembe? Miben segíthetnek a formális módszerek? 2

Egy tanulságos történet Vasa svéd hadihajó, 1628: Elsüllyedt közvetlenül a vízrebocsátás után Problémák: Változó követelmények (II. Gusztáv Adolf király) Hiányzó pontos specifikáció (Henrik Hybertsson építő) Ellenőrizetlen tervek (Johan Isbrandsson alvállalkozó) Figyelmeztetések figyelmen kívül hagyása (Fleming admirális) Irodalom: The Vasa: A Disaster Story with Software Analogies. By Linda Rising. The Software Practitioner, January-February 2001. Why the Vasa Sank: 10 Problems and Some Antidotes for Software Projects. By Richard E. Fairley and Mary Jane Willshire. IEEE Software, March-April 2003. 3

Komplex rendszerek tervezése - Minimális tervezés - Implicit folyamat - Egyszerű eszközök - Tervezés - Definiált folyamat - Hatékony eszközök - Ellenőrzött tervek - Meghatározott folyamat - Automatikus eszközök 4

Tipikus kódméret: Szoftver minőségi krízis 10 kloc 1000 kloc Fejlesztési ráfordítás: 0,1-0,5 mérnökév / kloc (nagyméretű szoftver) 5-10 mérnökév / kloc (kritikus szoftver) Hiba eltávolítás (ellenőrzés, tesztelés, javítás): 45-75% ráfordítás Hibasűrűség változása: 10-200 hiba / kloc jön létre a fejlesztés során Ellenőrzés, debuggolás, javítás 0,01-10 hiba / kloc maradhat az üzembe helyezésig 5

Alkalmazások fejlesztésének kihívásai Jó minőségű specifikáció és tervek készítése Teljes Ellentmondás-mentes, egyértelmű Ellenőrizhető Tervek ellenőrzése Tervezői döntések igazolása Bizonyítottan helyes tervek a továbblépés alapjai Hibák elkerülése vagy korai felderítése Minőség költség fejlesztési idő optimalizálás Bizonyított helyességű eszközök használata Forráskód, konfiguráció, teszt és monitor szintézis Ezek alapjait a formális módszerek adhatják! 6

Továbblépés: Formális módszerek Formális módszer: A formális modellről ismeretet adó matematikai eljárás Eszközökkel támogatható A formális modell végrehajtása: Szimuláció A formális modell ellenőrzése: Formális verifikáció Önmagában való vizsgálat Konzisztencia, ellentmondás-mentesség Teljesség, zártság Megfelelés vizsgálata Modellek között Modellek és elvárt tulajdonságok között (implementáció specifikáció) A formális modell alapján történő szintézis: Szoftver (programkód, konfiguráció) generálása Hardver tervek generálása 7

Verifikáció és validáció összehasonlítása Verifikáció (igazolás) Jól építjük-e a rendszert? Összhang ellenőrzése a fejlesztési fázisokban, illetve ezek között Fejlesztési lépések során használt tervek (modellek) és specifikációjuk közötti megfelelés ellenőrzése Objektív folyamat; formalizálható, automatizálható Felderíthető hibák: Tervezési, implementációs hibák Nincs rá szükség, ha automatikus a leképzés követelmény és implementáció között Validáció (érvényesítés) Jó rendszert építettünk-e? A fejlesztés eredményének ellenőrzése A kész rendszer és a felhasználói elvárások közötti megfelelés ellenőrzése Szubjektív elvárások lehetnek; elfogadhatósági ellenőrzés Felderíthető hibák: Követelmények hiányosságai is Nincs rá szükség, ha a specifikáció tökéletes (elég egyszerű) 8

V-től az Y fejlesztési modellig Életciklus Ráfordítás megtakarítás Kézi kódolás Szoftverfejlesztés a V-modell szerint Közönséges elemzése automatikus kódgenerátor használata Követelmények Rendszer Rendszer specifikálás verifikáció Minősített Architektúra automatikus tervezés kódgenerátor használata Rendszer integrálás Rendszer validáció 0% -20% -50% Modul tervezés Modul verifikáció Formális verifikációval Modul implementáció kiegészített tervezés -60% * Adatok: Esterel Technologies 40 50 100% ráfordítás 9

V-től az Y fejlesztési modellig Életciklus Ráfordítás megtakarítás Kézi kódolás 0% Közönséges automatikus kódgenerátor használata -20% Minősített automatikus kódgenerátor használata -50% Formális verifikációval kiegészített tervezés -60% * Adatok: Esterel Technologies 40 50 100% ráfordítás 10

Biztonságkritikus szoftverek fejlesztése IEC 61508: Szabvány előírások a fejlesztésre Functional safety in electrical / electronic / programmable electronic safety-related systems Szakterület-specifikus szabványok alapja Követelmény-specifikáció készítésének előírásai: 11

Biztonságkritikus szoftverek fejlesztése IEC 61508: Szoftver tervezés és fejlesztés előírásai 12

Mik azok a formális módszerek? A formális módszerek célja és eszközei 13

Matematikai technikák, Formális módszerek elsősorban diszkrét matematika és matematikai logika használata arra, hogy elkészítsük és ellenőrizzük hardver és szoftver rendszerek specifikációját, terveit (modelljeit), implementációját (viselkedését), dokumentációját. 14

Hogyan ellenőrizhetjük a követelményeket? A megvalósítás 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 már csak az implementáció után derülhet ki, drágán javítható Modellezéssel és szimuláció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 Szisztematikus algoritmus kell az állapottér teljes felvételéhez Legyen automatikus a követelmények teljesülésének figyelése is Ehhez egy olyan nyelv szükséges, amikkel a követelmények leírhatók Általános módszer adható a követelmények modell alapú ellenőrzésére 15

A formális módszerek használata Tervezők (nem csak matematikusok) által is használható, amennyiben a specifikus tudást eszközökbe integrálják Modellező eszközök Ellenőrző eszközök Modellellenőrzők, ekvivalencia ellenőrzők, automatikus tételbizonyítók Szintézis eszközök Kódgenerátor, konfiguráció generátor az ellenőrzött modellek alapján Teszt generátor (validáláshoz) Csökken a rendszerben maradó koncepcionális és tervezői hibák száma, javul a minőség Szolgáltatásbiztonság növelhető De garanciát nem ad a használhatóságra, a felhasználói elvárások teljesítésére! Validációt nem helyettesíti 16

A formális módszerek használatának lépései Valós probléma formális vizsgálata: 1. Fogalmi tér felépítése feltételezések 2. Probléma formalizálása absztrakció 3. Formális modell analízise automatikus lehet 4. Eredmények értelmezése, felhasználása Alkalmazáshoz szükséges: Feltételezések teljesülésének ellenőrzése Modell validálása Eszközök helyességének belátása 17

Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények i Automatikus modellellenőrző n OK Ellenpélda 18

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 modell ellenőrző n OK Ellenpélda 19

Alapmodellek Alapvető modellezési formalizmusok 21

Első lépés: modellezési formalizmus A formalizálás célja: matematikai precizitással megadni Modelleket: terveket, tervezői döntéseket (modellezési nyelv) Követelményeket: elvárt tulajdonságokat (követelmény leíró nyelv) Formális nyelvek felépítése Formális szintaxis Formális szemantika Mit szeretnénk leírni formális nyelvekkel? Funkcionalitás (viselkedés, feltételek, elvárások, ) Struktúra, interfészek Extra-funkcionális aspektusok is: teljesítmény, megbízhatóság, A formális nyelv használatának előnyei Egyértelműség, ellenőrizhetőség Automatikus feldolgozhatóság Jelölésmód: nyelvi elemek és kapcsolatok A jelölésmód interpretációja 22

Automata formalizmus: Állapotok és állapotátmenetek Változók, konstansok Feltételek az átmenetek végrehajtásához Akciók az átmenetek végrehajtása során Egy egyszerű példa 23

Modellek a formális ellenőrzéshez Leképzések Mérnöki modellek Magasabb szintű formalizmusok PN, CPN, DFN, SC Alapszintű matematikai formalizmusok KS, LTS, KTS 24

Alapszintű formalizmusok (áttekintés) Kripke-struktúrák (KS) Állapotok, állapotátmenetek Állapotok lokális tulajdonságai mint címkék Címkézett tranzíciós rendszerek (LTS) Állapotok, állapotátmenetek Állapotok lokális tulajdonságai mint címkék Kripke tranzíciós rendszerek (KTS) Állapotok, állapotátmenetek Állapotok és lokális tulajdonságai mint címkék Véges állapotú automaták időkezeléssel Kiterjesztések: Változók, óraváltozók, szinkronizáció 25

KS, Kripke-structure: 1. Kripke-struktúra Állapotok tulajdonságait fejezzük ki: címkézés atomi kijelentésekkel Egy állapothoz sok címke rendelhető Alkalmazás: Viselkedés, algoritmus leírása 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 26

Kripke-struktúra példa Közlekedési lámpa viselkedése 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 {Villogó} 27

2. Címkézett tranzíciós rendszer LTS, Labeled Transition System: Állapotátmenetek tulajdonságait fejezzük ki: címkézés akciókkal Egy átmeneten csak egy akció szerepelhet Alkalmazás: Kommunikáció, protokollok modellezése 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 28

Italautomata modelljei Act = {pénz, kávé, tea} LTS példák T1 T2 pénz pénz pénz kávé tea kávé tea 29

3. Kripke tranzíciós rendszer KTS, Kripke Transition System: Állapotok és átmenetek tulajdonságait is kifejezzük: címkézés atomi kijelentésekkel és akciókkal Egy állapothoz sok címke rendelhető, egy átmenethez egy címke rendelhető KTS ( S,, L) és AP, Act, ahol AP Act P, Q, R,... a, b, c,... 1 2 3 atomi kijelentések halmaza (domén-specifikus) akciók halmaza S s, s, s,... s állapotok halmaza S Act S L: S 2 AP n állapotátmeneti reláció állapotok címkézése atomi kijelentésekkel 30

KTS példa Italautomata modellje állapot címkékkel Act = {pénz, kávé, tea} AP = {Start, Választ, Stop} {Start} kávé pénz {Választ} tea {Stop} {Stop} 31

Követelmények formalizálása 32

Emlékeztető: mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények i Automatikus modellellenőrző n OK Ellenpélda 33

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 34

É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 Közlekedési példák: Előbb-utóbb a közlekedési lámpa zöldre vált Szükség esetén a biztosító berendezés működésbe lép A fékezés során a kerék megcsúszását az ECU érzékeli és aktiválja az ABS-t 36

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 Közlekedési példák: Holtpontmentesség: nem lehet minden irányból végtelen sokáig piros jelzés Kölcsönös kizárás: keresztező irányok nem kaphatnak egyszerre zöldet 37

Az elérhetőségi követelmények leíró nyelve Állapotok bekövetkezési 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, 38

Temporális logikák Hol értelmezhetjük a temporális logikákat? Célkitűzés: Állapottér vizsgálata 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 39

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ó: {Zöld} A modell minden lehetséges végrehajtását tekintjük Az állapotoknak több rákövetkezője lehet {Villogó} s5 {Piros} s3 s1 {Sárga} s2 {Villogó} s5 {Piros} s3 Logikai idő elágazó idővonalak mentén jelenik meg (számítási fa) 41

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

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): {Villogó} {Zöld} {Sárga} {Piros} s1 s 2 s 3 {Piros, Sárga} s4 43

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: F p: Future p, egy elérhető állapotban igaz lesz p G p: Globally p, minden elérhető állapotban igaz lesz p X p: next p, a következő állapotban igaz lesz p p U q: p Until q, egy elérhető állapotban igaz lesz q, és addig minden állapotban igaz p 44

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 45

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. G(p Fq) Minden állapotra fennáll, hogy ha p igaz, akkor valamikor q is igaz lesz. Pl. bármikor kiadott p kérésre q válasz érkezik. p U (q r) Itt p igaz, amíg q vagy r igaz nem lesz. Pl. az első állapotból kiadott folyamatos p kérést q válasz vagy r elutasítás követ. (p G(p Xp)) Gp A matematikai indukció leírása: Mindig teljesül 46

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ő. Pl. minden állapotból a p tulajdonságú kezdőállapotba vihető a rendszer. Valamikor olyan állapotba kerül a rendszer, hogy azontúl p folyamatosan igaz lesz. Pl. kezdeti tranziens után a p tulajdonságú üzemi állapotokba kerül a rendszer. 47

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 (valós) viselkedést még nem ismerjük épp az a cél, hogy a követelményeknek megfelelően tervezzük meg! 48

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)) 49

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)) 50

Elágazó idejű temporális logikák: CTL, CTL* 51

Ismétlés: Temporális logikák osztályozása Lineáris idejű: 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ó idejű: {Zöld} A modell minden lehetséges végrehajtását tekintjük Az állapotoknak több rákövetkezője lehet {Villogó} s5 {Piros} s3 s1 {Sárga} s2 {Villogó} s5 {Piros} s3 Logikai idő elágazó idővonalak mentén jelenik meg (számítási fa) 52

Számítási fa konstrukciója Kripkestruktúra: {Zöld} {Sárga} {Piros} {Piros, Sárga} s1 s 2 s 3 s4 s5 {Villogó} Számítási fa: Lehetséges elágazások {Villogó} s5 {Zöld} s1 {Sárga} s2 {Piros} {Villogó} {Piros} s3 s5 s3 {Piros,Sárga} {Villogó} {Piros} {Piros,Sárga} {Villogó} s4 s5 s3 s4 s5 53

Elágazások vizsgálata Egy-egy állapotban előírható, hogy az útvonalakra vonatkozó p követelmény hány onnan kiinduló útvonal mentén teljesüljön: E p (Exists p): Létezzen legalább egy útvonal, ahol a p követelmény teljesül Egy lehetséges továbblépés mentén vizsgál s Egzisztenciális operátor A p (forall p): Minden útvonalra fennálljon, hogy a p követelmény teljesül Minden lehetséges továbblépést magába foglal Univerzális operátor s 54

Elágazó idejű temporális logikák CTL*: Computational Tree Logic * Útvonal kvantorok (E, A), és útvonalakon értelmezett temporális operátorok (F, G, X, U) tetszőleges kombinációja CTL: Computational Tree Logic Útvonalakon értelmezett temporális operátorokat mindig közvetlenül meg kell előznie útvonal kvantoroknak Útvonalakon értelmezett operátorok nem kombinálhatók 55

CTL*: Computational Tree Logic * 56

CTL* operátorok (informális) Útvonalak kvantorai (állapotokon értelmezett): A: for All futures, minden lehetséges útra az adott állapotból kiindulva E: Exists future, for some future, legalább egy útra az adott állapotból kiindulva Útvonalakon értelmezett operátorok: F p: Future, valamikor az útvonal egy állapotán p igaz G p: Globally, az útvonal minden állapotán p igaz X p: next, a következő állapotban p igaz p U q: p Until q, az útvonal egy állapotán igaz lesz q, és addig minden állapotban igaz p 57

CTL* kifejezések A(p F q) Minden útvonalra igaz, hogy amennyiben p fennáll az útvonal elején, akkor ezt a jövőben olyan állapot fogja követni amelyben, vagy ahonnan indulva található olyan állapot, amelyben q fennáll. 58

Példa CTL* kifejezések E(p G q) Létezik olyan útvonal, hogy ezen p fennáll (az útvonal elejétől nézve) és az útvonal minden szuffixén q is fennáll E(XXX p F q) Létezik olyan útvonal, hogy vagy ennek negyedik állapotán fennáll p, vagy valamikor q fennáll az útvonalon 59

CTL: Computational Tree Logic 63

Háttér: Az ellenőrzés komplexitása CTL* ellenőrzése túl nehéz! Worst-case időkomplexitás: Legalább O ( S 2 2 p ) S 2 az átmenetek száma a modellben (Kripke-struktúrában) worst case esetben p az operátorok száma a temporális logikai kifejezésben Az exponenciális komplexitás riasztó Bár a temporális logikai kifejezések tipikusan rövidek Célkitűzés: A CTL* egyszerűsítése Gyakorlati problémák esetén használható maradjon Az ellenőrzés worst-case időkomplexitása csökkenjen 64

CTL operátorok (informális bevezető) Állapotokon értelmezhető összetett operátorok: EX p: létezik útvonal, aminek következő állapotán p EF p: létezik útvonal, aminek jövőbeli állapotán p EG p: létezik útvonal, aminek minden állapotán p E(p U q): létezik útvonal, amin p amíg q AX p: minden útvonal következő állapotán p AF p: minden útvonal egy-egy jövőbeli állapotán p AG p: minden útvonal minden állapotán p A(p U q): minden útvonalon p amíg q 65

CTL operátorok (példák) EX P EF P EG P AX P AF P AG P 66

CTL kifejezések (példák) AG EF p Bárhonnan indulva olyan állapotba vihető a rendszer, ahol p igaz Pl. AG EF Reset AG AF p Bárhonnan indulva mindenképpen eljutunk olyan állapotba, ahol p igaz Pl. AG AF Terminated AG (p AF q) Bárhonnan indulva teljesül, hogy ha ott p igaz, akkor valamikor mindenképpen elérünk olyan állapotba, ahol q igaz. Pl. AG (Request AF Reply) 68

EF AG p CTL kifejezések (példák) Lehetséges, hogy a rendszer olyan állapotba kerül, hogy utána p minden állapotban igaz lesz AF AG p Bármely úton haladva eljutunk olyan állapotba, hogy utána p mindig igaz lesz Pl. AF AG Normal AG (p A (p U q)) Bármelyik elérhető állapotban ha p igaz, akkor minden úton p fennáll q eléréséig p fennáll q eléréséig pontosabban: elérünk egy olyan állapotba, ahol q igaz, és addig minden állapotban p igaz 69

Követelmények formalizálása: Egy példa Két processzből álló rendszer: P1 és P2 Processz állapotok a követelmények szempontjából: Kritikus szakaszban van: C1, C2 Nem-kritikus szakaszban van: N1, N2 Kritikus szakaszba belépésre kész: W1, W2 Atomi kijelentések: AP = {C1, C2, N1, N2, W1, W2} 70

Mintapélda (folytatás) Egyszerre csak egy processz lehet a kritikus szakaszban: AG ( (C1 C2)) Ha egy processz be akar lépni a kritikus szakaszba, akkor előbb-utóbb mindig beléphet: AG (W1 AF(C1)) AG (W2 AF(C2)) A processzek mindig felváltva kerülnek a kritikus szakaszba; egyikük kilép majd a másik lép be: AG(C1 A(C1 U ( C1 A(( C1) U C2)))) AG(C2 A(C2 U ( C2 A(( C2) U C1)))) 71

Mintapélda (folytatás) Egyszerre csak egy processz lehet a kritikus szakaszban: AG ( (C1 C2)) P1 nincs a kritikus Ha egy processz szakaszban be akar lépni a kritikus szakaszba, akkor előbb-utóbb mindig beléphet: P2 lép a kritikus P1 AG van (W1 a kritikus szakaszba AF(C1)) AG szakaszban (W2 AF(C2)) A processzek mindig felváltva kerülnek a kritikus szakaszba; egyikük kilép majd a másik lép be: AG(C1 A(C1 U ( C1 A(( C1) U C2)))) AG(C2 A(C2 U ( C2 A(( C2) U C1)))) 72

Formális módszerek értékelése Mit várhatunk? Korlátok, sikertörténetek 73

Amik a formális vizsgálatot nehézzé teszik Valósághű modellezés Ismeretek hiánya, feltételezések (pl. a környezetről) De: Formális módszerek használatától független ez a probléma Speciális ismereteket igényel a felhasználótól Alacsony szintű matematikai modellek, jelölésrendszer De: Mérnöki modellezési nyelvek eltakarhatják Bonyolultak az ellenőrzés és szintézis módszerei Algoritmusok, technikák korlátait ismerni kell Kézi beavatkozásra lehet szükség (pl. tételbizonyító rendszerek) De: Terjednek a gombnyomásra működő eszközök Csak kisméretű problémákra alkalmazható Modell, állapottér kezelhető-e a meglévő erőforrásokkal De: Eszközök hatékonysága folyamatosan nő 74

Jelen helyzet Megkötések Diszkrét állapotú rendszerek (DES) Diszkrét idejű Diszkrét eseményterű Kihívások, kutatási területek Matematikai algoritmusok hatékonysága és szintje Modell osztályok korlátai (pl. időzítés) Modell készítés nehézsége (pl. absztrakció) Nyelvek kifejezőképessége (pl. VHDL) Nyelvek nem pontos definíciója (pl. UML) 75

Modellek a formális ellenőrzéshez Rendszermodellek Mérnöki modellek: Pl. UML diagramok (fél-)formális szemantikával Magasabb szintű modellek: Vezérlés orientált: Automata, Petri-háló, Adatfeldolgozás orientált: Adatfolyam háló, Kommunikáció orientált: Processz algebra, Alapszintű matematikai modellek: KS, LTS, KTS, automaták, Büchi automaták Tulajdonság leírások Magasabb szintű: Idődiagram, üzenet szekvencia diagram (MSC) Alapszintű: Elsőrendű logika, temporális logika, referencia automata 76

Változók száma A formális verifikáció fejlődése A SAT eszközök (kielégíthetőség) lehetőségei: 100000 10000 1000 100 10 1 1960 1970 1980 1990 2000 2010 Év Modellellenőrző eszközök képességei: 10 20 2 66 méretű állapottér (ROBDD-vel, 1990) 10 100 2 328 méretű állapottér speciális esetben 10 62900 méretű állapottérre is volt példa (MIT TDK) 77

Sikertörténetek 78

Rendszer tervezése Mérnöki modell (pl. UML) Sikeres megközelítés Automatikus modellgenerálás Formális ellenőrzés Formális modell Eredmények visszavezetése Analízis Megvalósítás int main() { while (i<z){ a=x+x*b[i++]; } } Implementáció 79

Klasszikus alkalmazások USA TCAS-II forgalomirányító rendszer RSML nyelven specifikált; teljesség és ellentmondás-mentesség ellenőrzése Philips Audio Protocol 1994: manuális verifikáció, majd 1996: automatikus ellenőrzés (HyTech) Lockheed C130J repülési szoftvere Programfejlesztés helyességbizonyítással (CORE spec. nyelv + Ada) Költség nem nőtt a tesztelés egyszerűsödése miatt IEEE Futurebus+ szabvány Carnegie Mellon SMV: cache koherencia protokoll hibájának kiderítése Hardver projektek: ACL2 automatikus tételbizonyító Motorola DSP Complex Arithmetic Processor mag (250 regiszter): DSP algoritmusok ellenőrzése AMD 5K86 processzor: Lebegőpontos osztás algoritmusának ellenőrzése Intel Core i7 processzor For the recent Intel CoreTM i7 design we used formal verification as the primary validation vehicle for the core execution cluster Szimbolikus szimuláció az adatutak teljes vizsgálatára (2700 mikroutasítás, 20 mérnökévnyi munka) Binary Decision Diagram alkalmazása Modell alapú szoftverfejlesztéshez kapcsolódó eszközök IBM, Esterel, Prover, Mentor, Verum, Telelogic, 80

Forráskódhoz illeszkedő formális verifikáció Java Bandera, PathFinder: modell absztrakció Java VM formalizálása: Abstract State Machine Ada SPARK Ada verification condition generator tételbizonyítóhoz C BLAST: Szoftver modellellenőrző C programokhoz (absztrakció) CBMC: C alapú korlátos modellellenőrző C#, Visual Basic.Net Zing (MS Visual Studio-hoz): Konkurens szoftver modellellenőrzése Spec# (C# superset) MS Research Boogie 2: Specifikációs nyelvi kiterjesztések Helyességi kritériumok ellenőrzése: program absztrakcióval és tételbizonyítóval (Z3) Microsoft Windows Driver Kit (WDK) Static Driver Verifier Research Platform, SLAM 2 eszköz Windows API használati feltételeinek statikus ellenőrzése 81

Összefoglalás Mik a formális módszerek? Formalizmus, formális nyelv Formális módszerek és eszközök: Szimuláció, formális verifikáció, szintézis Mire használhatók? Motiváció: Szoftver minőségi kihívások A formális módszerek lehetőségei Mit várhatunk? Korlátok Sikertörténetek 82