Software in sicherheitsrelevanten Systemen Ralf Pinger / Stefan Gerken / Helge Zücker Sommersemester 2017 Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis Kapitel 2 - SW und Systeme Modeltransformation Code (executable) Modeltransformation Testcases (executable) Inhaltsübersicht 1. 2. 3. 4. 5. 6. Abgrenzungen Vollständigkeit und Korrektheit Toleranzen bei SW und HW und Auswirkungen auf die Entwicklung Fehlerpropagation Fehler und Ausfälle Quantifizierung 1. zufällige Fehler 2. systematische Fehler 3. Qualität Page 2 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model 2.1 Abgrenzungen – Definition Test model Analysis Modeltransformation Code (executable) Modeltransformation Testcases (executable) Definition Software Intellektuelle Schöpfung, die Programme, Verfahren, Regeln und alle dazugehörige Dokumentation umfasst, die zum Betrieb eines Systems gehören. englische Übersetzung intellectual creation comprising the programs, procedures, rules and any associated documentation pertaining to the operation of a system. Quelle: EN 50128 Page 3 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.2 Vollständigkeit und Korrektheit Modeltransformation Code (executable) Modeltransformation Testcases (executable) Vollständigkeit Wurden alle Eingangswerte und ihre Parameter definiert? Führen alle Verhaltensweisen der realen Welt zu gefährdungsfreien Reaktionen des implementierten Systems? Korrektheit Tut das System genau das, was definiert wurde? Führen alle implementierten Reaktionen des Systems zu einem gefährdungsfreien Verhalten der realen Welt? Folgerung: Korrektheit ist theoretisch nachweisbar, Vollständigkeit maximal plausibel Page 4 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.3 Toleranzen Modeltransformation Code (executable) "normaler" Funktionsbereich eines Systems ist ein schmales Band Fehlerbereich ist der Rest Variable Verlauf Geplanter Bereich Modeltransformation Testcases (executable) Tolerierter Bereich Undefinierter Bereich Zeit Bild: nach Sergio Montenegro Page 5 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.3 Toleranzen – HW und SW Modeltransformation Code (executable) Modeltransformation Testcases (executable) Auswirkungen bei Hardware Sind analoger Natur (sie „zerbricht“ nicht unmittelbar) Führen im Allgemeinen nicht sofort zu einem Ausfall des Teils Führen nicht zwangsläufig zu einem Bruch Software Ist digital (Werte sind sofort unplausibel, Wertebereiche laufen über, …) Führen im Normalfall sofort zu einem undefinierten Zustand Regenerieren sich im Normalfall nicht Page 6 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model 2.4 Fehlerpropagation – Störungen und Unfälle Test model Analysis Modeltransformation Code (executable) Modeltransformation Testcases (executable) Ablauf: Störung oder Fehler liegen vor Störung wird wirksam Störung pflanzt sich fort Störung führt zu einem Unfall Bild: nach Sergio Montenegro Page 8 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model 2.4 Fehlerpropagation – Hierarchisch Test model Analysis Modeltransformation Code (executable) Modeltransformation Testcases (executable) Fehler pflanzen sich in der funktionalen Programmhierarchie fort, da einzelne Module sich undefiniert verhalten Bild: nach Sergio Montenegro Page 9 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model 2.4 Fehlerpropagation – Datenfluss Test model Analysis Modeltransformation Code (executable) Modeltransformation Testcases (executable) Fehler pflanzen sich zeitlich im Datenfluss fort, da einzelne Module sich undefiniert verhalten und reaktive Systeme im Regelfall nicht gedächtnislos sind. Bild: nach Sergio Montenegro Page 10 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.4 Fehlerpropagation – Fehlerauswirkungen Modeltransformation Code (executable) Modeltransformation Testcases (executable) Sicherer Zustand Fail Safe Betrieb Rückfallebene Fehler Fehlertoleranz Reparatur Unerwarteter Fehler Fehlerbereich System ausgefallen Normaler Betrieb Keine Maßnahme Glück zu erwarten Absolut nicht zu erwarten Unfall Bild: nach Sergio Montenegro Page 11 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.5 Fehler und Ausfälle Modeltransformation Code (executable) Modeltransformation Testcases (executable) Fehler ist die Abweichung von einem erwarteten Sollwert Fehler kann unterschiedliche Ursachen haben Menschliche (z. B. Fehlbedienungen) Systematische (z. B. Programmierfehler, falsche Anforderungen) Zufällige Ursachen (z. B. Übertragungsfehler) Physikalische (z. B. Messfehler) Ausfall ist das Versagen einer technischen Funktion Ausfall bezieht sich auf physikalische Objekte Ausfall ist in der Regel stochastisch Nur ein unerwarteter Ausfall kann zu einem Fehler führen Ausfall und Fehler hängen zusammen, sind aber nicht identisch! Page 12 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.6 Quantifizierung Modeltransformation Code (executable) Modeltransformation Testcases (executable) Zweck: ist nichts anderes als die Angabe von irgendetwas als Zahlenwert zum Zweck der Vergleichbarkeit erzeugt das Gefühl einer objektiven Bewertung Problem: Vergleichbarkeit Objektivität Page 13 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.6.1 Quantifizierung – zufällige Fehler Modeltransformation Code (executable) Modeltransformation Testcases (executable) Voraussetzung: Stochastisches Fehlermodell Softwarefehler besitzen (hoffentlich) deterministisches Fehlermodell Ausfall Stochastisches Modell über die Zeit → Ausfallrate ≡ Ausfälle des Elements pro Stunde Stochastisches Modell über die Nutzungsfälle → Ausfallwahrscheinlichkeit ≡ Ausfälle pro Nutzung des Elements Betrifft sowohl Verfügbarkeit als auch Sicherheit Page 14 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.6.2 Quantifizierung – systematische Fehler Modeltransformation Code (executable) Modeltransformation Testcases (executable) Mögliche Quantifizierung: Z. B. Gefundene Fehler pro LOC Prognose von systematischen Fehlern Systematische Fehler treten bei gleichen Eingangsbedingungen reproduzierbar immer wieder auf Zufälligkeit der Eingangsbedingungen sind nicht notwendigerweise gegeben Warum einen Fehler nicht beheben, wenn er bekannt ist? Woher weiß man, wie die Restfehler verteilt sein werden? Page 15 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model 2.6.2 Quantifizierung – korrekt, robust und vollständig Test model Analysis Modeltransformation Code (executable) Modeltransformation Testcases (executable) Korrektheit ist ein Synonym für Fehlerfreiheit, das heißt: Korrektheit ist digital Korrektheit einer Realisierung ist bezogen auf deren Spezifikation Eine fehlende Spezifikation impliziert Korrektheit Vollständigkeit ist verallgemeinert, wenn alles für eine Problemlösung erforderte realisiert wurde (Normalbetrieb und Fehlerfälle) bezogen auf Software die Umsetzung aller Anforderungen der Spezifikation bezogen auf ein Problem die Spezifikation aller Aspekte eines Problems Robustheit ist unter unerwarteten Situationen sinnvoll zu reagieren nicht digital nicht proportional zur Korrektheit Page 16 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.6.3 Quantifizierung – Qualität Modeltransformation Code (executable) Modeltransformation Testcases (executable) Qualität - Lat.: qualitas – Beschaffenheit Die Gesamtheit von Merkmalen (und Merkmalswerten) einer Einheit bezüglich ihrer Eignung, festgelegte und vorausgesetzte Erfordernisse zu erfüllen. [Deutsche Gesellschaft für Qualität] Qualitätsmodelle Softwarequalität selbst ist in der Praxis nicht direkt anwendbar. weitere Detaillierung und Konkretisierung durch Qualitätsmodelle Ableitung von Unterbegriffen Page 17 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model 2.6.3 Quantifizierung – Qualitätsmodelle Test model Analysis Modeltransformation Code (executable) Modeltransformation Testcases (executable) Qualitätsmodell nach Balzert Page 18 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model 2.6.3 Quantifizierung – Qualitätsmodelle Test model Analysis Modeltransformation Code (executable) Modeltransformation Testcases (executable) Qualitätsmodell nach ISO/IEC 9126-1 Page 19 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model 2.6.3 Quantifizierung – Qualitätsmodelle Test model Analysis Modeltransformation Code (executable) Modeltransformation Testcases (executable) Qualitätsmodell GQM nach Basili, Rombach Page 20 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model 2.6.3 Quantifizierung – Metriken Test model Analysis Modeltransformation Code (executable) Modeltransformation Testcases (executable) Beispiele: McCabes zyklomatische Zahl Eindeutig definiert Reproduzierbar Nur auf Kontrollflussgraphen anwendbar Lines of Code (LOC) Unklarheit bezüglich Leerzeilen und Kommentarzeilen Function Points Basiert auf individuellen Einschätzungen Prinzipbedingt nur sehr eingeschränkt reproduzierbar Page 21 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen Model based Software Engineering Model based Development Model based Testing Application model Test model Analysis 2.6.3 Quantifizierung – Qualität Modeltransformation Code (executable) Modeltransformation Testcases (executable) Qualitätsanforderungen Architekturmodell Qualitätsmodell Designmodell Bild: Axel Zechner Page 22 18.05.2017 Ralf Pinger / Stefan Gerken Software in sicherheitsrelevanten Systemen