Futásidőbeli verifikáció

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

Download "Futásidőbeli verifikáció"

Átírás

1 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

2 Tartalomjegyzék Célkitűzések Használati esetek Futásidőbeli verifikációs technikák o Verifikáció referencia automaták alapján o Verifikáció temporális logikai követelmények alapján o Verifikáció LSC követelmények alapján o Verifikáció scenario követelmények alapján Implementációs tapasztalatok 2

3 Célkitűzések és használati esetek

4 Mit jelent a futásidejű verifikáció? Definíció: o Rendszerek viselkedésének ellenőrzése o működés közben (on-line), o formálisan specifikált követelmények alapján Motiváció o Megbízhatósági és biztonsági elvárások Biztonságkritikus rendszer: Elviselhető veszélygyakoriság IT infrastruktúra: Szolgáltatási szint biztosítása, o Futásidőbeli hibák elkerülhetetlenek Hardver komponensek véletlen hibái Szoftver tervezési, implementációs, konfigurálási hibák 4

5 Cél: Futásidőbeli hibadetektálás Futásidőbeli hibadetektálás a hibakezelés alapja o Klasszikus: Hardver hibák detektálása a forráskód alapján Pl. CFG ellenőrzés (watchdog processzorok) Csak működési hibákra, implementáció alapján o Ellenőrzés a követelmények alapján Szisztematikus (tervezési, kódolási, konfigurációs) hibákra is o Futásidőbeli verifikáció formalizált követelmények alapján Precíz követelmény megfogalmazás Automatikus ellenőrző (monitor) szintézisének lehetősége Példa: Reaktív hibakezelés o Hibadetektálás majd beavatkozás (pl. helyreállítás, biztonságos állapot beállítása, ) 5

6 Futásidőbeli verifikáció Használati eset 1: Futásidőbeli verifikáció Monitorok használata futásidőbeli hibadetektálásra o Formalizált követelmények ellenőrzése Pl. reaktív hibakezelés támogatása o A működési, konfigurációs és környezeti hibák detektálása Követelmények Monitor szintézis Működő rendszer Monitor 1 Monitor 2 Monitor n 6

7 Teszt oracle Használati eset 2: Teszt kimenet értékelése Monitorok használata mint teszt oracle o Teszt követelmények teljesítésének kiértékelése o Tervezési és megvalósítási hibák detektálása Követelmények Monitor szintézis Teszt végrehajtó Tesztelt rendszer (SUT) Monitor 1 Monitor 2 Monitor n 7

8 Ellenőrzési módszerek Kihívások o Követelmények formalizálása o Verifikációs algoritmusok kidolgozása Felműszerezés o Ellenőrzéshez szükséges információ megfigyelhetővé tétele o Erőforrásigény minimalizálása Elméleti eredmények gyakorlati aspektusai o Monitor szintézis o Kis erőforrásigényű, skálázható megvalósítás Alkalmazás beágyazott biztonságkritikus rendszerekben 8

9 Kihívások Ellenőrzési módszerek o Követelmények formalizálása ovégrehajtási Ellenőrzési algoritmusok szekvencia (trace) és ezek alapján megvalósítása specifikált temporális tulajdonságok ellenőrzése Felműszerezés Temporális logikák Referencia automaták o Ellenőrzéshez szükséges információ megfigyelhetővé tétele o Overhead Reguláris minimalizálás kifejezések Szerződés (design-by-contract) alapú monitorozás Kiértékelhető állítások (executable assertions) Elméleti eredmények mérnöki aspektusai Általános (specification-less) elvárások monitorozása o Monitor szintézis Konkurens végrehajtás követelményei (pl. holtpont, versenyhelyzet, sorosíthatósági konfliktus detektálása) o Kis erőforrás igényű, skálázható megvalósítás o Alkalmazás beágyazott biztonságkritikus rendszerekben 9

10 Kihívások Ellenőrzési módszerek o Követelmények formalizálása o Ellenőrzési algoritmusok és ezek megvalósítása Felműszerezés o Ellenőrzéshez szükséges információ megfigyelhetővé tétele oaktív Overhead és passzív minimalizálás felműszerezés Aktív: kódrészletek beillesztése Passzív: beavatkozás nélküli megfigyelés Elméleti eredmények mérnöki aspektusai Aktív felműszerezés megvalósítási technológiák Aspektus-orientált programozás (AOP) Tracematch: AspectJ kiterjesztés esemény-mintákhoz o Monitor szintézis o Kis erőforrás igényű, skálázható megvalósítás Szinkron és aszinkron monitorozás o Alkalmazás beágyazott biztonságkritikus rendszerekben 11

11 Példa: Keretrendszer monitor szintézishez MOP: Monitoring-Oriented Programming o FSM -- Finite State Machines o ERE -- Extended Regular Expressions o CFG -- Context Free Grammars o PTLTL -- Past Time Linear Temporal Logic o LTL -- Linear Temporal Logic o PTCaRet -- Past Time LTL with Calls and Returns o SRS -- String Rewriting Systems 13

