• Save
2005-05-29 - TU/e p-colloqium - Ontwikkeling van betrouwbare software
Upcoming SlideShare
Loading in...5
×
 

2005-05-29 - TU/e p-colloqium - Ontwikkeling van betrouwbare software

on

  • 293 views

Presentation for future Software Engineers about the complexity of developping safety critical systems.

Presentation for future Software Engineers about the complexity of developping safety critical systems.

Statistics

Views

Total Views
293
Views on SlideShare
293
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Werkveld: Kerncentrales Luchtverkeersleiding Stormvloedkeringen Fouten kosten veel mensenlevens
  • Let op: Meet/a en Meet/b zijn gesynced: tijd moet hetzelfde zijn !
  • Je hebt nog steeds meetfouten, kabelbreuken en schakelfouten: maar de kans is veel kleiner !!
  • Wat is eigenlijk 3 meter ??
  • Wat is eigenlijk 3 meter ?? Golfgedrag is zeer vervelend Fouten in het omderhoud (5 cm is bepaald door metingen over 50 jaar) Hoe combineer je de drie metingen Maximaal 5 centimeter verschil Afwijkingen hiervan worden afgestraft  op de reserve bank Je wilt echt zeker zijn dat het een waterstand is
  • Als het goed is komen die overeen
  • Zoals we al eerder in het ontwerp zagen krijgen we 2 waterstanden binnen….
  • Wie heeft wel eens een auto proberen te starten terwijl hij al liep  geen prettige situatie ! Je moet voorkomen dat de diesels twee keer gestart worden, of algemener: dat signalen twee maal gegeven worden Probleem: Wachten op de buurman introduceert DEADLOCK ! Introduceert een single point of failure Nu kan het ook zijn dat we signalen gemist hebben, en StuurB ons toch voor was…. Voor de mierenneukers onder ons: deze situatie is niet helemaal vrij van Deadlock. Wie ziet hem? ANTWOORD: Stel dat Stuur-B wel “Start_D” zegt, en dan het loodje legt……. Dit is waar de realiteit en de omvang van mijn sheet elkaar ontmoeten…..
  • Maar wat doe je als je signalen krijgt die je niet verwacht ??? Stel dat Stuur-B zegt: “Ben even koffie halen” In theorie kan dit niet, maar in theorie kon de Titanic ook niet zinken….
  • Als we rekening gaan houden met deadlocks en redundantie ziet ons plaatje er zo uit: niet echt simpel meer……
  • Een controller in mexico die in zijn haast 25 karakters zeer snel inklopt en daarmee een compleet luchtverkeersleidingssysteem plat legt…
  • Er ontbreken wat controles: bijvoorbeeld of signalen ook echt doen wat ze moeten doen, en of redundante eenheden echt doen wat ze beloven In werkelijkheid let het noodsluitsysteem ook op de stroomrichting van het water ! Grootste risico’s: stroomuitval, brand Kering kan ook automatisch gesloten worden

