fach:software-safety:ws2425:notizen:live-discussion-2
Inhaltsverzeichnis
Discussion Software Safety 2
Mid-Term Test
- im Audimax
- via Moodle, auch mit Free-Form-Fragen
- halbe Stunde
- BYOD, am besten Laptop (nur ein Gerät, nicht mehrere)
- Material aus den Vorlesungen darf benutzt, aber sonst nichts
Quiz 2.1
- Requirements sind die Informationen, was getan werden muss, damit die Software überhaupt das tut, was sie soll
- werden zusammen mit dem Kunden ausgearbeitet, damit die Entwicklungsfirma weiß, was der Kunde will
- unterschieden in F und NF Reqs
- F was es tut
- NF wie es das tut
- Req Process erarbeitet die Reqs
- Elicitation
- Interaktion mit Kunden, Anforderungen des Kunden kennenlernen
- Stakeholder kennenlernen
- nicht nur Kunden
- grundsätzlich alle, mit denen man reden muss bzw. die man was fragen muss
- z.B. auch Standards, Entwickler, andere Firmen, die irgendwie mit dem Produkt zu tun haben
- Interaktionen mit anderen Komponenten
- bspw. Kommunikationsbusse, Montage, APIs
- grobe Reqs identifizieren
- Analysis
- Reqs weiter verfeinern, Unklarheiten aufklären, Reqs möglicherweise aufsplitten, sodass jedes Req nur ein Thema abdeckt
- Prioritäten von Qualitätsmerkmalen klären
- Specification
- Übersetzung der Reqs in Dokumentation bzw. eine Form, die für Verständnis, Review und Benutzung geeignet ist bzw. eine Form, die für Verständnis, Review und Benutzung geeignet ist
- Generierung des Req-Dokuments, was dann auch Teil des Vertrags mit dem Kunden wird
- Validation
- Reqs immer wieder prüfen, ob die immer noch aktuell sind
- ggf. Reqs nochmal neu spezifizieren etc.
Quiz 2.2
- replication
- je nach Anforderungen wird auf Verfügbarkeit oder Zuverlässigkeit des Systems optimiert
- Replication (also in mehreren Komponenten unabhängig voneinander die gleichen redundanten Berechnungen durchführen), damit man aus mehreren Ergebnissen auswählen kann
- dadurch kann das System bspw. noch funktionieren, wenn manche Systeme nicht mehr richtig arbeiten
- optimistic replication
- nicht immer müssen alle korrekt sein
- lieber überhaupt ein Ergebnis als ein korrektes Ergebnis
- solange überhaupt eine Komponente geht, kriegen wir ein Ergebnis
- Availability ist hier natürlich top
- pessimistic replication
- alle Komponenten müssen das gleiche Ergebnis liefern
- weniger Verfügbarkeit, aber dafür hat man hohe Zuversicht, dass das Ergebnis korrekt ist
- wenn die Ergebnisse nicht identisch sind, ist sehr wahrscheinlich ein System kaputt
- damit wird Fehlerbehandlung möglich
- Zuverlässigkeit top, aber Verfügbarkeit wird geopfert
- recovery
- wiederherstellung eines zulässigen Zustands nach einem Fehlerzustand
- backward recovery: man geht zurück zum letzten bekannten safen zustand
- problem: realität ist dann nicht mehr unbedingt in sync
- embedded systeme können möglicherweise nicht mehr den alten sicheren zustand speichern oder zurückrollen, weil ressourcen nicht da sind
- forward recovery: zu einem neuen zustand springen, von dem man weiß, dass der safe ist
- fehlertypen
- random
- z.B. bit-flip
- kann schon erkannt werden, indem mehrere identische Systeme arbeiten
- systematic
- z.B. Bug in der Implementierung
- gleicher Input wird zu gleichen Fehler in allen Systemen führen
- kann zu gleichzeitigem Ausfall aller Systeme führen oder der Fehler kann nicht erkannt werden, weil alle das gleiche (falsche) Ergebnis liefern
- kann durch Diversifizierung mitigiert werden
- verschiedene Implementierung für das gleiche Modul
- rejuvenation
- system wieder zurücksetzen (z.B. neustarten), bevor das Gerät in einen Fehlerzustand übergeht
- z.B. bevor ein Integer Overflow auftrit
Quiz 2.3
- verschiedene Methoden möglich
- waterfall sehr heavy weight
- fester ablauf, siehe softwaretechnik
- phasen nacheinander abarbeiten und möglichst abschließen
- meist nicht realistisch, da man am ende teilweise erst sachen bemerkt, die am anfang falsch waren
- prozesse werden in der realität doch nochmal iteriert
- extreme programming sehr light weight
- man startet quasi direkt mit programmieren
- möglichst viel throughput und lauffähiges system bereits am anfang
- damit möglich, schon am anfang sachen auszuprobieren und feedback zu erhalten
- nützlich, da kunden manchmal anfangs noch nicht so ganz wissen, was sie wollen
- aber nicht so gut geeignet für safety-critical zeug
- aber für so generelles unwichtiges kram sinnvoll
fach/software-safety/ws2425/notizen/live-discussion-2.txt · Zuletzt geändert: 2024-11-26 15:10 von nex