Buffl

Sichere und Zuverlässige Systeme

AP
by Annika P.

Wie ist das Vorgehen bei der Software FMEA

1. Ziel und Umfang definieren

welche Komponenten, Schnittstellen, Betriebsmodi

Unterlagen

▪ Anforderungen

▪ Use-Cases

▪ Aktivitätsdiagramme

▪ Sequenzdiagramme

▪ Deployment-Diagramme

2. Funktionen erfassen

Aufstellung der Funktionen der Komponenten

3. Identifizierung von Fehlern

Wie kann eine Funktion fehlschlagen?

▪ falsche Ausgabe, Ausfall, Verzögerung, falscher Zustand

▪ Incident-Logs, Bug-Tracker, Lessons-Learned, Ergebnis von Reviews und Tests

Beschränkung auf die hauptsächlichen Architekturentscheidungenandere Fehlerquellen über Architektur- und Codierrichtlinien eliminieren

4. Ursachen analysieren

für jede Fehlerart mögliche Ursachen auflisten

▪ fehlerhafte Anforderung

▪ Race-Condition, Null-Pointer

▪ unzureichende Validierung, Kommunikationsverlust

zwischen Entwurfsfehlern, Implementierungsfehlern, Konfigurationsfehlern, Laufzeitbedingungen unterscheiden

5. Auswirkungen bewerten

Auswirkungen der Fehler auf System, übergeordnete Funktionen, Nutzer, Sicherheit oder Compliance

Beurteilung hinsichtlich Aspekte der Informationssicherheit

6. Risiko bewerten

mittels Kriterien A, B und E und passenden Skalen

alternativ: Risikomatrix

als Folge der Abschaffung der RPZ bei FMEAs im Automotive Bereich nach VDA – AIAG, erfolgt stattdessen die Einführung des Risk Matrix Rankings (RMR)

▪ verbesserte Identifizierung potenzieller Risiken

▪ proaktive Analyseermöglicht es Teams, potenzielle Fehlerarten zu identifizieren und zu beheben, bevor sie auftreten

▪ umfassende Risikobewertungdurch die Konzentration auf Schweregrad, Auftreten und Erkennung wird eine detaillierte Bewertung der Risiken im gesamten System oder Prozess gewährleistet

▪ gesteigertes Bewusstseinfördert die Zusammenarbeit zwischen den Beteiligten und trägt zu einem tieferen Verständnis potenzieller Schwachstellen und ihrer Auswirkungen bei

7. Gegenmaßnahmen ableiten

für hohe Prioritätenvermeidende Maßnahmen: Anforderungsüberarbeitung, Entwurfsänderung

detektive MaßnahmenUnit-Tests, statische Code-Analyse, Run-Time Checks

mindernde MaßnahmenFallback, Watchdog, Redundanz

8. Maßnahmen umsetzen

Implementierung und Reviews planen (Code-Review, Architektur-Review)

Tests ergänzen/erstellen

Unit, Integration, System, Fuzzing, Simulation von Fehlerszenarien

Welche Typen von Redundanz gibt es

Strukturelle Redundanz

➢ Erweiterung eines Systems um zusätzliche (gleich- oder andersartige) für den Nutzbetrieb entbehrliche Komponenten

Funktionelle Redundanz

➢ Erweiterung eines Systems um zusätzlich für den Nutzbetrieb entbehrliche Funktionen

Informationsredundanz

➢ zusätzliche Informationen neben der Nutzinformation

Zeitredundanz

➢ über den Zeitbedarf des Normalbetriebs hinausgehende zusätzliche Zeit, die einem funktionell redundantem System zur Funktionsausführung zur Verfügung steht

Dynamische Redundanz

➢ Vorhandensein von redundanten Mitteln, die erst im Ausnahmebetrieb (d.h. nach Auftreten eines Fehlers) aktiviert werden, um zu den zu unterstützenden Funktionen beizutragen

➢ MerkmalPrimär- und Ersatzkomponenten statt paralleler Auslegung von Komponenten

➢ Aktivierungredundante Komponenten werden im Fehlerfall, nicht im Normalbetrieb, aktiviertBeispiel: Server im "Cold-Standby"-Modus, der nur dann in Betrieb genommen wird, wenn der primäre Server ausfällt

