Verifikace Modelů a UPPAAL

Podobné dokumenty
Verifikace Modelů a UPPAAL

Verifikace Modelů a UPPAAL

ČVUT FEL Katedra telekomunikační techniky, K prosince Radek Mařík Ověřování modelů II 6. prosince / 39

ČVUT FEL, K December 12, Radek Mařík Ověřování modelů II December 12, / 30

Temporální logiky. Czech Technical University Faculty of Electrical Engineering Department of Telecommunication Engineering Prague CZ

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

10. Techniky formální verifikace a validace

Model Checking pro Timed Automata. Jiří Vyskočil 2011

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Strukturování Petriho Nadpis 2 Nadpis 3

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Modelování procesů (2) Procesní řízení 1

Local Interconnect Network - LIN

VeriFIT Automatizovaná analýza a verifikace

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

TÉMATICKÝ OKRUH Softwarové inženýrství

Testování a verifikace softwaru

Unbounded Model Checking

Temporální logiky. ČVUT FEL Katedra telekomunikační techniky, K prosince 2017

9. Praktická verifikace

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

SIGNÁLY A LINEÁRNÍ SYSTÉMY

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Formální Metody a Specifikace (LS 2011) Formální metody pro kyber-fyzikální systémy

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Paralelní programování

NP-úplnost problému SAT

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

IV113 Validace a verifikace. Detekce akceptujícího cyklu. Jiří Barnat

teorie logických spojek chápaných jako pravdivostní funkce

Výroková a predikátová logika - V

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

Výroková a predikátová logika - III

1 Nejkratší cesta grafem

3. Sekvenční logické obvody

C2142 Návrh algoritmů pro přírodovědce

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016

5. Sekvenční logické obvody

Výroková a predikátová logika - VII

U Úvod do modelování a simulace systémů

Sekvenční logické obvody

Třídy složitosti P a NP, NP-úplnost

Matematická logika. Rostislav Horčík. horcik

Profilová část maturitní zkoušky 2017/2018

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti 1 / 19

Paralelní programování

Multimediální systémy

Výroková a predikátová logika - III

Usuzování za neurčitosti

Další (neklasické) logiky. Jiří Velebil: AD0B01LGR 2015 Predikátová logika 1/20

Pohled do nitra mikroprocesoru Josef Horálek

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Algoritmizace a programování

Výroková logika. Sémantika výrokové logiky

Logický důsledek. Petr Kuchyňka

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017

Program a životní cyklus programu

FORMÁLNÍ VERIFICKACE PLC PROGRAMŮ POMOCÍ SMV A UPPAAL. O. Šprdlík R. Šusta

Profilová část maturitní zkoušky 2013/2014

4.2 Syntaxe predikátové logiky

Výroková a predikátová logika - II

Temporální Logiky. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti 1 / 19

POČÍTAČOVÁ SIMULACE PODNIKOVÝCH PROCESŮ. Ing. V. Glombíková, PhD.

Výroková logika syntaxe a sémantika

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Predikátová logika. Teoretická informatika Tomáš Foltýnek

Výroková a predikátová logika - VIII

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy

IV113 Validace a verifikace. Formální verifikace algoritmů. Jiří Barnat

Matematická logika. Lekce 1: Motivace a seznámení s klasickou výrokovou logikou. Petr Cintula. Ústav informatiky Akademie věd České republiky

Sémantika výrokové logiky. Alena Gollová Výroková logika 1/23

Obsah Předmluva Rekapitulace základních pojmů logiky a výrokové logiky Uvedení do predikátové logiky...17

TVS zkouška 2010/2011 Vypracoval: Radek Nguyen

Okruh č.3: Sémantický výklad predikátové logiky

UML. Unified Modeling Language. Součásti UML

Úvod do informatiky. Miroslav Kolařík

Institut teoretické informatiky (ITI) na FI MU

Logika a logické programování

Výroková a predikátová logika - VIII

Výroková a predikátová logika - XIII

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

IMOSI - MODELACE A SIMULACE LEARN 2013 správně možná špatně

Počítačové sítě Datový spoj

