13. Onderzoek aan Radboud Universiteit (3):
Hoe maak je correcte software?
Onze samenleving is volledig
afhankelijk van computers
Is ons vertrouwen in computers
terecht?
13
17. Software is absoluut het meest complexe
artefact dat de mens routinematig bouwt…
Tussen 1069 en 1081 atomen in 10 MB geheugen > 1020.000.000
het universum toestanden
Software is niet continu: wijziging van 1 bit in een
programma kan leiden tot volstrekt ander gedrag!
17
18. Geen verrassing dus dat het vrijwel
nooit foutloos werkt!
2004: Mars Rover bevriest 2005: Computer “kaapt” vliegtuig
2007: Computer crashes bij ProRail
2009: Volvo roept
26.000 auto’s terug
18
19. Onderzoek Radboud Universiteit
• Het bouwen van modellen
Beschrijf relevante
aspecten van systeem
formeel (in wiskundige
taal)
• Model checking
Gebruik computer om alle
toestanden van model te
doorzoeken
• Doel
Fouten (“bugs”) opsporen
19
20. Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
B757-200 TU154M
• 21:33:03
!
– Alarm door het Collision
Avoidance System (TCAS)
20
21. Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
B757-200 TU154M
• 21:33:03
!
– Alarm door het Collision
Avoidance System (TCAS)
• 21:34:49
– Opdracht verkeersleider
21
22. Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
B757-200 TU154M
• 21:33:03
!
– Alarm door het Collision
Avoidance System (TCAS)
• 21:34:49
– Opdracht verkeersleider
• 21:34:56
– TCAS aanbeveling
22
23. Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
B757-200 TU154M
• 21:33:03
!
– Alarm door het Collision
Avoidance System (TCAS)
• 21:34:49
– Opdracht verkeersleider
• 21:34:56
– TCAS aanbeveling
• 21:35:32
– Botsing
23
24. Voorbeeld: Überlingen, 1 Juli 2002
• Boeing & Tupolew kruisen
B757-200 TU154M
• 21:33:03
!
– Alarm
Officiële aanbeveling: door het Collision
Avoidance System (TCAS)
“piloten dienen adviezen van
• 21:34:49
TCAS op te volgen, onafhankelijk van
– Opdracht verkeersleider
eventuele strijdige adviezen door de
verkeersleiding”
• 21:34:56
– TCAS aanbeveling
Een computer vertrouwen!?
• 21:35:32
– Botsing
24
25. Formele Verificatie
• Kenmerken
– Gebruik taal van de wiskunde
Model van Model van – Computerondersteuning
Omgeving Software • Hybride Systeem
– continue omgeving
– discrete software
Nauwkeurige
Specificatie
25
26. Modelgebaseerd Ontwerpen
• Kenmerken
– Gebruik taal van de wiskunde
– Computerondersteuning
Model van Model van
Omgeving Software • Hybride Systeem
– continue omgeving
– discrete software
• Problemen
Bewijs
Nauwkeurige
(met hulp van – Bewijzen lukt alleen voor
Specificatie eenvoudige modellen
computer)
– Alle mogelijkheden moeten
doorlopen worden
toestandsexplosie
26
27. Modelgebaseerd Ontwerpen
• Kenmerken
– Gebruik taal van de wiskunde
– Computerondersteuning
Model van Model van
Omgeving Software • Hybride Systeem
– continue omgeving
– discrete software
• Problemen
Bewijs
Nauwkeurige
(met hulp van – Bewijzen lukt alleen voor
Specificatie eenvoudige modellen
computer)
– Alle mogelijkheden moeten
doorlopen worden
toestandsexplosie
TCAS deels
correct bewezen Garantie
Nancy Lynch et al, 2000 Correctheid
27
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?
30
33. Toepassingen van Model Checking
• Draadloze sensornetwerken
• NASA DEEP SPACE 1 missie
• Stormvloedkering bij Rotterdam
• Copieermachines
• Radarsysteem voor auto’s
• ….
33
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
34