Vorlesung: Fehlertolerierende Softwarearchitekturen WS2018/19 Prüferin: Prof. Dr. Saglietti Note: 1,3
Mein Eindruck Die Prüfung war relativ entspannt, obwohl Frau Saglietti wie immer etwas hektisch war. Die Benotung war fair. Wichtig ist es sich in der Prüfung formal korrekt auszudrücken. „Zurücksetzen auf einen vorherigen Zeitpunkt“ und „Zurücksetzen auf einen vorherigen Zustand“ macht für Frau Saglietti definitiv einen Unterschied.
Prüfung P: Was ist fehlertolerierende Software? S: Software, die Versucht Versagen zu verhindern.
P: Wie verhindert man nun dieses Versagen? S: In der Regel durch Redundanz.
P: Was heißt in der Regel? Gibt es auch noch andere Möglichkeiten? S: Nein
P: Welche Arten von Redundanz gibt es und wo sind die Unterschiede? S: - Homogene Redundanz (durch gleichartige Mittel)
P: Wie kann man Redundanz noch unterscheiden? S: - Arten der vermehrten Mittel
P: Nennen Sie verschiedene Arten von vermehrten Mitteln und erklären Sie diese. S: - Strukturelle Redundanz (Vermehrung der Komponenten)
P: Welche Arten der Aktivierung von Redundanz gibt es? S: - Statische Redundanz
P: Wo ist der Unterschied zu kalter/heißer Reserve? S: Heiße Reserve ist bereits aktiv (beispielsweise für andere Aufgaben) und kann schnell verwendet werden. Kalte Reserve wird so lange geschont bis im sie Einsatz gebraucht wird.
P: Beschreiben Sie N-Versionen-Programmierung und Rücksetzblockprogrammierung. S: ⇒ Gleiche Zeichnungen wie in den Folien.
P: Erklären Sie die Arten von vermehrten Mitteln und Art der Aktivierung in den beiden Techniken. S: N-Versionen-Programmierung:
Rücksetzblockprogrammierung:
P: Was sind die jeweiligen Vor-/Nachteile der jeweiligen Technik? N-Versionen-Programmierung:
Rücksetzblockprogrammierung:
Die Nachteile sind dann das Komplement zu den jeweiligen Vorteilen.
P: Leiten sie die Zuverlässigkeit von TMR her. S: Die Formel leitet sich aus der Aussage „Es müssen mehr als zwei Komponenten funktionsfähig sein“ ab.
R(t) = Sum_(j = 2)^(3) (3 über 2) * R_kom^j *(1 - R_komp^(3 - j)) = ... = 3 * R_komp^2 - 2 * R_komp^3
P: Ist Softwareversagen immer unabhängig? S: Nein. Formaler Beweis durch Eckhardt und Lee und experimenteller Nachweis durch Knight und Leveson.
P: Was war der Ansatz von Eckhard und Lee? S: Es gibt „schwierigere“ Testfälle in denen Software wahrscheindlicher versagt. ⇒ Varianz der Intensitäetsfunktion != 0 ⇒ Software ist nicht unabhängig.
P: Zu welchem Kapitel der Vorlesung können Sie mir noch was sagen? S: Back-to-Back Tests ⇒ Hinzeichnen der Versagensräume.
P: Wie kann man die Wahrscheinlichkeit von gemeinsamen gleichem Versagen verringern? S: Größerer Ausgabebereich (mehr als nur ein Bit Ergebnis war richtig/falsch), evtl. Werte von Zwischenergebnissen einbeziehen bzw. Werte vor der Informationsverringerung benutzen.