Náhled testu. Přijímací zkouška magisterského studia. konečný automat bez zbytečných stavů, který přijímá jazyk popsaný tímto výrazem, má:

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

Základy logiky a teorie množin

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

IV113 Validace a verifikace

Modelování procesů (1) Procesní řízení 1

Dynamicky vázané metody. Pozdní vazba, virtuální metody

platné nejsou Sokrates je smrtelný. (r) 1/??

VzorTest-1. Prohlídka náhledu

Matematická indukce a správnost programů. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 13

ŘÍKÁME, ŽE FUNKCE JE ČÁSTEČNĚ SPRÁVNÁ (PARTIALLY CORRECT), POKUD KDYŽ JE SPLNĚNA PRECONDITION

Systém přirozené dedukce výrokové logiky

Predikátová logika dokončení

Sémantika predikátové logiky

Transkript:

Verifikace Modelů a UPPAAL Radek Mařík Czech Technical University Faculty of Electrical Engineering Department of Telecommunication Engineering Prague CZ November 7, 2017 Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 1 / 46

Outline 1 Úvod Motivace Úvod do verifikace modelů Formální popis 2 UPPAAL - Přehled Základní vlastnosti Architektura 3 UPPAAL - Vybrané vlastnosti Systém a proces Manuál Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 2 / 46

Outline Úvod Motivace 1 Úvod Motivace Úvod do verifikace modelů Formální popis 2 UPPAAL - Přehled Základní vlastnosti Architektura 3 UPPAAL - Vybrané vlastnosti Systém a proces Manuál Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 3 / 46

Úvod Motivace Garantování správného chování systémů [Cam10] zvyšování složitosti softwarových systémů, chyby vedou ke ztrátám finančním, na lidských životech. typicky problém systémů s kritickou bezpečností letadla, satelity, lékařská zařízení. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 4 / 46

Úvod Motivace Cíle kladené na požadavky [Cam10] Demonstrace, že požadavky jsou správné, úplné, přesné, konzistentní, testovatelné. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 5 / 46

Úvod Motivace Metody zajištění kvality [Cam10] Testování a Simulace poskytuje pouze pravděpodobnostní zajištění. Verifikace za běhu... technika kombinující formální verifikaci s během programu. Formální verifikace... technika založená na formálních metodách stavějící na matematicky založených jazycích, které umožňují specifikaci a verifikaci systémů. Specifikace... zapsání požadavků na systém v matematickém jazyku. Verifikace... formální důkaz toho, že systém splňuje požadavky. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 6 / 46

Princip formální verifikace Úvod Motivace [Cam10, Če09] Vstupy (matematický) model systému, formální model M, specifikace požadavků kladených na systém formule ϕ určité temporální logiky, Verifikace Ověření, že systém splňuje specifikaci. rozhodnutí, zda-li M je modelem formule ϕ, tj. M = ϕ Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 7 / 46

Úvod Motivace Typologie formální verifikace [Cam10] Techniky Statická analýza... ověření chování programu, aniž by se musel spustit. Abstraktní statická analýza... založená na abstraktní interpretaci používající aproximační abstrakní reprezentace k ověřování přibližných vlastností složitých systémů analýza ukazatelů v moderních kompilátorech. Ověřování modelů... úplné procházení dosažitelných stavů programu. Omezené ověřování modelů... úplné procházení dosažitelných stavů programu pouze do určité hloubky. Dokazování vět... nalezení důkazu vlastnosti, kdy systém i jeho vlastnosti jsou vyjádřeny jako formule v nějaké matematické logice. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 8 / 46

Úvod Motivace Řešitelnost temporálně logických formalismů [Hol06] Ověřování modelů Ptáme se, zda daný systém splňuje požadovanou vlastnost. Tj. pro strukturu reprezentující systém je třeba zjistit, jestli je modelem zadané formule. využitelné pro verifikaci existujících programů. Splnitelnost formuĺı Problém rozhodnutí, zda existuje nějaký model zadané formule. využitelné při automatické syntéze programů. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 9 / 46

