Ústav informatiky Akademie věd České republiky Matematicko-fyzikální fakulta Karlova Univerzita Jak najít softwarové chyby.

Slides:



Advertisements
Podobné prezentace
Robotické stavebnice ve vzdělávání
Advertisements

Obecně o operačních systémech
Matematické modelování aneb co se nepovedlo Petr Beremlijski Katedra aplikovaná matematiky Fakulta elektrotechniky a informatiky VŠB - Technická univerzita.
Základy informatiky Ing. Roman Danel, Ph.D.
Průzkum stavu projektového řízení v organizacích a státní správě Odpovědný řešitel Doc. Ing. Klára Antlová, Ph.D. Katedra informatiky EF TUL.
T OOL FOR C OLLABORATIVE XML S CHEMA I NTEGRATION Jiří Meluzín.
Projekt Podpora stáží a odborných aktivit při inovaci oblasti terciárního vzdělávání na DFJP a FEI Univerzity Pardubice CZ.1.07/2.4.00/ TENTO PROJEKT.
Programování v C++ Cvičení.
Mapa České republiky Univerzita Karlova / Charles University (Praha, Plzeň, Hradec Králové) Jazykové kurzy – 1 rok – placené (po nich vstup.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Informatika Internet.
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
11. Trendy ve vývoji aplikací, podporujících podnikové procesy
CZ.1.07/1.4.00/ VY_32_INOVACE_139_IT7 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Ing. Lukáš OTTE kancelář: A909 telefon: 3840
Petr Beremlijski a Marta Jarošová Projekt SPOMECH Vysoká škola báňská – Technická univerzita Ostrava září Základy matematického.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
C# - Exceptions (výjimky)
Richard Lipka Katedra informatiky a výpočetní techniky Fakulta aplikovaných věd Západočeská univerzita, Plzeň 1.
Systémy pro podporu managementu 2
Operační systémy.
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
4IT445 – Testování a ladění v PHP Ing. Jan Mittner
Lokální počítačové sítě Novell Netware Ing. Zdeněk Votruba Úvod do síťového operačního systému Novell Netware.
S oftware – programové vybavení počítače. Operační systém. „Základní program“
Marketing & IT Jakub Stránský 19. prosince Marketing? Uskutečnění směny na trhu „Marketing je společenský a řídící proces, ve kterém jednotlivci.
Příklady v jazyku C – část 3
Obchodní akademie, Ostrava-Poruba, příspěvková organizace
Dokumentace informačního systému
CZ.1.07/1.4.00/ VY_32_INOVACE_168_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Systémy pro podporu managementu 2 Inteligentní systémy pro podporu rozhodování 1 (DSS a znalostní systémy)
Normy a postupy pro provoz CUAV Ing. Tomáš Kujal, Ph.D. Ing. Jiří Chlebek, Ph.D. Letecký ústav Fakulta strojního inženýrství Vysoké učení technické v Brně.
Actor model Novotný Marek Svata Bohuslav Lhotan Petr.
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Operační systémy.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Application Layer Functionality and Protocols Network Fundamentals – Chapter 3.
Souběžný návrh hardware a software (Language for Instruction Set Simulator-Oriented Model) MPO ČR, FT-TA3/128, Jazyk a vývojové prostředí pro.
Aplikační programy, programovací jazyky, formáty datových souborů
CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Advanced.NET Programming I + II 1 st Lecture Pavel Ježek.
Referát č.8 Daniela Venusová.
CZ.1.07/1.4.00/ VY_32_INOVACE_166_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Návrh podle kontraktu - klasická metodika a moderní nástroje Tomáš Pitner Masarykova univerzita v Brně Fakulta informatiky
Paralelní algoritmy ve zpracování dat Bc. Jan Hofta Výzkumný úkol:
Infrastruktura pro dotazování nad sémantickými daty Jiří Dokulil, Jakub Yaghob, Filip Zavoral Katedra softwarového inženýrství, MFF UK Praha
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
Statistická významnost a její problémy
OPERAČNÍ SYSTÉMY.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorIng. Ivana Brhelová Název šablonyIII/2.
Chyby při matematickém modelování aneb co se nepovedlo Petr Beremlijski Katedra aplikovaná matematiky Fakulta elektrotechniky a informatiky VŠB - Technická.
Výpočetní technika při výuce fyziky Jiří Tesař. VT – při výuce VT nedílná součást každodenního života, VT musí být také součástí výuky, vybavení škol.
Hybridní architektura pro webové simulátory Tomáš Kulhánek 1,2, Marek Mateják 1, Filip Ježek 3, Pavol Privitzer 1, Jan Šilar 1, Martin Tribula 1, Jiří.
1 Prezentace Přírodopis lehce a zábavně – elektronická učebnice přírodopisu pro ZŠ
VideoStreaming Aplikace pro mobilní zařízení Jiří Chadima, Jiří Mašek.
BIOSTATISTIKA LS 2016 Garant předmětu: Ing. Martina Litschmannová, Ph.D. Přednášející: Ing. Martina Litschmannová, Ph.D. Cvičící: Ing. Martina Litschmannová,
Počítače a programování 2
Vypracoval / Roman Málek
Financováno z ESF a státního rozpočtu ČR.
C# konzole – Podíl dvou čísel, podmínka IF
ZAL – 3. cvičení 2016.
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Tradiční metodiky vývoje softwaru
Tradiční metody vývoje softwaru
Application Layer Functionality and Protocols
Informační a komunikační technologie 5. ročník
Adresace v Internetu (1)
Přednášky z Distribuovaných systémů
Informatika Internet.
Transkript prezentace:

Ústav informatiky Akademie věd České republiky Matematicko-fyzikální fakulta Karlova Univerzita Jak najít softwarové chyby (včas) Formální verifikace programů Jiří Adámek

2 Zajímavé softwarové chyby (1) 23. září 1999: sonda Mars Climate Orbiter (NASA) ztracena při vstupu do atmosféry Marsu Důvodem byla softwarová chyba  Jedna část programového vybavení pro řízení letu používala metrické jednotky (kg, km), zatímco druhá používala jednotky anglické (libry, míle)  Z tohoto důvodu sonda sestoupila na nižší orbitu než měla a bylo s ní ztraceno spojení Ztráty: milionů dolarů (spolu se sondou Mars Polar Lander)

3 Zajímavé softwarové chyby (2) 21. září 1997: během vojenského cvičení se americká vojenská loď Yorktown z neznámých důvodů zastavila a skoro 3 hodiny zůstala nečinně stát na širém moři Důvodem byla opět softwarová chyba  Operátor omylem zadal do počítače jako jeden z údajů nulu  Dělení nulou způsobilo tzv. výjimku, která nebyla odpovídajícím způsobem ošetřena  Výjimka byla propagována na všech 27 počítačů propojených do sítě  Jeden z nich způsobil vypnutí lodních motorů

4 Jak vznikají softwarové chyby? int main(int argc, char **argv) { int i; double result; int err_position; char *s; print_test("", NULL, &err_position); print_test("", &result, NULL); for (i = 0; i < sizeof(tests)/sizeof(char*); i++) { print_test(tests[i], &result, &err_position); } return 0; } Spustitelný kód Kompilátor Jiný spustitelný kód Uživatel Chyba v programu Chyba v komunikaci Chyba v kompilátoru Chyba uživatele

5 Co dělat se softwarovými chybami? Produkovat méně softwarových chyb  Používání bezpečnějších programovacích jazyků a platforem Snažit se chyby včas najít  Testování Nenalezne všechny chyby Není vždy možné pro safety-critical systems  Formální verifikace

6 Co jsou formální verifikace? Metody, které nám umožňují formálně (tj. na základě matematického důkazu) ověřit, že v programu nejsou chyby  V ideálním případě jsou úplné  Dají se využít i pro safety-critical systems Zvláště důležité jsou verifikace automatické  Konstrukce verifikačních softwarových nástrojů

7 Jaké dílčí problémy je třeba vyřešit? (1) Chování programu i chyby je třeba formálně popsat  Popsali jsme všechny možné chyby?  Co s chybami ve formálních popisech?

8 receive process send wait received sent Property (CTL): AG (received => AF sent) State transition system:

9 „Klasický“ verifikační nástroj Vytvoření modelu (manuální) Program Vlastnosti Model Výsledky “Klasický” přístup

10 Verifikační nástroj ProgramVlastnosti Výsledky „Přímý“ přístup:

11 Jaké dílčí problémy je třeba vyřešit? (2) Co když je formální popis příliš velký?  Rafinované algoritmy a datové struktury, redukce, heuristiky, … Možno až stavů  Hrubá výpočetní síla Co když je formální popis nekonečně velký?  Poznámka o teorii vyčíslitelnosti

12 Co všechno již umíme formálně verifikovat? Hardware Algoritmy řízení  Safety critical systems Komunikační protokoly a distribuované algoritmy Některé části jader OSS  Ovladače zařízení Kryptografické protokoly

13 Zajímavé verifikační nástroje SPIN  Bell Labs  Java PathFinder  NASA 

14 Funguje to? Experimental Evaluation of Verification and Validation Tools on Martian Rover Software. G. Brat, D. Drusinsky, D. Giannakopoulou, A. Goldberg, K. Havelund, M. Lowry, C. Pasareanu, A. Venet, R. Washington and W. Visser. Formal Methods in Systems Design Journal. Volume 25, Number 2-3, September SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft. Thomas Ball, Byron Cook, Vladimir Levin and Sriram K. Rajamani. MSR-TR Invited talk/paper for Integrated Formal Methods ftp://ftp.research.microsoft.com/pub/tr/tr pdf

15 Chcete vědět víc? Přednáška (MFF UK): Behavior Models and Verification (SWI101)