Statische Redundanz

➢ Vorhandensein von redundanten Mitteln, die während des gesamten Einsatzzeitraums aktiv zu den zu unterstützenden Funktionen beitragen

➢ Ausprägungen:

statische strukturelle Redundanz: z.B. n-von-m System

statische funktionelle Redundanz (Zusatzfunktionen): z.B. doppeltes Senden von Nachrichten auf unterschiedlichen Wegen

statische funktionelle Redundanz (Diversität): N-Versions-Programmierung

statische Informationsredundanz: fehlerkorrigierende Codes

statische Zeitredundanz: statische Mehrfachausführung einer Funktion

Wie kann bei der Fehlertoleranz ein fehlerfreier Zustand hergestellt werden

Fehlerkompensation

Einsatz eines Mehrheitsentscheidungssystems

fehlerhafte Größen von der Bildung der Ausgangsgröße ausschließen

➢ Vorteile

Fehlermaskierung (die zugehörigen Relativtests eingeschlossen) reicht als einziges Fehlertoleranz-Verfahren aus

Maskierer lassen sich vergleichsweise einfach implementieren

da Wiederholungsbetrieb entfällt, Fehlerbehandlung schneller als bei der Rückwärtsbehebung

➢ Nachteile

hoher Aufwand, wenn strukturelle Redundanz einzusetzen ist

Fehlerbehebung

Rückwärtsfehlerbehebung

Nach dem Auftreten eines Fehlers wird das System in einen in der Vergangenheit eingenommenen, fehlerfreien Zustand zurückversetzt

▪ Rücksetzpunkte erstellen

▪ Rücksetzen

Basis: Zeitredundanz

Fehlerbehandlungsbereich: Rückwärtsbehebungsbereich

Menge gemeinsam rücksetzbarer Komponenten

▪ einzelne Komponenten rücksetzen

▪ Mengen interagierender Komponenten rücksetzen

Fehlerbehebung

Vorwärtsfehlerbehebung

das fehlerbehaftete System nimmt einen vorher festgelegten fehlerfreien Zustand ein

▪ Besonderheiten erkennen

▪ Besonderheiten behandeln

anwendungsabhängige Mechanismen, kaum verallgemeinerbare Lösungen

oft nötig, wenn keine Zeitredundanz zur Verfügung steht, oder wenn Rücksetzen nicht möglich ist, weil auch physikalische Zustände rückgesetzt werden müssten (z.B. Steuerung einer Flugzeuglandung)

Vorwärtsfehlerbehebung - Beispiele

in einer Waschmaschine wird die Temperatur überwacht, geht ein Messwert verloren, wird ein Mittelwert der zuletzt gemessenen Werte verwendet

zur besseren Kapazitätsauslastung von Maschinen, die Werkstücke individuell bearbeiten, könnten die zugeführten Werkstücke geprüft werden, um eine Vorhersage ihrer Bearbeitungsdauer und eine günstige Verteilung auf die verfügbaren Maschinen zu ermöglichen. Fällt der prüfende Rechner aus, so könnte ein allgemeiner Erfahrungswert die Bearbeitungsdauer schätzen.

Vorwärtsfehlerbehebung - Vorteile

Aufwand an struktureller Redundanz ist gering

▪ nur Absoluttests und die erst im Ausnahmebetrieb zu aktivierenden Ausnahmebehandler sind hinzuzufügen. Replikation der Verarbeitungseinheiten und Rücksetzpunkte erübrigen sich

▪ Laufzeitaufwand im Normal-Fehlertolerierungsbetrieb wird nur von den Absoluttests verursacht und ist in diesem Sinn minimal

➢ Vorwärtsfehlerbehebung – Nachteile

nicht transparent, sondern anwendungsabhängig

Entwurfsaufwand lässt sich kaum auf andere Anwendungen umlegen und ist daher relativ hoch

das Gelingen der Vorwärtsbehebung hängt vom Schwierigkeitsgrad der Anwendung und von den Fähigkeiten des Entwerfers ab

Author

Annika P.

Information

Last changed