Outline Úvod Úvod do verifikace modelů 1 Úvod Motivace Úvod do verifikace modelů Formální popis 2 UPPAAL - Přehled Základní vlastnosti Architektura 3 UPPAAL - Vybrané vlastnosti Systém a proces Manuál Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 10 / 46

Úvod Úvod do verifikace modelů Verifikace modelů [Cam10] Princip budování konečného modelu systému, kontrola, zda požadovaná vlastnost je modelem dodržena, založeno na úplném prohledání stavového prostoru. Základní vlastnosti manipulace s obrovskými prohledávacími prostory, odpověd je ano či ne, v záporném případě systém poskytuje protipříklad, tj. běh systému, který neodpovídá vlastnosti. analýza specifikace softwarových systémů. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 11 / 46

Úvod Úvod do verifikace modelů Verifikace modelů v praxi [Cam10] Aplikace ověření hardwaru (obvody), ověření protokolů, analýza specifikace softwarových systémů. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 12 / 46

Úvod Úvod do verifikace modelů Přístupy verifikace modelů [Cam10] Temporální verifikace modelů použití temporální logiky (vyjádření času), systémy modelovány jako přechodové systémy s konečným počtem stavů. Automatový přístup specifikace i model vyjádřen jako automaty, oba automaty se porovnávají jazyková inkluze, zjemňující uspořádání, pozorovací ekvivalence. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 13 / 46

Úvod Úvod do verifikace modelů Výhody/nevýhody verifikace modelů [Cam10] Výhody úplná automatizace, vysoká rychlost, možnost verifikace i částečných specifikací, produkuje protipříklady. Nevýhody problém exploze stavů, binární rozhodovací diagramy (BDD), nástroje jsou schopny zvládnout systémy s 100 200 stavovými proměnnými je možné zvládnout systémy s 10 120 stavy. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 14 / 46

Úvod Úvod do verifikace modelů Rozšíření metod verifikace modelů [Bie08] Odstraňování konečnosti spojité proměnné, spojitý čas, práce s pravděpodobností, parametrizace velikosti či počtu komponent, náhrada konečných automatů zásobníkovými automaty. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 15 / 46

Úvod Úvod do verifikace modelů Temporální logika [Bie08] Vyšetření sekvenčního či temporálního chování systému reaktivní, distribuované či paralelní systémy, A. Pnueli upozornil na tuto myšlenku jako první, Ověřované vlastnosti Bezpečnost... vlastnost stanovující, že určitá chyba či katastrofický stav není dosažitelný. všechny dosažitelné stavy splňují určitý invariant. Živost... něco jednou nastane, Férovost..., Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 16 / 46

Outline Úvod Formální popis 1 Úvod Motivace Úvod do verifikace modelů Formální popis 2 UPPAAL - Přehled Základní vlastnosti Architektura 3 UPPAAL - Vybrané vlastnosti Systém a proces Manuál Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 17 / 46

Úvod Formální popis Stavový prostor [Če09] Aplikovatelné jen na konečné stavové prostory Verifikovat se dají pouze ty parametry modelu, které jsou specifikovány. Stavový prostor lze formalizovat za použití atomických výroků a Kripkeho struktury Atomické výroky základní tvrzení popisující daný systém výrazy, konstanty, predikátové symboly. Každý atomický výrok je algoritmicky rozhodnutelný na základě daného stavu. Stav... ohodnocení všech proměnných. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 18 / 46

Úvod Formální popis Kripkeho struktura - mikrovlná trouba [?] Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 19 / 46

Úvod Formální popis Kripkeho struktura [Če09] Kripkeho struktura je typ nedeterministického konečného automatu. Kripkeho struktura Je dána množina atomických propozic AP. Kripkeho struktura je trojice (S, T, I), kde S je konečná množina stavů, T S S je přechodová relace, I : S 2 AP je interpretace AP. Rozšířená Kripkeho struktura je čtveřice (S, T, I, s 0 ), kde (S, T, I) je Kripkeho struktura, s 0 je počáteční stav. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 20 / 46

