1 1.Wie durft er nog in een vliegtuig, trein of auto te stappen? 2. Profielwerkstukken: een aantal Informatica suggesties Herman Geuvers Institute for Computing and Information Sciences Radboud Universiteit Nijmegen
2 Wie durft er nog in een vliegtuig, trein of auto te stappen? Over betrouwbaarheid van software Frits Vaandrager / Herman Geuvers Institute for Computing and Information Sciences Radboud Universiteit Nijmegen
3 Sint Servaasbrug Maastricht “Uptime”: ruim 700 jaar
4 Ariane 5 Raket “Uptime”: 40 sec
5 Ariane 5 Raket Probleem met de conversie van 64 bit floating point getal naar 16 bit integer waarde (geheel getal) 500 miljoen dollar 7 miljard dollar ontwikkelkosten...
6 Pentium 4 chip (Intel 1994) ,0 / ,0 = 1, (Correcte waarde) ,0 / ,0 = 1, (volgens Pentium 4)
7 Aandeel ICT in productiekosten auto’s 2000: 26% 2010: 48%
8 Software is absoluut het meest complexe artefact dat de mens routinematig bouwt… Tussen en atomen in het universum 10 MB geheugen > toestanden Software is niet continu: wijziging van 1 bit in een programma kan leiden tot volstrekt ander gedrag!
9 Geen verrassing dus dat het vrijwel nooit foutloos werkt! 2004: Mars Rover bevriest 2005: Computer “kaapt” vliegtuig 2006: DaimlerChrysler roept Pacifica auto’s terug 2007: Computer crashes bij ProRail
10 Hoe voorkomen we fouten? Gedegen ontwikkelproces Computer code moet foutloos werken binnen een bepaalde -- vijandelijke? -- omgeving
11 Onderzoek Radboud Universiteit Het bouwen van modellen Beschrijf relevante aspecten van systeem formeel (in wiskundige taal) Model checking Gebruik een computer om alle toestanden van model te exploreren Model-gebaseerd testen Gebruik het model om het systeem op goede manier te testen Doel Fouten (“bugs”) opsporen
12 Voorbeeld: Überlingen, 1 Juli 2002 Boeing & Tupolew kruisen 21:33:03 –Alarm door het Collision Avoidance System (TCAS) B TU154M !
13 Voorbeeld: Überlingen, 1 Juli 2002 Boeing & Tupolew kruisen 21:33:03 –Alarm door het Collision Avoidance System (TCAS) 21:34:49 –Opdracht verkeersleider B TU154M !
14 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 B TU154M !
15 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 B TU154M !
16 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 B TU154M ! Officiële aanbeveling: “piloten dienen adviezen van TCAS op te volgen, onafhankelijk van eventuele strijdige adviezen door de verkeersleiding” Een computer vertrouwen!? Officiële aanbeveling: “piloten dienen adviezen van TCAS op te volgen, onafhankelijk van eventuele strijdige adviezen door de verkeersleiding” Een computer vertrouwen!?
17 Formele Verificatie Kenmerken –Gebruik taal van de wiskunde –Computerondersteuning Hybride Systeem –continue omgeving –discrete software Model van Omgeving Model van Software Nauwkeurige Specificatie Hybride Systeem
18 Formele Verificatie Kenmerken –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 Model van Omgeving Model van Software Bewijs (met hulp van computer) Nauwkeurige Specificatie Hybride Systeem
19 Formele Verificatie Kenmerken –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 Model van Omgeving Model van Software Bewijs (met hulp van computer) Garantie Correctheid Nauwkeurige Specificatie Hybride Systeem TCAS deels correct bewezen Nancy Lynch et al, 2000
20 Voorbeeld: Invoegmanoeuvre [Frehse] Probleem verkeersleiding –Invoegen bij verschillende snelheden Doelen –Voorkom botsingen –Behoudt onderlinge afstand
21 Voorbeeld: Invoegmanoeuvre [Frehse] Probleem verkeersleiding –Invoegen bij verschillende snelheden Doelen –Voorkom botsingen –Behoudt onderlinge afstand Model –Omgeving: Vliegtuigen –Software: Besturing snel/langzaam Specificatie –Behoudt minimale afstand
22 Abstractie Doel –check alle mogelijkheden Abstractie vereenvoudigd model –hier: lineaire afschattingen van de koers verstoringen
23 Abstractie Doel –check alle mogelijkheden Abstractie vereenvoudigd model –hier: lineaire afschattingen van de koers –begrenzing trajectories begrenzing koers oorspronkelijke trajectorie begrenzing trajectorie in abstractie verstoringen
24 Conclusies Grote vooruitgang op het gebied van formele verificatie Hoeveelheid software in vliegtuigen, treinen en auto’s groeit nog veel sneller Complexiteit software wordt systematisch onderschat Nieuwe tecnieken voor “Software Design” Pas op met de allernieuwste (dure) auto’s, treinen, en vliegtuigen!
25 Profielwerkstukken Suggesties Software Fouten: Ariane, Pentium,... –Wat is de fout? Echt een hardware / software fout? –Wat waren de gevolgen? –Hoe ging het bedrijf daarmee om? –Hoe had dit voorkomen kunnen worden? Het jaar 2000 (Y2K) software probleem –Wat is het probleem als je een jaartal door twee cijfers weergeeft? Wat kan concreet fout gaan? –Waarom hebben we er toch niets van gemerkt? –Hoe werkt "software renovatie"?
26 Profielwerkstukken Suggesties Het Web als een graaf –Wat is de grootste “kliek”? –Wat is de langste klikafstand? Wat is de "edit afstand" tussen 2 strings –aap ~ aar ~ haar –Niet: aap ~ apa –Vegelijken van DNA sequenties Onderzoek sudoku puzzels met de computer –Hoeveel puzzels zijn er? –Wanneer is een puzzel moeilijk?
27 Profielwerkstukken Suggesties Teksten inpakken –Hoe werkt een compressie algoritme? –Kan het zonder verlies van informatie? “Public key” cryptosysteem –Codeersleutel publiek; decodeersleutel geheim! –Hoe werkt dat?? Snel Pi berekenen –Er zijn zoveel methoden... –Alle decimalen of een speciaal decimaal?