**Dies ist eine alte Version des Dokuments!**
Software-Qualität
Mögliche Klausurthemen
Inspection
Zuverlässigkeitsmetriken
Wartungsmetriken
Fahlertoleranzmaßnahmen
COCOMO
Halstead
Qualitätsmodelle
CMM Grundprinzip
Anforderungen → Volere
Function Points
Anforderungsanalyse
Qualitätssysteme
Wann ist ein System zuverlässig? Was macht die Qualität eines Systems aus?
Qualität ist die Übereinstimmung mit den Anforderungen
Nur auf Basis bekannter Anforderungen kann eine Aussage über Qualität getroffen werden, da sie sonst nur subjektiv bewertbar ist.
Unzuverlässigkeit entsteht durch Ausfälle. Diese sind zu definieren und Maßstäbe zu finden, anhand derer die Schwere der Ausfälle bewertet werden kann.
Ein System bietet system services (in der Anforderungsddefinition festgelegt) an und zwar mit einer gewissen quality of service.
Wie macht man ein System zuverlässig? Wie stellt man die Qualität eines Systems sicher?
Organisatorische Maßnahmen (Vorgehensweisen)
Analytische Maßnahmen (Test, Review)
Zusammenfassung: Konzeptionelles Vorgehen (Bild S.78)
Systemunzulänglichkeiten
Bewertungsmaßstäbe
Funktionsprofil: up/down (Reaktion: Reparatur ja/nein)
degradiertes System: nur Teile des Systems funktionieren
Anwendungsdauer: Zeitspanne des Einsatzes eines Systems unter vorgegebenen Bedingungen.
Lebensdauer: Zeitraum von Betriebsbeginn bis -ausfall bei nicht-reparierbaren Systemen.
Brauchbarkeitsdauer (technische Lebensdauer): Zeitraum von Betriebsbeginn bis zum Zeitpunkt, an dem eine Instandsetzung nicht mehr rentabel möglich ist.
MTTFF (mean time to first failure): Zeitraum von Systemstart bis zum ersten Ausfall.
MTBF (mean time between failure): Zeitraum zwischen zwei Ausfällen.
MDT (mean down time): Zeitraum, während dessen das System nicht zur Verfügung steht (Instandsetzung).
MTTR (mean time to restoration): Zeitraum, während dessen das System instandgesetzt wird.
datection time: Benötigte Zeit um den Fehler zu entdecken.
diagnosis time: Benötigte Zeit um die Ursache des Fehlers zu entdecken.
time for reconfiguration: Zeit für Rekonfiguration des Systems.
recovery time: Zeit für das Bereitstellen des reparierten/ersetzten Teils.
time for reintegration: Zeit für das Integrieren des reparierten/ersetzten Teils.
präventive Wartungsaktivitäten
MUT (mean up time) / MTTF (mean time to failure): Zeitraum, während dessen das System zur Verfügung steht.
weitere Begriffe der ITU
required time: Zeit, während der das System zur Verfügung stehen muss.
non-required time: Zeit, während der das System nicht zur Verfügung stehen muss.
up time: Zeit, in der das System funktionsfähig ist.
disabled time: Ziet, in der das System nicht funktionsfähig ist.
down time (internal down time): Zeit, in der das System ausfallen ist.
external disabled time (external loss time, external down time): Zeit, in der das System nicht zur Verfügung steht, weil externe Ressourcen nicht genutzt werden können.
undetected fault time: Zeit zwischen Ausfall und Erkennen der Störung.
administrative delay: Zeit, während der keine Wartung durchgeführt werden kann.
maintenance time: Zeit, während der Wartung durchgeführt wird.
active maintenance time: Zeit, während der aktiv Wartung betrieben wird (ohne logistische Wartezeiten).
preventive maintenance time: Zeit, während der präventive Wartung betrieben wird (inkl. logistische Wartezeiten).
logistic delay time: Zeit, während der aufgrund von fehlenden Ressourcen keine Wartung betrieben werden kann.
active preventive maintenance time: Zeit, die für präventive Wartung verwendet wird.
corrective maintenance time:
Überlebenswahrscheinlichkeit (reliability, reliability performance) R(t): System ist funktionstüchtig in [0;t] (exponentiell monoton fallend)
Kumulative Ausfall- / Fehlerwahrscheinlichkeit (cumulative failure distribution) F(t): System fällt in [0;t] aus: F(t) = 1 - R(t)
Ausfall- / Fehlerdichte (probability density function, PDF) f(t): Zeitableitung von F(t)
Ausfallrate delta(t): umgekehrt proportional zur MTTFF
Verfügbarkeit (availability) A(t): Wahrscheinlichtkeit, dass das System zum Zeitpunkt t funktionstüchtig ist.
Wartbarkeit (maintainability) M(t): Wahrscheinlichkeit, dass das System innerhalb der Zeitspanne t wieder instandgesetzt werden kann.
Reparaturrate (repair rate): entspricht Ausfallrate
Sicherheit (safety): Das System hat keine kritischen Ausfälle (kritische Funktionen). Zusammenhang zur Überlebenswahrscheinlichkeit (Leistung des Systems betreffende Funktionen)
Vertraulichkeit (security): Das System verhindert unerlaubten Zugriff (vertrauensrelevante Funktionen).
Performance: Beispiele sind Durchsatz oder Antwortzeit → Benchmarks
Qualitative Kenngrößen
Qualitätsanforderungen
Arten von Anforderungen
Anforderungsdefinitionsprozess
Grafik S. 64
Aufnahme der Bedürfnisse/Vorstellungen der Stakeholder
WICHTIG: verdeckte Anforderungen ermitteln
(iteratives) Extrahieren von Basisanforderungen aus den vorhandenen Anforderungsbeschreibungen
nicht-funktionale Anforderungen → Systemarchitektur
Maßnahmen
Fehlerverhütung
Fehlervermeidung
Fehlerbeseitigung
Fehlertoleranz
Wartung
Fehlertoleranz
Phasen
Redundanz
Systemaspekt
* strukturell
* funktional
* Informationsredundanz
* Zeitredundanz
* Aktivierung
* statisch
* dynamisch
* Fehlerart
* homogene Redundanz / Replikation -> Alterungsfehler
* diversitäre Redundanz / Diversität -> Designfehler
* Beispiele
Fehlerkorrektur (Prüfsummenbildung)
Informationsredundanz (Prüfsumme)
strukturelle Redundanz (Speicherung von Nutzdaten und Prüfsumme)
funktionale Redundanz (Funktionen codieren/decodieren)
Zeitredundanz (Zeit für codieren/decodieren)
Fehlermaskierung (TMR-System)
strukturelle Redundanz (drei Komponenten)
Informationsredundanz (Verteilung der Information auf drei Komponenten)
funktionale Redundanz (Voter)
Rückwärtsfehlerbehebung (recovery points)
strukturelle/Informationsredundanz (Speichern der alten Zustände)
funktionale Redundanz (Verwaltung der Zustände)
Zeitredundanz (Wiederholung bereits durchlaufener Schritte)
Vorwärtsfehlerbehebung
Rekonfiguration (TMR mit zwei Ersatzkomponenten)
ToDo
Volere Template lesen
IEEE Testdokument lesen
Links
Aufgaben
Kapitel 1
\mbox{MTTFF} = \overline{T} = \int_{0}^\infty \mathrm R(t)\,\mathrm dt
\int{0}^\infty \mathrm R(t)\,\mathrm dt = \int{0}^\infty \mathrm 2e^{-0.1t\frac{1}{y}}-e^{-0.2t\frac{1}{y}}\,\mathrm dt
= \int{0}^\infty \mathrm 2e^{-0.1t\frac{1}{y}}\,\mathrm dt - \int{0}^\infty e^{-0.2t\frac{1}{y}}\,\mathrm dt
= [-20ye^{-0.1t\frac{1}{y}}]0^\infty - [-5ye^{-0.2t\frac{1}{y}}]0^\infty
= \left[\lim{t \to \infty}(-20ye^{-0.1t\frac{1}{y}}) - (-20ye^{\frac{0}{y}})\right] - \left[\lim{t \to \infty}(-5ye^{-0.2t\frac{1}{y}}) - (-5ye^{\frac{0}{y}})\right]
= \left[0 + 20y\right] - \left[0 + 5y\right]
= 20y - 5y
= 15y
</latex>
Für ein System ist gegeben: MDT = 2 Tage, MTBF = 365 Tage. Geben Sie die Verfügbarkeit für das System an!
MUT + MDT = MTBF → MUT = 365 - 2 = 363
A = MUT / MTBF = 363 / 365 = 99,452%
* Was ist ein "required constraint"?
Eine Basisanforderung, die keine funktionale Anforderung ist, wird als required constraint bezeichnet. RQs stellen Randbedingungen dar und wirken sich auf die Architektur des Systems aus. Sie lassen sich kategorisieren in physical, environmental, development und product assurance.
Wie ermitteln Sie aus Kundenwünschen Anforderungen? Beschreiben Sie den Prozess der Anforderungsermittlung!
In Gesprächen, Beobachtungen usw. werden initiale Anforderungen der Stakeholder erfasst und zu Papier gebracht (→ ablegen).
Diese Anforderungen werden nun genauer untersucht und Basisanforderungen abgeleitet (→ getrennt ablegen).
Die Basisanforderungen werden in funktionale Anforderungen und Randbedingungen aufgeteilt.
Funktionale Anforderungen werden (wenn sie nicht mehr weiter unterteilbar sind) in die Systemanalyse übernommen (→ getrennt ablegen).
Randbedingungen werden in die Systemarchitektur übernommen.
* Was ist Fehlertoleranz?
Fehlertoleranz bezeichnet die Fähigkeit eines Systems auch im Fehlerfall weiter seine Funktionalität anzubieten.
Phasen und Methoden siehe Skript S.68
* Welche Redundanzformen werden bei einem fehlerkorrigierenden Code (error correcting code) eingesetzt?
Informationsredundanz (Nutzdaten und Prüfsumme)
strukturelle Redundanz (Speicherung von Nutzdaten und Prüfsumme)
funktionale Redundanz (Funktion zum Codieren und Decodieren)
Wie können Sie sich vor Design-Fehlern schützen?