Úvod Formální popis Kripkeho přechodový systém [Če09] Máme-li danou množinu Act akcí proveditelných programem, můžeme Kripkeho struktury rozšířit o označení přechodu. Kripkeho přechodový systém je pětice (S, T, I, s 0, L), kde (S, T, I, s 0 ) je rozšířená Kripkeho struktura, L : T Act je značkovací funkce. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 21 / 46

Outline UPPAAL - Přehled Základní vlastnosti 1 Úvod Motivace Úvod do verifikace modelů Formální popis 2 UPPAAL - Přehled Základní vlastnosti Architektura 3 UPPAAL - Vybrané vlastnosti Systém a proces Manuál Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 22 / 46

UPPAAL - Přehled Základní vlastnosti Nástroj v kostce [UPP10] Nástroj integrující prostředí pro modelování, simulaci, a verifikaci, reálných systémů. Vývojové týmy Uppsala University, Švédsko, Aalborg University, Dánsko. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 23 / 46

UPPAAL - Přehled Základní vlastnosti Nástroj v kostce [UPP10] Nástroj integrující prostředí pro modelování, simulaci, a verifikaci, reálných systémů. Vývojové týmy Uppsala University, Švédsko, Aalborg University, Dánsko. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 23 / 46

UPPAAL - Přehled Základní vlastnosti Modely systémů [UPP10] Vlastnosti modelů sada nedeterministických procesů s konečnou řídicí strukturou a reálnými hodinami, komunikující pomocí kanálů nebo sdílených proměnných Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 24 / 46

UPPAAL - Přehled Základní vlastnosti Implementace [UPP10] Hlavní návrhová kritéria výkonnost, vyhledávací stroj za letu symbolické techniky snadno použitelné. diagnostický záznam může být generován verifikátorem a přehráván simulátorem Dostupnost První verze v roce 1995 Současná verze je 4.0.12 grafická rozhranní jsou implementována v Java verifikátor je implementován v C++ dostupné pro Linux, SunOS, MS Windows (95/98/NT/2000/XP/Vista/7) Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 25 / 46

UPPAAL - Přehled Základní vlastnosti Implementace [UPP10] Hlavní návrhová kritéria výkonnost, vyhledávací stroj za letu symbolické techniky snadno použitelné. diagnostický záznam může být generován verifikátorem a přehráván simulátorem Dostupnost První verze v roce 1995 Současná verze je 4.0.12 grafická rozhranní jsou implementována v Java verifikátor je implementován v C++ dostupné pro Linux, SunOS, MS Windows (95/98/NT/2000/XP/Vista/7) Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 25 / 46

UPPAAL - Přehled Základní vlastnosti Průmyslové studie [UPP10] Případové studie audio/video protokol komunikace mezi audio/video komponentami pomocí jediné sběrnice protokol vysílání s ohraničeným opakováním, protokol pro vyhnutí se kolizím média založená na Eternetu řadič spojky automobilů, protokol řízení audio komponent (Philips) TDMA(Time Division Multiple Access) protokol mechanismu start-up synchronizace 3 komunikujících stanic s libovolného počátečního stavu. Typické aplikace řadiče reálného času, komunikační protokoly. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 26 / 46

UPPAAL - Přehled Základní vlastnosti Průmyslové studie [UPP10] Případové studie audio/video protokol komunikace mezi audio/video komponentami pomocí jediné sběrnice protokol vysílání s ohraničeným opakováním, protokol pro vyhnutí se kolizím média založená na Eternetu řadič spojky automobilů, protokol řízení audio komponent (Philips) TDMA(Time Division Multiple Access) protokol mechanismu start-up synchronizace 3 komunikujících stanic s libovolného počátečního stavu. Typické aplikace řadiče reálného času, komunikační protokoly. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 26 / 46

Outline UPPAAL - Přehled Architektura 1 Úvod Motivace Úvod do verifikace modelů Formální popis 2 UPPAAL - Přehled Základní vlastnosti Architektura 3 UPPAAL - Vybrané vlastnosti Systém a proces Manuál Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 27 / 46

