Top Banner
1 Over Betrouwbaarheid van Computersystemen Frits Vaandrager Institute for Computing and Information Sciences Radboud Universiteit Nijmegen
26

Betrouwbaarheid van Software

Jan 11, 2017

Download

Documents

vuonghanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Betrouwbaarheid van Software

1

Over Betrouwbaarheid van

Computersystemen

Frits Vaandrager

Institute for Computing and Information Sciences

Radboud Universiteit Nijmegen

Page 2: Betrouwbaarheid van Software

2

Betrouwbaarheid Computersystemen

Onze samenleving is in hoge mate afhankelijk van

computersystemen

Is ons vertrouwen in deze systemen gegrond?

Hoe kunnen we betrouwbare systemen bouwen?

Page 3: Betrouwbaarheid van Software

3

Sint Servaasbrug Maastricht

“Uptime”:

ruim 700 jaar

Page 4: Betrouwbaarheid van Software

4

Ariane 5 Raket

“Uptime”:

40 sec

Page 5: Betrouwbaarheid van Software

5

Aandeel ICT in productiekosten auto’s

• 2000: 26%

• 2010: 48%

Page 6: Betrouwbaarheid van Software

6

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!

Page 7: Betrouwbaarheid van Software

7

Geen verrassing dus dat het vrijwel

nooit foutloos werkt!

2004: Mars Rover bevriest 2005: Computer “kaapt” vliegtuig

2006: DaimlerChrysler roept

128.000 Pacifica auto’s terug

2007: Computer crashes bij ProRail

Page 8: Betrouwbaarheid van Software

8

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 exploreren

• Model-gebaseerd testen

Gebruik model om het systeem op goede manier te testen

• Doel

Fouten (“bugs”) opsporen

Page 9: Betrouwbaarheid van Software

9

Voorbeeld: Überlingen, 1 Juli 2002

• Boeing & Tupolew kruisen

• 21:33:03

– Alarm door het Collision

Avoidance System (TCAS)

B757-200 TU154M

!

Page 10: Betrouwbaarheid van Software

10

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

!

Page 11: Betrouwbaarheid van Software

11

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

!

Page 12: Betrouwbaarheid van Software

12

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

!

Page 13: Betrouwbaarheid van Software

13

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!?

Page 14: Betrouwbaarheid van Software

14

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

Page 15: Betrouwbaarheid van Software

15

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

Page 16: Betrouwbaarheid van Software

16

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

Page 17: Betrouwbaarheid van Software

17

Voorbeeld: Invoegmanoeuvre [Frehse]

• Probleem verkeersleiding

– Invoegen bij verschillende

snelheden

• Doelen

– Voorkom botsingen

– Behoudt onderlinge afstand

Page 18: Betrouwbaarheid van Software

18

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

Page 19: Betrouwbaarheid van Software

19

Abstractie

• Doel

– check alle mogelijkheden

• Abstractie

vereenvoudigd model

– hier: lineaire afschattingen van

de koers

verstoringen

Page 20: Betrouwbaarheid van Software

20

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

Page 21: Betrouwbaarheid van Software

21

State-of-the-art

• 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

• “Radical Design”

• Pas op met de allernieuwste

(dure) auto’s, treinen, en

vliegtuigen

tijd

Botsing mogelijk!

veiligheids

marge

Page 22: Betrouwbaarheid van Software

22

Model Checking

Model

Checker Does M satisfy P?

Yes! No, and here’s an

example of why not.

P: No Collisions

M: Traffic Light

Controller

Page 23: Betrouwbaarheid van Software

23

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?

Page 24: Betrouwbaarheid van Software

24

Toestandsdiagram

Page 25: Betrouwbaarheid van Software

25

Oplossing Model Checker

Page 26: Betrouwbaarheid van Software

26

Toepassingen van Model Checking

• Draadloze sensornetwerken

• NASA DEEP SPACE 1 missie

• Stormvloedkering bij Rotterdam

• Copieermachines

• Radarsysteem voor auto’s

• ….