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

Save this PDF as:
 WORD  PNG  TXT  JPG

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "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"

Á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

Részletes szoftver tervek ellenőrzése

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

Részletesebben

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

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,

Részletesebben

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

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

Részletesebben

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

Részletesebben

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

Részletesebben

Alapszintű formalizmusok

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,

Részletesebben

Modell alapú tesztelés mobil környezetben

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Nagy bonyolultságú rendszerek fejlesztőeszközei

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ő

Részletesebben

Sztochasztikus temporális logiká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

Részletesebben

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

Részletesebben

Időzített átmeneti rendszerek

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

Részletesebben

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

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

Részletesebben

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

Részletesebben

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

Részletesebben

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

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

Részletesebben

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

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/

Részletesebben

Szoftver karbantartás

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Szoftver újrafelhasználás

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

Részletesebben

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

Részletesebben

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Miskolci Egyetem Általános Informatikai Tanszék

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

Részletesebben

A tesztelés feladata. Verifikáció

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

Részletesebben

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

Részletesebben

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

Részletesebben

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

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

Részletesebben

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

Részletesebben

Kiterjesztések sek szemantikája

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

Részletesebben

Modellek fejlesztése

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

Részletesebben

Modellek fejlesztése

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Futásidőbeli verifikáció

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

Részletesebben

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

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

Részletesebben

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

Osztott rendszer. Osztott rendszer informális definíciója Osztott rendszer Osztott rendszer informális definíciója Egymástól elkülönülten létező program-komponensek egy halmaza. A komponensek egymástól függetlenül dolgoznak saját erőforrásukkal. A komponensek

Részletesebben

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

8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus. 8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus. Ágens rendszer definíciója. Példák. Fairness. (Fair tulajdonság). Gyenge fair követelmény. A fair nem determinisztikus szemantika definíciója

Részletesebben

Programfejlesztési Modellek

Programfejlesztési Modellek Programfejlesztési Modellek Programfejlesztési fázisok: Követelmények leírása (megvalósíthatósági tanulmány, funkcionális specifikáció) Specifikáció elkészítése Tervezés (vázlatos és finom) Implementáció

Részletesebben

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis rendszerek. dr. Siki Zoltán Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti

Részletesebben

A CMMI alapú szoftverfejlesztési folyamat

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,

Részletesebben

Objektumorientált paradigma és a programfejlesztés

Objektumorientált paradigma és a programfejlesztés Objektumorientált paradigma és a programfejlesztés Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján Objektumorientált

Részletesebben

Architektúra tervezési példák: Architektúrák biztonságkritikus rendszerekben

Architektúra tervezési példák: Architektúrák biztonságkritikus rendszerekben Architektúra tervezési példák: Architektúrák biztonságkritikus rendszerekben Majzik István majzik@mit.bme.hu Biztonságos állapotok Működésmód Fail-stop működés A megállás (lekapcsolás) biztonságos állapot

Részletesebben

Modell alapú tesztelés

Modell alapú tesztelés Modell alapú tesztelés Majzik István és Micskei Zoltá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/ 1 Motiváció Tartalomjegyzék

Részletesebben

Méréselmélet MI BSc 1

Méréselmélet MI BSc 1 Mérés és s modellezés 2008.02.15. 1 Méréselmélet - bevezetés a mérnöki problémamegoldás menete 1. A probléma kitűzése 2. A hipotézis felállítása 3. Kísérlettervezés 4. Megfigyelések elvégzése 5. Adatok

Részletesebben

Szoftvertechnológia ellenőrző kérdések 2005

Szoftvertechnológia ellenőrző kérdések 2005 Szoftvertechnológia ellenőrző kérdések 2005 Mi a szoftver, milyen részekből áll és milyen típusait különböztetjük meg? Mik a szoftverfejlesztés általános lépései? Mik a szoftvergyártás általános modelljei?

Részletesebben

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve Kérdő Attila, ügyvezető, INSERO Kft. EOQ MNB, Informatikai Szakosztály, HTE, ISACA 2012. május 17. Módszertanok

Részletesebben

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás NGB_IN003_1 SZE 2014-15/2 (8) Szoftverminőségbiztosítás Szoftvertesztelési folyamat (folyt.) Szoftvertesztelési ráfordítások (Perry 1995) Tesztelésre fordítódik a projekt költségvetés 24%-a a projekt menedzsment

Részletesebben

Petri hálók: Alapelemek és kiterjesztések

Petri hálók: Alapelemek és kiterjesztések Petri hálók: Alapelemek és kiterjesztések dr. Bartha Tamás dr. Pataricza András dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Modellek a formális ellenőrzéshez Mivel nyújt többet

Részletesebben

ÁRAMKÖRÖK SZIMULÁCIÓJA