UPPAAL - Přehled Architektura Komponenty systému [UPP10] Jazyk popisu jazyk nedeterministických podmíněných příkazů jednoduché datové typy (ohraničená celá čísla, pole, atd.) sítě automatů s hodinami a datovými proměnnými. Simulátor vyšetřování možných dynamických běhu nějakého systému, detekce vad modelů před jeho verifikací, umožňuje analýzu záznamů běhů vedoucích k nežádaným stavům. Verifikátor modelu prověření všech možností dynamického chování modelu, kontrola invariantů a živosti prohledáváním stavového prostoru, dosažitelnost symbolických stavů reprezentovaných omezeními. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 28 / 46

UPPAAL - Přehled Architektura Komponenty systému [UPP10] Jazyk popisu jazyk nedeterministických podmíněných příkazů jednoduché datové typy (ohraničená celá čísla, pole, atd.) sítě automatů s hodinami a datovými proměnnými. Simulátor vyšetřování možných dynamických běhu nějakého systému, detekce vad modelů před jeho verifikací, umožňuje analýzu záznamů běhů vedoucích k nežádaným stavům. Verifikátor modelu prověření všech možností dynamického chování modelu, kontrola invariantů a živosti prohledáváním stavového prostoru, dosažitelnost symbolických stavů reprezentovaných omezeními. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 28 / 46

UPPAAL - Přehled Architektura Komponenty systému [UPP10] Jazyk popisu jazyk nedeterministických podmíněných příkazů jednoduché datové typy (ohraničená celá čísla, pole, atd.) sítě automatů s hodinami a datovými proměnnými. Simulátor vyšetřování možných dynamických běhu nějakého systému, detekce vad modelů před jeho verifikací, umožňuje analýzu záznamů běhů vedoucích k nežádaným stavům. Verifikátor modelu prověření všech možností dynamického chování modelu, kontrola invariantů a živosti prohledáváním stavového prostoru, dosažitelnost symbolických stavů reprezentovaných omezeními. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 28 / 46

UPPAAL - Přehled Architektura Systémový editor [UPP10] Editor tvorba grafického i textového popisu systémů Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 29 / 46

UPPAAL - Přehled Architektura Systémový editor [UPP10] Editor tvorba grafického i textového popisu systémů Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 29 / 46

UPPAAL - Přehled Architektura Grafický systémový editor [UPP10] Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 30 / 46

UPPAAL - Přehled Architektura Grafický simulátor [UPP10] Simulátor grafická vizualizace a záznam možného dynamického chování popisu systému, sekvence symbolických stavů systému, možnost vizualizace trasy generované verifikátorem. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 31 / 46

UPPAAL - Přehled Architektura Grafický simulátor [UPP10] Simulátor grafická vizualizace a záznam možného dynamického chování popisu systému, sekvence symbolických stavů systému, možnost vizualizace trasy generované verifikátorem. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 31 / 46

UPPAAL - Přehled Architektura Verifikátor [UPP10] Verifikátor Editor specifikace požadavků, Stroj verifikátoru modelu automatické ověření živosti a ohraničené živosti pomocí dosažitelnosti v symbolickém stavovém prostoru. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 32 / 46

UPPAAL - Přehled Architektura Verifikátor [UPP10] Verifikátor Editor specifikace požadavků, Stroj verifikátoru modelu automatické ověření živosti a ohraničené živosti pomocí dosažitelnosti v symbolickém stavovém prostoru. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 32 / 46