12 Az itt bemutatott megoldások Alkalmazás: Vezérlés-orientált esetekben o Állapot alapú, eseményvezérelt viselkedés o Pl. biztonsági funkciókhoz (protokollokhoz) Hierarchikus (skálázható) futásidőbeli verifikáció o Lokális: Egy-egy komponens (vezérlő, ECU) viselkedése Referencia automata: vezérlési és egyszerű adathibák Lokális temporális logikai (TL) követelmények o Rendszerszintű: Komponensek interakciója Rendszerszintű temporális követelmények Scenario (LSC) alapú követelmények Kapcsolódás a modellvezérelt fejlesztéshez o Modell alapú kódgenerálás, felműszerezéssel 14

13 Hierarchikus monitorozás Rendszerkövetelmények Modellellenőrzés LSC monitor szintézis TL monitor szintézis Rendszerszintű monitorok Formális modell Tervezési verifikáció CFG monitor szintézis Automatikus kódgenerálás Felműszerezés Lokális vezérlési folyam monitorok Felműszerezett komponens Futásidőbeli verifikáció 16

14 Futásidejű verifikáció referencia automaták alapján Időzített automata modell alapján Állapottérkép modell alapján

15 Hierarchikus monitorozás Rendszerkövetelmények Modellellenőrzés LSC monitor szintézis TL monitor szintézis Rendszerszintű monitorok Formális modell Tervezési verifikáció CFG monitor szintézis Automatikus kódgenerálás Felműszerezés Lokális vezérlési folyam monitorok Felműszerezett komponens Futásidőbeli verifikáció 18

16 Monitorozás időzített automata alapján Monitor komponens Automata referencia Működési hibák (tranziens) (Kézi kódolás hibái) Interakciók (szinkron kommunikáció) Belső megvalósítás Automatikus felműszerezés: Jelzőszámok az állapotokról 19

17 Automatikus kódgenerálás Időzített automata (formalizmus) Formális szintaxis (metamodell) Formális szemantika (jelentés) Konkrét modell reprezentáció Forráskód minták Platform szolgáltatások Olvassa és bejárja Összeállítja Hivatkozza Kódgenerátor 20

18 Felműszerezés a forráskódban Inicializálás Rendszerciklus Felműszerezés Belépő függvény Állapotváltozók beállítása Csatornák figyelése Időzítések beállítása + Jelzőszámok küldése monitornak Várakozó függvény Felműszerezés Kilépő függvény Automata szint Állapot szint 21

19 Jelzőszám alapú monitorozás Komponens Felműszerezés Jelzőszámok: állapotok Detektálható hibák: Hibás állapot / átmenet szekvencia Leragadás (timeout) Időzítések megsértése Lokális vezérlési folyam monitor Referencia automata Kódgenerálás alapja Referencia automata 22

20 Monitorozás állapottérkép alapján Monitor komponens Állapottérkép referencia Működési hibák (tranziens) (Kézi kódolás hibái) Eseménysor Állapottérkép megvalósítás Automatikus felműszerezés: Jelzőszámok az állapotokról, átmenetekről, akciókról,... 23

21 Ellenőrzés állapottérkép referencia alapján Szisztematikus transzparens felműszerezés: o Explicit jelzések a monitor számára Elhagyott állapotok, belépett állapotok Végrehajtott akciók o Megvalósítási példa: Aspektus-orientált programozás ObservedApp Run-time Monitor Monitor RTCContext TransitionContext 25 25

22 Ellenőrzés állapottérkép referencia alapján Átmenet tüzelése Szisztematikus transzparens felműszerezés: Starting o Explicit jelzések a monitor transition számára üzenet Elhagyott állapotok, belépett állapotok Forrás konfiguráció Végrehajtott akciók elhagyása o Megvalósítási példa: Aspektus-orientált programozás Akciók végrehajtása ObservedApp Run-time MessageQueue msgq Monitor Cél konfigurációba Run-time + Monitor sendtrstarting Monitor való belépés Monitor Transition finished üzenet RTCContext TransitionContext 26 26

