Futásidőbeli verifikáció
|
|
- János Török
- 5 évvel ezelőtt
- Látták:
Á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ó 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észletesebbenForrá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észletesebbenMagasabb 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észletesebbenA 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észletesebbenA 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észletesebbenAlapszintű 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észletesebbenAz 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észletesebbenRendszermodellezé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észletesebbenValó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észletesebbenGyakorló 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észletesebbenModell 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észletesebbenRé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észletesebbenAutomatikus 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észletesebbenModellellenő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észletesebbenRé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észletesebbenZá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észletesebbenModellellenő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észletesebbenMonitorok 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észletesebbenKö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észletesebbenTemporá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észletesebbenKorlá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észletesebbenTranszformá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észletesebbenModellező 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észletesebbenModellellenő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észletesebbenAutó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észletesebbenR3-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észletesebbenSzoftverminő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észletesebbenHardver é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észletesebbenA 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észletesebbenFormá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észletesebben2. 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észletesebbenAlapszintű 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észletesebbenIntervenció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észletesebbenHaté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észletesebbenSzoftver-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észletesebbenFormá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észletesebbenIdő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észletesebbenIdő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észletesebbenSzoftverminő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.
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észletesebbenModellek 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észletesebbenOsztott 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észletesebbenAutomatikus 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észletesebbenHibatű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észletesebbenNagy 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észletesebbenJava 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észletesebbenMagasabb 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észletesebbenBiztonsá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észletesebbenFormá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észletesebbenKiterjeszté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észletesebbenJava 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észletesebbenMintapé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észletesebbenStruktú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észletesebbenTesztelé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észletesebbenA 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észletesebbenBPEL 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észletesebbenFormá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észletesebbenUML (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észletesebbenKö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észletesebbenHardver é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észletesebben1. 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észletesebbenC# 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észletesebbenA 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észletesebbenArchitektú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észletesebbenSztochasztikus 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észletesebbenKö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észletesebbenStruktú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észletesebbenA 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észletesebbenV & 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
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észletesebbenJava 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észletesebbenModellezé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észletesebbenSzoftver 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észletesebbenSzoftver ú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észletesebbenSzoftver-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észletesebbenNorway 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észletesebbenFolyamatmodellezé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észletesebbenkö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észletesebbenTeszttervezé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észletesebben8. 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észletesebbenDigitá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észletesebbenDigitá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észletesebbenBUDAPESTI 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észletesebbenA 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észletesebbenHaté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észletesebbenSzekvenciá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észletesebbenAspektus-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észletesebbenElé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észletesebbenHaszná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észletesebbenSzoftverminő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észletesebbenIoT 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észletesebbenDr. 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
Ó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észletesebbenBiztonsá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észletesebben2011.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észletesebbenMagasabb 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észletesebbenBokor 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észletesebbenEgy 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észletesebbenAlapszintű 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észletesebbenModell 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