1
Model Checking en
Betrouwbaarheid van Software
Frits Vaandrager
Institute for Computing and Information Sciences
Radboud Universiteit Nijmegen
22
Computing Technology
(R)Evolution
19351946 2010
3
Iedereen heeft toch al een
PC, Internet, een
mobieltje, een Xbox en
een TomTom?
Informatietechnologie
is toch al af?
Duh!
4
Informatica staat pas aan het begin!
Wetenschappers MIT:
7 van de 10 meest
belangrijke opkomende
technologieën zijn ICT
gerelateerd
5
40% kosten moderne auto is electronica
90% innovaties autoindustrie ICT gerelateerd!
6
Bionische Ogen?
7
Klimaatverandering
“ICT is a key sector in the fight
against climate change”
SMART 2020 Report. The
Climate Group, McKinsey &
Co, June 2008.
8
Voorbeeld: Permasense Project
9
Informatica is voor creatievelingen
10
“Computing is the transformative science of our age”
J. Moore
11
Onderzoek aan Radboud Universiteit (1):
Digitale Beveiliging
OV-chipkaart Electronisch Patiënten Dossier (EPD)
12
Onderzoek aan Radboud Universiteit (2):
Intelligente Systemen
Brain-computer interfaces
13
Onderzoek aan Radboud Universiteit (3):
Hoe maak je correcte software?
Onze samenleving is volledig
afhankelijk van computers
Is ons vertrouwen in computers
terecht?
14
Sint Servaasbrug Maastricht
“Uptime”:
ruim 700 jaar
15
Ariane 5 Raket
“Uptime”:
40 sec
16
Aandeel ICT in productiekosten auto’s
• 2000: 26%
• 2010: 48%
17
Software is absoluut het meest complexe
artefact dat de mens routinematig bouwt…
Tussen 1069 en 1081 atomen in
het universum10 MB geheugen > 1020.000.000
toestanden
Software is niet continu: wijziging van 1 bit in een
programma kan leiden tot volstrekt ander gedrag!
18
Geen verrassing dus dat het vrijwel
nooit foutloos werkt!
2004: Mars Rover bevriest 2005: Computer “kaapt” vliegtuig
2009: Volvo roept
26.000 auto’s terug
2007: Computer crashes bij ProRail
19
Onderzoek Radboud Universiteit
• Het bouwen van modellen
Beschrijf relevante aspecten van systeemformeel (in wiskundige taal)
• Model checking
Gebruik computer om alle toestanden van model te doorzoeken
• Doel
Fouten (“bugs”) opsporen
20
Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
• 21:33:03
– Alarm door het Collision
Avoidance System (TCAS)
B757-200 TU154M
!
21
Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
• 21:33:03
– Alarm door het Collision
Avoidance System (TCAS)
• 21:34:49
– Opdracht verkeersleider
B757-200 TU154M
!
22
Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
• 21:33:03
– Alarm door het Collision
Avoidance System (TCAS)
• 21:34:49
– Opdracht verkeersleider
• 21:34:56
– TCAS aanbeveling
B757-200 TU154M
!
23
Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
• 21:33:03
– Alarm door het Collision
Avoidance System (TCAS)
• 21:34:49
– Opdracht verkeersleider
• 21:34:56
– TCAS aanbeveling
• 21:35:32
– Botsing
B757-200 TU154M
!
24
Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
• 21:33:03
– Alarm door het Collision
Avoidance System (TCAS)
• 21:34:49
– Opdracht verkeersleider
• 21:34:56
– TCAS aanbeveling
• 21:35:32
– Botsing
B757-200 TU154M
! Officiële aanbeveling:
“piloten dienen adviezen van
TCAS op te volgen, onafhankelijk van
eventuele strijdige adviezen door de
verkeersleiding”
Een computer vertrouwen!?
25
Formele Verificatie
• Kenmerken
– Gebruik taal van de wiskunde
– Computerondersteuning
• Hybride Systeem
– continue omgeving
– discrete software
Model van
Omgeving
Model van
Software
Nauwkeurige
Specificatie
26
Modelgebaseerd Ontwerpen
• Kenmerken
– Gebruik taal van de wiskunde
– Computerondersteuning
• Hybride Systeem
– continue omgeving
– discrete software
• Problemen
– Bewijzen lukt alleen vooreenvoudige modellen
– Alle mogelijkheden moetendoorlopen worden
toestandsexplosie
Model van
Omgeving
Model van
Software
Bewijs
(met hulp van
computer)
Nauwkeurige
Specificatie
27
Modelgebaseerd Ontwerpen
• Kenmerken
– Gebruik taal van de wiskunde
– Computerondersteuning
• Hybride Systeem
– continue omgeving
– discrete software
• Problemen
– Bewijzen lukt alleen vooreenvoudige modellen
– Alle mogelijkheden moetendoorlopen worden
toestandsexplosie
Model van
Omgeving
Model van
Software
Bewijs
(met hulp van
computer)
Garantie
Correctheid
Nauwkeurige
Specificatie
TCAS deels
correct bewezenNancy Lynch et al, 2000
28
Turing Award voor Model Checking
29
Wat is Model Checking?
30
Demonstratie Model Checker
Zes vriendinnen hebben ieder
een roddel. Ze bellen elkaar op.
Wanneer twee vriendinnen
elkaar spreken wisselen ze alle
roddels uit die ze op dat
moment weten.
Hoeveel gesprekken zijn nodig
voordat iedereen alle roddels
kent?
31
Toestandsdiagram
32
Oplossing Model Checker
33
Toepassingen van Model Checking
• Draadloze sensornetwerken
• NASA DEEP SPACE 1 missie
• Stormvloedkering bij Rotterdam
• Copieermachines
• Radarsysteem voor auto’s
• ….
34
Doelen Cursus
1. Zelf leren werken met model checker Uppaal
Bestaande modellen aanpassen
Zelf eenvoudige modellen bouwen
Eigenschappen formuleren en laten uitrekenen
2. Leren over gedistribueerde algoritmen
11 lessen + afsluitende toets
Top Related