ÁRAMKÖRÖK SZIMULÁCIÓJA ÁRAMKÖRÖK SZIMULÁCIÓJA Az áramkörök szimulációja révén betekintést nyerünk azok működésébe. Meg tudjuk határozni az áramkörök válaszát különböző gerjesztésekre, különböző üzemmódokra. Végezhetők analóg

Részletesebben

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor A szotverarchitektúra fogalma A szoftverarchitektúra nagyon fiatal diszciplína. A fogalma még nem teljesen kiforrott. Néhány definíció: A szoftverarchitektúra

Részletesebben

A matematika nyelvér l bevezetés

A matematika nyelvér l bevezetés A matematika nyelvér l bevezetés Wettl Ferenc 2012-09-06 Wettl Ferenc () A matematika nyelvér l bevezetés 2012-09-06 1 / 19 Tartalom 1 Matematika Matematikai kijelentések 2 Logikai m veletek Állítások

Részletesebben

Rendszer-modellezés, modellezési technikák

Rendszer-modellezés, modellezési technikák Rendszer-modellezés, modellezési technikák System engineering and modelling Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 8. Roger S. Pressman: Software Engineering, 5th e. chapter 10,

Részletesebben

A szoftver tesztelés célja

A szoftver tesztelés célja Szoftver tesztelés Bevezetés 2 A szoftver tesztelés célja! Szoftver-min!ség biztosítása, javítása! Szoftver hibák lokalizálása! V & V támogatása! verifikáció! fázis transzformációs lépései helyesek! követelményeknek

Részletesebben

Orvostechnikai eszköz tesztelése DSS Unit test. Taliga Miklós BME-IIT

Orvostechnikai eszköz tesztelése DSS Unit test. Taliga Miklós BME-IIT Orvostechnikai eszköz tesztelése DSS Unit test Taliga Miklós BME-IIT Szabványok és direktívák Orvostechnikai eszközök feladatai Objektív eredmények képzése Embernek érzékelhetetlen paraméterek mérése Sokféle

Részletesebben

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS 2004-2006.

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS 2004-2006. ÖNELLENŐRZÉS ÉS FUTÁSIDEJŰ VERIFIKÁCIÓ SZÁMÍTÓGÉPES PROGRAMOKBAN OTKA T-046527 A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS 2004-2006. Témavezető: dr. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem

Részletesebben

Szoftver követelmények meghatározása

Szoftver követelmények meghatározása Szoftver meghatározása Requirements engineering (analysis) Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 6-7. Roger S. Pressman: Software Engineering, 5th e. chapter 11. 2 Követelménymeghatározás

Részletesebben

Programozási alapismeretek 1. előadás

Programozási alapismeretek 1. előadás Programozási alapismeretek 1. előadás Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33 A

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma

Részletesebben

8.3. AZ ASIC TESZTELÉSE

8.3. AZ ASIC TESZTELÉSE 8.3. AZ ASIC ELÉSE Az eddigiekben a terv helyességének vizsgálatára szimulációkat javasoltunk. A VLSI eszközök (közöttük az ASIC) tesztelése egy sokrétűbb feladat. Az ASIC modellezése és a terv vizsgálata

Részletesebben

Programozási módszertan

Programozási módszertan 1 Programozási módszertan 1. Alapfogalmak Feldhoffer Gergely 2012 Féléves tananyag terve 2 Program helyességének bizonyítása Reprezentáció Logikai-matematikai eszköztár Programozási tételek bizonyítása

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 3 III. MEGFELELTETÉSEk, RELÁCIÓk 1. BEVEZETÉS Emlékeztetünk arra, hogy az rendezett párok halmazát az és halmazok Descartes-féle szorzatának nevezzük. Más szóval az és halmazok

Részletesebben

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Programozási nyelvek a közoktatásban alapfogalmak I. előadás Programozási nyelvek a közoktatásban alapfogalmak I. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig)

Részletesebben

HARDVER- ÉS SZOFTVERRENDSZEREK VERIFIKÁCIÓJA

HARDVER- ÉS SZOFTVERRENDSZEREK VERIFIKÁCIÓJA Írta: ÉSIK ZOLTÁN GOMBÁS ÉVA NÉMETH L. ZOLTÁN HARDVER- ÉS SZOFTVERRENDSZEREK VERIFIKÁCIÓJA Egyetemi tananyag 2 COPYRIGHT: 2 26, Dr. Ésik Zoltán, Dr. Gombás Éva, Dr. Németh L. Zoltán, Szegedi Tudományegyetem

Részletesebben

Számítógép architektúra

Számítógép architektúra Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek

Részletesebben

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat Megoldás Feladat 1. Statikus teszt Specifikáció felülvizsgálat A feladatban szereplő specifikáció eredeti, angol nyelvű változata egy létező eszköz leírása. Nem állítjuk, hogy az eredeti dokumentum jól

