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

Hasonló dokumentumok
Futásidőbeli verifikáció

Alapszintű formalizmusok

Magasabb szintű formalizmus: Állapottérképek (statecharts) dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

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

Alapszintű formalizmusok

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

Futásidőbeli verifikáció

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS

TERMÉKTERVEZÉS PANDUR BÉLA TERMÉKTERVEZÉS

2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA

Alapszintű formalizmusok

Részletes szoftver tervek ellenőrzése

Az informatika alapjai. 10. elıadás. Operációs rendszer

DGSZV-EP DIGITÁLIS GALVANIKUS SZAKASZVÉDELEM. Alkalmazási terület

Méréstechnika. 3. Mérőműszerek csoportosítása, Elektromechanikus műszerek általános felépítése, jellemzőik.

Mérôváltó bemenetek és általános beállítások

Tantárgyi követelmény Szakiskola 9/E évfolyam

TRP-C24 Felhasználói Kézikönyv

Részletes tervek ellenőrzése

ZP 120LCD UPS. Minőségi Energiaforrás. on-line IPARI ALKALMAZÁSOK ELECTRO-MEDICAL BERENDEZÉSEK BIZTONSÁGI BERENDEZÉSEK

A szolgáltatásbiztonság alapfogalmai

Tartalom. Az adatkapcsolati réteg, Ethernet, ARP. Fogalma és feladatai. Adatkapcsolati réteg. Ethernet

A formális módszerek szerepe

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

Merlin Gerin. Katalógus. Védelem, automatika és irányítástechnika Sepam készülékcsalád Sepam 2000 Sepam Sepam 100

Számítógépes irányítások elmélete (Súlyponti kérdések)

komplex megoldás a beléptetés minden területén: Beléptető, munkaidő nyilvántartó, parkoló és jegyértékesítő-beléptető rendszerek

Digitális bemenetek: 2 darab 0-5V jelszintű digitális bemenet Pl. nyitásérzékelők, risztóközpontok, mozgásérzékelők, átjelzők, stb.

Mielıtt használná termékünket Az eltérı környezeti körülmény elektromos áramütést, tüzet, hibás mőködést vagy. okozhat.

Vektorugrás védelmi funkció blokk

Modell alapú tesztelés mobil környezetben

Informatikai rendszerek

VLT 6000 HVAC. Tartalom

M7410G LINEÁRIS SZELEPÁLLÍTÓ LON KOMMUNIKÁCIÓVAL

TRIMx-EP DIGITÁLIS SZINKRON KAPCSOLÁS TRANSZFORMÁTOROK. Alkalmazási terület

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Az EuroProt készülékcsalád

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt

2. Digitális hálózatok...60

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

Az MSP430 energiatakarékos használata

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

INFORMATIKA 5. évfolyam

Programozási nyelvek Java

K_EITS8, Multichannel Impedance Meter K_EITS8, nyolc csatornás elektromos impedancia mérő berendezés

A HV-PCI6 VIDEODIGITALIZÁLÓ KÁRTYA ÉS ALKALMAZÁSAI (HV-PCI6 Video Digitizing Card and its Applications)

CHRONOS NANO RITE

300 (5/5) 300 (5/5) Normál érintkező anyag Tápfeszu ltség jellemzői értékek U N. (0,8...1,2)U N DC Műszaki adatok Villamos élettartam AC1-nél

Adatexport útmutató Könyvvizsgálói program számára átadott adatok XML formátumban

Információ-architektúra

Távolsági védelmek vizsgálata korszerű módszerekkel

AUDIO ENGINEERING SOCIETY

DocBook útmutató. Jeszenszky Péter Debreceni Egyetem, Informatikai Kar

Elektronika I. Dr. Istók Róbert. II. előadás

100% BIO Natur/Bio kozmetikumok és testápolás

I. A légfékrendszer időszakos vizsgálatához alkalmazható mérő-adatgyűjtő berendezés műszaki

Diszkrét termelési folyamatok ütemezési feladatainak modellezése és számítógépi megoldása

8.1 Az UPS bekapcsolása A bekapcsolás sorrendje Akkumulátorról indítás... 18

X. Szigetelésdiagnosztikai Konferencia

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

