Software in sicherheitsrelevanten Systemen

Werbung
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
Herunterladen