Formell Verifiering. Hur vet man att ett system fungerar korrekt? Lisa Kaati

Relevanta dokument
Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

Programdesign. Dokumentera. Dokumentera

Programdesign. minnesutrymme storlek på indata. DA2001 (Föreläsning 15) Datalogi 1 Hösten / 20

Introduktion till programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Datavetenskapligt program, 180 högskolepoäng

Sekvensnät Som Du kommer ihåg

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

Några grundläggande begrepp

Programmering = modellering

DD1350 Logik för dataloger. Vad är logik?

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Grundläggande logik och modellteori

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Testning av program. Verklig modell för programutveckling

Inledande programmering med C# (1DV402) Introduktion till programmering

SKOLFS. beslutade den XXX 2017.

Automater. Matematik för språkteknologer. Mattias Nilsson

Programkonstruktion och datastrukturer. Formell verifiering eller hur man bevisar att program gör rätt utan att testa dem

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Grundläggande logik och modellteori

PROGRAMMERINGSMETODIK

Deadlocks. detektera och undvik

TDDC74 Lab 02 Listor, sammansatta strukturer

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Utbildningsplan för Datavetenskapligt program, 180 högskolepoäng

IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

DAB760: Språk och logik

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Parameteröverföring. Exempel. Exempel. Metodkropp

Utforskande testning

729G06 Föreläsning 1 Objektorienterad programmering

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning 5. Deduktion

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

Programmeringsteknik II

Repetition och sammanfattning av syntes och analys av sekvensnät

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Property-based Testing. Hans Svensson SAST Väst Q

Dataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

Datavetenskapligt program, 180 högskolepoäng

Utbildningsplan för Datavetenskapligt program, 180 högskolepoäng

Felhantering TDDD78, TDDE30, 729A

Realism och anti-realism och andra problem

Induktion, mängder och bevis för Introduktionskursen på I

Föreläsning 2 Datastrukturer (DAT037)

Digital Design IE1204

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Programkonstruktion och Datastrukturer, lektion 7

Programmering i skolan varför då? Lisa Söderlund Pedagogik och kommunikation

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

Matematikens Element. Vad är matematik. Är detta matematik? Anders Fällström Institutionen för matematik och matematisk statistik Umeå universitet

Matematik för språkteknologer

Kontextfria grammatiker

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

TDDC74 Programmering, abstraktion och modellering. Tentamen

Testdriven utveckling av Web Services. Ole Matzura

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

Lära dig analysera större och mer komplicerade problem och formulera lösningar innan du implementerar.

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

PROV I MATEMATIK Automatateori och formella språk DV1 4p

OOMPA 2D1359 Föreläsning 2

SEKVENSKRETSAR. Innehåll

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

BER AKNINGSBARHET F OR DATALOGER. Kent Petersson. Institutionen for Datavetenskap Goteborgs Universitet / Chalmers Goteborg, Sweden

Programmering i skolan varför då? Lisa Söderlund Pedagogik och kommunikation

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Variabler, värden och typer

Föreläsning 10. ADT:er och datastrukturer

Variabler, värden och typer

TDDC74 Programmering, abstraktion och modellering. Tentamen

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto

Objektorienterad programmering. Grundläggande begrepp

Föreläsning 4 Programmeringsteknik DD1310. Felhantering. Syntax. try och except är reserverade ord som används för hantering av exekverings fel.

Inledande programmering med C# (1DV402) Introduktion till C#

b) S Ø aa, A Ø aa» bb, B Ø aa» bc, C Ø ac» bc» 2. Låt L vara språket över 8a< som nedanstående NFA accepterar.

Design av inbyggda system

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Lars-Henrik Eriksson

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP

Design av inbyggda system

Metoder för verifiering av användare i ELMS 1.1

Imperativ programmering

Transkript:

Formell Verifiering Hur vet man att ett system fungerar korrekt? Lisa Kaati