Részletesebben

A genetikus algoritmus, mint a részletes modell többszempontú és többérdekű "optimálásának" általános és robosztus módszere

A genetikus algoritmus, mint a részletes modell többszempontú és többérdekű optimálásának általános és robosztus módszere A genetikus algoritmus, mint a részletes modell többszempontú és többérdekű "optimálásának" általános és robosztus módszere Kaposvári Egyetem, Informatika Tanszék I. Kaposvári Gazdaságtudományi Konferencia

Részletesebben

Élettartam teszteknél alkalmazott programstruktúra egy váltóvezérlő példáján keresztül

Élettartam teszteknél alkalmazott programstruktúra egy váltóvezérlő példáján keresztül Élettartam teszteknél alkalmazott programstruktúra egy váltóvezérlő példáján keresztül 1 Tartalom Miről is lesz szó? Bosch GS-TC Automata sebességváltó TCU (Transmission Control Unit) Élettartam tesztek

Részletesebben

A projektvezetési eszköz implementációja hazai építő-, szerelőipari vállalkozásoknál

A projektvezetési eszköz implementációja hazai építő-, szerelőipari vállalkozásoknál A projektvezetési eszköz implementációja hazai építő-, szerelőipari vállalkozásoknál Előadó: Ulicsák Béla műszaki igazgató BRIT TECH Üzleti Tanácsadó Kft. Napirend 1. Az építő-, szerelőipar érdekcsoportjai

Részletesebben

Software Engineering

Software Engineering Software Engineering Software Engineering Software Engineering értelmezése Az a folyamat, mely eredményekénk létrehozunk egy adott feladatot megvalósító szoftver rendszert. Tevékenységek, technológia,

Részletesebben

Mérés és modellezés Méréstechnika VM, GM, MM 1

Mérés és modellezés Méréstechnika VM, GM, MM 1 Mérés és modellezés 2008.02.04. 1 Mérés és modellezés A mérnöki tevékenység alapeleme a mérés. A mérés célja valamely jelenség megismerése, vizsgálata. A mérés tervszerűen végzett tevékenység: azaz rögzíteni

Részletesebben

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

Összeállította Horváth László egyetemi tanár Óbudai Egyetem Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek Intézet Intelligens Mérnöki Rendszerek Szakirány a Mérnök informatikus alapszakon Összeállította Horváth László Budapest, 2011

Részletesebben

Planning and Design of Information Systems. André Blokdijk, Paul Blokdijk ACADEMIC PRESS, 1987.

Planning and Design of Information Systems. André Blokdijk, Paul Blokdijk ACADEMIC PRESS, 1987. Planning and Design of Information Systems André Blokdijk, Paul Blokdijk ACADEMIC PRESS, 1987. 4.3 A tervezés határai Mi a tető, mi a lent, mi a centrum - tisztázni kell előre. A 4 modell milyen részlet

Részletesebben

Modell alapú tesztelés

Modell alapú tesztelés Modell alapú tesztelés Majzik István és Micskei Zoltá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/ 1 Motiváció Tartalomjegyzék

Részletesebben

30 MB INFORMATIKAI PROJEKTELLENŐR

30 MB INFORMATIKAI PROJEKTELLENŐR INFORMATIKAI PROJEKTELLENŐR 30 MB DOMBORA SÁNDOR BEVEZETÉS (INFORMATIKA, INFORMATIAKI FÜGGŐSÉG, INFORMATIKAI PROJEKTEK, MÉRNÖKI ÉS INFORMATIKAI FELADATOK TALÁKOZÁSA, TECHNOLÓGIÁK) 2016. 09. 17. MMK- Informatikai

Részletesebben

Mérés és modellezés 1

Mérés és modellezés 1 Mérés és modellezés 1 Mérés és modellezés A mérnöki tevékenység alapeleme a mérés. A mérés célja valamely jelenség megismerése, vizsgálata. A mérés tervszerűen végzett tevékenység: azaz rögzíteni kell

Részletesebben

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata IKP-9010 Számítógépes számelmélet 1. EA IK Komputeralgebra Tsz. IKP-9011 Számítógépes számelmélet 2. EA IK Komputeralgebra Tsz. IKP-9021 Java technológiák IK Prog. Nyelv és Ford.programok Tsz. IKP-9030

Részletesebben

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar PROGRAMOZÁS tantárgy Gregorics Tibor egyetemi docens ELTE Informatikai Kar Követelmények A,C,E szakirány B szakirány Előfeltétel Prog. alapismeret Prog. alapismeret Diszkrét matematika I. Óraszám 2 ea

Részletesebben

CEBS Consultative Paper 10 (folytatás) Krekó Béla PSZÁF, 2005. szeptember 15.

