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
|
|
- Edit Kerekesné
- 8 évvel ezelőtt
- Látták:
Átírás
1 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
2 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
3 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 Why the Vasa Sank: 10 Problems and Some Antidotes for Software Projects. By Richard E. Fairley and Mary Jane Willshire. IEEE Software, March-April
4 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
5 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: 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
6 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
7 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
8 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
9 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 % ráfordítás 9
10 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 % ráfordítás 10
11 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
12 Biztonságkritikus szoftverek fejlesztése IEC 61508: Szoftver tervezés és fejlesztés előírásai 12
13 Mik azok a formális módszerek? A formális módszerek célja és eszközei 13
14 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
15 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
16 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
17 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
18 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
19 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
20 Alapmodellek Alapvető modellezési formalizmusok 21
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
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
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
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
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 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
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
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
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
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, 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
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
31 Követelmények formalizálása 32
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
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
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
35 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
36 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
37 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 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
38 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
39 Lineáris idejű temporális logika: PLTL 42
40 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
41 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
42 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
43 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
44 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
45 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
46 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
47 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
48 Elágazó idejű temporális logikák: CTL, CTL* 51
49 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
50 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
51 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
52 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
53 CTL*: Computational Tree Logic * 56
54 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
55 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
56 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
57 CTL: Computational Tree Logic 63
58 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
59 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
60 CTL operátorok (példák) EX P EF P EG P AX P AF P AG P 66
61 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
62 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
63 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
64 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
65 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
66 Formális módszerek értékelése Mit várhatunk? Korlátok, sikertörténetek 73
67 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
68 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
69 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
70 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: Év Modellellenőrző eszközök képességei: méretű állapottér (ROBDD-vel, 1990) méretű állapottér speciális esetben méretű állapottérre is volt példa (MIT TDK) 77
71 Sikertörténetek 78
72 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
73 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
74 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
75 Ö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
A formális módszerek szerepe
A formális módszerek szerepe dr. Majzik István dr. Bartha Tamás dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék 1 Matematikai technikák, Formális módszerek elsősorban diszkrét
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 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
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
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
A formális módszerek szerepe
A formális módszerek szerepe dr. Majzik István dr. Bartha Tamás dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék 1 Mik azok a formális módszerek? Matematikai technikák, elsősorban
Követelmények formalizálása: Temporális logikák
Követelmények formalizálása: Temporális logikák dr. Bartha Tamás BME Közlekedés- és Járműirányítási Tanszék dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Miért jó a követelményeket
Alapszintű formalizmusok
Alapszintű formalizmusok dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények
Részletes szoftver tervek ellenőrzése
Részletes szoftver tervek ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.mit.bme.hu/~majzik/ Tartalomjegyzék A részletes
A formális módszerek szerepe
A formális módszerek szerepe dr. Majzik István dr. Bartha Tamás dr. Pataricza András BME Méréstechnika és Információs ek Tanszék 1 Mik azok a formális módszerek? 2 Matematikai technikák Formális módszerek
Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális vagy félformális tervek Informális követelmények Formális modell: KS, LTS, TA
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 dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mintapélda: Kölcsönös kizárás 2 résztvevőre, 3 megosztott változóval (H. Hyman, 1966)
Formális verifikáció Modellezés és modellellenőrzés
Formális verifikáció Modellezés és modellellenőrzés Rendszertervezés és -integráció előadás dr. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Temporális logikák és modell ellenırzés
Temporális logikák és modell ellenırzés Temporális logikák Modális logika: kijelentések különböző módjainak tanulmányozására vezették be (eredetileg filozófusok). Ilyen módok: esetleg, mindig, szükségszerűen,
Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális vagy félformális tervek Informális követelmények Formális modell: KS, LTS, TA
Formális modellezés és verifikáció
Formális modellezés és verifikáció Rendszertervezés és -integráció előadás dr. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék BME-MIT Célkitűzések
A formális módszerek szerepe a rendszerek biztonságának növelésében
A formális módszerek szerepe a rendszerek biztonságának növelésében Dr. Bartha Tamás BME Közlekedésmérnöki és Járműmérnöki Kar Közlekedés- és Járműirányítási Tanszék A formális módszerek rövid bemutatása
Valószínűségi modellellenőrzés Markov döntési folyamatokkal
Valószínűségi modellellenőrzés Markov döntési folyamatokkal Hajdu Ákos Szoftver verifikáció és validáció 2015.12.09. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
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
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 Formális modellek használata és értelmezése Formális modellek
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 Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)
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 Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)
Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő
Modellellenőrzés a vasút automatikai rendszerek fejlesztésében XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő 2018.04.25-27. Tartalom 1. Formális módszerek state of the art 2. Esettanulmány
Részletes tervek ellenőrzése
Szoftverellenőrzési technikák Részletes tervek ellenőrzése Majzik István http://www.inf.mit.bme.hu/ 1 Tartalomjegyzék Áttekintés Milyen szerepe van a részletes terveknek? Milyen ellenőrzési módszerek vannak?
Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Korlátos modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Hol tartunk most? Alacsony szintű formalizmusok (KS, LTS, KTS) Magasabb szintű formalizmusok Temporális
Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem 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 Ismétlés: Mire használunk modelleket? Kommunikáció, dokumentáció Gondolkodás,
Alapszintű formalizmusok
Alapszintű formalizmusok dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények
Alapszintű formalizmusok
Alapszintű formalizmusok dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Modellek a formális ellenőrzéshez Leképzések Mérnöki modellek Magasabb szintű formalizmusok PN, CPN, DFN,
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
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 1 Hol tartunk most? Alacsony szintű formalizmusok (KS, LTS, KTS)
Szoftverminőségbiztosítás
NGB_IN003_1 SZE 2014-15/2 (13) Szoftverminőségbiztosítás Szoftverminőség és formális módszerek Formális módszerek Formális módszer formalizált módszer(tan) Formális eljárások alkalmazása a fejlesztésben
Zárthelyi mintapéldák. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Zárthelyi mintapéldák Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Elméleti kérdések Indokolja meg, hogy az A (X Stop F Start) kifejezés szintaktikailag helyes kifejezés-e CTL illetve
Modell alapú tesztelés mobil környezetben
Modell alapú tesztelés mobil környezetben Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A terület behatárolása Testing is an activity performed
Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok
Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Program verifikálás Konkurens programozási megoldások terjedése -> verifikálás szükséges, (nehéz) logika Legszélesebb körben alkalmazott
Szoftver-modellellenőrzés absztrakciós módszerekkel
Szoftver-modellellenőrzés absztrakciós módszerekkel Hajdu Ákos Formális módszerek 2017.03.22. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 BEVEZETŐ 2
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések 1. Az informatikai rendszereknél mit ellenőriznek validációnál és mit verifikációnál? 2. A szoftver verifikációs technikák
Autóipari beágyazott rendszerek. Kockázatelemzés
Autóipari beágyazott rendszerek Kockázatelemzés 1 Biztonságkritikus rendszer Beágyazott rendszer Aminek hibája Anyagi vagyont, vagy Emberéletet veszélyeztet Tipikus példák ABS, ESP, elektronikus szervokormány
A fejlesztési szabványok szerepe a szoftverellenőrzésben
A fejlesztési szabványok szerepe a szoftverellenőrzésben Majzik István majzik@mit.bme.hu http://www.inf.mit.bme.hu/ 1 Tartalomjegyzék Biztonságkritikus rendszerek A biztonságintegritási szint Az ellenőrzés
Verifikáció és validáció Általános bevezető
Verifikáció és validáció Általános bevezető Általános Verifikáció és validáció verification and validation - V&V: ellenőrző és elemző folyamatok amelyek biztosítják, hogy a szoftver megfelel a specifikációjának
Nagy bonyolultságú rendszerek fejlesztőeszközei
Nagy bonyolultságú rendszerek fejlesztőeszközei Balogh András balogh@optxware.com A cég A BME spin-off-ja A Hibatűrő Rendszerek Kutatócsoport tagjai alapították Tisztán magánkézben Szakmai háttér Hibatűrő
Automatikus tesztgenerálás modell ellenőrző segítségével
Méréstechnika és Információs Rendszerek Tanszék Automatikus tesztgenerálás modell ellenőrző segítségével Micskei Zoltán műszaki informatika, V. Konzulens: Dr. Majzik István Tesztelés Célja: a rendszerben
Forráskód generálás formális modellek alapján
Forráskód generálás formális modellek alapján dr. Majzik István Horányi Gergő és Jeszenszky Balázs (TDK) BME Méréstechnika és Információs Rendszerek Tanszék 1 Modellek a formális ellenőrzéshez Hogyan használhatók
Sztochasztikus temporális logikák
Sztochasztikus temporális logikák Teljesítmény és szolgáltatásbiztonság jellemzők formalizálása és ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs
Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD)
Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD) dr. Majzik István dr. Pataricza András dr. Bartha Tamás BME Méréstechnika és Információs Rendszerek Tanszék 1 Hol tartunk? Alacsony
A szoftverellenőrzés szerepe
A szoftverellenőrzés szerepe Majzik István majzik@mit.bme.hu http://www.inf.mit.bme.hu/ 1 Motiváció Tartalomjegyzék Milyen minőségi igények vannak a szoftverrel szemben, és mit tud ma a szoftveripar? Miért
Elérhetőségi analízis Petri hálók dinamikus tulajdonságai
Elérhetőségi analízis Petri hálók dinamikus tulajdonságai dr. Bartha Tamás Dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék Petri hálók vizsgálata Az elemzés mélysége szerint: Vizsgálati
Formális módszerek GM_IN003_1 Bevezetés
Formális módszerek GM_IN003_1 Formális módszerek Formális módszer! formalizált módszer(tan) Formális eljárások alkalmazása a fejlesztésben nincs olyan formális eljárás, ami egy komplex rendszer minden
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszé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 Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron
Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése
Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése Somogyi Ferenc Attila 2016. December 07. Szoftver verifikáció és validáció kiselőadás Forrás Mathijs Schuts and Jozef
Időzített átmeneti rendszerek
Időzített átmeneti rendszerek Legyen A egy ábécé, A = A { (d) d R 0 }. A feletti (valós idejű) időzített átmeneti rendszer olyan A = (S, T,,, ) címkézett átmeneti rendszert ( : T A ), melyre teljesülnek
Időt kezelő modellek és temporális logikák
Időt kezelő modellek és temporális logikák Valósidejű rendszerek követelményeinek formalizálása és ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs
Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD)
Hatékony technikák modellellenőrzéshez: Szimbolikus technikák (ROBDD) dr. Majzik István dr. Pataricza András dr. Bartha Tamás BME Méréstechnika és Információs Rendszerek Tanszék 1 Hol tartunk? Alacsony
Magasabb szintű formalizmus: Állapottérképek (statecharts) dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
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ű
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben. Ráth István
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben Ráth István rath@mit.bme.hu A grafikus nyelvek... mindenhol ott vannak: Grafikus felületek (Visual Studio) Relációs sémák (dbdesign)
Modellezési alapismeretek
Modellezési alapismeretek Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom
A szoftver-folyamat Szoftver életciklus modellek Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 4. Roger S. Pressman: Software Engineering, 5th e. chapter 2. 2 A szoftver-folyamat Szoftver
UML (Unified Modelling Language)
UML (Unified Modelling Language) UML (+ Object Constraint Language) Az objektum- modellezés egy szabványa (OMG) UML A 80-as, 90-es években egyre inkább terjedő objektum-orientált analízis és tervezés (OOA&D)
Szoftver értékelés és karbantartás
Szoftver értékelés és karbantartás Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.mit.bme.hu/~majzik/ Emlékeztető: Biztonsági követelmények
Szoftver karbantartás
Szoftver karbantartás Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.mit.bme.hu/~majzik/ Áttekintés Követelményspecifikálás Architektúra
Modellezési alapismeretek
Modellezési alapismeretek Rendszermodellezés Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs
KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA
KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA Szoftver Verifikáció és Validáció, 2015 Ősz Vaitkus Márton Tartalom Motiváció Maple MiniMaple MiniMaple típusellenőrzése MiniMaple formális specifikációja MiniMaple
Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert
Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája Készítette: Urbán Norbert Szoftver-minőség A szoftver egy termelő-folyamat végterméke, A minőség azt jelenti,
... 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.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. 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. Folyamat
Szoftver karbantartási lépések ellenőrzése
Szoftverellenőrzési technikák (vimim148) Szoftver karbantartási lépések ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.inf.mit.bme.hu/
Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK
Modellinformációk szabványos cseréje Papp Ágnes, agi@delfin.unideb.hu Debreceni Egyetem EFK Tartalom MOF, UML, XMI Az UML és az XML séma MDA - Model Driven Architecture Networkshop 2004 2 Az OMG metamodell
Informatikai technológiák szakirány Rendszertervezés ágazat
Méréstechnika és Információs Rendszerek Tanszék Informatikai technológiák szakirány Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A (BSc) Informatikai technológiák
Specifikáció alapú teszttervezési módszerek
Szoftverellenőrzési technikák Specifikáció alapú teszttervezési módszerek Majzik István, Micskei Zoltán http://www.inf.mit.bme.hu/ 1 Klasszikus tesztelési feladat A tesztelendő program beolvas 3 egész
Specifikáció alapú teszttervezési módszerek
Szoftverellenőrzési technikák Specifikáció alapú teszttervezési módszerek Majzik István, Micskei Zoltán http://www.inf.mit.bme.hu/ 1 Klasszikus tesztelési feladat A tesztelendő program beolvas 3 egész
Modell alapú tesztelés: célok és lehetőségek
Szoftvertesztelés 2016 Konferencia Modell alapú tesztelés: célok és lehetőségek Dr. Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika
Szoftver újrafelhasználás
Szoftver újrafelhasználás Szoftver újrafelhasználás Szoftver fejlesztésekor korábbi fejlesztésekkor létrehozott kód felhasználása architektúra felhasználása tudás felhasználása Nem azonos a portolással
S01-7 Komponens alapú szoftverfejlesztés 1
S01-7 Komponens alapú szoftverfejlesztés 1 1. A szoftverfejlesztési modell fogalma. 2. A komponens és komponens modell fogalma. 3. UML kompozíciós diagram fogalma. 4. A szoftverarchitektúrák fogalma, összetevői.
Autóipari beágyazott rendszerek. Komponens és rendszer integráció
Autóipari beágyazott rendszerek és rendszer integráció 1 Magas szintű fejlesztési folyamat SW architektúra modellezés Modell (VFB) Magas szintű modellezés komponensek portok interfészek adattípusok meghatározása
BPEL nyelvű üzleti folyamatok modellezése és formális ellenőrzése
BPEL nyelvű üzleti folyamatok modellezése és formális ellenőrzése Kovács Máté, Gönczy László {kovmate,gonczy}@mit.bme.hu Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések 1. Az informatikai rendszereknél mit ellenőriznek validációnál és mit verifikációnál? 2. A szoftver verifikációs technikák
Modellező eszközök, kódgenerálás
Modellező eszközök, kódgenerálás Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Folyamatmodellezés és eszközei Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Folyamat, munkafolyamat Ez vajon egy állapotgép-e? Munkafolyamat (Workflow):
A szoftverellenőrzés szerepe Alapfogalmak
A szoftverellenőrzés szerepe Alapfogalmak Majzik István majzik@mit.bme.hu http://www.inf.mit.bme.hu/ 1 Motiváció Tartalomjegyzék Milyen minőségi igények vannak a szoftverrel szemben, és mit tud ma a szoftveripar?
Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom
Szoftver újrafelhasználás (Software reuse) Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 18. Roger S. Pressman: Software Engineering, 5th e. chapter 27. 2 Szoftver újrafelhasználás Szoftver
Absztrakció a szoftvertervezésben az Alloy specifikációs nyelv segítségével
Absztrakció a szoftvertervezésben az Alloy specifikációs nyelv segítségével Németh L. Zoltán Számítástudomány Alapjai Tanszék SZTE, Informatikai Tanszékcsoport 2009. szeptember 15. Tartalom Röviden a formális
Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás
Algoritmusok Tervezése 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Mi az algoritmus? Lépések sorozata egy feladat elvégzéséhez (legáltalánosabban) Informálisan algoritmusnak nevezünk bármilyen jól definiált
Modellek fejlesztése
Modellek fejlesztése Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 Tartalom
S01-8 Komponens alapú szoftverfejlesztés 2
S01-8 Komponens alapú szoftverfejlesztés 2 Tartalom 1. Komponens megvalósítása: kölcsönhatás modell, viselkedési vagy algoritmikus modell és strukturális modell. 2. Komponens megtestesítés: finomítás és
Logikai ágensek. Mesterséges intelligencia március 21.
Logikai ágensek Mesterséges intelligencia 2014. március 21. Bevezetés Eddigi példák tudásra: állapotok halmaza, lehetséges operátorok, ezek költségei, heurisztikák Feltételezés: a világ (lehetséges állapotok
Elérhetőségi probléma egyszerűsítése: Állapottér és struktúra redukció Petri-háló alosztályok
Elérhetőségi probléma egyszerűsítése: Állapottér és struktúra redukció Petri-háló alosztályok dr. Bartha Tamás Dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék Elérhetőségi probléma
Modellek fejlesztése
Modellek fejlesztése Molnár Vince, Dr. Pataricza András Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és
Miskolci Egyetem Általános Informatikai Tanszék
Software tesztelés Miskolci Egyetem Általános Informatikai Tanszék Software tesztelés SWTESZT / 1 A tesztelés feladata Két alapvető cél rendszerben található hibák felderítése annak ellenőrzése, hogy a
A tesztelés feladata. Verifikáció
Software tesztelés Miskolci Egyetem Általános Informatikai Tanszék Software tesztelés SWTESZT / 1 A tesztelés feladata Két alapvető cél rendszerben található hibák felderítése annak ellenőrzése, hogy a
Szoftverminőségbiztosítás
NGB_IN003_1 SZE 2017-18/2 (9) Szoftverminőségbiztosítás Specifikáció alapú (black-box) technikák A szoftver mint leképezés Szoftverhiba Hibát okozó bement Hibás kimenet Input Szoftver Output Funkcionális
Biztonsági folyamatirányító. rendszerek szoftvere
Biztonsági folyamatirányító rendszerek szoftvere 1 Biztonsági folyamatirányító rendszerek szoftvere Tartalom Szoftverek szerepe a folyamatirányító rendszerekben Szoftverek megbízhatósága Szoftver életciklus
Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet
Konfiguráció menedzsment bevezetési tapasztalatok Vinczellér Gábor AAM Technologies Kft. Tartalom 2 Bevezetés Tipikus konfigurációs adatbázis kialakítási projekt Adatbázis szerkezet Adatbázis feltöltés
Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Folyamatmodellezés és eszközei Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Folyamat, munkafolyamat Munkafolyamat (Workflow): azoknak a lépéseknek a sorozata,
Modellezési alapismeretek
Modellezési alapismeretek Rendszermodellezés Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs
V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus
V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus 1 Az előadás tartalma A GI helye az informatikában Az előadás tartalmának magyarázata A
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
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 Modellező eszközök: DNAnet, Snoopy, PetriDotNet A DNAnet modellező
Kiterjesztések sek szemantikája
Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból
A modell-ellenőrzés gyakorlata UPPAAL
A modell-ellenőrzés gyakorlata UPPAAL Uppsalai Egyetem + Aalborgi Egyetem közös fejlesztése; 1995. első verzió megjelenése; részei: - grafikus modellt leíró eszköz (System editor) - szimulátor (Simulator)
Futásidőbeli verifikáció
Futásidőbeli verifikáció Szoftverellenőrzési technikák előadás Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Budapesti Műszaki és Gazdaságtudományi
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
Beépített diagnosztika Bokor Péter Tartalom 1. Elosztott diagnosztika: a feladat 2. A diagnosztika kihívása 3. A tagság mint diagnosztika 4. A DECOS diagnosztikai szolgáltatások 5. Kapcsolódó feladatok:
Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?
,,Alap kiskérdések Logika és informatikai alkalmazásai kiskérdések 2012. február 19. 1. Hogy hívjuk a 0 aritású függvényjeleket? 2. Definiálja a termek halmazát. 3. Definiálja a formulák halmazát. 4. Definiálja,
A CMMI alapú szoftverfejlesztési folyamat
A CMMI alapú szoftverfejlesztési folyamat Készítette: Szmetankó Gábor G-5S8 Mi a CMMI? Capability Maturity Modell Integration Folyamat fejlesztési referencia modell Bevált gyakorlatok, praktikák halmaza,
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és
Futásidőbeli verifikáció
Futásidőbeli verifikáció Szoftver- és rendszerellenőrzés előadás dr. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Tartalomjegyzék Célkitűzések
Csoportos üzenetszórás optimalizálása klaszter rendszerekben
Csoportos üzenetszórás optimalizálása klaszter rendszerekben Készítette: Juhász Sándor Csikvári András Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Automatizálási
Monitorok automatikus szintézise elosztott beágyazott rendszerek futásidőbeli verifikációjához
Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Méréstechnika és Információs Rendszerek Tanszék Monitorok automatikus szintézise elosztott beágyazott rendszerek futásidőbeli