Benutzer-Werkzeuge

Webseiten-Werkzeuge


se:softwarequalitaet

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

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:24]
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 S64 +  * {{:​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 =====
se/softwarequalitaet.txt · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)