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