Software Test and An... Gesamtes Lehrangebot Softwarezuverlä...

Fehlertolerierende Softwarearchitekturen

Vorlesung

"Doppelt genäht hält besser!"

Empfohlen werden Vorkenntnisse aus der Vorlesung Grundlagen des Software Engineering.

Die Vorlesung Fehlertolerierende Softwarearchitekturen befasst sich schwerpunktmäßig mit redundanzbasierten Verfahren zur Tolerierung sporadischer Softwarefehler im Betrieb. Im Falle besonders hoher Zuverlässigkeits- bzw. Verfügbarkeitsanforderungen (insbesondere für sicherheitskritische Systeme) ist es lohnenswert, während der Entwicklung mehr Hilfsmittel bereitzustellen und während des Betriebes einzusetzen, als es im Falle einer vollständig korrekten Implementierung erforderlich wäre.

Die Vorlesung befasst sich sowohl mit

  • konstruktiven Fragestellungen, hinsichtlich der zu optimierenden Freiheitsgrade (Art und Umfang der Redundanz, Eigenschaften des Auswahlmechanismus) beim Entwurf fehlertolerierender Softwaresysteme
  • als auch mit
  • analytischen Ansätzen zur Bewertung des zu erwartenden Fehlverhaltens in Abhängigkeit von den betrachteten redundanten Softwarearchitekturen.

  • Es werden systematische Vorgehensweisen vorgestellt, um sowohl

  • deterministische Aussagen zur Tolerierbarkeit vorgegebener Fehlerklassen mittels redundanter Strategien,
  • als auch
  • probabilistische Aussagen über Zuverlässigkeitskenngrößen (Überlebenswahrscheinlichkeit, Verfügbarkeit) vorgegebener Architekturen / Programme zu erzielen.
  • Die allgemeine Behandlung obiger Themen wird durch Berichte aktueller Erfahrungen aus der industriellen Entwicklungs- und Genehmigungspraxis abgerundet und ergänzt.


    “If I had two necks ...“
    Christina of Denmark turning down a proposal by Henry VIII

    Inhaltsübersicht

    1. Einführung
    2. Klassische Zuverlässigkeitstheorie
    3. Systemstrukturen
    4. Gemeinsames Versagen diversitärer Software
    5. Back-to-Back-Test diversitärer Software
    6. Forcierte Diversität
    7. Checkpointing
    8. Richtlinien zum Entwicklungsprozess fehlertoleranter Software
    Literatur


    Ausführliche Inhaltsübersicht

    1. Einführung
    Übersicht
    Grundbegriffe und Terminologie
          Verlässlichkeit
          Fehlerarten, Persistenz, Erscheinungsbild, Konsistenz
          Fehlerbehandlungsmaßnahmen
          TMR
    Fehlertoleranz durch Redundanz
          Homogenität, Art, Aktivierung
          NVP (N-Variantenprogrammierung)
          RBP (Rücksetzblockprogrammierung)
          Hybridredundanz
    Fehlertoleranztechniken
          Softwarediversität
          Allgemeine Auswahlstruktur
          Mehrheiten beim Relativtest
                Interaktive Konsistenz (OMBG)
    Voter-Strategien
          Allgemeine zweistufige Entscheidungsstruktur
          Spezialfälle: NVP, RBP, Konsensus-RBP
          Datentypen: Strings, reell-wertig (Median, Durchschnitt)
          Granularität
          Klassifikation von Akzeptanzprüfungen
          Detaillierungsgrad/Bewertungsebene

    2. Klassische Zuverlässigkeitstheorie
    Grundlegende Begriffe
    Versagensrate
          Konstante Versagensrate, Exponentialverteilung
          Nichtkonstante Versagensraten
    Kenngrößen der Zuverlässigkeit
          Systeme ohne Wiederherstellung (Lebensdauer, Zuverlässigkeit, MTTF)
          Systeme mit Wiederherstellung (Verfügbarkeit, MTTF, MTTR, MTBF)

    3. Systemstrukturen
    Definition, Beispiele
    Parts Count Method
    Dekompositionslemma, DNF, Multilinearform
    Monotone Strukturfunktionen, Eigenschaften
    Zuverlässigkeitsgraph
          Beispiele
          Vergleich mit physikalischen Schaltungen
          Redundanz auf Systemniveau/Komponentenniveau
    Kombinatorische Modelle, Systemverfügbarkeit
          Beispiele: fehlerkorrigierende Codes, Flugzeugsteuerung
          Vergleich TMR vs. Einfachsystem
          Duplexstruktur, "dual-dual", "pair & spare"
          Voterzuverlässigkeit
          Fehlerüberdeckung (Coverage)
    Markov-Prozesse
          Homogenität
          Gleichungssystem
          Stationärität
          Beispiele (1, 2, 3 Wartungsteams)
          Beispiel: Markov-Modell für TMR

    4. Gemeinsames Versagen diversitärer Software
    Versagensdatenräume
    Theoretischer Ansatz: Modell von Eckhardt & Lee
    Experiment von Knight & Leveson
          Beschreibung des "Launch interceptor problems"
          Ergebnisse der Tests
          Testen der Unabhängigkeitshypothese
          Hypothese der Fehlerunabhängigkeit (Brilliant, Knight, Leveson)
    Weiteres Beispiel: Package shipment system
    Abschätzung der max. Ungenauigkeit infolge Unabhängigkeitshypothese

    5. Back-to-Back-Test diversitärer Software
    Versagensräume (identisch/nichtidentisch) zweifach diversitärer Software
    Vor- und Nachteile des Back-to-Back-Tests
    Statistische Stichprobentheorie
    Zuverlässigkeitsbetrachtungen
    Theoretische Betrachtung des Back-to-Back-Tests
    Experimentelle Ergebnisse zu Back-to-Back-Tests (Knight/Leveson)
    Overlap Ratio
    Beispiele (Automatic Landing Problem, Project on Diverse Software, Combat Simulation Problem, Communication Protocol)

    6. Forcierte Diversität
    Ursachen der Fehlerentstehung
    Konzept/Einflüsse forcierter Diversität
    Graphische Darstellung von Diversitätsaspekten
    Fehlerklassifikation
          Fehlerarten nach Entstehungsphase
          Fehlererhaltungsquellen
          Implementierungsdiversität
          Diversität der Verifikationsverfahren
          Fehlerentstehung nach menschlichen Faktoren
          Diversität menschlicher Faktoren
          Fehlercharakterisierung nach Fehleroffenbarung (lokal/temporal)
          Datendiversität, Zeitdiversität, Bewertungsdiversität, Diversität der Diensterbringung
          Fehler in der Umgebung der Anwendersoftware
          Diversität der Softwareumgebung
    Quantitativer Einfluss forcierter Diversität
          Erweiterung der Theorie von Eckhardt & Lee durch Littlewood & Miller
          Experimentell am Beispiel: Airport Scheduler
          Forcierte Diversität und Votergranularität
                Beispiel: PODS

    7. Checkpointing
    Lokalisierung der Checkpunkte
    Informationsreduktion
    Versagensmaskierung
    Informationsreduktion und Versagensabhängigkeit
          Beispiel: binäre Disjunktion (Peter Bishop)
    Dynamisches Checkpointing

    8. Richtlinien zum Entwicklungsprozess fehlertoleranter Software
    Übersicht: Vorgehensweise
    Phase I: Inhärente Systemeigenschaften betrachten
    Phase II: Zu erzielende Eigenschaften des Systems identifizieren
    Phase III: Freiheitsgrade des Systems bestimmen
    Phase IV: Entscheiden, welche Diversität eingesetzt werden soll
    Phase V: Diversitäre Entwicklung
    Übersicht: Phasen und Entscheidungsschritte (Datenfluss)


    Literatur
    top