23 Ellenőrzés állapottérkép referencia alapján Extra kód átmenet tüzeléséhez (Java AOP) Szisztematikus transzparens felműszerezés: public aspect BehavioralMonitoring { // Define pattern matching pointcut firingtransitionpattern call (StatechartBase+.fireTransition(Transition t)); o Explicit jelzések a monitor számára Elhagyott állapotok, belépett állapotok Végrehajtott akciók o Megvalósítási // példa: Define instrumentation Aspektus-orientált to be applied programozás around(): firingtransitionpattern() { msgq.sendtrstarting(...); proceed(); Run-time Monitor ObservedApp msgq.sendtrfinishing(...); Monitor } } RTCContext TransitionContext 27 27

24 Ellenőrzés állapottérkép referencia alapján Szisztematikus transzparens felműszerezés: o Explicit jelzések a monitor számára Elhagyott állapotok, belépett állapotok Végrehajtott akciók RTC kontextus Inicializálás Esemény-feldolgozás kezdete és vége (állapotok) Átmenet kontextus részére o Megvalósítási példa: Aspektus-orientált programozás üzenetek ObservedApp Run-time Monitor Monitor RTCContext Állapotátmenet kontextus Állapotból kilépés, állapotba belépés, akciók TransitionContext 28 28

25 Run-to-completion context (RTCContext) initstarting initfinishing[ifok] Uninitialized Initialization Stable initentry [ieok] evtprocstarting [epsok] evtprocfinishing [epfok] trstarting [tsok] / createtrctx Transient dispatch 29 29

26 Run-to-completion context (RTCContext) Uninitialized Inicializálás közben initentry: A megfigyelt alkalmazás belépett egy kezdőállapotba ieok őrfeltétel: (i) az állapot a kezdő állapotkonfigurációba tartozik, (ii) inaktív volt és (iii) minden szülő állapota is aktív. initstarting initfinishing[ifok] Initialization Stable initentry [ieok] evtprocstarting [epsok] evtprocfinishing [epfok] trstarting [tsok] / createtrctx Transient dispatch 30 30

27 Run-to-completion context (RTCContext) initstarting initfinishing[ifok] Stable Uninitialized Inicializálás befejezése A megfigyelt alkalmazás initentry [ieok] belépett a kezdő állapotkonfigurácóba. Initialization ifok őrfeltétel: A kezdő állapotkonfiguráció minden állapota aktív. evtprocstarting [epsok] evtprocfinishing [epfok] trstarting [tsok] / createtrctx Transient dispatch 31 31

28 Run-to-completion context (RTCContext) initstarting initfinishing[ifok] Uninitialized Initialization Stable initentry [ieok] evtprocstarting [epsok] evtprocfinishing [epfok] Eseményfeldolgozás indul A megfigyelt alkalmazás elkezdett feldolgozni egy eseményt. trstarting [tsok] / createtrctx Transient dispatch 32 32

29 Run-to-completion context (RTCContext) initstarting initfinishing[ifok] Átmenet tüzelése A megfigyelt alkalmazás elkezdte egy átmenet tüzelését. tsok őrfeltétel: (i) a trigger esemény az éppen feldolgozott esemény, (ii) forrás állapotok aktívak, (iii) prioritások és őrfeltételek Uninitialized megfelelőek. createtrctx akció: új átmenet kontextus létrehozása (transition context). Ebben folytatódik az ellenőrzés (dispatch adja át az információt) Initialization Stable initentry [ieok] evtprocstarting [epsok] evtprocfinishing [epfok] trstarting [tsok] / createtrctx Transient dispatch 33 33

30 Run-to-completion context (RTCContext) initstarting initfinishing[ifok] Stable Uninitialized Eseményfeldolgozás vége A megfigyelt alkalmazás befejezte az Initialization eseményfeldolgozást. epfok őrfeltétel: minden átmenet tüzelése befejeződött initentry [ieok] evtprocstarting [epsok] evtprocfinishing [epfok] trstarting [tsok] / createtrctx Transient dispatch 34 34

31 Hibadetektálás az RTCContext esetén Hibadetektálás Őrfeltétel hamis, vagy nem várt üzenet jön initstarting initfinishing[ifok] Uninitialized Initialization Stable evtprocstarting [!epsok] initentry [ieok] evtprocstarting [epsok] evtprocfinishing [epfok] initfinishing[!ifok] initentry [!ieok] trstarting [tsok] / createtrctx Transient evtprocfinishing [!epfok] Fault detected trstarting [!tsok] dispatch 35 35

32 Állapotátmenet kontextus (TransitionContext) Exiting states exitstate [xsok] / markinactive trassociated [taok] Entering states enterstate [esok] / markactive trfinishing [tfok] 36 36

33 Állapotátmenet kontextus (TransitionContext) Állapot elhagyása A megfigyelt alkalmazás elhagyott egy állapotot átmenet tüzelés közben. Őrfeltétel: (i) az állapot az átmenet forrása vagy ennek finomítása, (ii) az állapot aktív, (iii) egy finomítása sem aktív. Akció: a konfiguráció frissítése. Exiting states exitstate [xsok] / markinactive trassociated [taok] Entering states enterstate [esok] / markactive trfinishing [tfok] 37 37

34 Állapotátmenet kontextus (TransitionContext) Exiting states Az átmenet akciójának végrehajtása A forrás állapotok elhagyása megtörtént és az akció végrehajtása valósul meg. Őrfeltétel: Minden forrásállapot elhagyása exitstate [xsok] / markinactive megtörtént és a megfelelő akció zajlik. trassociated [taok] Entering states enterstate [esok] / markactive trfinishing [tfok] 38 38

35 Állapotátmenet kontextus (TransitionContext) Belépés a cél állapotokba A megfigyelt átmenet belép egy állapotba a tüzelése során.. Őrfeltétel: (i) az állapot exitstate a célállapotok [xsok] / egyike, (ii) inaktív és (iii) minden markinactive szülő állapota aktív. Akció: az állapotkonfiguráció frissítése. Exiting states trassociated [taok] Entering states enterstate [esok] / markactive trfinishing [tfok] 39 39

36 Állapotátmenet kontextus (TransitionContext) Exiting states exitstate [xsok] / markinactive trassociated [taok] Entering states Az átmenet tüzelés befejezése A megfigyelt átmenet tüzelése befejeződik. Őrfeltétel: minden célállapot enterstate [esok] / aktív lett az új állapotkonfiguráció szerint. markactive trfinishing [tfok] 40 40

37 Hibadetektálás a TransitionContext esetén Exiting states Hibadetektálás Őrfeltétel hamis, vagy nem megfelelő üzenet érkezik. exitstate [xsok] / markinactive exitstate [!xsok] trassociated [taok] trassociated [!taok] Fault detected Entering states trfinishing [tfok] enterstate [esok] / markactive enterstate [!esok] trfinishing [!tfok] 41 41

38 Futásidejű verifikáció temporális követelmények alapján Lineáris temporális logikai követelmények UPPAAL CTL követelmények (teszteléshez is)

39 Hierarchikus monitorozás Rendszerkövetelmények Modellellenőrzés LSC monitor szintézis TL monitor szintézis Rendszerszintű monitorok Formális modell Tervezési verifikáció CFG monitor szintézis Automatikus kódgenerálás Felműszerezés Lokális vezérlési folyam monitorok Felműszerezett komponens Futásidőbeli verifikáció 43

40 TL követelmények ellenőrzése TL követelmények Felműszerezés Felműszerezés Felműszerezés Komponens 1 Komponens 2 Komponens 3 Trace: Jelzőszámok: atomi kijelentések elemei (állapotok, változók, órák) TL monitor szintézis TL monitor 45

41 Monitorozás LTL kifejezések alapján Egy LTL kifejezés ellenőrzése a trace egy lépése esetén o Függőség az aktuális lépéstől: Boole logikai operátorok a lokális atomi kijelentéseken + lokális ( jelen idejű ) része a temporális operátoroknak o Függőség jövőbeli lépésektől: jövő idejű része a temporális operátoroknak A temporális kifejezés újraírása: Részkifejezések elválasztása o Az aktuális lépésben (Boole operátorokkal) kiértékelhető részkifejezések o A következő lépésben (egy X operátor után) kiértékelhető részkifejezések exp1 U exp2 = exp2 (exp1 X(exp1 U exp2)) Következő állapotra vonatkozó kifejezések 46

42 Kifejezések újraírása Definíció: Csatlakoztatási normálforma o A kifejezésben szereplő összes Until (U) temporális operátor valamely Next (X) temporális operátor hatókörében van, és o a kifejezés minden olyan része, amely nem esik Next temporális operátor hatókörébe, kizárólag And, valamint Not operátorokat tartalmaz Átalakítás csatlakoztatási normálformára o Boole operátorokra: De Morgan azonosságok o Temporális operátorokra: Visszavezetés X és U operátorokra Átalakítás: P U Q = Q (P X(P U Q)) = ( Q (P X(P U Q))) 48

43 Kiértékelő blokkok Belső logika: Az aktuális lépés kiértékelése (Boole logika) Kimenet: A trace jelen lépésében a kifejezés kiértékelése Bemenetek: o Lokális atomi kijelentések o Következő lépésben történő kiértékelés eredménye Ez a trace következő lépésében, az X operátor utáni kifejezéseket kiértékelő blokkok kimenete lesz (így blokkok láncolata képezhető) G(r (pud)) r d p T X(pUd) X(TU(rÙÙ(pUd))) 49

44 Példa: Kiértékelés a trace lépésein 1 2 s 0 s 1 s 2 d r d Ù d pud Ù G(r (pud)) Ù Ù Ù T X(TU(rÙÙ(pUd))) Ù p X(pUd) Ù X(pUd) pud Ù Ù X(pUd) p p r d TU(rÙÙ(pUd)) Ù Ù Ù Ù T X(TU(rÙÙ(pUd))) d Ù X(pUd) p pud Ù Ù X(pUd) p r TU(rÙÙ(pUd)) Ù Ù Ù Ù T X(TU(rÙÙ(pUd))) d Ù X(pUd) p Példa: G(r (pud)) felírása A G operátor definíciója Az U operátor felbontása e 1 Ue 2 = e 2 (e 1 X(e 1 Ue 2 )) = ( e 2 (e 1 X(e 1 Ue 2 ))) Normál forma: U csak X argumentumaként r Ù d G(r (pud)) Ù Ù p Ù T X(TU(rÙÙ(pUd))) Ù X(pUd) 50

45 Példa: A blokkok optimalizálása Ismétlődő részkifejezések egyszeri kiértékelése 51

46 Példa: Blokk típusok azonosítása s 0 1 s 1 2 s 2 r p d r p d r p d X(pUd) pud X(pUd) pud X(pUd) G(r (pud)) X(TU(r (pud))) TU(r (pud)) X(TU(r (pud))) TU(r (pud)) X(TU(r (pud))) 52

47 A blokk típusok meghatározása 53

48 Műveletek háromértékű logikával Blokk belseje: Háromértékű (ternáris) logika o A következő lépésben történő kiértékelés eredménye ismeretlen o Az ismeretlen legkésőbb a trace végén feloldható Műveletek háromértékű logikával: 54

49 Működési logika: 1. lépés G(r (pud)) r, p s 0 L(s 0 ) r d p T X(pUd) X(TU(rÙÙ(pUd))) False Unknown True 56

50 Működési logika: 2. lépés G(r (pud)) r, p s 0 L(s 0 ) r d p T X(pUd) X(TU(rÙÙ(pUd))) pud TU(rÙÙ(pUd)) p r T s 1 L(s 1 ) d p X(pUd) X(TU(rÙÙ(pUd))) False Unknown True 57

51 Működési logika: 3. lépés (trace vége) G(r (pud)) r, p s 0 L(s 0 ) r d p T X(pUd) X(TU(rÙÙ(pUd))) pud TU(rÙÙ(pUd)) p r T s 1 L(s 1 ) d p X(pUd) X(TU(rÙÙ(pUd))) pud TU(rÙÙ(pUd)) False Unknown True d s 2 L(s 2 ) r d p T X(pUd) X(TU(rÙÙ(pUd))) 58

52 Működési logika: Ismeretlenek feloldása G(r (pud)) r, p s 0 L(s 0 ) r d p T X(pUd) X(TU(rÙÙ(pUd))) pud TU(rÙÙ(pUd)) p r T s 1 L(s 1 ) d p X(pUd) X(TU(rÙÙ(pUd))) pud TU(rÙÙ(pUd)) False Unknown True d s 2 L(s 2 ) r d p T X(pUd) X(TU(rÙÙ(pUd))) 59

53 Monitor szintézis LTL alapú monitorozáshoz Monitor szintézis lépései o Kiértékelő blokk típusok generálása az LTL kifejezés átírása alapján (csatlakoztatási normál forma) o A kiértékelő blokk típusok belső logikájához tartozó forráskód generálása (adatstruktúra és kiértékelő fügvények háromértékű logikával) o Kiértékelő kontextus generálása a kiértékelő blokk típusok futásidőbeli példányosítására (a blokkok láncának építése) A monitorozás memóriaigénye o Legfeljebb lineáris a trace hosszával o Ismétlődő blokkok redukálhatók Összevetés más implementációkkal: o Symbolic term-rewriting: szor lassabb o Alternating automata: szer lassabb 60

54 CTL alapú monitorozás (UPPAAL TCTL) Használható trace-ek halmazának ellenőrzésére o Útvonal kvantorok: A: Minden útvonal, E: Létezik útvonal A monitorok mint teszt oracle használhatók egy teszt készlet esetén a lefutások halmazának ellenőrzésére o Speciális események: <New trace>, <End of last trace> Monitor szintézis o Egy trace ellenőrzése: Mint az LTL alapú ellenőrzés o Trace-ek sorozatának ellenőrzése (test suite): Megfigyelő automata Példa: Megfigyelő automata AF temporális operátorhoz 63

55 Futásidejű verifikáció LSC követelmények alapján Live Sequence Charts követelmények verifikációja

56 Hierarchikus monitorozás Rendszerkövetelmények Modellellenőrzés LSC monitor szintézis TL monitor szintézis Rendszerszintű monitorok Formális modell (időzített automaták) Tervezési verifikáció CFG monitor szintézis Automatikus kódgenerálás Felműszerezés Lokális vezérlési folyam monitorok Felműszerezett komponens Futásidőbeli verifikáció 65

57 LSC alapú követelmények Cél: Interakciók ellenőrzése intuitív leírás alapján o Szinkronizáció, üzenetek küldése és fogadása, lokális feltételek Formalizmus: Live Sequence Charts variáns o Message Sequence Chart kiterjesztése (Damm és Harel, 2001) o Precíz szemantika (UPPAAL: korlátozásokkal) o LSC alaptípusok, aktiválási módok, hideg és forró feltételek Prechart Main chart 66

58 LSC követelmények ellenőrzése LSC követelmények Felműszerezés Felműszerezés Felműszerezés Komponens 1 Komponens 2 Komponens 3 Trace: Jelzőszámok: interakciók elemei (üzenetek, állapotok, változók, órák) LSC monitor szintézis LSC monitor 67

59 LSC alapú monitor szintézise LSC követelmény Megfigyelő automata Monitor forráskód LSC monitor példány LSC monitor végrehajtási környezet 68

60 LSC alapú monitor szintézise A A B 2 C B C 5 C B 4 69

61 LSC monitorok végrehajtása Ütemező (végrehajtási környezet) szükséges o Egy-egy monitor indítása, leállítása o Visszajelzések kiértékelése, továbbítása LSC alaptípusok támogatása o Egzisztenciális: minta viselkedés (lefutásokra) o Univerzális: szükséges viselkedés (minden lefutásra) LSC aktiválási módok támogatása o Kezdeti o Invariáns o Iteratív 71

62 Futásidejű verifikáció scenario követelmények alapján Kontextusfüggő viselkedés monitorozása

63 Speciális kihívások Autonóm rendszerek (pl. robotok) ellenőrzése o Kontextusfüggő viselkedés (környezet érzékelése) o Adaptív rendszer (célok, végrehajtási stratégia) Követelmények specifikálása: Scenariok o Viselkedés: Események és akciók szekvenciája; Feltétel rész és kötelező (assert) rész o Hivatkozások a kontextusra (szituációkra) Kontextusfüggő viselkedés monitorozása: o Megfigyelni a futásidőbeli kontextus változásait o Ellenőrizni a rendszer viselkedését 73

64 A monitorozás szerepe vagy Követelmények Valós teszt környezet Megfigyelt események, akciók, kontextus változások Futási trace-ek Szimulátor Kihívás: Egy-egy trace hatékony ellenőrzése a scenario követelmények alapján Kiértékelés a monitorral 74

65 Követelmények formalizálása MSC (vagy LSC) alapú esemény- és akció szekvenciák Kiterjesztve kontextus hivatkozásokkal Kontextus (objektumok és relációk) egy adott lépésben Események az érzékelőktől Akciók a beavatkozók felé CF2 sd REQ2 Perception SUT : Robot Actuators SUT : Robot tooclose L : LivingBeing AE : AppearEvent assert loop(0,*) { Context: CF2 } hornbell Referencia egy kontextus fragmensre CF3 SUT : Robot near L : LivingBeing { Context: CF3 } Kontextus nézet (kontextus fragmensek) Scenario nézet (események és akciók sorozata) 75 Kötelező viselkedés

66 A monitor feladatai Megfigyelt trace: Események és akciók a SUT-tól A kontextus konkrét konfigurációi sd REQ2 Perception SUT : Robot Actuators CF2 sd REQ2 assert { Context: CF2 } SUT : Robot tooclose L : LivingBeing assert loop(0,*) hornbell AE : AppearEvent loop(0,*) CF3 { Context: CF3 } SUT : Robot near L : LivingBeing Események, akciók illesztése: Megfigyelő automata Kontextus fragmensek illesztése: Gráfminta illesztés 76

67 A megfigyelő automata konstrukciója Egy-egy megfigyelő automata a követelmény scenariokhoz o Állapotok: vágások a diagramon (mint az LSC esetén) o Tranzíciók: események, akciók, kontextus változások o Állapot típusok: teljesítve / megsértve / nem triggerelt sd REQ1 alt assert SUT : Robot { Context: CF1 humandetected animaldetected stop 0 1 t5:?humandetected t4:?animaldetected 2 3 t6: true 4 5 t9:!stop t1: true t2: context(cf1) t3: ~(?humandetected) ~(?animaldetected) t7: true t8: ~(!stop) A követelmény nem triggerelt A követelmény megsértve, ha itt áll meg A követelmény teljesítve, ha itt áll meg 77

68 Gráfminta illesztés A trace-ben megfigyelt kontextus szekvencia illesztése o A kontextusok gráf alapú reprezentálása o Gráf minták (követelmény kontextus fragmensek) illesztése gráf szekvenciákhoz (megfigyelt kontextus a trace-ben) Kontextus fragmens (követelmény): CF3 SUT : Robot near L : LivingBeing Megfigyelt kontextus sorozat: robot1 chair23 robot1 chair23 robot1 chair23 human2 table23 dog4 table23 dog4 table23 78

69 Megoldandó problémák Minden követelmény scenario illesztése egy trace-hez o A kontextus fragmensek dekompozíciója a közös részek egyszeres tárolásához és illesztéséhez A követelmény kontextus fragmensek illesztése egy trace minden lépésében o Konkurens monitorok indítása, amennyiben illeszkedik Az absztrakt relációk (pl. közel ) és az objektum hierarchia (pl. az asztal egy bútor ) feloldása o A trace előfelfolgozása az absztrakt relációk származtatásához o A típusok kompatibilitásának kezelése a kontextus elemek illesztésekor 79

70 Megvalósítási tapasztalatok Erőforrásigények felmérése

71 Megvalósítás Beágyazott platformokon o mitmót moduláris beágyazott rendszer vezetéknélküli kommunikációval Ipari esettanulmány: bit szinkronizációs protokoll o mbed mikrokontroller gyors prototípuskészítéshez Oktatási demonstrátor környezet 82

72 Jellemző erőforrásigények Az ellenőrzés időigénye (mbed platform) ( state change) Kisebb, mint 12% többletidő ( state change) Nagy overhead gyors vezérlési funkciókra 83

73 Jellemző erőforrásigények Kódméret növekedés (mbed platform) Kisebb, mint 5% kódméret növekedés 84

74 Scenario alapú monitorozás Prototípus megvalósítás o Scenario követelmények: Eclipse UML2 alapon o Monitor (teszt oracle): Java alkalmazás Komplexitás: a gráfminták illesztése o Legjobb eset: O(IM), legrosszabb eset: O(NI M M 2 ) N: a követelmény gráf minták száma M: a követelmény gráf minták átlagos mérete I: a trace-ben illesztendő kontextus gráf csúcsainak száma o A követelmény gráf minták (kontextus fragmensek) általában kicsik (így M értéke alacsony) 85

75 Összefoglalás Monitor szintézis futásidőbeli verifikációhoz o Automata alapú referencia viselkedés ellenőrzés Időzített automata modellek alapján UML állapottérkép modellek alapján: Monitorozás precíz szemantika szerint o LTL követelmények hatékony verifikációja Ellenőrző blokkok konstrukciója és példányosítása o LSC követelmények futásidőbeli verifikációja o Kontextusfüggő viselkedés ellenőrzése scenario követelmények alapján Események, akciók és kontextus fragmensek illesztése 87

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

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

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

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 Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények

Részletesebben

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

Részletesebben

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

Részletesebben

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

Részletesebben

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

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

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

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

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

Részletesebben

Részletes tervek ellenőrzése

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?

Részletesebben

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

Részletesebben

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

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

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

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

Részletesebben

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

Részletesebben

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

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

Részletesebben

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

Részletesebben

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

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

Részletesebben

R3-COP. Resilient Reasoning Robotic Co-operating Systems. Autonóm rendszerek tesztelése egy EU-s projektben

R3-COP. Resilient Reasoning Robotic Co-operating Systems. Autonóm rendszerek tesztelése egy EU-s projektben ARTEMIS Joint Undertaking The public private partnership in embedded systems R3-COP Resilient Reasoning Robotic Co-operating Systems Autonóm rendszerek tesztelése egy EU-s projektben Micskei Zoltán Budapesti

Részletesebben

Szoftverminőségbiztosítás

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

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

A modell-ellenőrzés gyakorlata UPPAAL

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)

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

2. gyakorlat: Részletes tervek és forráskód ellenőrzése

2. gyakorlat: Részletes tervek és forráskód ellenőrzése 2. gyakorlat: Részletes tervek és forráskód ellenőrzése A gyakorlaton a részletes tervek ellenőrzésével és a forráskód verifikációját végző statikus ellenőrző eszközökkel fogunk foglalkozni. Részletes

Részletesebben

Alapszintű formalizmusok

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

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

Részletesebben

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

Részletesebben

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

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

Részletesebben

Formális modellezés és verifikáció

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

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

Szoftverminőségbiztosítás

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

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

Modellek végrehajtása, kódgenerálás

Modellek végrehajtása, kódgenerálás Modellek végrehajtása, 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

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

Automatikus kódgenerálás helyességének ellenőrzése

Automatikus kódgenerálás helyességének ellenőrzése Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Automatikus kódgenerálás helyességének ellenőrzése Készítette: Jeszenszky Balázs, V. Inf., jeszyb@gmail.com Konzulens:

Részletesebben

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Hibatűré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/ 1 Hibatűrés különféle hibák esetén Hardver tervezési hibá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

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

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

Biztonságkritikus rendszerek Gyakorlat: Architektúrák

Biztonságkritikus rendszerek Gyakorlat: Architektúrák Biztonságkritikus rendszerek Gyakorlat: Architektúrák Rendszertervezés és -integráció dr. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék BME-MIT

Részletesebben

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

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

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

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Mintapélda: Rendszertesztelés a SAFEDMI projektben

Mintapélda: Rendszertesztelés a SAFEDMI projektben Mintapélda: Rendszertesztelés a SAFEDMI projektben 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/ Tartalomjegyzék

Részletesebben

Struktúra alapú teszttervezési módszerek

Struktúra alapú teszttervezési módszerek Szoftverellenőrzési technikák Struktúra alapú teszttervezési módszerek Majzik István, Micskei Zoltán http://www.inf.mit.bme.hu/ 1 Teszttervezés módszerei I. Specifikáció alapú A rendszer mint fekete doboz

Részletesebben

Tesztelési feladatok és kihívások a FALCON projektben

Tesztelési feladatok és kihívások a FALCON projektben Tesztelési feladatok és kihívások a FALCON projektben Búr Márton Szoftver Verifikáció és Validáció 2016.12.07. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

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

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

Formális módszerek GM_IN003_1 Bevezetés

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

Részletesebben

UML (Unified Modelling Language)

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)

