Sie sind auf Seite 1von 21

Software in

sicherheitsrelevanten Systemen

Ralf Pinger / Stefan Gerken

Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

Kapitel 2 - SW und Systeme


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (executable)

Inhaltsübersicht

1. Abgrenzungen
2. Vollständigkeit und Korrektheit
3. Toleranzen bei SW und HW und Auswirkungen auf die Entwicklung
4. Fehlerpropagation
5. Fehler und Ausfälle
6. Quantifizierung
1. zufällige Fehler
2. systematische Fehler
3. Qualität

Software in sicherheitsrelevanten Systemen


Page 2 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.1 Abgrenzungen – Definition


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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
Software in sicherheitsrelevanten Systemen
Page 3 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.2 Vollständigkeit und Korrektheit


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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

Software in sicherheitsrelevanten Systemen


Page 4 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.3 Toleranzen
Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (executable)

 "normaler" Funktionsbereich eines Systems ist ein schmales Band

 Fehlerbereich ist der Rest

Verlauf Geplanter Bereich Tolerierter Bereich


Variable

Undefinierter Bereich

Zeit

Bild: nach Sergio Montenegro

Software in sicherheitsrelevanten Systemen


Page 5 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.3 Toleranzen – HW und SW


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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

Software in sicherheitsrelevanten Systemen


Page 6 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.4 Fehlerpropagation – Störungen und Unfälle


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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

Software in sicherheitsrelevanten Systemen


Page 8 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.4 Fehlerpropagation – Hierarchisch


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (executable)

Fehler pflanzen sich in der funktionalen Programmhierarchie fort, da einzelne


Module sich undefiniert verhalten

Bild: nach Sergio Montenegro

Software in sicherheitsrelevanten Systemen


Page 9 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.4 Fehlerpropagation – Datenfluss


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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

Software in sicherheitsrelevanten Systemen


Page 10 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.4 Fehlerpropagation – Fehlerauswirkungen


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (executable)

Sicherer Zustand
Betrieb Fail Safe

Rückfallebene Fehlertoleranz

Unerwarteter
Fehler Reparatur Fehlerbereich
Fehler System ausgefallen

Normaler Betrieb Glück


Keine
Maßnahme

zu erwarten

Absolut nicht
zu erwarten Unfall

Bild: nach Sergio Montenegro

Software in sicherheitsrelevanten Systemen


Page 11 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.5 Fehler und Ausfälle


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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!

Software in sicherheitsrelevanten Systemen


Page 12 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6 Quantifizierung
Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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

Software in sicherheitsrelevanten Systemen


Page 13 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6.1 Quantifizierung – zufällige Fehler


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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

Software in sicherheitsrelevanten Systemen


Page 14 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6.2 Quantifizierung – systematische Fehler


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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?

Software in sicherheitsrelevanten Systemen


Page 15 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6.2 Quantifizierung – korrekt, robust und vollständig


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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

Software in sicherheitsrelevanten Systemen


Page 16 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6.3 Quantifizierung – Qualität


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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

Software in sicherheitsrelevanten Systemen


Page 17 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6.3 Quantifizierung – Qualitätsmodelle


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (executable)

Qualitätsmodell nach Balzert

Software in sicherheitsrelevanten Systemen


Page 18 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6.3 Quantifizierung – Qualitätsmodelle


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (executable)

Qualitätsmodell nach ISO/IEC 9126-1

Software in sicherheitsrelevanten Systemen


Page 19 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6.3 Quantifizierung – Qualitätsmodelle


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (executable)

Qualitätsmodell GQM nach Basili, Rombach

Software in sicherheitsrelevanten Systemen


Page 20 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6.3 Quantifizierung – Metriken


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (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

Software in sicherheitsrelevanten Systemen


Page 21 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013
Model based
Software Engineering
Model based Model based
Development Testing

Application
Test model
model
Analysis

2.6.3 Quantifizierung – Qualität


Modeltrans- Modeltrans-
formation formation

Code Testcases
(executable) (executable)

Qualitätsanforderungen

Architekturmodell Qualitätsmodell

Designmodell

Bild: Axel Zechner

Software in sicherheitsrelevanten Systemen


Page 22 01.02.2020 Ralf Pinger / Stefan Gerken Sommersemester 2013