Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste Überarbeitung Beide Seiten der Revision | ||
se:softwarequalitaet [2008-04-09 13:09] stefan |
se:softwarequalitaet [2008-04-12 10:22] stefan |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Software-Qualität ====== | ====== Software-Qualität ====== | ||
- | + | ===== Klausurvorbereitung ===== | |
- | + | ==== Mögliche Klausurthemen ==== | |
- | ===== Mögliche Klausurthemen ===== | + | * Qualitätssysteme |
+ | * Zuverlässigkeitsmetriken | ||
+ | * Fehlertoleranzmaßnahmen | ||
* Produktmetriken | * Produktmetriken | ||
* Wartungsmetriken | * Wartungsmetriken | ||
Zeile 9: | Zeile 11: | ||
* Volumen, Difficulty, Abstraktionsniveau (Herleitung) | * Volumen, Difficulty, Abstraktionsniveau (Herleitung) | ||
* Function Points | * Function Points | ||
- | * Qualitätssysteme | + | * OO-Metriken |
- | * Zuverlässigkeitsmetriken | + | |
- | * Fehlertoleranzmaßnahmen | + | |
* Manuelle Prüfmethoden | * Manuelle Prüfmethoden | ||
* Inspection | * Inspection | ||
Zeile 22: | Zeile 22: | ||
* Prozessmetriken | * Prozessmetriken | ||
* CMM Grundprinzip | * CMM Grundprinzip | ||
- | * Sonstiges | ||
- | * OO-Metriken | ||
+ | ==== Wiederholung ==== | ||
+ | |||
+ | === Qualitätssysteme === | ||
+ | * Wann bezeichnet man ein System als verlässlich oder zuverlässig? Was macht die Qualität eines Systems aus? | ||
+ | * Wie macht man ein System verlässlich bzw. zuverlässig? Wie stellt man die Qualität eines Systems sicher? | ||
+ | * Definition Qualität, Mangel/Defekt, Ausfall, Störung, Fehler | ||
+ | * Definition Anwendungsdauer, Lebensdauer, Brauchbarkeitsdauer, MTTFF, MTBF, MUT/MTTF, MDT, MTTR | ||
+ | * Aufteilung MDT | ||
+ | * Beispiele für ITU-Taxonomie | ||
+ | * Definition Überlebenswahrscheinlichkeit, kumulative Ausfallverteilung, Ausfalldichte, Ausfallrate, Verfügbarkeit | ||
+ | * Definition Wartbarkeit, Reparaturrate, Sicherheit, Vertraulichkeit, Performance | ||
+ | * Definition Verlässlichkeit, Verfügbarkeit, Zuverlässigkeit, Instandsetzbarkeit, Wartungsunterstützung | ||
+ | * ITU Kenngrößen Hierarchie mit Beispiel Bahn | ||
+ | * Klassifikation von Anforderungen | ||
+ | * Anforderungsermittlungsprozess | ||
+ | * Definition Fehlerverhütung, Fehlervermeidung, Fehlerbeseitigung, Fehlertoleranz | ||
+ | * Phasen der Fehlertoleranz (4) | ||
+ | * Methoden der Fehlertoleranz (8) | ||
+ | * Redundanzformen (8) und Beispiele (Prüfsumme, TMR) | ||
+ | |||
+ | |||
+ | === Produktmetriken === | ||
+ | * COCOMO | ||
+ | * Entwicklungskomplexitäten | ||
+ | * Function Points | ||
+ | * Vorgehen (3 Schritte) | ||
+ | * Zählen der UFP (4 Schritte) | ||
+ | * Was ist ein Elementarprozess? | ||
+ | * Funktionskategorien Datenbestände/Transaktionen (5) | ||
+ | * Bindungsmetrik | ||
+ | * Was ist Kohäsion/Kopplung? | ||
+ | * Balzert: hohe Kohäsion/geringe Kopplung -> ausgeprägte Struktur/hohe Modularität -> geringe Komplexität, Einfachheit, Verständlichkeit | ||
+ | * Bindungsstärken (8) | ||
+ | * LOC | ||
+ | * Programmbereiche (2) | ||
+ | * Zeilentypen strukturell (4) | ||
+ | * Zeilentypen inhaltlich (5) | ||
+ | * Halstead | ||
+ | * Herleitung D, L, E, I | ||
+ | * übliche Werte für S | ||
+ | * McCabe | ||
+ | * Grenzwert für die zyklomatische Zahl | ||
+ | * Test-Metriken | ||
+ | * Formeln/Verständnis | ||
+ | * Wartungsmetriken | ||
+ | * Kostenverteilung Wartung | ||
+ | * Aufgaben in der Wartungsphase (3) | ||
+ | * Klassifizierung (3) | ||
+ | * Wertebereich E | ||
+ | * Stahlknecht Bedeutung | ||
+ | * Aufwandsmetriken | ||
+ | * Welche gibt es? | ||
+ | |||
+ | ==== Qualitätsmodelle ==== | ||
+ | * Grundidee der Qualitätsverbesserung | ||
+ | * Definition Qualitätsmodell | ||
+ | * Einordnung in das Qualitätsmodell | ||
+ | * Funktionen und Ziele | ||
+ | * Einsatz im Unternehmen (3 Gründe) | ||
+ | * Zusammenhang Prozessreife und Technologie | ||
+ | |||
+ | |||
+ | ==== CMM ==== | ||
+ | |||
+ | ==== Anforderungsermittlung ==== | ||
+ | |||
+ | ==== Manuelle Prüfmethoden ==== | ||
===== Qualitätssysteme ===== | ===== Qualitätssysteme ===== | ||
Zeile 41: | Zeile 106: | ||
* Bewertungsmaßstäbe müssen anforderungsbezogen eingesetzt werden | * Bewertungsmaßstäbe müssen anforderungsbezogen eingesetzt werden | ||
* Maßnahmen müssen zielgerichtet eingesetzt werden | * Maßnahmen müssen zielgerichtet eingesetzt werden | ||
- | |||
- | |||
==== Systemunzulänglichkeiten ==== | ==== Systemunzulänglichkeiten ==== | ||
Zeile 55: | Zeile 118: | ||
* fehlerhafter Zustand: Systeminterner Zustand, der zu einem Systemausfall führen kann (auch bei weiteren korrekten Zustandsübergängen). | * fehlerhafter Zustand: Systeminterner Zustand, der zu einem Systemausfall führen kann (auch bei weiteren korrekten Zustandsübergängen). | ||
* nicht zufriedenstellendes Systemverhalten (Missverständnis des Benutzers) | * nicht zufriedenstellendes Systemverhalten (Missverständnis des Benutzers) | ||
- | {{:se:defekteindersystementwicklung.jpg|}} | + | * {{:se:defekteindersystementwicklung.jpg|}} |
==== Bewertungsmaßstäbe ==== | ==== Bewertungsmaßstäbe ==== | ||
* Funktionsprofil: up/down (Reaktion: Reparatur ja/nein) | * Funktionsprofil: up/down (Reaktion: Reparatur ja/nein) | ||
* degradiertes System: nur Teile des Systems funktionieren | * degradiertes System: nur Teile des Systems funktionieren | ||
- | * Anwendungsdauer: Zeitspanne des Einsatzes eines Systems unter vorgegebenen Bedingungen. | + | * **Anwendungsdauer**: Zeitspanne des Einsatzes eines Systems unter vorgegebenen Bedingungen. |
- | * Lebensdauer: Zeitraum von Betriebsbeginn bis -ausfall bei nicht-reparierbaren Systemen. | + | * **Lebensdauer T**: 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. | + | * **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. | + | * {{:se:zeitkenngroessen.jpg|}} |
- | * MTBF (mean time between failure): Zeitraum zwischen zwei Ausfällen. | + | * **TTFF** (time to first failure): Zeitraum von Systemstart bis zum ersten Ausfall. Entspricht T für nicht-reparierbare Systeme. |
- | * MDT (mean down time): Zeitraum, während dessen das System nicht zur Verfügung steht (Instandsetzung). | + | * **MTTFF** (mean time to first failure): mittlerer Zeitraum von Systemstart bis zum ersten Ausfall. Entspricht <latex>\overline{T}</latex> für nicht-reparierbare Systeme. Einheit: h. Nach MTTFF sind nur noch 36,8% aller Systeme intakt. |
- | * MTTR (mean time to restoration): Zeitraum, während dessen das System instandgesetzt wird. | + | * **MTBF** (mean time between failure): mittlerer Zeitraum zwischen zwei Ausfällen. |
+ | * **MDT** (mean down time): mittlerer Zeitraum, während dessen das System nicht zur Verfügung steht (Instandsetzung). | ||
+ | * **MTTR** (mean time to restoration): mittlerer Zeitraum, während dessen das System instandgesetzt wird. | ||
+ | * {{:se:korrektivewartung.jpg|}} | ||
* datection time: Benötigte Zeit um den Fehler zu entdecken. | * datection time: Benötigte Zeit um den Fehler zu entdecken. | ||
* diagnosis time: Benötigte Zeit um die Ursache des Fehlers zu entdecken. | * diagnosis time: Benötigte Zeit um die Ursache des Fehlers zu entdecken. | ||
Zeile 73: | Zeile 140: | ||
* time for reintegration: Zeit für das Integrieren des reparierten/ersetzten Teils. | * time for reintegration: Zeit für das Integrieren des reparierten/ersetzten Teils. | ||
* präventive Wartungsaktivitäten | * präventive Wartungsaktivitäten | ||
- | * MUT (mean up time) / MTTF (mean time to failure): Zeitraum, während dessen das System zur Verfügung steht. | + | * {{:se:praeventivewartung.jpg|}} |
+ | * **MUT** (mean up time) / **MTTF** (mean time to failure): mittlerer Zeitraum, während dessen das System zur Verfügung steht. | ||
* weitere Begriffe der ITU | * weitere Begriffe der ITU | ||
+ | * {{:se:itutaxonomie.jpg|}} | ||
* required time: Zeit, während der das System zur Verfügung stehen muss. | * 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. | * non-required time: Zeit, während der das System nicht zur Verfügung stehen muss. | ||
Zeile 96: | Zeile 165: | ||
* fault correction time: Zeit für die Störungsbeseitigung. | * fault correction time: Zeit für die Störungsbeseitigung. | ||
* check out time: Zeit zum Nachweis der Funktionsfähigkeit. | * check out time: Zeit zum Nachweis der Funktionsfähigkeit. | ||
- | * Überlebenswahrscheinlichkeit (reliability, reliability performance) **R(t)**: System ist funktionstüchtig in [0;t] (exponentiell monoton fallend) | + | * **Überlebenswahrscheinlichkeit** (reliability, reliability performance) **R(t)**: System ist funktionstüchtig (unter spezifizierten Betriebsbedingungen) in [0;t] (exponentiell monoton fallend) <latex>R(t) = e^{−\lambda \cdot t}</latex> |
- | * Kumulative Ausfall- / Fehlerwahrscheinlichkeit (cumulative failure distribution) **F(t)**: System fällt in [0;t] aus: F(t) = 1 - R(t) | + | * **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) | + | * **Ausfall-/Fehlerdichte** (probability density function, PDF) **f(t)**: Zeitableitung von F(t), Einheit 1/h |
- | * Ausfallrate **delta(t)**: umgekehrt proportional zur MTTFF | + | * **Ausfallrate** <latex>\lambda(t)</latex>: Ausfall im Intervall ]t, t + dt] wenn System vor t intakt, umgekehrt proportional zur MTTFF, Einheit 1/h oder Fit (<latex>10^{-9}\frac{1}{h}</latex>) |
- | * Badewannenkurve: Frühausfälle, useful operating life, Spätausfälle | + | * Badewannenkurve: Frühausfälle, useful operating life, Spätausfälle |
- | * Verfügbarkeit (availability) **A(t)**: Wahrscheinlichtkeit, dass das System zum Zeitpunkt t funktionstüchtig ist. | + | * **Verfügbarkeit** (availability) **A(t)**: Wahrscheinlichtkeit, dass das System zum Zeitpunkt t funktionstüchtig ist. |
* steady state availability: MUT / (MUT + MDT) | * steady state availability: MUT / (MUT + MDT) | ||
- | * Wartbarkeit (maintainability) **M(t)**: Wahrscheinlichkeit, dass das System innerhalb der Zeitspanne t wieder instandgesetzt werden kann. | + | * **Wartbarkeit** (maintainability) **M(t)**: Wahrscheinlichkeit, dass das System innerhalb der Zeitspanne t wieder instandgesetzt werden kann. |
- | * Reparaturrate (repair rate): entspricht Ausfallrate | + | * analog zur Ausfallverteilung |
- | * Sicherheit (safety): Das System hat keine kritischen Ausfälle (kritische Funktionen). Zusammenhang zur Überlebenswahrscheinlichkeit (Leistung des Systems betreffende Funktionen) | + | * **Reparaturrate** (repair rate): erfolgreiche Reparatur im Intervall ]t, t + dt] wenn Reparatur vor t noch nicht abgeschlossen |
- | * Vertraulichkeit (security): Das System verhindert unerlaubten Zugriff (vertrauensrelevante Funktionen). | + | * analog zur Ausfallrate |
- | * Performance: Beispiele sind Durchsatz oder Antwortzeit -> Benchmarks | + | * **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**: Leistungsfähigkeit des Systems, Beispiele sind Durchsatz oder Antwortzeit -> Benchmarks | ||
* Qualitative Kenngrößen | * Qualitative Kenngrößen | ||
- | * Verlässlichkeit (dependability): Vertrauenswürdigkeit in die Leistung des Systems. | + | * **Verlässlichkeit** (dependability): Vertrauenswürdigkeit in die Leistung des Systems. |
- | * Verfügbarkeit (availability performance): Fähigkeit des Systems, eine Leistung zu einem bestimmten Zeitpunkt zu erbringen. | + | * **Verfügbarkeit** (availability performance): Fähigkeit des Systems, eine Leistung zu einem bestimmten Zeitpunkt zu erbringen. |
- | * Zuverlässigkiet (reliability performance): Fähigkeit des Systems, eine Leistung für einen vorgegebenen Zeitabschnitt zu erbringen. | + | * **Zuverlässigkeit** (reliability performance): Fähigkeit des Systems, eine Leistung für einen vorgegebenen Zeitabschnitt zu erbringen. |
- | * Instandsetzbarkeit (maintainability performance): Fähigkeit des Systems, durch Wartung instandgehalten oder repariert werden zu können. | + | * **Instandsetzbarkeit** (maintainability performance): Fähigkeit des Systems, durch Wartung instandgehalten oder repariert werden zu können. |
- | * Wartungsunterstützung (maintenance support performance): Fähigkeit der Wartungsorganisation, die benötigten Ressourcen für die Instandsetzung bereitzustellen. | + | * **Wartungsunterstützung** (maintenance support performance): Fähigkeit der Wartungsorganisation, die benötigten Ressourcen für die Instandsetzung bereitzustellen. |
- | * Quality of Service | + | * {{:se:itukenngroessen.jpg|}} |
- | * servicability performance | + | |
- | * service accessability performance | + | |
- | * service retainability performance | + | |
- | * service integrity performance | + | |
- | * service support performance | + | |
- | * service operability performance | + | |
- | * service security performance | + | |
- | * trafficability performance | + | |
- | * resources and facilities | + | |
- | * transmission performance | + | |
- | * dependability | + | |
- | * reliability performance | + | |
- | * maintainability performance | + | |
- | * maintenance support performance | + | |
- | | + | |
==== Qualitätsanforderungen ==== | ==== Qualitätsanforderungen ==== | ||
=== Arten von Anforderungen === | === Arten von Anforderungen === | ||
+ | * {{:se:klassifikationvonanforderungen.jpg|}} | ||
* Basisanforderung / primitive Anforderung: elementare Aussage, Satz mit Verb und Objekt (<> komplexer Text) | * Basisanforderung / primitive Anforderung: elementare Aussage, Satz mit Verb und Objekt (<> komplexer Text) | ||
* funktional: beschreiben den Funktionsumfang des Systems (Aufgaben, Dienstleistungen) | * funktional: beschreiben den Funktionsumfang des Systems (Aufgaben, Dienstleistungen) | ||
Zeile 141: | Zeile 199: | ||
* implementation | * implementation | ||
* test | * test | ||
- | * Leistungsanforderungen: werden Basisanforderungen zugewiesen | + | * Leistungsanforderungen: werden Basisanforderungen zugewiesen und legen die erwartete Qualität der Basisanforderungen fest |
=== Anforderungsdefinitionsprozess === | === Anforderungsdefinitionsprozess === | ||
- | * Grafik S. 64 | + | * {{:se:prozessderanforderungsdefinition.jpg|}} |
- | * Aufnahme der Bedürfnisse/Vorstellungen der Stakeholder | + | * Aufnahme der Bedürfnisse/Vorstellungen der Stakeholder (WICHTIG: verdeckte Anforderungen ermitteln) -> Background |
- | * WICHTIG: verdeckte Anforderungen ermitteln | + | |
* (iteratives) Extrahieren von Basisanforderungen aus den vorhandenen Anforderungsbeschreibungen | * (iteratives) Extrahieren von Basisanforderungen aus den vorhandenen Anforderungsbeschreibungen | ||
* ursprüngliche Texte aufbewahren! | * ursprüngliche Texte aufbewahren! | ||
* funktionale Anforderungen -> Systemanalyse | * funktionale Anforderungen -> Systemanalyse | ||
* nicht-funktionale Anforderungen -> Systemarchitektur | * nicht-funktionale Anforderungen -> Systemarchitektur | ||
+ | |||
==== Maßnahmen ==== | ==== Maßnahmen ==== | ||
- | * Fehlerverhütung | + | * **Fehlerverhütung**: Eliminierung aller den ordnungsgemäßen Betrieb des Systems verhindernden Fehler vor Inbetriebnahme |
- | * Fehlervermeidung | + | * **Fehlervermeidung**: Einsatz von konstruktiven Maßnahmen |
- | * Fehlerbeseitigung | + | * **Fehlerbeseitigung**: Untersuchen des Systems auf Fehler und Beseitigung dieser vor Inbetriebnahme |
- | * Fehlertoleranz | + | * **Fehlertoleranz**: Das System erhält auch im Fehlerfall seine Funktion aufrecht |
- | * Wartung | + | * **Wartung**: Alle Aktionen, die auf die Aufrechterhaltung bzw. Wiederherstellung der Systemfunktionalität ausgerichtet sind |
=== Fehlertoleranz === | === Fehlertoleranz === | ||
+ | * {{:se:redundanzformen.jpg|}} | ||
* Phasen | * Phasen | ||
- | * error detection | + | * error detection: Finden des Fehlers |
- | * damage confinement | + | * damage confinement: Schadensbegrenzung |
- | * error recovery | + | * error recovery: System in fehlerfreien Zustand versetzen |
- | * fault treatment / continued service | + | * fault treatment / continued service: Fehlerursache (Störung) beheben |
* Methoden | * Methoden | ||
- | * error processing | + | * error processing: Überführung der Störung in einen latenten Zustand -> fehlerfreies System |
- | * error compensation | + | * error compensation: Auswirkungen eines fehlerhaften Zustandsübergangs ausgleichen |
- | * error correction | + | * error correction: Korrektur des Fehlers (Prüfsummen) |
- | * fault masking | + | * fault masking: Unterdrückung des Fehlers (TMR) |
- | * error recovery | + | * error recovery: fehlerfreien Systemzustand wiederherstellen |
* backward error recovery | * backward error recovery | ||
* forward error recovery | * forward error recovery | ||
- | * reconfiguration | + | * reconfiguration: Behebung der Störung |
* gestörte Komponente deaktivieren | * gestörte Komponente deaktivieren | ||
* gestörte Komponente ausgliedern | * gestörte Komponente ausgliedern | ||
* Ersatzkomponente eingliedern | * Ersatzkomponente eingliedern | ||
- | * Redundanz | + | * **Redundanz**: Vorhandensein von mehr funktionsfähigen Mitteln in einer Einheit, als für die Erfüllung der geforderten Funktion notwendig ist. |
* Systemaspekt | * Systemaspekt | ||
- | * strukturell | + | * strukturell: Erweiterung der Architektur |
- | * funktional | + | * funktional: Erweiterung der Systemfunktionalität |
- | * Informationsredundanz | + | * Informationsredundanz: Erweiterung der abgelegten Nutzinformationen um weitere Informationen |
- | * Zeitredundanz | + | * Zeitredundanz: zusätzlicher Zeitaufwand zur Ausführung von Funktionen |
* Aktivierung | * Aktivierung | ||
- | * statisch | + | * statisch: aktiv während gesamter Laufzeit |
- | * dynamisch | + | * dynamisch: aktiv im Bedarfsfall |
* Fehlerart | * Fehlerart | ||
* homogene Redundanz / Replikation -> Alterungsfehler | * homogene Redundanz / Replikation -> Alterungsfehler | ||
Zeile 270: | Zeile 328: | ||
===== Qualitätsmodelle ===== | ===== Qualitätsmodelle ===== | ||
* Softwarequalität hängt von der Qualität des Entwicklungsprozesses ab. | * Softwarequalität hängt von der Qualität des Entwicklungsprozesses ab. | ||
- | * Zuerst die Qualität messen und dann gezielt Verbesserungen vornehmen. | + | * **Zuerst die Qualität messen und dann gezielt Verbesserungen vornehmen.** |
* Kriterien -> Assessment -> Ergebnis -> Maßnahmen zur Verbesserung | * Kriterien -> Assessment -> Ergebnis -> Maßnahmen zur Verbesserung | ||
- | * Funktionen von Qualitätsmodellen | + | * **Qualitätsmodell**: Modell einer idealen Entwicklungsprozessstruktur. Prozessmetrik und Maßnahme zur Qualitätsverbesserung. |
+ | * Funktionen/Ziele von Qualitätsmodellen | ||
* Messlatte zur Ermittlung der Prozessqualität | * Messlatte zur Ermittlung der Prozessqualität | ||
* Hilfestellung bei der Festlegung von Verbesserungsmaßnahmen | * Hilfestellung bei der Festlegung von Verbesserungsmaßnahmen | ||
* Beispiele: CMM, CMMI, Spice, Bootstrap, ISO 9000 | * Beispiele: CMM, CMMI, Spice, Bootstrap, ISO 9000 | ||
+ | * Unternehmensübergreifende Vergleiche werden möglich | ||
* Technologiekompetenz und Prozessbeherrschung müssen stets gemeinsam verbessert werden. | * Technologiekompetenz und Prozessbeherrschung müssen stets gemeinsam verbessert werden. | ||
+ | * {{:se:qualitaetsmodelle1.jpg|}} | ||
+ | * {{:se:qualitaetsmodelle2.jpg|}} | ||
+ | * {{:se:prozessreifeundtechnologie.jpg|}} | ||
===== Capability Maturity Model ===== | ===== Capability Maturity Model ===== |