Outline UPPAAL - Vybrané vlastnosti Systém a proces 1 Úvod Motivace Úvod do verifikace modelů Formální popis 2 UPPAAL - Přehled Základní vlastnosti Architektura 3 UPPAAL - Vybrané vlastnosti Systém a proces Manuál Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 33 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Výchozí principy [UPP09] Model Časový automaty konečný stavový automat s hodinami, čas je spojitý, hodiny měří postup času. Vzory procesů - Automat pozice a hrany, symbolické proměnné a konstanty jako parametry, lokální proměnné a hodiny, daný process je pak instancí vzoru. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 34 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Výchozí principy [UPP09] Model Časový automaty konečný stavový automat s hodinami, čas je spojitý, hodiny měří postup času. Vzory procesů - Automat pozice a hrany, symbolické proměnné a konstanty jako parametry, lokální proměnné a hodiny, daný process je pak instancí vzoru. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 34 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Časový automat [BDL05] Časový automat Příklady je šestice (L, l 0, C, A, E, I), kde L je množina pozic, l 0 L je počáteční pozice, C je množina hodin. A je množina akcí, ko-akcí a interní τ-akce, E L A B(C) 2 C L je množina hran mezi pozicemi s akcí, stráží a množinou hodin, které se resetují, a I : L B(C) přiřazuje invarianty k pozicím. y := 0... resetování hodin y, press? a press!... označují akci a ko-akci (zde kanálovou synchronizaci). Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 35 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Časový automat [BDL05] Časový automat Příklady je šestice (L, l 0, C, A, E, I), kde L je množina pozic, l 0 L je počáteční pozice, C je množina hodin. A je množina akcí, ko-akcí a interní τ-akce, E L A B(C) 2 C L je množina hran mezi pozicemi s akcí, stráží a množinou hodin, které se resetují, a I : L B(C) přiřazuje invarianty k pozicím. y := 0... resetování hodin y, press? a press!... označují akci a ko-akci (zde kanálovou synchronizaci). Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 35 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Hodiny časového automatu [BDL05] Hodiny Ohodnocení hodin je funkce u : C R 0 z množiny hodin do nezáporných reálných čísel. Nechť R C je množina všech ohodnocení hodin. Nechť u 0 (x) = 0 pro všechna x C. Zápis u I(l) bude znamenat, že u splňuje I(l). Z daného stavu je možné provést přechod pomocí akce nebo zpoždění. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 36 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Sémantika časového automatu [BDL05] Sémantika časového automatu Nechť (L, l 0, C, A, E, I) je časový automat. Sémantika... přechodový systém s označením S, s 0,, kde S L R C je množina stavů, s 0 = (l 0, u 0 ) je počáteční stav, S (R 0 A) S je přechodová relace taková, že (l, u) d (l, u + d) if d : 0 d d = u + d I(l) (l, u) a (l, u ) if e = (l, a, g, r, l ) E e g, u = [r 0]u, u I(l ), u + d zobrazuje každé hodiny x C na hodnotu u(x) + d, pro d R 0, [r 0]u označuje ohodnocení hodin, která mapuje každé hodiny v r na 0 a souhlasí s u nad C \ r. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 37 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Specifikace systému [UPP09] Systém je kompozice souběžných procesů každý process je modelován jako automat automat má množinu pozic, změny pozic se dějí pomocí hran/přechodů. stav systému je charakterizován pomocí aktuální pozice každého automatu, hodnot proměnných, a stavu hodin. přechody je možné řídit pomocí stráží a synchronizací stráž je podmínka nad proměnnými a hodinami specifikující, kdy je přechod možný. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 38 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Komunikace procesů [UPP09] Synchronizace synchronizace je mechanismus kdy dva procesy provedou současný přechod 1 synchronizační kanál a, 2 první process vyvolá přechod zprávou a! 3 druhý proces provede přechod přijetím zprávy a? během přechodu je možné přiřadit do proměnných nebo resetovat hodiny. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 39 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Síť časových automatů [BDL05] Sada automatů Společná množina hodin a akcí. n časových automatů A i = (L i, l 0 i, C, A, E i, I i ), 1 i n poziční vektor l = (l 1,, l n ) společná funkce invariantů I(l) = i I i (l i ) l[l i/l i ]... i-tý element l i vektoru l je nahrazen l i Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 40 / 46

UPPAAL - Vybrané vlastnosti Systém a proces Sémantika sítě časových automatů [BDL05] Síť časových automatů n časových automatů A i = (L i, l 0 i, C, A, E i, I i ) počáteční vektor pozic l 0 = (l 0 1,, l0 n) Sémantika... přechodový systém s označením S, s 0,, kde S (L 1 L n ) R C je množina stavů, s 0 = (l 0, u 0 ) je počáteční stav, S S je přechodová relace taková, že (l, u) d (l, u + d) if d : 0 d d = u + d I(l), a (l, u) a (l[l i/l i ], u τgr ) if l i l i u g, u = [r 0]u, u I(l[l i/l i ]), (l, u) a (l[l j/l j, l i/l i ], u c?g ir i ) if l i l c!g jr j i a l j l j u (g i g j ), u = [r i r j 0]u, u I(l[l j/l j, l i/l i ]), Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 41 / 46