CEBS Consultative Paper 10 (folytatás) Krekó Béla PSZÁF, 2005. szeptember 15. CEBS Consultative Paper 10 (folytatás) Krekó Béla PSZÁF, 2005. szeptember 15. 1 3.3.3 Minősítési rendszerek és a kockázatok számszerűsítése Minősítések hozzárendelése PD, LGD, CF meghatározása Közös vizsgálati

Részletesebben

Rendszertervezés ágazat

Rendszertervezés ágazat Rendszertervezés Mérnök informatikus szak BSc Informatikai technológiák szakirány http://www.inf.mit.bme.hu/ Mérnök informatikus BSc A szakirány és ágazatai Informatikai technológiák szakirány Rendszertervezés

Részletesebben

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás NGB_IN003_1 SZE 2014-15/2 (10) Szoftverminőségbiztosítás Struktúra alapú (white-box) technikák A struktúrális tesztelés Implementációs részletek figyelembevétele Tesztelési célok -> lefedettség Implicit

Részletesebben

Programrendszerek tanúsítása szoftverminőség mérése

Programrendszerek tanúsítása szoftverminőség mérése SZEGEDI TUDOMÁNYEGYETEM Programrendszerek tanúsítása szoftverminőség mérése Dr. Gyimóthy Tibor Dr. Ferenc Rudolf Szoftverminőség biztosítás Fő cél: az üzemelő IT rendszerekben csökkenteni a hibák számát

Részletesebben

A szoftverfejlesztés eszközei

A szoftverfejlesztés eszközei A szoftverfejlesztés eszközei Fejleszt! eszközök Segédeszközök (szoftverek) programok és fejlesztési dokumentáció írásához elemzéséhez teszteléséhez karbantartásához 2 Segédeszközök szükségessége Szoftver

Részletesebben

Miért is transzformáljunk modelleket? Varró Dániel

Miért is transzformáljunk modelleket? Varró Dániel Miért is transzformáljunk modelleket? Varró Dániel Mit látunk a képen? Tipikus kérdések (Hardvertervezés) Jól működik-e? 1+1 = 2? Hogyan készítsünk 8 bites összeadót 4 bites összeadóval? Hogyan készítsünk

Részletesebben

Információs rendszerek Információsrendszer-fejlesztés

Információs rendszerek Információsrendszer-fejlesztés Információs rendszerek Információsrendszer-fejlesztés A rendszerfejlesztés életciklusa problémadefiniálás helyzetfeltárás megvalósítási tanulmány döntés a fejlesztésrıl ELEMZÉS IMPLEMENTÁCIÓ programtervezés

Részletesebben

Termékhasználat. Helyes helytelen termékhasználat. Felhasználók. Ergonómiai hagyományok. Az ergonómia integrálása a termékfejlesztés folyamatába

Termékhasználat. Helyes helytelen termékhasználat. Felhasználók. Ergonómiai hagyományok. Az ergonómia integrálása a termékfejlesztés folyamatába Termékhasználat Helyes helytelen termékhasználat A felhasználók bevonása a Gyermek Interakció Termék termékfejlesztésbe A termékhasználat ergonómiai megközelítése Helytelen, veszélyes, tilos Baleset Ergonómiai

Részletesebben

A követelm. vetelmény. analízis fázis. Az analízis fázis célja. fázis feladata

A követelm. vetelmény. analízis fázis. Az analízis fázis célja. fázis feladata A követelm vetelmény analízis fázis Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006.02.15. ANAL / 1 Az analízis fázis célja A projekttel szemben támasztott követelmények meghatározása

Részletesebben

A szemantikus világháló oktatása

A szemantikus világháló oktatása A szemantikus világháló oktatása Szeredi Péter Lukácsy Gergely Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi és Információelméleti Tanszék ➀ A szemantikus világháló... c. tárgy ➁ A tananyag

Részletesebben

A matematika nyelvéről bevezetés

A matematika nyelvéről bevezetés A matematika nyelvéről bevezetés Wettl Ferenc 2006. szeptember 19. Wettl Ferenc () A matematika nyelvéről bevezetés 2006. szeptember 19. 1 / 17 Tartalom 1 Matematika Kijelentő mondatok Matematikai kijelentések

Részletesebben

Objektum orientált software fejlesztés (Bevezetés)

Objektum orientált software fejlesztés (Bevezetés) Objektum orientált software fejlesztés (Bevezetés) Lajos Miskolci Egyetem Általános Informatikai Tanszék Út az objektum orientált szemléletig 1. Klasszikus módszerek: program = adatszerkezetek + algoritmusok

Részletesebben

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Követelmény A beadandó dokumentációját a Keszthelyi Zsolt honlapján található pdf alapján kell elkészíteni http://people.inf.elte.hu/keszthelyi/alkalmazasok_fejlesztese

Részletesebben