Részletesebben

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

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

1. Jelölje meg az összes igaz állítást a következők közül!

1. Jelölje meg az összes igaz állítást a következők közül! 1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.

Részletesebben

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18 C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi

Részletesebben

A formális módszerek szerepe

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

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

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

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

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

Részletesebben

Struktúra alapú teszttervezési módszerek

Struktúra alapú teszttervezési módszerek Szoftver- és rendszerellenőrzés (VIMIMA01) Struktúra alapú teszttervezési módszerek Majzik István, Micskei Zoltán http://www.inf.mit.bme.hu/ 1 Teszttervezés módszerei I. Specifikáció alapú A rendszer mint

Részletesebben

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem A J2EE fejlesztési si platform (application model) 1.4 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. A J2EE application model A Java szabványok -

Részletesebben

V & V Feladatok. V & V Feladatok

V & V Feladatok. V & V Feladatok V & V Feladatok 2008.01.08 2. Feladat tartozik! A relációjel fordított. Hibás bemenetekre nem teszteltünk. Figyelmen kívül hagytuk az objektum konstruálás időigényét. A pointer értéke null. A program lefut,

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

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

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

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

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft. Norway Grants AKKUMULÁTOR REGENERÁCIÓS ÉS Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai Kakuk Zoltán, Vision 95 Kft. 2017.04.25. Rendszer szintű megoldá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 Ez vajon egy állapotgép-e? Munkafolyamat (Workflow):