2005-05-29 - TU/e p-colloqium - Ontwikkeling van betrouwbare software 2005-05-29 - TU/e p-colloqium - Ontwikkeling van betrouwbare software Presentation Transcript

  • Betrouwbare Software Hoe een simpel systeem toch veel werk kan opleveren © 2004 CIBIT | SERC Ir. Jaap van Ekris Senior Advisor
  • Agenda
    • Wat is CIBIT|SERC
    • De vraag
    • De snelle oplossing
    • Een betrouwbare oplossing
    • Is techniek alleen genoeg
    • Realiteit
    © 2004 CIBIT | SERC
  • Wat doet CIBIT|SERC?
    • SERC heeft als onafhankelijke partij vaak een specifieke rol:
    • Trainer
    • Sparring-partner
    • Coach
    • Scheidsrechter
    • Analyst
    • Arbitrage
    • Nooit een speler !
    © 2004 CIBIT | SERC
  • Concreet
    • Onafhankelijk beoordelen van/meedenken over:
    • Projectplannen
    • Processen en werkwijzen
    • Pakket van eisen
    • Ontwerpen
    • Code
    • Testplannen
    • Uitvoering van tests
    © 2004 CIBIT | SERC
  • Mijn werkveld: Safety Critical Systems © 2004 CIBIT | SERC
  • Basisprincipe
    • Keep it simple
    © 2004 CIBIT | SERC
  • Het Systeem
    • Een Systeem
    • om een waterkering te sluiten
    • als de mens faalt.
    © 2004 CIBIT | SERC
  • De basis-architectuur © 2004 CIBIT | SERC
  • Functionele eisen
    • Waterstand > 3 meter  start Diesels
    • Diesels gestart  geef signaal “Sluit”
    © 2004 CIBIT | SERC
  • Goedkope (snelle) oplossing © 2004 CIBIT | SERC Relais ( €10,00 p/s bij de Handyman) Waterverklikker ( €17,50 bij de Gamma) Ontwerpdocumentatie (gesponsord door Dommelsch Bier)
  • Kwaliteitseis
    • Het systeem mag maximaal maar éé n fout
    • in de 10.000 jaar maken
    • en dit moet aantoonbaar zijn.
    © 2004 CIBIT | SERC
  • Redden we dat ? © 2004 CIBIT | SERC Meetfouten ( Kans is zeer groot: golven, zeemeeuwen) Relais blijft hangen/kapot ( Kans is groot: 1 x per 30 jaar) Waterverklikker kapot ( Kans is zeer groot: roestvorming !) Draden kapot ( Kans is redelijk groot: opgraven, mollen)
  • Oplossingen
    • Hoogtemeting i.p.v. waterdetectie
    • Drievoudige uitgevoerde meting
    • Dubbel uitgevoerde kabels
    • Dubbel uitgevoerde beslismodules
    • Voortgangsbewaking componenten
    © 2004 CIBIT | SERC
  • Redundantie! © 2004 CIBIT | SERC Hoogtebepaling Aansturing Hoogtemeting Waterkering Diesels Meet a Meet b Stuur a Stuur b Info
  • Faalkansen © 2004 CIBIT | SERC Info Hoogtebepaling Aansturing Hoogtemeting Waterkering Diesels Meet a Meet b Stuur a Stuur b Schakelfouten Kans: (10 -6 ) 2 + (10 -6 ) 2 Meetfouten Kans: (10 -6 ) 3 Meter kapot Kans: (10 -5 ) 3 Kabelbreuk Kans: (10 -8 ) 12 Kabelbreuk Kans: (10 -8 ) 4 Kabelbreuk Kans: 3 * (10 -8 ) 2 Schakelfouten Kans: 10 -2
  • De algemene bouw van de componenten © 2004 CIBIT | SERC Stuur x WD Component X :: Functionaliteit Component X ::Diagnose Info Input a Input b Output a Output b Voortgang Functionaliteit Voortgang Diagnose Controle Functionaliteit
  • Meet x : Beschrijving
    • Elke 10 seconden 2 x 3 waarden
    • op basis hiervan moet een waterstand berekend worden
    • Signalen kunnen fouten bevatten
    © 2004 CIBIT | SERC
  • Meet x : Waneer is 3 meter bereikt?
    • Vreemde meetwaardes gooien we weg
    • Per meetpunt bepalen we een minuutgemiddelde
    • Per minuut maximaal 5 centimeter verandering per meetpunt
    • De drie meetpunten mogen onderling maximaal 5 centimeter verschillen
    • Afwijkende meters worden volledig genegeerd
    • Het lopende gemiddelde over 10 minuten is het definitieve gemiddelde
    © 2004 CIBIT | SERC
  • Meet x : Hoofdontwerp © 2004 CIBIT | SERC Ruwe metingen Meetpunt 1 Meetpunt 2 Meetpunt 3 Minuut gemiddelden } } } } Waterstand
  • Stuur x : Beschrijving
    • Krijgt elke minuut 2 waterstanden binnen
    • Moet bij waterstand >3 meter diesels starten
    • Moet als de diesels gestart zijn en waterstand > 3 meter kering sluiten
    © 2004 CIBIT | SERC
  • Stuur x : Een kladblaadje… © 2004 CIBIT | SERC Init Start_D “ Start” signaal Diesels Wacht Waterstand < 3 meter Waterstand > 3 meter Waterstand W_O_D “ Diesels gereed” Waterstand > 3 meter Sluit_? Waterstand < 3 meter Waterstand “ Sluit kering”
  • Stuur x : Redundantie… © 2004 CIBIT | SERC Wacht Waterstand < 3 meter Waterstand > 3 meter Waterstand Waterstand a Waterstand b Waterstand a > 3 meter Waterstand b > 3 meter Waterstanden ontbreken Waterstand a < 3 meter EN Waterstand b < 3 meter
  • Stuur x : Redundantie… © 2004 CIBIT | SERC StartD W_O_D Stuur b StartD2 “ OK” van Stuur b “ OK” StartD1 “ Start_D” naar Stuur b > 1 minuut StartD1’ Stuur b geeft “Start_D” “ OK” naar Stuur b “ Sent” van Stuur b StartD3 “ Sent” naar Stuur b “ Start” naar Diesels > 1 minuut StartD4 “ Sent” van Stuur b
  • Stuur x : Fail Safe… © 2004 CIBIT | SERC W_O_D StartD3 StartD2 Stuur b “ OK” > 1 minuut “ Sent” Failed Onverwacht signaal
  • Stuur x : Zonder redundantie © 2004 CIBIT | SERC StartD W_O_D Sluit b Wacht Init Not Sluit a EN Not Sluit b Sluit a SluitA SluitB Geen waterstand “ Ready” van Diesels Sluit_? “ Sluitt” naar Kering Finished Failed “ Start” naar Diesels
  • © 2004 CIBIT | SERC StartD2 Stuur b “ OK” StartD StartD1 “ Start_D” naar Stuur b W_O_D Stuur b > 1 minuut StartD1’ Stuur b geeft “Start_D” “ OK” naar Stuur b “ Sent” StartD3 “ Sent” naar Stuur b “ Start” naar Diesels Init2 Init1 “ Init” naar Stuur b > 1 minuut “ Wacht” Init “ Stuur b “ StartD” W_O_D1 “ Ready” via Stuur b “ Ready” van Diesels “ Ready” naar Stuur b Sluit2 Stuur b “ OK” Sluit_? Sluit1 “ SluitS” naar Stuur b Stuur b > 1 minuut Sluit1’ Stuur b geeft “Sluit” “ Sent” Sluit3 “ SentS” naar Stuur b “ Sluitt” naar Kering Finished Waterstanda < 3 meter EN Waterstandb < 3 meter Failed “ OKS” naar Stuur b StartD4 > 1 minuut “ Sent” van Stuur b Sluit4 “ Sent” van Stuur b Sluit b Wacht Not Sluit a EN Not Sluit b Sluit a SluitA SluitB Geen waterstand Stuur x : Met redundantie
  • Het vervolg: zeer gedetailleerd specificeren © 2004 CIBIT | SERC W_O_D IN: Ready_Diesels Ready_StuurB While (NOT Ready_Diesels OR Ready_StuurB){ Wait(1 second) } W_O_D1
  • Is dit voldoende ?
    • Formeel specificeren
    • Aantoonbaar ALLE mogelijkheden afdekken
    • Zeer strenge codingrules
    • Controleren van elkaars werk
    • Heel systematisch testen
    © 2004 CIBIT | SERC
  • Is goed ontwerpen voldoende?
    • Bouwen is maximaal de helft van het werk, de rest is testen, testen en nog eens testen……..
    • De realiteit is altijd gekker dan iemand zich ooit kan voorstellen
    © 2004 CIBIT | SERC
  • En zelfs dan……. © 2004 CIBIT | SERC Microsoft server crash nearly causes 800-plane pile-up Failure to restart system after 30 days caused data overload. A major breakdown in Southern California's air traffic control system last week was partly due to a &quot;design anomaly&quot; in the way Microsoft Windows servers were integrated into the system, according to a report in the Los Angeles Times. The radio system shutdown, which lasted more than three hours, left 800 planes in the air without contact to air traffic control, and led to at least five cases where planes came too close to one another, according to comments by the Federal Aviation Administration reported in the LA Times and The New York Times. Air traffic controllers were reduced to using personal mobile phones to pass on warnings to controllers at other facilities, and watched close calls without being able to alert pilots, according to the LA Times report. The failure was ultimately down to a combination of human error and a design glitch in the Windows servers brought in over the past three years to replace the radio system's original Unix servers, according to the FAA. The servers are timed to shut down after 49.7 days of use in order to prevent a data overload, a union official told the LA Times. To avoid this automatic shutdown, technicians are required to restart the system manually every 30 days. An improperly trained employee failed to reset the system, leading it to shut down without warning, the official said. Backup systems failed because of a software failure, according to a report in The New York Times. The contract for designing the system, called Voice Switching and Control System (VSCS), was awarded to Harris Corporation in 1992 and the system was installed in the late 1990s, initially using Unix servers, according to Harris. In 2001, the company completed testing of the VSCS Control Subsystem Upgrade (VCSU), which replaced the original servers with off-the-shelf Dell hardware running Microsoft Windows 2000 Advanced Server. The upgrade was installed in California last year, according to the FAA. Soon after installation, however, the FAA discovered that the system design could lead to a radio system shutdown, and put the maintenance procedure into place as a workaround, the LA Times said. The FAA reportedly said it has been working on a permanent fix but has only eliminated the problem in Seattle. The FAA is now planning to institute a second workaround - an alert that will warn controllers well before the software shuts down. The shutdown is intended to keep the system from becoming overloaded with data and potentially giving controllers wrong information about flights, according to a software analyst cited by the LA Times. Microsoft told Techworld it was aware of the reports but was not immediately able to comment.
  • De realiteit van de waterkering
    • Is complexer:
    • Huidige oplossing is niet helemaal correct
    • Het echte systeem is uitgebreider
    • Er wordt veel meer gemeten/gecontroleerd
    • Een echt systeem merkt het als het faalt
    • Grootste risico’s buiten beschouwing gelaten
    • Een echt systeem opent de kering ook
    • Faciliteren van onderhoud op de kering
    © 2004 CIBIT | SERC
    • Vragen ?
    © 2004 CIBIT | SERC