2003-05-07 - TU/e p-colloqium - Ontwikkeling van betrouwbare software

494 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
494
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Wat doen we echt: Beoordelen ontwerpen Beoordelen gekozen methoden en technieken Beoordelen werkwijzen Beoordelen testprocessen
  • 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….
  • Maar wat doe je als je signalen krijgt die je niet verwacht ??? 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……
  • 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
  • 2003-05-07 - TU/e p-colloqium - Ontwikkeling van betrouwbare software

    1. 1. Betrouwbare Software Hoe een simpel systeem toch veel werk kan opleveren Ir. Jaap van Ekris Senior Advisor Software Engineering Research Centre [email_address]
    2. 2. Agenda <ul><li>Wat is SERC </li></ul><ul><li>De vraag </li></ul><ul><li>De snelle oplossing </li></ul><ul><li>Een betrouwbare oplossing </li></ul><ul><li>Is techniek alleen genoeg </li></ul><ul><li>Realiteit </li></ul>
    3. 3. Wat is SERC <ul><li>Het Software Engineering Research Centre is een kenniscentrum ter bevordering van de kwaliteit van de Software ontwikkeling in Nederland </li></ul>
    4. 4. Wat doen we ? <ul><li>SERC heeft als onafhankelijke partij vaak een specifieke rol: </li></ul><ul><li>Trainer </li></ul><ul><li>Coach </li></ul><ul><li>Scheidsrechter </li></ul><ul><li>Analyst </li></ul><ul><li>Tuchtraad </li></ul><ul><li>Nooit een speler ! </li></ul>
    5. 5. Concreet <ul><li>Onafhankelijk beoordelen van/meedenken over: </li></ul><ul><li>Projectplannen </li></ul><ul><li>Processen en werkwijzen </li></ul><ul><li>Pakket van eisen </li></ul><ul><li>Ontwerpen </li></ul><ul><li>Code </li></ul><ul><li>Testplannen </li></ul><ul><li>Uitvoering van tests </li></ul>
    6. 6. Mijn werkveld: Safety Critical Systems
    7. 7. Basisprincipe <ul><li>Keep it simple </li></ul>
    8. 8. Het Systeem <ul><li>Een Systeem </li></ul><ul><li>om een waterkering te sluiten </li></ul><ul><li>als de mens faalt. </li></ul>
    9. 9. Functionele eisen <ul><li>Waterstand > 3 meter  start Diesels </li></ul><ul><li>Diesels gestart  geef signaal “Sluit” </li></ul>
    10. 10. Goedkope (snelle) oplossing Relais ( €10,00 p/s bij de Handyman) Waterverklikker ( €17,50 bij de Gamma) Ontwerpdocumentatie (gesponsord door Dommelsch Bier)
    11. 11. Kwaliteitseis <ul><li>Het systeem mag maximaal maar éé n fout in de 10.000 jaar maken, en dit moet aantoonbaar zijn. </li></ul>
    12. 12. Redden we dat ? Relais blijft hangen/kapot ( Kans is groot: 1 x per 30 jaar) Meetfouten ( Kans is zeer groot: golven, zeemeeuwen) Waterverklikker kapot ( Kans is zeer groot: roestvorming !) Draden kapot ( Kans is redelijk groot: opgraven, mollen)
    13. 13. Oplossingen <ul><li>Hoogtemeting i.p.v. waterdetectie </li></ul><ul><li>Drievoudige uitgevoerde meting </li></ul><ul><li>Dubbel uitgevoerde kabels </li></ul><ul><li>Dubbel uitgevoerde beslismodules </li></ul>
    14. 14. Het ontwerp Hoogtebepaling Aansturing Hoogtemeting Waterkering Diesels Meet a Meet b Stuur a Stuur b
    15. 15. Faalkansen Hoogtebepaling Aansturing Hoogtemeting Waterkering Diesels Meet a Meet b Stuur a Stuur b Schakelfouten Kans: (10 -4 ) 2 + (10 -4 ) 2 Meetfouten Kans: (10 -3 ) 3 Meter kapot Kans: (10 -5 ) 3 Kabelbreuk Kans: (10 -4 ) 12 Kabelbreuk Kans: (10 -4 ) 4 Kabelbreuk Kans: 3 * (10 -4 ) 2
    16. 16. Meet x : Beschrijving <ul><li>Elke 10 seconden 2 x 3 waarden </li></ul><ul><li>op basis hiervan moet een waterstand berekend worden </li></ul><ul><li>Signalen kunnen fouten bevatten </li></ul>
    17. 17. Meet x : Waneer is 3 meter bereikt? <ul><li>Vreemde meetwaardes gooien we weg </li></ul><ul><li>Per meetpunt bepalen we een minuutgemiddelde </li></ul><ul><li>Per minuut maximaal 5 centimeter verandering per meetpunt </li></ul><ul><li>De drie meetpunten mogen onderling maximaal 5 centimeter verschillen </li></ul><ul><li>Afwijkende meters worden volledig genegeerd </li></ul><ul><li>Het lopende gemiddelde over 10 minuten is het definitieve gemiddelde </li></ul>
    18. 18. Meet x : Hoofdontwerp Ruwe metingen Meetpunt 1 Meetpunt 2 Meetpunt 3 Minuut gemiddelden } } } } Waterstand
    19. 19. Stuur x : Beschrijving <ul><li>Krijgt elke minuut 2 x 1 waterstand binnen </li></ul><ul><li>Moet bij waterstand >3 meter diesels starten </li></ul><ul><li>Moet als de diesels gestart zijn en waterstand > 3 meter kering sluiten </li></ul>
    20. 20. Stuur x : Interne werking 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”
    21. 21. Stuur x : Redundantie… Wacht Waterstand < 3 meter Waterstand > 3 meter Waterstand Waterstand a Waterstand b Waterstand a < 3 meter EN Waterstand b < 3 meter Waterstand a > 3 meter Waterstand b > 3 meter Waterstanden ontbreken
    22. 22. Stuur x : Redundantie… 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” StartD3 “ Sent” naar Stuur b “ Start” naar Diesels > 1 minuut StartD4 “ Sent” van Stuur b
    23. 23. Stuur x : Fail Safe… W_O_D StartD3 StartD2 Stuur b “ OK” > 1 minuut “ Sent” Failed Onverwacht signaal
    24. 24. Stuur x : Een overzichtsplaatje… 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 Waterstand b Init1 “ Init” naar Stuur b Wacht > 1 minuut “ Wacht” Init Waterstanda < 3 meter EN Waterstandb < 3 meter Waterstand b “ Stuur b Waterstanda > 3 Waterstandb > 3 Geen waterstand “ 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
    25. 25. Is dit voldoende ? <ul><li>Formeel specificeren </li></ul><ul><li>Aantoonbaar ALLE mogelijkheden afdekken </li></ul><ul><li>Controleren van elkaars werk </li></ul><ul><li>Heel systematisch testen </li></ul>
    26. 26. De Realiteit <ul><li>Is complexer: </li></ul><ul><li>Huidige oplossing is niet helemaal correct </li></ul><ul><li>Het echte systeem is uitgebreider </li></ul><ul><li>Er wordt veel meer gemeten/gecontroleerd </li></ul><ul><li>Een echt systeem merkt het als het faalt </li></ul><ul><li>Grootste risico’s buiten beschouwing gelaten </li></ul><ul><li>Een echt systeem opent de kering ook </li></ul><ul><li>Faciliteren van onderhoud op de kering </li></ul>
    27. 27. <ul><li>Vragen ? </li></ul>

    ×