Részletesebben

ködös határ (félreértés, hiba)

ködös határ (félreértés, hiba) probléma formálisan specifikált: valós világ (domain) (hibás eredmény) ködös határ (félreértés, hiba) formális világ (megoldás) A szoftver fejlesztőnek meg kell értenie a felhasználó problémáját. A specifikáció

Részletesebben

Teszttervezés. Majzik István, Micskei Zoltán. Integrációs és ellenőrzési technikák (VIMIA04) Méréstechnika és Információs Rendszerek Tanszék

Teszttervezés. Majzik István, Micskei Zoltán. Integrációs és ellenőrzési technikák (VIMIA04) Méréstechnika és Információs Rendszerek Tanszék Integrációs és ellenőrzési technikák (VIMIA04) Teszttervezés Majzik István, Micskei Zoltán Méréstechnika és Információs Rendszerek Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és

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

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 5 Fehér Béla Raikovich Tamás,

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 5 Fehér Béla Raikovich Tamás,

Részletesebben

BUDAPESTI MÛSZAKI EGYETEM Méréstechnika és Információs Rendszerek Tanszék. SPIN Mérési útmutató. Készítette: Jávorszky Judit

BUDAPESTI MÛSZAKI EGYETEM Méréstechnika és Információs Rendszerek Tanszék. SPIN Mérési útmutató. Készítette: Jávorszky Judit BUDAPESTI MÛSZAKI EGYETEM Méréstechnika és Információs Rendszerek Tanszék SPIN Mérési útmutató Készítette: Jávorszky Judit Tartalomjegyzék 1. Bevezetés. 2 1.1. Általános leírás. 2 1.2. Módszertan. 3 1.3.