Outline UPPAAL - Vybrané vlastnosti Manuál 1 Úvod Motivace Úvod do verifikace modelů Formální popis 2 UPPAAL - Přehled Základní vlastnosti Architektura 3 UPPAAL - Vybrané vlastnosti Systém a proces Manuál Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 42 / 46

UPPAAL - Vybrané vlastnosti Manuál Typy jazyka [BDL05] Typy Konstanty... const name value, celočíselná hodnota. Omezené celočíslené hodnoty... int[min, max] name, výchozí nastavení -32768 až 32768. Pole... hodiny, kanály, konstanty, celočíselné proměnné chan c[4]; clock a[2]; int[3,5] u[7];. Iniciátory... nastavení hodnot celočíselných proměnných a poĺı s celočíselnými proměnnými int i := 2; int k[3] := {1, 2, 3 };. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 43 / 46

UPPAAL - Vybrané vlastnosti Manuál Speciální přechody [BDL05] Řídicí elementy Binární synchronizace... chan c, hrany c! a c?, nedeterministicky pár. Broadcast synchronizace... broadcast chan c, jedna hrana c! se všemi možnými c?, neblokuje. Urgentní synchronizace... urgent chan c. Zpoždění není dovoleno, pokud je možný přechod na urgentním kanálu. Urgentní pozice... Čas systému nemůže plynout, pokud se systém nachází v urgentní pozici. Prováděcí pozice Prováděcí stav... alespoň jedna z pozic je prováděcí. Prováděcí stav se nemůže zpožďovat. Následující přechod musí zahrnovat jednu výstupní hranu vedoucí z prováděcí pozice. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 44 / 46

UPPAAL - Vybrané vlastnosti Manuál Výrazy jazyka [BDL05] Hodiny, celočíslené proměnné a konstanty Stráž... výsledkem je logiká hodnota. Synchronizace... synchronizační návěští Expression! nebo Expression? nebo prázdné. Výsledkem je kanál. Odkazovat může celá čísla, konstanty, kanály. Přiřazení... výrazy oddělená čárkou. Odkazovat může hodiny, celočíselné proměnné, konstanty. Hodinám může přiřadit pouze celočíselné hodnoty. Invariant... Konjunkce podmínek tvaru x<e nebo x<=e, kde x je odkaz na hodiny, e se vyčísĺı do celého čísla. Odkazovat může hodiny, celočíselné proměnné, konstanty. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 45 / 46

Literatura I UPPAAL - Vybrané vlastnosti Manuál [BDL05] [Bie08] [Cam10] [Če09] [Hol06] Gerd Behrmann, Alexandre David, and Kim G. Larsen. A tutorial on UPPAAL, updated 25th october 2005. Technical report, Department of Computer Science, Aalborg University, Denmark, October 2005. Armin Biere. Tutorial on model checking, modelling and verification in computer science. In Proc. 3rd Intl. Conf. on Algebraic Biology (AB 08). Lecture Notes in Computer Science (LNCS), volume 5147. Springer, 2008. Alarico Campetelli. Analysis techniques: State of the art in industry and research. techreport TUM-I1008, Technische Universität München, April 2010. Jiří Čermák. Porovnání modelovacích schopností verifikačních nástrojù. Master s thesis, Masarykova univerzita, Fakulta informatiky, Brno, 2009. Lukáš Hoĺık. Rozhodnutelnost v temporálních logikách. Master s thesis, Masarykova univerzita, Fakulta informatiky, Brno, 2006. [UPP09] UPPAAL 4.0: Small tutorial, November 2009. [UPP10] Tool environment for validation and verification of real-time systems (UPPAAL pamphlet). http://www.it.uu.se/research/group/darts/papers/texts/uppaal-pamphlet.pdf, September 2010. Radek Mařík (radek.marik@fel.cvut.cz) Verifikace Modelů a UPPAAL November 7, 2017 46 / 46