XML technikák II Kovács, László

DIGITÁLIS TECHNIKA I KARNAUGH TÁBLA, K-MAP KARNAUGH TÁBLA PROGRAMOK PÉLDA: ÖT-VÁLTOZÓS MINIMALIZÁLÁS PÉLDA: ÖT-VÁLTOZÓS MINIMALIZÁLÁS

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

A SZOFTVERTECHNOLÓGIA ALAPJAI

1. mérés - LabView 1

Magasabb szintű formalizmus: Állapottérképek (statecharts) dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

JUMO. Beépíthetõ ház DIN szerint. Rövid leírás. Blokkvázlat. Sajátságok. JUMO dtron 16.1

DREHMO i-matic elektromechanikus hajtások

melléklet. Fogyasztásmérők, összegzők

IBM Business Monitor 7. változat 5. alváltozat. IBM Business Monitor telepítési kézikönyv

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

DUALCOM SIA IP TELEPÍTÉSI ÉS ALKALMAZÁSI ÚTMUTATÓ. V és újabb modulverziókhoz. Dokumentum verzió:

Paraméter csoport. Alapbeállítások

Elektropneumatika. 3. előadás

XML sémanyelvek Jeszenszky, Péter

Tanúsítási jelentés. Hung-TJ

INFORMATIKAI ALAPISMERETEK

A DAS1414 általános célú intelligens adatgyűjtő és vezérlő egység és alkalmazásai

Biztonsági kézikönyv. PFF-HM31A decentralizált biztonsági vezérlés MOVIPRO -hoz


GeoMax újratöltve. Földmérő Nap Pécs 2014 GeoSite Kft Horváth Zsolt

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

E7-DTSZ konfigurációs leírás

Visszakapcsoló automatika funkció nagyfeszültségű hálózatra

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Meddő teljesítmény szabályzó termékcsalád

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

TANMENET INFORMATIKA (0. évfolyamos képzés) 9.A1 9.A2 csoport

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

400-as sorozatú videorögzítő

Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Széchenyi István Szakképző Iskola

HATÓSÁGI ELLENŐRZÉSI TERV

Autokláv Reaktor Műanyag fröccsöntő Szárítószekrény Sörgyári gép Erjesztő Érlelő Sterilizátor Mosodai berendezés Élelmiszeripari gép

Foglalkozási napló a 20 /20. tanévre

I. Kiemelt vizsgálati célok 1. Az adózói életút vizsgálatán alapuló ellenőrzések

- elektromos szempontból az anyagokat három csoportra oszthatjuk: vezetık félvezetık szigetelı anyagok

FPGA áramkörök alkalmazásainak vizsgálata

Átírás:

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 szoftver szintézisre? Mik az alapelvek? Mérnöki modellek Magasabb szintű formalizmusok SC, PN, CPN, DFN Alapszintű matematikai formalizmusok KS, LTS, KTS 2

Tartalomjegyzék Alkalmazás forráskód szintézise A formális szemantika szerepe Platform szolgáltatások beillesztése Monitor kód szintézise futásidőbeli verifikációhoz Futásidőbeli verifikáció Elfogadó automaták 3

Forráskód szintézis időzített automata modellek alapján 4

Az alkalmazás és a formalizmus Beágyazott vezérlők: Eseményvezérelt, állapot alapú Egyszerű akciók Elosztott is lehet Kommunikáció Valósidejű működés Időzített automaták: Véges automata alapú (állapotok, átmenetek) Akciók változókon Automaták hálózata Szinkron kommunikáció Óraváltozók használata 5

A kódgenerálás alapelvei 6

A kódgenerálás alapelvei 8

A kódgenerálás alapelvei 9

A kódgenerálás alapelvei 10

A formális szemantika leképzése forráskódra A generált kód felépítése egy automata esetén: Folyamatos működés Állapothoz tartozó változók beállítása, csatornákra történő figyelés indítása Állapotátmenetek folyamatos ellenőrzése Állapotátmenet kezelése, csatornafigyelések leállítása 12

