Model Checking en Betrouwbaarheid van Software Frits Vaandrager Institute for Computing and Information Sciences Radboud Universiteit Nijmegen 1 1964 Socialistisch Kamerlid stelt Minister van Economische Zaken voor één computer aan te schaffen voor heel Nederland en het apparaat een voor iedereen toegankelijke plaats te geven op het Binnenhof. 2 2008 Iedereen heeft toch al een PC, Internet, een mobieltje, een Xbox en een TomTom. De Informatica is toch al af? 3 Informatica staat pas aan het begin! Wetenschappers van het MIT hebben in 2008 hun selectie van 10 meest belangrijke opkomende technologieën gepresenteerd: 7 hiervan zijn ICT gerelateerd. 4 Bionische Ogen? 5 Klimaatverandering “ICT is a key sector in the fight against climate change” SMART 2020 Report. The Climate Group, McKinsey & Co, June 2008. 6 Gedachten lezen?! Brein-computer interfaces voor patiënten, piloten, games, ... 7 Robots Tegen Dementie? 8 Informatica dat is toch vooral technologie. Zijn er nog wel echte wetenschappelijke uitdagingen? 9 “In their capacity as intellectual challenge, [computers] are without precedent in the cultural history of mankind.” Edsger Dijkstra 10 Hoe maken we software parallel? Jouw nieuwe PC: de Multicore Processor Alles op dezelfde chip cache cache Bus cache Bus shared memory Sun T2000 Niagara 11 11 Hoe beveiligen we informatie op computers? 12 Mifare pasjes gekraakt 13 Hoe maken we computers intelligent? Vierkleurenstelling gecheckt met een computer Werner en Gonthier, 2004 14 Kan een computer zichzelf repareren? 15 Informatici zitten toch de hele dag naar een schermpje te turen. Wat is daar nou leuk aan? 16 Als Informaticus Maak Je Wat Samen met Anderen 17 Voorbeeld: Permasense Project 18 Beauty is our Business Edsger Dijkstra 19 Informatica is voor creatievelingen 20 Hoe Maak Je Computers Betrouwbaar? Onze samenleving is totaal afhankelijk van computers Is ons vertrouwen in computers gegrond? Kunnen we betrouwbare systemen bouwen? 21 Sint Servaasbrug Maastricht “Uptime”: ruim 700 jaar 22 Ariane 5 Raket “Uptime”: 40 sec 23 Aandeel ICT in productiekosten auto’s • 2000: 26% • 2010: 48% 24 Software is absoluut het meest complexe artefact dat de mens routinematig bouwt… Tussen 1069 en 1081 atomen in het universum 10 MB geheugen > 1020.000.000 toestanden Software is niet continu: wijziging van 1 bit in een programma kan leiden tot volstrekt ander gedrag! 25 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 26 In het Nieuws het Afgelopen Jaar • OV kaart gekraakt • C2000 • Problemen Roertunnel A73 • 730.000 belastingaangiften zoek • Storing internetbankieren Rabobank 27 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 28 Voorbeeld: Überlingen, 1 Juli 2002 B757-200 TU154M ! • Boeing & Tupolew kruisen • 21:33:03 – Alarm door het Collision Avoidance System (TCAS) 29 Voorbeeld: Überlingen, 1 Juli 2002 B757-200 TU154M ! • Boeing & Tupolew kruisen • 21:33:03 – Alarm door het Collision Avoidance System (TCAS) • 21:34:49 – Opdracht verkeersleider 30 Voorbeeld: Überlingen, 1 Juli 2002 B757-200 TU154M ! • Boeing & Tupolew kruisen • 21:33:03 – Alarm door het Collision Avoidance System (TCAS) • 21:34:49 – Opdracht verkeersleider • 21:34:56 – TCAS aanbeveling 31 Voorbeeld: Überlingen, 1 Juli 2002 B757-200 TU154M ! • 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 32 Voorbeeld: Überlingen, 1 Juli 2002 B757-200 ! • Boeing & Tupolew kruisen TU154M • 21:33:03 Officiële aanbeveling: – Alarm door het Collision Avoidance System (TCAS) “piloten dienen adviezen van • 21:34:49 TCAS op te volgen, onafhankelijk – Opdrachtvan verkeersleider eventuele strijdige adviezen door de verkeersleiding” • 21:34:56 – TCAS aanbeveling Een computer vertrouwen!? • 21:35:32 – Botsing 33 Formele Verificatie • Kenmerken Model van Omgeving Model van Software – Gebruik taal van de wiskunde – Computerondersteuning • Hybride Systeem – continue omgeving – discrete software Nauwkeurige Specificatie 34 Formele Verificatie • Kenmerken Model van Omgeving Model van Software Nauwkeurige Specificatie Bewijs (met hulp van computer) – Gebruik taal van de wiskunde – Computerondersteuning • Hybride Systeem – continue omgeving – discrete software • Problemen – Lukt alleen voor eenvoudige modellen – Alle mogelijkheden moeten doorlopen worden toestandsexplosie • Oplossingen – abstractie – compositionaliteit 35 Formele Verificatie • Kenmerken Model van Omgeving Model van Software Nauwkeurige Specificatie Bewijs (met hulp van computer) TCAS deels correct bewezen Nancy Lynch et al, 2000 – Gebruik taal van de wiskunde – Computerondersteuning • Hybride Systeem – continue omgeving – discrete software • Problemen – Lukt alleen voor eenvoudige modellen – Alle mogelijkheden moeten doorlopen worden toestandsexplosie Garantie Correctheid • Oplossingen – abstractie – compositionaliteit 36 Turing Award voor Model Checking 37 Wat is Model Checking? 38 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? 39 Toestandsdiagram 40 Temporele Logica 41 Oplossing Model Checker 42 Toepassingen van Model Checking • Draadloze sensornetwerken • NASA DEEP SPACE 1 missie • Stormvloedkering bij Rotterdam • Copieermachines • Radarsysteem voor auto’s • …. 43 Doelen Cursus • Zelf leren werken met model checker • Leren over gedistribueerde algoritmen en protocollen 12 lessen + afsluitende toets 44