1 / 40

Modellellenőrzés

Modellellenőrzés. Varró-Gyapay Szilvia Formális módszerek az informatikában Dr. Varró Dániel fóliái alapján. A modellellenőrző, mint fekete doboz. Rendszermodell (tranzíciós rendszer). Követelmény/ Kérdés / Tulajdonság (TL formula). Igaz. Hamis + Ellenpélda. A modellellenőrzés definíciója.

coy
Download Presentation

Modellellenőrzés

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modellellenőrzés Varró-Gyapay Szilvia Formális módszerek az informatikában Dr. Varró Dániel fóliái alapján Formális módszerek az informatikában 2006/2007. Révkomárom

  2. A modellellenőrző, mint fekete doboz Rendszermodell(tranzíciós rendszer) Követelmény/ Kérdés / Tulajdonság(TL formula) Igaz Hamis + Ellenpélda Formális módszerek az informatikában 2006/2007. Révkomárom

  3. A modellellenőrzés definíciója • Definíció: • Adott a rendszer egy véges állapotú modellje (M) és egy temporális logikai tulajdonság (p) • A modellellenőrzésegy olyan automatikus módszer, mely szisztematikusan ellenőrzi, hogy e tulajdonság fennáll-e a rendszerben, azaz M |= p • Matematikailag: • M: tranzíciós rendszer (szintaxis) + Kripke struktúra (szemantika) • p: egy temporális logikai kifejezés • Kielégíthetőség: • Létezik olyan M melyre M |= p Formális módszerek az informatikában 2006/2007. Révkomárom

  4. Globális avagy lokális modellellenőrzés • Globális modellellenőrzés • Adott M és p, • Keressük az összes olyan állapotot (értsd: amelyből indítva a rendszert), melyre pigaz • Az eredmény tehát állapothalmaz • Lokális modellellenőrzés • Adott M, p és egy s0 kezdőállapot • Igaz-e, hogy a kezdőállapotban igaz p (kezdőállapotból indítva a rendszert, igaz lesz p ) • A globális modellellenőrzés nyilvánvalóan megoldja a lokális problémát Formális módszerek az informatikában 2006/2007. Révkomárom

  5. Verifikáció, validáció, hibakutatás • A modellellenőrzés alkalmazásának „végletei”: • verifikáció: bizonyítsuk be, hogy a tervezés alatt álló rendszer M modellje teljesíti a követelményekben megfogalmazott p tulajdonságo(ka)t • hibakutatás (debugging): keressünk automatikusan hibákat az M rendszermodellben • A modellellenőrzés akkor a leghatékonyabb, ha kombináljuk e két végletet • A követelmények „helyessége”: • validáció: egy adott temporális logikai formula hűen reprezentál-e egy p tulajdonságot • ha nem: a verifikáció értelmét veszti Formális módszerek az informatikában 2006/2007. Révkomárom

  6. Modellellenőrzés a rendszertervezésben Formális módszerek az informatikában 2006/2007. Révkomárom

  7. Klasszikus modellellenőrzés Formális módszerek az informatikában 2006/2007. Révkomárom

  8. Modern modellellenőrzés • Középpontban: absztrakció (szándékos információvesztés) az állapottérrobbanást elkerülendő Formális módszerek az informatikában 2006/2007. Révkomárom

  9. A modellellenőrzés előnyei • Lehetővé teszi nagy méretű állapotterek kezelését (hagyományosan 10120; újabban 21000) • Általánosan alkalmazható véges állapotterű rendszerekben (HW, SW, protokollok, …) • A követelmények formálisan és egyesével ellenőrizhetők • Kereskedelmi termékekben: teljesen automatizált (gombnyomásos), nem igényel intuíciót Formális módszerek az informatikában 2006/2007. Révkomárom

  10. A modellellenőrzés hátrányai • Állapottérrobbanás • A bejárt állapotok explicit eltárolása szükséges • Túl sok állapot - Túl kevés memória • Elsősorban vezérlés-orientált alkalmazásokhoz való • Komplex adatstruktúrák: még 21000 is nagyon kicsi • Követelmények és a modell megalkotása problematikus egy átlagos szoftvermérnök számára • vajon konzisztens-e a verifikációs modell a rendszerrel? • A kapott eredményt nehéz általánosítani • 2 processzre jó, vajon jó-e N processzre is? • Követelmények teljessége nem ellenőrizhető Formális módszerek az informatikában 2006/2007. Révkomárom

  11. A verifikációs rendszermodellek Tranzíciós rendszerek és Kripke struktúra Formális módszerek az informatikában 2006/2007. Révkomárom

  12. A verifikációs (rendszer)modellek • Matematikai formalizmusok: • Szintaxis: Tranzíciós rendszer • Ezt használjuk amikor leírjuk/specifikáljuk a rendszert • Program • Szemantika:Kripke struktúra • A tranzíciós rendszer által kifeszített állapottér • Egy program összes lehetséges lefutása • Analógia • Szintaxis (Nyelvi elemek felépítése)  nagyon alacsony szintű programozási nyelv • Szemantika (Nyelvi elemek jelentés)  véges automata Formális módszerek az informatikában 2006/2007. Révkomárom

  13. Példa: páros - páratlan Tranzíciós rendszer • Állapotok, változók és értéktartományaik: • sv : {prs, prtl} • x : int • Kezdőállapot: • sv = prs AND • x = 0 • Átmenetek: • sv = prs  sv’ = prtl; x’ = x + 1; • sv = prtl  sv’ = prs; x’ = x + 1; Formális módszerek az informatikában 2006/2007. Révkomárom

  14. Tranzíciós rendszer TS = (V, PC, T,Init) • V = állapotváltozók halmaza: {v1, v2, v3,...} • PC= a programszámláló lehetséges értékhalmaza{l1, l2, l3,...} • T= tranzíciók halmaza {1, 2, 3,... } • k felépítése li: guard  v1’ = e1, v2’ = e2, v3’ = e3,... • Init = kezdőállapotot leíró predikátum Formális módszerek az informatikában 2006/2007. Révkomárom

  15. Példa: Processzorok kommunikációja • Egy elosztott rendszerben két, azonos típusú és egyenrangú processzor időnként szinkron módon kommunikál egymással • Ha az egyik processzor hívást kezdeményezett (ring), és a másik processzor várakozik (wait), akkor egyszerre lépnek a szinkron kommunikációt jelző talk állapotba. • Egy processzor az első adandó alkalommal megkezdi a kommunikációt, amennyiben a másik fél rácsengetett. • A szinkron kommunikáció után mindkét processzor várakozó „álláspontra” jut. • A processzorok szabadidejükben számítási feladatokat végezhetnek, majd visszatérnek a várakozó állapotba. Formális módszerek az informatikában 2006/2007. Révkomárom

  16. Példa: Processzorok kommunikációja VARIABLES p1.wait, p1.ring, p1.calc, p1.talk: Boolean p2.wait, p2.ring, p2.calc, p2.talk: Boolean Formális módszerek az informatikában 2006/2007. Révkomárom

  17. Példa: Processzorok kommunikációja VARIABLES p1.wait, p1.ring, p1.calc, p1.talk: Boolean p2.wait, p2.ring, p2.calc, p2.talk: Boolean INITIALIZATION p1.wait = T; p1.ring = F; p1.calc = F; p1.talk = F; p2.wait = T; p2.ring = F; p2.calc = F; p2.talk = F; Formális módszerek az informatikában 2006/2007. Révkomárom

  18. Példa: Processzorok kommunikációja VARIABLES p1.wait, p1.ring, p1.calc, p1.talk: Boolean p2.wait, p2.ring, p2.calc, p2.talk: Boolean INITIALIZATION p1.wait = T; p1.ring = F; p1.calc = F; p1.talk = F; p2.wait = T; p2.ring = F; p2.calc = F; p2.talk = F; TRANSITIONS t1a: (p1.wait)  p1.wait’=F; p1.ring’ = T; t1b: (p2.wait)  p2.wait’=F; p2.ring’ = T; Formális módszerek az informatikában 2006/2007. Révkomárom

  19. Példa: Processzorok kommunikációja VARIABLES p1.wait, p1.ring, p1.calc, p1.talk: Boolean p2.wait, p2.ring, p2.calc, p2.talk: Boolean INITIALIZATION p1.wait = T; p1.ring = F; p1.calc = F; p1.talk = F; p2.wait = T; p2.ring = F; p2.calc = F; p2.talk = F; TRANSITIONS t1a: (p1.wait)  p1.wait’=F; p1.ring’ = T; t1b: (p2.wait)  p2.wait’=F; p2.ring’ = T; t2a: (p1.wait)  p1.wait’ = F; p1.calc’ = T; t2b: (p2.wait)  p2.wait’ = F; p2.calc’ = T; Formális módszerek az informatikában 2006/2007. Révkomárom

  20. Példa: Processzorok kommunikációja VARIABLES p1.wait, p1.ring, p1.calc, p1.talk: Boolean p2.wait, p2.ring, p2.calc, p2.talk: Boolean INITIALIZATION p1.wait = T; p1.ring = F; p1.calc = F; p1.talk = F; p2.wait = T; p2.ring = F; p2.calc = F; p2.talk = F; TRANSITIONS t1a: (p1.wait)  p1.wait’=F; p1.ring’ = T; t1b: (p2.wait)  p2.wait’=F; p2.ring’ = T; t2a: (p1.wait)  p1.wait’ = F; p1.calc’ = T; t2b: (p2.wait)  p2.wait’ = F; p2.calc’ = T; t3a: (p1.calc)  p1.calc’ = F; p1.wait’ = T; t3b: (p2.calc)  p2.calc’ = F; p2.wait’ = T; Formális módszerek az informatikában 2006/2007. Révkomárom

  21. Példa: Processzorok kommunikációja VARIABLES p1.wait, p1.ring, p1.calc, p1.talk: Boolean p2.wait, p2.ring, p2.calc, p2.talk: Boolean INITIALIZATION p1.wait = T; p1.ring = F; p1.calc = F; p1.talk = F; p2.wait = T; p2.ring = F; p2.calc = F; p2.talk = F; TRANSITIONS t1a: (p1.wait)  p1.wait’=F; p1.ring’ = T; t1b: (p2.wait)  p2.wait’=F; p2.ring’ = T; t2a: (p1.wait)  p1.wait’ = F; p1.calc’ = T; t2b: (p2.wait)  p2.wait’ = F; p2.calc’ = T; t3a: (p1.calc)  p1.calc’ = F; p1.wait’ = T; t3b: (p2.calc)  p2.calc’ = F; p2.wait’ = T; t4a: (p1.wait && p2.ring)  p1.wait’=F; p2.ring’ = F; p1.talk’ = T; p2.talk’ = T; t4b: (p2.wait && p1.ring)  p2.wait’=F; p1.ring’ = F; p2.talk’ = T; p1.talk’ = T; Rossz: nem kezd azonnalkommunikálni, ha amásik fél csenget Formális módszerek az informatikában 2006/2007. Révkomárom

  22. Processzorok (javított változat) VARIABLES p1.wait, p1.ring, p1.calc, p1.talk: Boolean p2.wait, p2.ring, p2.calc, p2.talk: Boolean INITIALIZATION p1.wait = T; p1.ring = F; p1.calc = F; p1.talk = F; p2.wait = T; p2.ring = F; p2.calc = F; p2.talk = F; TRANSITIONS t1a: (p1.wait && !p2.ring)  p1.wait’=F; p1.ring’ = T; t1b: (p2.wait && !p1.ring)  p2.wait’=F; p2.ring’ = T; t2a: (p1.wait && !p2.ring)  p1.wait’ = F; p1.calc’ = T; t2b: (p2.wait && !p1.ring)  p2.wait’ = F; p2.calc’ = T; t3a: (p1.calc)  p1.calc’ = F; p1.wait’ = T; t3b: (p2.calc)  p2.calc’ = F; p2.wait’ = T; t4a: (p1.wait && p2.ring)  p1.wait’=F; p2.ring’ = F; p1.talk’ = T; p2.talk’ = T; t4b: (p2.wait && p1.ring)  p2.wait’=F; p1.ring’ = F; p2.talk’ = T; p1.talk’ = T; t5: (p1.talk && p2.talk)  p1.talk’ = F; p2.talk’ = F; p1.wait’ = T; p2.wait’ = T; Formális módszerek az informatikában 2006/2007. Révkomárom

  23. Példa: Processzorok kommunikációja 2 VARIABLES p1.wait, p1.ring, p1.calc, p1.talk: Boolean p2.wait, p2.ring, p2.calc, p2.talk: Boolean INITIALIZATION p1.wait = T; p1.ring = F; p1.calc = F; p1.talk = F; p2.wait = T; p2.ring = F; p2.calc = F; p2.talk = F; TRANSITIONS t1a: (p1.wait && !p2.ring)  p1.wait’=F; p1.ring’ = T; t1b: (p2.wait && !p1.ring)  p2.wait’=F; p2.ring’ = T; t2a: (p1.wait && !p2.ring)  p1.wait’ = F; p1.calc’ = T; t2b: (p2.wait && !p1.ring)  p2.wait’ = F; p2.calc’ = T; t3a: (p1.wait && p2.ring)  p1.wait’=F; p2.ring’ = F; p1.talk’ = T; p2.talk’ = T; t3b: (p2.wait && p1.ring)  p2.wait’=F; p1.ring’ = F; p2.talk’ = T; p1.talk’ = T; t4a: (p1.calc)  p1.calc’ = F; p1.wait’ = T; t4b: (p2.calc)  p2.calc’ = F; p2.wait’ = T; t5: (p1.talk && p2.talk)  p1.talk’ = F; p2.talk’ = F; p1.wait’ = T; p2.wait’ = T; Nemdeterminizmus Nemdeterminizmus Formális módszerek az informatikában 2006/2007. Révkomárom

  24. Melyek a programunk lehetséges lefutásai? Formális módszerek az informatikában 2006/2007. Révkomárom

  25. A processzorok Kripke modellje {p1.wait, p2.wait} 1 Formális módszerek az informatikában 2006/2007. Révkomárom

  26. A processzorok Kripke modellje 1 állapotátmenet (lépés) =1 utasítás végrehajtása {p1.wait, p2.wait} 1 2 3 {p1.ring, p2.wait} {p1.wait, p2.ring} Formális módszerek az informatikában 2006/2007. Révkomárom

  27. A processzorok Kripke modellje {p1.wait, p2.wait} 1 2 3 {p1.ring, p2.wait} {p1.wait, p2.ring} 4 {p1.talk, p2.talk} Formális módszerek az informatikában 2006/2007. Révkomárom

  28. A processzorok Kripke modellje Szinkronizáció {p1.wait, p2.wait} 1 2 3 {p1.ring, p2.wait} {p1.wait, p2.ring} 4 {p1.talk, p2.talk} Formális módszerek az informatikában 2006/2007. Révkomárom

  29. A processzorok Kripke modellje {p1.wait, p2.calc} {p1.calc, p2.wait} 5 6 {p1.wait, p2.wait} 1 2 3 {p1.ring, p2.wait} {p1.wait, p2.ring} 4 {p1.talk, p2.talk} Formális módszerek az informatikában 2006/2007. Révkomárom

  30. A processzorok Kripke modellje {p1.calc, p2.calc} 7 {p1.wait, p2.calc} {p1.calc, p2.wait} 5 6 {p1.wait, p2.wait} 1 2 3 {p1.ring, p2.wait} {p1.wait, p2.ring} 4 {p1.talk, p2.talk} Formális módszerek az informatikában 2006/2007. Révkomárom

  31. A processzorok Kripke modellje {p1.calc, p2.calc} 7 {p1.wait, p2.calc} {p1.calc, p2.wait} 5 6 {p1.wait, p2.wait} 8 1 9 {p1.calc, p2.ring} {p1.ring, p2.calc} 2 3 {p1.ring, p2.wait} {p1.wait, p2.ring} 4 {p1.talk, p2.talk} Formális módszerek az informatikában 2006/2007. Révkomárom

  32. Tranzíciós rendszer Kripke modellje KS = (S, R, I, L) • S: állapotok véges halmaza • a V állapotváltozóknak összes lehetséges lekötése • R  S  S: állapotátmeneti reláció • Acti(V, V’) (pc = li) guard  v1’ = e1 … vn’ = en  (pc = lj) • R  • I  S: kezdőállapotok halmaza • L: S  2AP az állapotok cimkézése atomi kijelentésekkel • egy állapot több cimkét is tartalmazhat • true  L(s) és false  L(s) Formális módszerek az informatikában 2006/2007. Révkomárom

  33. Processzorok (egyszerűsített változat) Figyelem! Ez a megoldás azért működik,mert egy processzorra minden állapotban maximum egy igaz címke volt a Kripkemodellben TYPE State_Type = {wait, ring, calc, talk}; VARIABLES p1.state, p2.state: State_Type; INITIALIZATION p1.state = wait; p2.state = wait; TRANSITIONS t1a: (p1.state = wait && !p2.state = ring)  p1.state’ = ring; t1b: (p2.state = wait && !p1.state = ring)  p2.state’ = ring; t2a: (p1.state = wait && !p2.state = ring)  p1.state’ = calc; t2b: (p2.state = wait && !p1.state = ring)  p2.state’ = calc; t3a: (p1.state = calc)  p1.state’ = wait; t3b: (p2.state = calc)  p2.state’ = wait; t4a: (p1.state = wait && p2.state = ring)  p1.state’=talk; p2.state’ = talk; t4a: (p2.state = wait && p1.state = ring)  p1.state’=talk; p2.state’ = talk; t5: (p1.state = talk && p2.state = talk)  p1.state’ = wait; p2.state’ = wait; Miért jobb ez a megoldás gyakorlati szemszögből? Formális módszerek az informatikában 2006/2007. Révkomárom

  34. Processzorok (egyszerűsített változat?) Figyelem! A Kripke modell természetesenazonos mindkét esetben. {p1.state=calc, p2.state=calc} 7 {p1.state = wait, p2.state = calc} {p1.state = calc, p2.state = wait} 5 6 {p1.state= wait, p2.state =wait} {p1.state = calc, p2.state = ring} {p1.state = ring, p2.state = calc} 8 1 9 2 3 {p1.state = ring, p2.state = wait} {p1.state = wait, p2.state = ring} 4 {p1.state = talk, p2.state = talk} Formális módszerek az informatikában 2006/2007. Révkomárom

  35. Több folyamat Kripke modellje(Átlapolás, Szinkronizáció) Formális módszerek az informatikában 2006/2007. Révkomárom

  36. Egy processzor Kripke modellje Őrfeltétel {p1.calc} {p2.calc} 4 D [!p2.ring] [!p1.ring] {p2.wait} {p1.wait} 1 A [!p2.ring] [!p1.ring] 2 B {p1.ring} {p2.ring} Szinkronizáció Szinkronizáció 3 C {p1.talk} {p2.talk} Formális módszerek az informatikában 2006/2007. Révkomárom

  37. Folyamat- és rendszerszintű Kripke modellek/automaták (KA) Probléma: • A rendszert konkurensen futó folyamatok alkotják • Hogyan származtassuk a rendszerszintű Kripke modellt az egyes folyamatok Kripke modelljeiből? Alapfogalmak: • Átlapolás: a két folyamat közül pontosan az egyik lép • Szinkronizáció: a két folyamat egyszerre lép • Őrfeltétel: megnézzük, hogy a másik automata aktuális állapotában igaz-e a logikai feltétel(atomi kijelentések + Boole logikai operátorok) Formális módszerek az informatikában 2006/2007. Révkomárom

  38. Rendszerszintű KA generálása Naív módszer: • Vegyük az állapothalmaz direkt szorzatát • Vizsgáljuk meg a tranzíciókat • sima tranzíció: átlapolás, tehát lép a rendszer KA • őrfeltételes tranzíció: a feltétel függvényében lép a rendszer KA • szinkronizált tranzíció: mindkét KA egyszerre lép • Probléma: nem elérhető állapotokat is generálunk Továbbfejlesztés (on-the-fly): • Mélységi gráfbejárás a teljes állapottér (direkt szorzat) generálása helyett Formális módszerek az informatikában 2006/2007. Révkomárom

  39. A komponensek Kripke automatája {p1.calc} {p2.calc} 4 D [!p2.ring] [!p1.ring] {p2.wait} {p1.wait} 1 A [!p2.ring] [!p1.ring] 2 B {p1.ring} {p2.ring} 3 C {p1.talk} {p2.talk} Formális módszerek az informatikában 2006/2007. Révkomárom

  40. A rendszer Kripke modellje {p1.calc, p2.calc} 4D {p1.wait, p2.calc} {p1.calc, p2.wait} 4A 1D {p1.wait, p2.wait} 4B 1A 2D {p1.calc, p2.ring} {p1.ring, p2.calc} 2A 1B {p1.ring, p2.wait} {p1.wait, p2.ring} 3C {p1.talk, p2.talk} Formális módszerek az informatikában 2006/2007. Révkomárom

More Related