A kódgenerálás megvalósítása Template alapú kódgenerálás: Példa technológia: Java Emitter Templates (JET) Java utasítások: Modell bejárása és elemek azonosítása Kódgenerálási minta: C kódrészletek kiírása <% Java utasítás %> <%= kiírandó eredmény (Java utasításból) %> <%for (Location loc : template.getlocations()) { %> void entertolocation<%= loc.getid() %> ( ) { statereg = <%= loc.getid() %>; waitfunc = &waitinlocation<%= loc.getid() %>; exitfunc = &exitfromlocation<%= loc.getid() %>; <%if (settings.getloggingmode() == SettingsHandler.LoggingModes.OFFLINE) { %> offlinelogfunction(<%=loc.getid()%>, locationlog); } 13

A platformszolgáltatások megvalósítása Nemtriviális kódrészleteket igényel (függvénykönyvtár) Időkezelés (hardver beállítása, interrupt, ) Kommunikáció (pl. szinkron kommunikáció) 14

A platformszolgáltatások beillesztése Szemantikához kötődő elvárások: Kommunikáció Időkezelés Alkalmazási terület szolgáltatásai: Fizikai bemenetek és kimenetek Platform funkció indítása 15

A platformszolgáltatások beillesztése 16

A platformszolgáltatások beillesztése <?xml version="1.0" encoding="utf-8"?> <config> <communication> <implementation>../../api/api.c</implementation> </communication> <timing> <include>sdl/sdl.h</include> <waitfunction>sdl_delay(100)</waitfunction> <implementation>clockfunctions.c</implementation> <logging> <mode>online</mode> <implementation>logfunctions.c</implementation> </logging> 17

Többletszolgáltatások a generált kódban 18

Futásidejű monitor szintézis a követelmények alapján 20

Bevezetés Futásidőbeli verifikáció: Tényleges viselkedés (programfutás) összevetése referencia viselkedéssel (modell vagy specifikáció) A hibák okozta eltérések detektálhatók Tényleges viselkedésről futásidejű információ: Passzív megfigyelés vagy jelzőszámok átvitele az alkalmazásból Referencia viselkedésről tárolt információ: Formális modell vagy temporális logikai specifikáció Megvalósítási példák Önellenőrzés: Végrehajtható ellenőrző kódrészletek (assertions) Független ellenőrzés: Futásidejű monitor Watchdog processzor Szabvány előírás biztonságkritikus rendszerekben 21

Monitor komponens Belső viselkedés monitorozása Formális modell Működési hibák (Kézi kódolás hibái) Környezet (események) Hibajelzés Fq Gs Gs Temporális logika Megvalósítás Automatikus felműszerezés: Jelzőszámok az állapotokról, átmenetekről, akciókról,... 22

Automaták közötti interakciók monitorozása Működési hibák Kódolási hibák (protokoll) Automata A Automata B Monitor.c.java Kommunikációs réteg Monitor a kommunikációs réteghez Referencia információ: Temporális logikai követelmények Szekvencia diagram (scenariok) 23

Kódgenerálás Rendszer követelmények Modellellenőrzés Időzített automata formális modell Forráskód generálás Alkalmazás Tervezési idejű verifikáció 24 24

Kódgenerálás és futásidejű verifikáció Rendszer követelmények Modellellenőrzés CTL monitor szintézis LSC monitor szintézis Rendszerszintű monitorok Időzített automata formális modell Tervezési idejű verifikáció Lokális monitor szintézis Forráskód generálás Felműszerezés Lokális vezérlés monitorozása Felműszerezett alkalmazás Futásidejű verifikáció 25 25

Két hierarchiaszint: Lokális monitorozás Hierarchikus monitorozás Vezérlési folyam ellenőrzés Lokális CTL kifejezések Rendszerszitű monitorozás Előnyök: Rendszerszintű CTL kifejezések Rendszerszintű scenario-k (LSC) Monitor szintézis és felműszerezés az ellenőrizendő követelményekhez optimalizálható (kis overhead) Használati esetek Lokális Lokális Lokális Alk. Alk. Alk. Globális CTL LSC Futásidőben: Hibadetektálás (egy-egy konkrét futásra) Tesztelés közben: Teszt kiértékelés (itt több futásra is) 26 26

Vezérlési folyam ellenőrzése A tranziens hibák többsége vezérlési hibát okoz Monitor szintézis Az állapotok és átmenetek futásidejű szekvenciájának ellenőrzése Az időzített automata modell a referencia az ellenőrzéshez A monitor forráskódja automatikusan generálható az automata modellből Alkalmazás felműszerezés Minden állapot és átmenet felműszerezése megtörténik: Azonosítás a monitor számára Kiterjesztések: Idő invaránsok ellenőrzése Deadlock ellenőrzés szívdobbanás (heartbeat) üzenetek alapján 27 27

Vezérlési folyam lokális ellenőrzése: Felműszerezés Inicializálás Felműszerezés Belépő függvény Jelzőszám küldése a monitornak Rendszerciklus Jelzőszám küldése a monitornak Várakozó függvény Felműszerezés Kilépő függvény Automata szintje Állapotok szintje 29 29

Temporális logika alapú monitorozás Követelmények: Temporális elérhetőség Biztonsági követelmények: Invariáns kifejezések Élő jellegű követelmények: Egzisztenciális kifejezések Elágazó idejű temporális logikai kifejezések Timed CTL variáns az UPPAAL esetén (TCTL) Temporális operátorok korlátozott készlete Temporális operátorok nem egymásba ágyazhatók Óraváltozók használhatók Automatikus és optimalizált felműszerezés Csak a követelményekben hivatkozott állapotok és átmenetek esetén kell a monitort értesíteni 30 30

A monitorozás sémája CTL követelmények Alkalmazás Felműszerezés Monitor szintézis Alkalmazás Felműszerezés Futásidejű információ CTL monitor Alkalmazás Felműszerezés 31 31

Monitorok szintézise CTL követelményekhez Cél: A követelmény alapján megfigyelő automata konstruálása a futásidejű szekvenciákhoz Bemenetek: Jelzőszámok a hivatkozott lokális feltételek teljesüléséről, szekvencia kezdete (New trace), szekvencia vége (End of last trace) Kimenet: Elfogadva (True), hiba (False), vagy nem meghatározott Példa: Az AF temporális operátor szemantikája alapján konstruált megfigyelő automata (itt adott állapotban lokálisan kiértékelhető) Automatikus megvalósítás (C nyelven) 32

Scenario alapú követelmények Live Sequence Chart (LSC) Az üzenet szekvencia diagram (MSC) kiterjesztése Formalizált szemantika Intuitívabb, mint a temporális logika a lefutások követelményeinek megadására 33 33

Scenario alapú követelmények Live Sequence Chart (LSC) Az üzenet szekvencia diagram (MSC) kiterjesztése Formalizált szemantika Intuitívabb, mint a temporális logika a lefutások követelményeinek megadására Feltétel Kiértékelés 34 34

Scenario alapú monitorozás LSC követelmény Megfigyelő automata Monitor forráskód LSC monitor példány LSC monitor végrehajtási környezet 35 35

Megfigyelő automata konstrukciója LSC-hez A 1 2 3 A B 2 C 4 5 1 3 B C 5 C B 4 36 36

LSC monitor végrehajtási környezet Feladata: LSC monitorok indítása, leállítása A monitorok értesítik a státuszukról Támogatott LSC típusok: Egzisztenciális Univerzális Támogatott aktiválási módok Kezdeti Invaráns Iteratív 37 37

Megvalósítás Kétféle beágyazott platform Moduláris mitmót vezetéknélküli kommunikációval Ipari mintapélda: Bit szinkronizációs protokoll mbed mikrokontroller (ARM Cortex-M3, 96 MHz) Oktatási célú mintapélda: Modellvasút vezérlés 38 38

Mérési eredmények Az ellenőrzés időigénye az mbed platformon (50.000 state changes) Kisebb, mint 12% többlet (500.000 state changes) Nagyobb többlet üres funkciók esetén 39

Mérési eredmények Kódméret növekedés az mbed platformon Kisebb, mint 5% kódméret növekedés 40 40

Összefoglalás Alkalmazás forráskód szintézise A formális szemantika szerepe Platform szolgáltatások Monitor kód szintézise Futásidőbeli verifikáció Elfogadó automaták 41