Download
form lis m dszerek i n.
Skip this Video
Loading SlideShow in 5 Seconds..
Form ális módszerek I PowerPoint Presentation
Download Presentation
Form ális módszerek I

Form ális módszerek I

89 Views Download Presentation
Download Presentation

Form ális módszerek I

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Formális módszerek I Alapfogalmak - rendszermodellek Formális módszerek Takács Márta Óbudai Egyetem, NIK, IMRI

  2. A rendszer fogalma A rendszer meghatározott cél érdekében működő egység - egymással kölcsönhatásban lévő elemek meghatározott totalitásként megjelenő sokasága. A rendszer elemei szervezetten kapcsolódnak egymáshoz: fizikai vagy fogalmi entitások, mely kölcsönhatásai révén részt vesznek a rendszerhez tartozó új minőségeklétrehozásában.S. Bármely rendszer leírása során: meg kell határozni a rendszer elemeit és tulajdonságaikat, fel kell tárni az elemek közötti kapcsolatokat, le kell írni, hogy az elemek és a közöttük fennálló kapcsolatok halmazából hogyan válik rendszer. Formális módszerek

  3. A rendszer modellje ezért foglalkozik: A szereplőkkel (ágensek) Kapcsolatrendszerükkel (statikus) Működésükkel (dinamizmus) Formális módszerek

  4. A rendszer életciklusai Tervezés (specifikáció): egyértelmű, érthető, teljes, ellentmondás-mentes modell és terv együttműködés és inter-diszciplináris megközelítés megbízható szolgáltató és jó kommunikáció megrendelő és kivitelező között (később is) Fejlesztés (implementáció): bizonyítottan helyes rendszermodell: verifikáció validáció Egyensúly minőség  költség  idő között Automatizálás, moduláris szerkezet, komponens integráció Fenntartás - fenntarthatóság iteratív folyamat, több életciklus, fokozatos finomítás Formális módszerek

  5. További általános elvárások Informatikai háttér és a szolgáltatás minősége ISO és egyéb szabványoknak való megfeleltetés csak termékminőség reprodukálás konstrukció helyett Hibátlan, érthető, átlátható specifikáció (dokumentálás) Zárt, ellentmondás-mentes, megfelelés Hibátlan implementáció minősített (és lehetőleg automatizált) fejlesztés ellenőrizhető (validáció, automatikus tesztgenerálás) Megállapodás alapján folyamatos fenntartás, visszacsatolás Formális módszerek

  6. Általános lépések Igény felmérés, eszköz- és környezetfelmérés Modell készítés és működés tesztelés Üzembe helyezés és fenntartás Többféle modell születik ezen elvek alapján Ábrák forrása: Dr. Pataricza András Formális módszerek

  7. IT rendszerfejlesztés ciklusai Probléma Követelményanalízis Mi a megoldandó probléma? Milyen megoldási módszerek/eszközök léteznek? Koncepciótervezés Hogyan oldható meg afeladat? Rendszertervezés Implementáció Hogyan valósítható mega feladat megoldása? Implementáció Formális módszerek Tesztelés Megoldottuk a problémát? A megrendelő megfelelőnek tartjaa kész rendszert? Üzembehelyezés Üzemeltetés, karbantartás Továbbfejlesztés szükséges? Fenntarthatóság

  8. Vízesés modell Koncepció tervezés Rendszer allokáció Követelmény tervezés Rendszer tervezés Implementáció Formális módszerek Verifikáció & Validáció Telepítés Üzemeltetés & Karbantartás

  9. V modell verifikáció verifikáció kompozíció Formális módszerek dekompozíció

  10. Verifikáció és validáció szerepe Verifikáció: jól építjük-e a rendszert? Validáció: jó rendszert építünk-e? Specifikáció1 transzformáció, finomítás Formális módszerek t1 Specifikáció2 Rendszer2 Specifikáción Rendszern verifikáció Implementáció

  11. Verifikáció és validáció, prototípusok, tesztelés Az eddigi modellek „egy-verziós” életciklust írnak le, de a rendszerfejlesztés iteratív:prototípus  felfedett hibák  továbbfejlesztés  új prototípus Formális módszerek

  12. Boehm-féle spirál modell CÉLOK, ALTERNATÍVÁK,KORLÁTOZÁSOK MEGHATÁROZÁSA Kockázati tényezők felmérése ls kezelése Formális módszerek Tervezés, itteráció FEJLESZTÉS ÉS TESZTELÉS

  13. Hogyan modellezzünk, milyen eszközökkel? Legyen formalizálható szintaktikailag és interpretációja ellenőrizhető szemantikailag Legyen matematikai eszközrendszere Legyen szoftvermegvalósítása Továbbá: Írjunk hibátlan feladat- és rendszerspecifikációt Modulárisan építkezve törekedjünk a komponensek együttműködésére, a statikus (strukturális) és dinamikus modellekben is A matematikai leírás legyen funkcionális és strukturális (célszerűen grafikus formában) A végrehajthatóság és ellenőrizhetőség (Validáció Verifikáció) szempontjai: konzisztencia, ellentmondás-mentesség teljesség, zártság verifikáció: modellek között validáció: a modellek és a rendszer között Formális módszerek

  14. Problémák A valósághű modellezés komplex (modellméret, állapottér méret), „kisméretű” problémákra átlátható, aztán bonyolódik Megoldandó az időkezelés ( hibrid, idővariáns, nemlineáris) környezetmodellezés (modellbázisú / nem modell bázisú) A sokféle matematikai területről, nehéz matematikai jelölésrendszer - a matematikai algoritmus hatékonysága ellenőrizendő speciális ismeretekre van szükség a felhasználótól: a modellező és a megrendelő összehangolt munkájára van szükség Általában: diszkrét állapotú, diszkrét idejű, diszkrét eseményterű rendszerek modellezése lehetséges Sokféle nyelv, hatékonyságuk, kifejezőerejük változó (pl. UML) Formális módszerek

  15. Források Dr. Pataricza András, dr. Bartha Tamás, Majzik István előadásai (BME Méréstechnika és Információs Rendszerek Tanszék) Pataricza, A., Formális módszerek az informatikában. Typotex, 2004. Formális módszerek

  16. Formális módszerek II Peri hálók Formális módszerek Takács Márta Óbudai Egyetem, NIK, IMRI

  17. A Petri-hálók egyidejűleg nyújtanak grafikus és matematikai reprezentációt Konkurens (benne egyidejűleg működő, önálló egységek kommunikálnak egymással úgy, hogy ezen egységek egymáshoz képest tetszőleges működési fázisban vannak) Aszinkron (eseményvezérelt rendszer) Elosztott (egyes rendszerelemek között funkcionális tagolódás van, azaz valamilyen megegyezés arról, ki milyen feladatot lásson el a teljes és hatékony működés érdekében) Párhuzamos (konkurens párhuzamos rendszerek a rendszerelemek között szoros szinkronizáció áll fenn) nemdeterminisztikus és/vagy sztochasztikus (egy-egy adott állapotából nem egyértelmű, melyik állapot lesz a következő) rendszerek modellezésére. Formális módszerek

  18. Carl Adam Petri (1926-2010) Petri a 60-as évek elején publikálta a róla elnevezett módszert. Struktúrával fejezi ki a vezérlést és az adatszerkezetet egyaránt. Előnye, hogy minden más ábrázolásmód kiteríthető Pethi-hálóvá, hátránya: már egyszerű feladatok leírása is hatalmas hálót eredményez. Kiforrott matematikai háttére miatt ez a leírásmód rendkívül hatékony eszköz lehet rendszerek analízisére, ha a rendszer modelljét valamely kompaktabb modellezésből automatikusan származtatjuk. Formális módszerek

  19. Petri hálók struktúrája Strukturálisan: irányított, súlyozott, páros gráf Kétféle csomópont: hely: pP tranzíció: tT Irányított élek (páros gráf): hely  tranzíció tranzíció  hely eE :(P  T)(T  P) Formális módszerek 2

  20. Petri STRUKTÚRA = 3 Dinamikus működés, tokenekkel PN = <P, T, E, W, M0> Formális módszerek

  21. Dinamikus működés állapotváltozókkal Állapotjelölő token („szereplő”) A ely állapotát jellemzi a benne levő tokenek száma Hálózat állapota: az egyes helyek állapotainak összessége Állapotvektor: a p = |P| (pozicíók halmazának számossága) komponensű M token eloszlás vektor Az mi komponense a pi helyen található tokenek száma Formális módszerek 2 3 • Kezdőállapot: M0 kezdő token elosztás

  22. Rendszer állapotváltozásainak modellezése Állapot megváltozása: tranzíciók „tüzelése” engedélyezettség vizsgálata tüzelés végrehajtása tokenek elvétele a bemeneti helyekről tokenek kirakása a kimeneti helyekre megváltozott token eloszlás vektor új állapotot eredményez Formális módszerek 2 Megjegyzés: a forrás tranzíciónak nincs bemenete, és mindig képes tüzelni, a nyelő tranzíciónak nincs kimenete, így a tüzelés során a hozzá érkező tokeneket „elnyeli”. 3

  23. Példa A P1 állapotban 3, a P2-ben 1, P3-ban 0 token van. A T1 tranzíciónak két bemenő (P1-ből és P2-ből), és két kimenő (P2-be és P3-ba) éle van. Két élnek van 1-től különböző súlya: a P1T2 él 2, a T2P1 él 3 súlyú. állapotátmenet helyett tüzelés: az a folyamat, amely során a tokenek ide-oda vándorolnak a hálón belül. Egy tranzíció akkor tüzelhet, ha az összes bemenő éléhez csatlakozó helyen van legalább annyi token, amennyi az adott él súlya. A következő tüzelő tranzíció a T1 lesz Formális módszerek

  24. Hogyan néz ki a fenti háló a T1 tranzíció tüzelése után? Formális módszerek T1 és T2 állapot tüzelhető. ??? Ha egyszerre több tranzíció is tüzelhetővé válik, akkor is egyetlen tranzíció tüzel a következő alkalommal (a következő logikai időpillanatban), de hogy melyik, az előre teljesen kiszámíthatatlan (a Petri-háló nemdeterminisztikus működése).

  25. A T1 tüzelése után Formális módszerek T2 tüzelése után

  26. -T2 tranzíció ismét nem képes tüzelésre -ha a T1 tranzíció még egy alkalommal tüzel, akkor a P1 helyen nem marad több token, a háló holtpontba (deadlock) kerül Formális módszerek megegyezik a kiinduló tokeneloszlással

  27. Matematikai formalizmus Egy adott token-eloszlást az az M vektor jelöl egy adott állapotban M0 a kezdeti állapotot jelöli Formális módszerek T1 tüzelése után

  28. Mit látunk a működés alapján? A Petri háló: nemdeterminisztikus véges automata állapotvektor: token eloszlás vektor Állapot-átmeneti függvény: tranzíciók Felépítése: egy-egy hely  egy-egy logikai feltétel a struktúra követi a feladat logikai dekompozícióját Formális módszerek

  29. Matematikai formalizmus Formális módszerek

  30. Gráf - Topológia n(P  T ) csomópont n ősei és n utódai: tT ősei a bemeneti helyei: t = {p |(p,t )  E } tT utódai a kimeneti helyei: t = {p |(t,p )  E } pP ősei a bemeneti tranzíciói: p = {t |(t,p )  E } pP utódai a kimeneti tranzíciói:p = {t |(p,t )  E } Formális módszerek

  31. Topológia Csomópontok P’ P ill. tranzíciók T’ T részhalmazára • t T forrás (nyelő) tranzíció: • Bemenő (kimenő) hely nélküli (t =  illetve t = ) • Forrás tranzíció minden esetben tud tüzelni • PN tiszta, ha nincsenek önhurkai, azaz • t T : tt =  Formális módszerek

  32. Példa t1 2 p1 p4 t2 3 4 p2 p5 p3 p6 t3 t1 = {p1} p1 =  p1 = {t1, t2} t2 = {p1, p2, p3} p2 =  p2 = {t2} Formális módszerek p3 = {t3} t3 = {p6} p3 = {t2} p4 = {t1, t2} p4 =  t1 = {p4} p5 = {t2} p5 =  t2 = {p4, p5, p6} p6 = {t2} p6 = {t3} t3 = {p3}

  33. Dinamikus viselkedés matematikai modellje Egy lépés, állapotváltozás: a tranzíció „tüzelése” szavakkal: korábbi állapot: kezdeti token eloszlás vektor tüzelés végrehajtása engedélyezettség vizsgálata tokenek elvétele a bemeneti helyekről tokenek kirakása a kimeneti helyekre új állapot: megváltozott token eloszlás vektor A tranzíció tüzelési feltétele matematikai formalizmussal Ha egy tT tranzíció minden bemeneti helyét legalább w-(p,t) token jelöli (w-(p,t) a p-ből t-be vezető e = (p,t) él w*(e) súlya)  a tranzíció tüzelése engedélyezett, ha Formális módszerek

  34. Állapotátmenet és szomszédossági mátrix A tranzíció tüzelésekor a rendszer elvesz w-(p, t) darab tokent a ptbemeneti helyekről w-(p, t) a ptél súlya elhelyez w+(t, p) darab tokent a ptkimeneti helyekre w+(t, p) a tpél súlya A súlyozott szomszédossági mátrix: W = [w(t, p)] az élsúlyok szerinti tüzelési előfeltételeket modellezi Dimenziója: tp = |T|  |P| A szomszédossági mátrix és az aktuális állapotmátrix alapján számíthatjuk az új állapotmátrixot Ha t tüzel, mennyit változik a p-beli tokenszám: Formális módszerek ha (t, p)  E és (p, t)  E 0 w(t, p) = w+(t, p) – w-(p, t) ha (t, p)  E vagy (p, t)  E

  35. Szomszédossági mátrix példa t1 2 p4 p1 t2 3 4 p2 p5 p3 p6 t3 • w-(p, t ) a p tél súlya w(t, p) = w+(t, p) – w-(p, t) Formális módszerek • w+(t, p ) a t pél súlya

  36. Szimuláció Petri-hálókkal A Petri-háló tevékenységeit, akcióit olyan elemi (atomi) eseményekre bontjuk, amelyek tovább már nem oszthatóak. Esetünkben atomi eseménynek mondunk egy tranzíció tüzelését, így az összetett események a tüzelési szekvenciákat jelentik (az egymás után végrehajtható tüzelések sorozatát). Az eseményeket a rendszerben szereplő állapotváltozókkal szimuláljuk. Formális módszerek

  37. Tüzelési szekvencia Állapotátmeneti trajektória egymást követő tüzelések hatására felvett állapotok Tüzelési szekvencia  = Mi0 ti1 Mi1 … tin Minti1 … tin Ha az összes tranzíció kielégíti a tüzelési szabályt: Min állapot Mi0-ból elérhető a tüzelési szekvencia által: Mi0[ > Min Formális módszerek

  38. Formális módszerek III Kiterjesztett Petri struktúra Formális módszerek

  39. Nemdeterminisztikus működés Tüzelés végrehajtása: Engedélyezett tranzíció tetszése szerint tüzelhet vagy nem Konfliktus: több tranzíció engedélyezett: egy lépésben csak egy engedélyezett tranzíció tüzelhet konfliktusfeloldás véletlen választással Véletlenszerű tüzelés további következményei: implicit időfogalom, nincs időskála a tüzelés a [0, ) időintervallumban valahol megtörténhet Lehetséges megoldás: a tüzelésekhez tetszőleges konkrét időértéket rendelve az azonos struktúrájú és kezdőállapotú nem-determinisztikus időzítetlen Petri háló annak minden lehetséges tüzelési szekvenciáját lefedi. És a többi lehetőség a véletlenszerű viselkedési forma kiküszöbölésére? Formális módszerek

  40. A kiterjesztés okai és lehetőségei PN = < P, T, E, W, M0, ….> Időkorlátok, Átláthatóság, Nem-determinisztikus működés Formális módszerek

  41. I. Időzítés A rendszeren belüli működésnél megfigyelhető: Fizikai idő (óránkkal, a napszakok változásával stb. mérhetünk, tehát ami a rendszertől független), objektív időskálán szemléltethető (többnyire szabályosan periodikus). A logikai idő: a rendszer működésétől függ, viszonyítási pontjai a bekövetkezett események, Petri-hálók esetében a tüzelések. implicit időfogalmat kacsolunk rendszerünkhöz, amelyben egy engedélyezett tranzíció tüzelése a [0, ) intervallumban bárhol megtörténhet (fire-at-will). A [T1, T2, T1, T1] tüzelési szekvencia a fizikai és a logikai időben : Formális módszerek

  42. Időzítés bevezetésePélda: nyolcas számláló egyetlen token kering a rendszerben, amelynek minden ugrása a számláló egy ugrását jelenti: kezdetben a token a P0 helyen van. A következő tüzeléskor átkerül az P1-es állapotba, majd a P2-be stb. A kör végén a P7-es helyrők ismét a P0-ba ugrunk, és kezdődik az egész számlálás elölről. DE: a tüzelésekhez kötött logikai idő semmit nem mond arról, hogy fizikailag mikor következik be a következő ugrás. Formális módszerek Forrás: Molnár Ágnes: Formális módszerek az informatikában (1), NetAkadámia Tudástár

  43. Vezessünk be órajelet! Első megközelítésben ez egyetlen forrás-tranzíciót jelent, amely tokeneket juttat a rendszerbe az alábbi módon: A CLK bizonyos időközönként tokent juttat a rendszerbe. Az újabb élek felvételével a tranzíciók már csak akkor tüzelhetnek, ha a középső állapotban van token, azaz „ütött az óra”. ha van is órajel-tokenünk, akkor sem garantált, hogy a soron következő tranzíció tüzel a következő óraütés előtt. Formális módszerek Sajnos a Petri-hálók sajátosságai miatt ezt nem tudjuk garantálni, de azt igen, hogy az óra ne üthessen addig, amíg az előző órajelre nem történt ugrás a számlálóban.Korlátozzuk tehát a középső állapot kapacitását egyetlen tokenre (ezt jelöli a beleírt 1-es). Ez azt jelenti, hogy azon a helyen maximum 1 token lehet egyszerre, tehát bemenő tranzíció nem tüzelhet, amíg a tüzelés túllépné a kapacitáskorlátot. Így ha esetünkben egyszer már ütött az óra, tehát van órajel-token a rendszerben, akkor mindaddig nem üthet újra az óra, amíg ez el nem tűnik, azaz amíg a számláló nem lép egyet. Így biztosíthatjuk azt, hogy minden órajelre egyet és pontosan egyet lépjen a számlálónk.

  44. II. A kapacitáskorlát Példa: a kiindulási helyzetben egyetlen tokenünk van, a P1 helyen. A T1 tranzakció tüzelési feltétele, hogy P1-en legyen token, ezúttal ez teljesül. A T2 tranzakció jelenleg nem engedélyezett, hiszen P2-ben nincs token. T1 minden egyes tüzelése eggyel megnöveli a tokenek számát, vagyis nincs felső korlát arra, hogy a rendszerben mennyi token lesz, ha tetszőlegesen hosszú ideig magára hagyjuk futás közben. Ezáltal arra sem tudunk korlátot adni, hogy egy-egy állapotban hány tokenünk lesz. Ezt hivatott megoldani a kapacitáskorlát, p1 Formális módszerek Ha bevezetünk egy K(P2)=4 kapacitáskorlátot, az azt jelenti, hogy a P2 helyen maximum 4 token lehet egyszerre, s ez a T1 tranzíció tüzeléséhez is egy újabb, korlátozó feltételt jelent (ha P2-n már 4 token tartózkodik, akkor a T1 tüzelése nem engedélyezett, hiába van token P1-en).

  45. Ha azt akarjuk elérni, hogy a P2 (kelet) helyen maximum k=4 darab token legyen, be kell vezetnünk egy adminisztrációs helyet (P2’), ahol azt tartjuk számon, hogy a P2 helyre hány token fér még el. Így az adott helyen lévő tokenek számát m-mel jelölve mindig igaz lesz az alábbi összefüggés: m(P2’)+m(P2)=k. Hogyan felügyelhető, hogy ez minden esetben így legyen? Kezdetben a P2’ helyen legyen k darab token, P2-n pedig 0. A P2-vel szomszédos tranzakciókhoz vegyünk fel új éleket az alábbiaknak megfelelően: ha a tranzíció a darab tokent vesz el a P2 helyről, akkor az új élen adjon a darabot a P2’-höz. Ha pedig b tokent ad P2-höz, akkor ugyanennyit vegyen el P2’-ből. A módosított T1 tranzíció tehát nemcsak hozzáad P2-höz 2 db. tokent, hanem ugyanennyit el is vesz a P2’ adminisztrációs helyről. Hasonlóan T2 elvesz 1 tokent P2-ből, és hozzáad egyet P2’-höz. p1 Formális módszerek

  46. III. Tiltó él A kapacitáskorlát helyett tiltó éleket vehetünk fel A tiltó él azt jelöli, hogy a tranzíció ne tüzeljen, amíg az adott feltétel teljesül. (Az ábrán addig nem tüzel a tranzíció, amíg a P2 helyen van token) Ha a tiltó élhez egy k súlyt is rendelünk, az azt jelenti, hogy ha az él bemeneti helyén az adott k számú, vagy annál több token van, akkor a tranzíció tiltott, ha k-nál kevesebb token szerepel a helyen, akkor a tranzíció engedélyezett. Ezzel a módszerrel azt köthetjük tehát ki, hogy mindaddig nem jöhet óraütés, amíg van token a megfelelő helyen Formális módszerek k

  47. IV. Prioritás A tranzíciókhoz rendelhető prioritás Az engedélyezett tranzíciók közül egy alacsonyabb prioritású mindaddig nem tüzelhet, amíg van engedélyezett ÉS magasabb prioritású tranzíció Prioritási szinten belül továbbra is nemdeterminisztikus választás prioritás Formális módszerek SPN=(P, T, E, W, M0, )

  48. V. Sztochasztikus Petri hálók végrehajtási idő determinisztikus sztochasztikus Az engedélyezettséggel kapcsolatban felmerülő kérdések: Időzítetlen tranzíciók „prioritása” nagyobb: előbb tüzelnek Ha megszűnik az engedélyezettség mi lesz a gyújtási idővel? determinisztikus időzítésű tranzíció exponenciális időzítésű tranzíció Gyújtási időzítés Formális módszerek SPN=(P, T, E, W, M0, )

  49. SPN=(P, T, E, W, M0, ) tüzelési intenzitás  : T  R időzítés: t valószínűségi változó eloszlásfüggvény: sűrűségfüggvény: tüzelési szabály változik: intenzitás ~ prioritás két exponenciális eloszlásminimuma is az: l1 + l2 PN és SPN elérhetőségi gráfja azonos időzített elérhetőségi gráf: folytonos Markov lánc Sztochasztikus Petri hálók Formális módszerek 2014.09.16. 49

  50. További lehetőség: színezett Petri háló (CPN –coloured PN) Színezetlen (P-T) Petri hálók • szinezetlen tokenek • tokenek halmaza • token manipulació • kezdeti jelöles • tiltó elek • élsúlyok • tranzició engedélyezese • konfliktus különböző engedélyezett tranziciók között • ~ assembly nyelv Színezett Petri hálók • színes tokenek • tokenek multihalmaza • adat manipulació • inicializaló kifejezések • őrfeltetelek • elkifejezések (változokkal) • lekötés engedélyezese • konfliktus ugyanazon tranzició engedélyezett lekötései között • ~ magas szintű programnyelv Formális módszerek Forrás: dr. Bartha Tamás: előadás diák