Innehåll Motivering Formell verifiering Modellkontroll (model checking) Verifiering av kod Forskning

Dator system finns överallt

Säkerhetskritiska system Ett system vars misslyckande kan leda till skada eller död för människor.

Hur kan man undvika fel i systemet? Det finns flera metoder för att minska risken för att system och datorprogram innehåller fel - Testning - Formell verifiering

Testning Manuell testning Automatisk testning

Testning Manuell testning Automatisk testning Räcker inte till Det är omöjligt att gå igenom alla tänkbara scenarier.

Formell verifiering Bevisa eller motbevisa korrektheten hos ett system med avseende till en formell specifikation eller egenskap genom att använda formella matematiska metoder.

Olika typer av formell verifiering Logik

Olika typer av formell verifiering Logik p=q &r q= a b Specifikation p=q &r q= a b Teorem bevisare

Olika typer av formell verifiering Logik Modellkontroll (model checking)

Olika typer av formell verifiering Logik Modell kontroll (model checking) system modell egenskap bevis

Modellkontroll Automatisk verifierings teknik för system med ändligt antal system tillstånd. 1. System modell 2. Egenskap 3. Algoritm

System modell En system modell är en matematisk modell av ett system - Transitions system - Tids automater - Petri nät - Push down automater - Counter machines

System modell Transitions system

Egenskaper Säkerhet Något dålig kommer aldrig att inträffa Liveness Något kommer att inträffa någon gång Deadlock Ett program kommer inte oväntat att stanna upp Mutual exclusion Två processer kan inte använda en delad resurs samtidigt

Egenskaper Tidslogik Används för att uttrycka tid Jag är hungrig - Jag är alltid hungrig - Jag kommer att bli hungrig - Jag kommer att vara hungrig tills jag äter något

Algoritm Beror på modellen och egenskapen

Algoritm Beror på modellen och egenskapen 1 2 4 3 5 6 Dåligt tillstånd

Algoritm Beror på modellen och egenskapen Nåbara tillstånd 1 2 4 3 5 6 Dåligt tillstånd

Modellkontroll schema System modell Egenskap Algoritm Ja Nej Egenskapen är inte uppfylld

Exempel

Exempel Krasch

Fördelar med modellkontroll Snabbt Automatiskt Lätt att uttrycka egenskaper med tidslogik Returnerar exempel på felaktiga beteenden

Nackdelar med modellkontroll Ändliga system Tillstånds explosion Korrekt system modell

Nackdelar med modellkontroll Ändliga system Tillstånds explosion Korrekt system modell Abstraktion

Abstraktion Abstrahera bor irrelevanta detaljer om systemet Mindre (ändliga) modeller Enklare modeller Olika typer av abstraktioner

Exempel - abstraktion Konkret system

Exempel - abstraktion STOP GO Konkret system Abstrakt system

Finita automater 1 a 2 p s 3 45 a 4 Accepterar strängarna: apa och as

Trädautomater a q1 b(q1,q1) c(q2,q2,q2) q2 q3 b b b b a a a a a a

Abstraktion - minimering Två automater är ekvivalenta om de accepterar samma språk

Abstraktion - minimering Två automater är ekvivalenta om de accepterar samma språk

Nackdelar med modellkontroll Ändliga system Tillstånds explosion Korrekt system modell Abstraktion Verifiering av kod

Verifiering av program kod Idé: Skapa en matematisk modell automatiskt genom att använda program kod.

Verifiering av program kod Idé: Skapa en matematisk modell automatiskt genom att använda program kod. Problem Olika programspråk Olika sätt att programmera på Komplexa program språk

Verifiering av program kod Passar utmärkt för vissa typer av problem. Använd endast en liten delmängd av programspråket.

När det fungerar SLAM - Microsoft - Använder en liten delmängd av programspråket C. - Används för att verifiera kod till drivers.

Forskning Nya metoder som kan verifiera komplexa datastrukturer och operationer Prestanda Användning av olika delmängder av programspråk