Részletesebben

A hibakezelés tesztelése: Hibainjektálás

A hibakezelés tesztelése: Hibainjektálás Szoftverellenőrzési technikák (vimim148) A hibakezelés tesztelése: Hibainjektálás Majzik István és Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek

Részletesebben

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

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

Részletesebben

Szekvenciális hálózatok és automaták

Szekvenciális hálózatok és automaták Szekvenciális hálózatok a kombinációs hálózatokból jöhetnek létre tárolási tulajdonságok hozzáadásával. A tárolás megvalósítása történhet a kapcsolás logikáját képező kombinációs hálózat kimeneteinek visszacsatolásával

Részletesebben

Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet

Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet Aspektus-orientált nyelvek XML reprezentációja Kincses Róbert Debreceni Egyetem, Informatikai Intézet kincsesr@inf.unideb.hu Bevezetés OOP: helyesen alkalmazva jó minőségű szoftvert lehet vele előállítani

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

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban Nagy Attila Mátyás 2016.12.07. Áttekintés Bevezetés Megközelítés Pilot tanulmányok

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

IoT alapú mezőgazdasági adatgyűjtő prototípus fejlesztési tapasztalatok

IoT alapú mezőgazdasági adatgyűjtő prototípus fejlesztési tapasztalatok IoT alapú mezőgazdasági adatgyűjtő prototípus fejlesztési tapasztalatok 2016.05.19. Szilágyi Róbert Tóth Mihály Debreceni Egyetem Az IoT Eszközök és más fizikai objektumok elektronikával, vezérléssel,

Részletesebben

Dr. Mileff Péter

Dr. Mileff Péter Dr. Mileff Péter 1 2 1 Szekvencia diagram Szekvencia diagram Feladata: objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé

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

Biztonságkritikus rendszerek architektúrája

Biztonságkritikus rendszerek architektúrája Biztonságkritikus rendszerek architektúrája 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

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

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

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

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:

Részletesebben

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Témavezető: Horváth Zoltán és Simon Thompson OTDK 2007, Miskolc Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK

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

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