Software-Qualität
Klausurvorbereitung
Mögliche Klausurthemen
Qualitätssysteme
Zuverlässigkeitsmetriken
Fehlertoleranzmaßnahmen
Produktmetriken
Wartungsmetriken
COCOMO
Halstead
Volumen, Difficulty, Abstraktionsniveau (Herleitung)
* Function Points
* OO-Metriken
* Manuelle Prüfmethoden
Inspection
Anforderungsermittlung
CMM
Prozessmetriken
CMM Grundprinzip
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
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
Was ermittelt man mit CMM und wie geht man dabei vor?
Definition Softwareprozess, Prozessbeherrschung, Prozessqualität, Prozessreife
Wann liegt Prozessreife vor? (9)
Stufen der Prozessreife (5)
Verbesserungen durch höhere Stufen (3)
Nutzung von CMM (4)
Strategie von CMM (4)
Aktivitäten-/Maßnahmenkategorien (5)
Definition Schlüsselgebiet, Aufteilung Schlüsselgebiete (3)
Schlüsselgebiete / Reifegrad
repeatable (6)
defined (7)
managed (2)
optimized (3)
Definition Qualitätsziele (3)
* Definition Maßnahmenkategorien
Definition Handlungsanweisung (Beispiele)
CMM Assessment
* formelles Assessment (6 Schritte)
* informelles Assessment (3 Bereiche, 6 Stufen)
Anforderungsermittlung
Anforderungsermittlung (4 Schritte)
Definition work scope, intended actors, adjacent systems, services, work area, outside world
Definition Geschäftsvorfall (business), Geschäftsprozess (business workflow), task, stored data, Anwendungsfall
Wie findet man Geschäftsvorfälle und Anwendungsfälle?
Externe Systeme (3 Systeme, 3 Rollen)
Optimales Produkt (6 Aspekte)
* Anforderungsermittlungsprozess
Anforderungsdokumentation
Manuelle Prüfmethoden
Taxonomie der Prüfmethoden
Charakteristika (4)
Ablauf einer Inspektion (11 Schritte)
Richtlinien und Regeln (5)
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?
Konstruktive Maßnahmen (Methoden, Techniken)
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 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.
-
TTFF (time to first failure): Zeitraum von Systemstart bis zum ersten Ausfall. Entspricht T für nicht-reparierbare Systeme.
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.
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.
-
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): mittlerer 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:
* logistic delay time
* repair time: Zeit, in der korrektive Wartung betrieben wird (inkl. logistische Wartezeiten).
* active repair time (active corrective maintenance time)
* fault localization time (fault diagnosis time): Benötigte Zeit zur Fehlersuche.
* technical delay: Zeit für zusätzlich notwendige technische Maßnahmen.
* fault correction time: Zeit für die Störungsbeseitigung.
* check out time: Zeit zum Nachweis der Funktionsfähigkeit.
* Ü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)
Ausfall-/Fehlerdichte (probability density function, PDF) f(t): Zeitableitung von F(t), Einheit 1/h
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>)
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): erfolgreiche Reparatur im Intervall ]t, t + dt] wenn Reparatur vor t noch nicht abgeschlossen
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
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.
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.
Wartungsunterstützung (maintenance support performance): Fähigkeit der Wartungsorganisation, die benötigten Ressourcen für die Instandsetzung bereitzustellen.
==== Qualitätsanforderungen ====
Arten von Anforderungen
Anforderungsdefinitionsprozess
-
Aufnahme der Bedürfnisse/Vorstellungen der Stakeholder (WICHTIG: verdeckte Anforderungen ermitteln) → Background
(iteratives) Extrahieren von Basisanforderungen aus den vorhandenen Anforderungsbeschreibungen
nicht-funktionale Anforderungen → Systemarchitektur
Maßnahmen
Fehlerverhütung: Eliminierung aller den ordnungsgemäßen Betrieb des Systems verhindernden Fehler vor Inbetriebnahme
Fehlertoleranz: Das System erhält auch im Fehlerfall seine Funktion aufrecht
Wartung: Alle Aktionen, die auf die Aufrechterhaltung bzw. Wiederherstellung der Systemfunktionalität ausgerichtet sind
Fehlertoleranz
Produktmetriken
Flesh-Kincaid-Verständlichkeitsgrad
Flesh-Kincaid-Lesbarkeitsgrad
Fog-Index
COCOMO
Entwicklungsaufwand in Mann-Monaten: PM (personal month)
* Entwicklungsaufwand in Monaten: TDEV (time of development)
* Entwicklungsaufwand in Personen: N (number of programmers)
* Function Point Verfahren (Albrechts-Metrik)
Festlegen der Systemgrenzen
Unadjusted Function Points ermitteln
Kategorisierung von Funktionen
Bestimmung des Komplexitätsgrades einer Funktion
Bestimmung des Funktionspunktwertes für eine Funktion der entsprechenden Kategorie mit vorgegebenem Komplexitätsgrad
Bestimmung des Funktionspunktewertes der gesamten Anwendung durch Analyse aller relevanten Funktionen
Adjusted Function Points ermitteln
Funktionskategorien (Datenbestände/Transaktionen)
externe Eingaben (external input EI)
* externe Ausgaben (external output EO)
* interne Dateizugriffe (internal logical file ILF)
* externe Dateizugriffe (external interface file EIF)
* externe Anfragen (external inquiry EQ)
* Elementarprozess / Transaktion
* Kleinste für den Benutzer bedeutende Verarbeitungseinheit.
* Eigenständig und in sich abgeschlossen.
* Hinterlässt konsistenten Systemzustand.
* Entwurfsstrukturmetriken von Blaschek
Höhenmaß, Breitenmaß, rel. Breitenmaß, Maß der Baumähnlichkeit
Modul-Bindungsmetrik
Bindung (cohesion)
Kopplung (coupling)
Bindungstypen: zufällig, logisch, zeitlich, prozedural, kommunikativ, sequentiell, informal, funktional
LOC-Maß
Software-Science / Halstead-Metriken
Vokabular
Programmlänge
Programmumfang
Schwierigkeitsgrad
Abstraktionsniveau
Programmieraufwand
Intellektueller Gehalt
Programmierzeit
mittlere Fehlermenge
McCabe-Metrik / Zyklomatische Zahl
* Test-Metriken
Wartungsmetriken
Fehlerbeseitigung, Optimierung, Portierung
Aufwandsmetriken (Lesbarkeit, Korrekturzeit, Fehlerbeseitigungszeit)
Änderungsbezogene Metriken (Lokalisierung, Perfektionierung, Wiederverwendbarkeit)
Fehlerbezogene Metriken (Fehlerhäufigkeit, Fehlerzuwachs)
Entwicklungseffektivität
Änderungsmetrik von Stahlknecht
Portabilitätsmetriken
Aufwandsmetriken
Produktgröße, -komplexität, Entwicklungsumgebung
Qualitätsmodelle
Softwarequalität hängt von der Qualität des Entwicklungsprozesses ab.
Zuerst die Qualität messen und dann gezielt Verbesserungen vornehmen.
Kriterien → Assessment → Ergebnis → Maßnahmen zur Verbesserung
Qualitätsmodell: Modell einer idealen Entwicklungsprozessstruktur. Prozessmetrik und Maßnahme zur Qualitätsverbesserung.
Funktionen/Ziele von Qualitätsmodellen
Messlatte zur Ermittlung der Prozessqualität
Hilfestellung bei der Festlegung von Verbesserungsmaßnahmen
* Beispiele: CMM, CMMI, Spice, Bootstrap, ISO 9000
Unternehmensübergreifende Vergleiche werden möglich
* Technologiekompetenz und Prozessbeherrschung müssen stets gemeinsam verbessert werden.
-
*
Capability Maturity Model
Ermittelt den Grad der Prozessbeherrschung, nicht jedoch die Qualität des Produktes.
Ausgangspunkt ist ein Assessment anhand eines Fragebogens → Prozessmetrik.
Bietet einen Maßnahmenkatalog zur Prozessverbesserung.
Anleitung
SW-Entwicklungs- und Wartungsprozesse kontrollieren
kritische Bereiche erkennen
die Prozesse gezielt verbessern
Softwareprozess: Bündel von Aktivitäten, Methoden und Praktiken, die eingesetzt werden, um Software und Dokumentation zu entwickeln und zu pflegen (z.B. Projektpläne, Architektur, Entwurf, Code, Testspezifikation, Handbücher).
Software-Entwicklungskompetenz / Prozessbeherrschung versetzt in die Lage das Entwicklungsergebnis vorherzusagen, unter der Voraussetzung, dass eine definierte Vorgehensweise verfolgt wird.
Software-Entwicklungsleistungsfähigkeit / Prozessqualität misst das aktuelle Entwicklungsergebnis in Bezug auf Kosten, Termintreue, Funktionalität und Qualität.
Software-Prozessreife beschreibt den Reifegrad, den ein Entwicklungsprozess erreicht hat (definiert, gesteuert, kontrolliert, effektiv) → definierte Stufen.
Reife liegt vor, wenn folgende Punkte zutreffen:
firmenweite Methodik zur Organisation von SW-Entwicklung
Rollen und Verantwortlichkeiten sind klar definiert
die Beteiligten befolgen die disziplinierte Vorgehensweise aus innerer Überzeugung
Arbeiten werden gemäß der Planung durchgeführt
Prozess ist exakt erläuterbar
Manager überwachen die Qualität des Prozesses
es liegen objektive und quantifizierbare Kriterien zur Prozessanalyse vor
Zeitplan- und Budget-Vorgaben sind realistisch und basieren auf Erfahrung
es gibt festgelegte Verfahren zur Problemanalyse
Stufen
Nutzung von CMM
Stärken/Schwächen des Unternehmens identifizieren
Auswahl von Unterauftragnehmern
Maßnahmen zur Prozessverbesserung erkennen
Definition und Optimierung des eigenen Prozesses
Strategie zum Erreichen eines höheren Reifegrades
Reifegrad → Schlüsselgebiet → Maßnahmenkategorie → Handlungsanweisung
Ergreifen von Maßnahmen in Schlüsselgebieten um Ziele zu erreichen.
Aktivitätenkategorien → Handlungsanweisungen (Aktivitäten oder Infrastrukturmaßnahmen)
* Schlüsselgebiete (Management, Organisation, Engineering)
Schlüsselgebiet: Für die Verbesserung des Entwicklungsprozesses besonders wirksame Prozessbereiche.
repeatable (Installation elementarer Projektkontrollinstrumente)
defined (Einführen einer Infrastruktur, die firmenweit über alle Projekte effektives SW-Engineering und Prozessmanagement erlaubt)
firmenweite Prozessüberwachung
firmenweite Prozessdefinition
Ausbildungsprogramm
ganzheitliche Prozessdefinition
SW-Produktengineering
Koordination zwischen Entwicklungsteams
Reviews
managed (Erzeugen eines quantitativ ausdrückbaren Verständnisses für den SW-Entwicklungsprozess und die SW-Produkte)
optimized (Es wird sowohl für das Firmenmanagement als auch für den Entwicklungsprozess das Ziel verfolgt, eine Einhaltung von kontinuierlicher und messbarer Prozessverbesserung zu erreichen)
-
Qualitätsziele
Feststellung der erfolgreichen Etablierung des betroffenen Bereichs im Prozess
Stecken der Rahmen der Verbesserungsmaßnahmen ab
Ableitung von Handlungsanweisungen, Aktivitäten und Infrastrukturmaßnahmen
Maßnahmenkategorien: Beschreiben das grundsätzliche Vorgehen bei der Institutionalisierung/Implementierung von Maßnahmen
Infrastrukturmaßnahmen (Institutionelle Basis)
Die Handlungsanweisungen beschreiben das Vorgehen um die Schlüsselbereiche möglichst effizient zu etablieren. Jede Handlungsanweisung kann in einem Satz definiert werden. Eine Handlungsanweisung beschreibt was zu tun ist, aber nicht wie im Einzelnen verfahren werden soll.
* Bewertung
Formelles CMM-Assessment
Software Prozess Assessment (Kooperation, offene Athmosphäre)
Bewertung der Software Prozessbeherrschung (eher offizielles Audit)
Schritte
Bewertungsteam zusammenstellen
Ausfüllen des Fragebogens
Auswertung des Fragebogens
Besuch des zu bewertenden Bereichs → Interviews, Inspektion, Übereinstimmung mit Zielen prüfen
Erstellen eines Bewertungsberichts → Identifikation der Stärken und Schwächen → Ableiten von Empfehlungen für Optimierung
Systematische Zusammenstellung der Ergebnisse für die einzelnen Bereiche
Informelles CMM-Assessment
Manuelle Prüfmethoden
Manuelle Prüfmethoden
Typen
Eigenschaften
mehrere Teilnehmer prüfen ein Prüfobjekt
möglichst schnell nach der Erstellung (→ mit Objekt soll weitergearbeitet werden)
in evtl. mehreren Sitzungen
gegen eine Vorgabe/Referenz
* Ablauf
* Prüfobjekt vorlegen
* Eingangsprüfung
* Autor muss Prüfobjekt definitiv abgeschlossen haben
* Prüfreferenzen liegen vor
* Unterstützende Literatur liegt vor (Checklisten, Wörterbuch etc.)
* Planung
* Aufteilung in Teilobjekte für eine Sitzung (10-20 Seiten, 250 LOC)
* Festlegen der Inspektoren
* Inhalt
* Vollständigkeit
* Intervallgrenzen/Fallunterscheidungen
* Fehlerbehandlung
* Test-/Wartbarkeit
* Szenarien (z.B. UseCases, Testfälle)
* Einhaltung von Standards
* Verteilen des Prüfobjekts und der nötigen Unterlagen
* Inspektionsregeln und -ablauf bekanntgeben und evtl. Einführungssitzung vereinbaren
* (Einführungssitzung)
* Benötigte Unterlagen verteilen
* Erläuterung der Rollen der Inspektoren
* Überblick über Prüfobjekt durch den Autor -> Hinweis auf wesentliche/kritische Teile des Objekts
* Gäste sind erlaubt
* Vorbereitung
* Inspektoren untersuchen das Prüfobjekt unter Berücksichtigung der Regeln und ihrer Rolle
* Inspektoren erstellen Inspektionsreport (Fragen, klassifizierte Defekte, benötigte Zeit)
* Üblich sind 1-4 Stunden Vorbereitungszeit je Inspektor
* Inspektionssitzung
* 3-7 Teilnehmer (mind. Autor, Inspektor, Moderator), kein Vorgesetzter des Autors, keine Gäste
* Vorlesen durch Inspektor
* Dauer 2-2,5 Stunden, Geschwindigkeit 5-10 Seiten/125 LOC pro Stunde
* Aufgaben
* Identifikation von Defekten
* Klassifikation des Defekts
* Moderator erstellt Protokoll
* Prinzipien
* In Problemen denken, nicht in Lösungen!
* Nicht Verbesserungen suchen!
* Diskussion und Kommentierung ist nicht erlaubt!
* Der Autor muss die Ausführungen verstehen!
* Argumentationsprinzipien
* Es geht um das Objekt, nicht um den Autor!
* Sachlichkeit, nicht Emotionalität!
* "Ich-Formulierungen" verwenden!
* Beim Thema bleiben!
* Vorgehen
* statisch (linear, konsekutiv), Schnittstellen berücksichtigen
* dynamisch (Szenarien)
* Checklisten
* Ergebnis
* Freigabe mit Auflagen
* Mängel beheben, Überprüfung durch Autor
* Wiederholung der Prüfung (ab ca. 5% Änderungen am Prüfobjekt oder bei kritischen Objekten)
* (3. Stunde)
* Lösungsdiskussion
* Nachbereitung
* Sinn
* Nachweis der Effektivität der Inspektion
* Aktualisierung der Checklisten
* Verbesserung der Inspektionen
* (mögliche) Metriken
* Vorbereitungszeit / Inspektor
* Vorbereitungszeit / Seite
* Dauer der Inspektionssitzung(en)
* Gesamtzahl der inspizierten Seiten
* Seiten / Inspektionssitzung
* Dauer der Überprüfung einer Seite
* Anzahl der Fehler / Gesamtzeit der Inspektion
* gefundene Fehler / Seite
* Fehler
* Phase, in der der Fehler gemacht wurde
* Phase, in der der Fehler gefunden wurde
* Fehlergewicht (schwer, mittel, leicht)
* Fehlertyp (falsch, fehlend, überflüssig, ungenau)
* Fehlerklasse (Standard, Basis, zeitlich, ...)
* Mängelbeseitigung
* Aufwandsabschätzung
* Änderungsanträge / Einbeziehen der Projektleitung -> Anpassen der Projektplans / Priorisierung
* Überprüfung
* ca. 1/6 der Korrekturen ist fehlerhaft
* Prüfung durch Autor, ggf. Reinspektion
* Für Freigabe: alle schweren/mittelschweren Mängel beseitigt, alle offenen Punkte bearbeitet
* Durchführung, falls Mängelbeseitigungskosten > Kosten für Reinspektion
* Freigabe
* Teilnehmer
Autor(en)
Moderator
bestimmt Inspektoren, Protokollführer, Vorleser
achtet auf Einhaltung der Regeln
entscheidet im Zweifelsfall, ob Defekt gezählt wird
fasst Ergebnis zusammen
entscheidet über weiteres Vorgehen
Schlüsselrolle, soziale Kompetenz
Inspektor(en)
Protokollführer
Vorleser
Prüfungen haben eine hohe Priorität
der benötigte Aufwand muss eingeplant werden
Vorgesetzte und Zuhörer dürfen nicht teilnehmen
Inspektoren müssen Pürfmethode beherrschen
Prüfkriterien
allgemein: Vollständigkeit, Produktlayout, Konsistenz, Eindeutigkeit, Rechtschreibung
entwicklungstechnisch: Konsistenz zur Vorgängerprodukten, Nachvollziehbarkeit, Methodenkonformität
produktspezifisch
system- oder anwendungsspezifisch: Integrierbarkeit, Einhaltung von Plandaten
* Dokumente
Erhebungsbögen der Inspektoren
Adressat (Autor, Moderator)
Absender (Gutachter)
Prüfobjekt
Abgabetermin
Zeitaufwand
Gesamteindruck
Inspektionssitzung/Reviewsitzung notwendig / nicht notwendig / nicht sinnvoll
Bemerkungen des Autors
Unterschrift Prüfer und Autor
Defekte
Nach jedem Prozessschritt, auf jeder Softwarearchitekturebene sollte das jeweilige Zwischenprodukt geprüft werden.
* Schwerpunkte: Konformität zu Vorgängerprodukten, Vollständigkeit, Struktur, Fehlerverhalten, Lesbarkeit und Verständlichkeit, Überflüssiges streichen
* Vergleich
Review
weniger formal als Inspektion
Verbesserung des Entwicklungsprozesses nur nachrangiges Ziel
Rolle des Vorlesers nicht so wichtig
Geschwindigkeit etwas höher als bei Inspektion
Ergebnis ist lediglich Empfehlung an Projektleitung, keine formale Freigabe
Walkthrough
stark abgespeckt
Vorbereitung kann entfallen
Autor leitet Sitzung
keine formalen Elemente (Erhebungsbogen, Protokoll)
Ergebnis ist eine subjektive Freigabe
Offene Teilnahmemöglichkeit → gut für Schulungen geeignet
* Bewertung
Vorteile: Semantikprüfung, ganzes Team trägt Entscheidung, Mängel werden früh und effektiv gefunden, Lerneffekt bei Entwicklern
44% der Kosten eines Projekts entfallen auf Fehlerbeseitigung
Kosten zu Beginn hoch aber durch weniger Fehlerbehebung am Ende relativiert
Aufwand für systematische Inspektionen: 15%-20% des Gesamtaufwands
70%-80% aller Fehler können durch Inspektionen gefunden werden
Kosten/Zeitüberschreitung lassen sich um 30% reduzieren
Lerneffekt bei den Entwicklern
breitere Wissensbasis, Methoden der Kollegen
verständlichere Formulierungen, da mehrere Personen das Dokument lesen
Steigerung der Qualität einzelner Autoren von Sitzung zu Sitzung
Risiko: trügerische Sicherheit, wenn Verfahren nicht beherrscht wird
Anforderungsermittlung
-
Schritte
Ermittlung des Umfangs der zu erbringenden Leistung bzw. Ermittlung der Aufgabenstellung.
Partnersysteme und ihre Rollen ermitteln → Kontextdiagramm
* Identifikation der Geschäftsvorfälle in Zusammenhang mit dem Leistungsangebot / der Aufgabenstellung.
* Geschäftsvorfall: Ein Geschäftsobjekt, das durch die in einem Geschäftsprozess beschriebenen Aktivitäten bearbeitet wird. Geschäftsvorfälle werden durch Ereignisse (Anfragen an das System) ausgelöst. Ergebnis: eine für den Anwender erkennbare Aktion.
* Geschäftsprozess: Fachlich zusammenhängende, organisatorisch jedoch evtl. verteilte, zeitlich und logisch zusammenhängende Aktivitäten, die notwendig sind, um einen Geschäftsvorfall ergebnisorientiert zu bearbeiten.
* Geschäftsvorfälle finden: Datenströme zum/vom System analysieren
* Externe Systeme: Organisationen, Personen, technische Systeme / aktiv, autonom, kooperativ
* Muss das System alle Aufgaben übernehmen, oder können vielleicht auch Personen Leistungen erbringen?
* Aspekte zur Ermittlung des "optimalen" Produkts
* Zweck des Produkts
* Umfang der Dienstleistung
* Existenz externer technischer Systeme
* Einflüsse externer Institutionen, Organisationen und Personen
* Auswirkungen der Produktdefinition auf Betroffene
* eigene Marktposition
* Festlegung der Rolle des künftigen Produktes bei der Erbringung der Leistung.
* Anwendungsfall: Beschreibung einer zu erbringenden Leistung. Er beschreibt eine Menge von Aktivitäten eines Systems, die für seine Akteure zu einem wahrnehmbaren Ergebnis führen. Wird durch einen Akteur initiiert, ist unteilbar
* Ermittlung von Anwendungsfällen: Geschäftsvorfälle -> Leistungen des Systems sind Anwendungsfälle
* Arbeitsumfang != Produktumfang
* Ableitung von Anforderungen zu jedem Anwendungsfall.
* Anforderungsdokumentation
Zusatzinformationen zu den Anforderungen: Randbedingungen, Stakeholder, Leistungsumfang des Produkts → Volere
ToDo
Volere Template lesen
IEEE Testdokument lesen
Beispielaufgabe Function Points
Formelsammlung ausdrucken und durchgehen
Grafik S. 156 anschauen
CMM
Beispiel ab S. 183
Tabelle S. 190
unklare QM-Maßnahmen anschauen (S. 196)
Checklisten S. 213
Erhebungsbogen S. 215
Prüfschwerpunkte S. 219
Diagramm S. 253
-
Links
Lernziele
Verstehen, warum eine Betrachtung von (IT-)Systemen unter Qualitätsgesichtspunkten Voraussetzung für die Beschäftigung mit dem Thema Softwarequalität ist.
Verstehen des konzeptionellen Ansatzes zur Beantwortung der Fragen:
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?
Wissen wie Anforderungen ermittelt werden.
Wissen wie Defekte beschrieben werden.
Wissen wie Defekte bewertet werden können.
Wissen welche Maßnahmenkategorien und welche Maßnahmen zur Erreichung der geforderten Qualität eingesetzt werden können.
Anwenden der vorgestellten Methoden und Techniken zur Ermittlung von Anforderungen.
Anwenden der vorgestellten Methoden und Techniken zur Ermittlung von Bewertungsgrößen.
Wissen wie Systemunzulänglichkeiten beschrieben werden.
Wissen wie Systemunzulänglichkeiten bewertet werden können.
Verständnis, warum Produktmetriken für den Softwareentwicklungsprozess bedeutsam sind.
Kenntnis über vorgestellte im Softwareentwicklungsprozess einsetzbare Metriken. Wissen um den Beispielcharakter der vorgestellten Produktmetriken.
Anwenden der Metriken.
Verstehen der Bedeutung und des Zwecks von Qualitätsmodellen.
Wissen, welche Qualitätsmodelle in der Softwareentwicklung eine Rolle spielen oder gespielt haben.
Kenntnis des CMM-Modell-Konzepts.
Kenntnis der CMM-Modellkomponenten.
Kenntnis des Vorgehens bei der Bewertung von Softwareentwicklungsprojekten mit Hilfe des CMM-Modells.
Kenntnis über den Nutzen von Inspektionen.
Kenntnis über die Abgrenzung von Inspektion, Review und Walkthrough.
Fähigkeit zur Durchführung von Inspektionen.
Kenntnis über den Anforderungsermittlungsprozess.
Kenntnis des Volere-Konzepts zur Anforderungsermittlung
Fähigkeit das Volere-Template zur Anforderungsermittlung und -dokumentation einzusetzen.
Aufgaben
Qualitätssysteme
\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)
Zeitredundanz (Zeit zum Codieren und Decodieren)
Wie können Sie sich vor Design-Fehlern schützen?
Produktmetriken
\mbox{PM} = \alpha \cdot \mbox{KDSI}^\beta \cdot \prod{i=1}^{15} ai
\mbox{PM} = 3 \cdot 90^{1,12} \cdot 1
\mbox{PM} = 463,32
</latex>
Für eine Function Point Abschätzung sind folgende Werte vorgegeben: 2 Funktionen gehören zur Kategorie EI, 3 zu EO, 1 zu ILF, 2 zu EIF und 2 zu EQ. Der Schwierigkeitsgrad ist immer "mittel". Welcher Function-Point Wert ergibt sich?
UFP = 55
Was wird mit der Function Point Metrik gemessen?
Die Function Point Metrik steht für die voraussichtliche Größe des Projekts. Auf Basis dieses Wertes kann dann z.B. die erwartete Entwicklungsdauer ermittelt werden (z.B. über COCOMO).
* Wo kann die Metrik von Blaschek eingesetzt werden?
Die Metrik von Blaschek kann eingesetzt werden, um in der Entwurfsphase die Modulstruktur einer Software zu analysieren (Baumhöhe, -breite, -ähnlichkeit). Anhand von Vergleichen mit erfolgreichen Softwareprojekten kann dann die vorliegende Architektur bewertet werden.
Was ist der schwächste Typ einer Modulbindung?
Zufällige Bindung: Die zusammengefassten Module stehen in keinem logischen Zusammenhang zueinander.
* Was wird für das LOC-Maß berücksichtigt, was wird beim LOC-Maß gezählt?
Für das Zählen der LOC gibt es verschiedene Vorgehensweisen. Normalerweise sollten die Codezeilen ohne Kommentare und Leerzeilen gezählt werden.
Halstead Software Science: Welche Kenngrößen werden definiert durch: (a) N1 + N2 (b) n1 + n2
a) Länge des Programms (Gesamtzahl aller verwendeten Operatoren und Operanden)
b) Vokabular des Programms (Gesamtzahl aller möglichen Operatoren und Operanden)
Wie kommt man zu einem Grenzwert für die zyklomatische Zahl von Mc Cabe?
Man kann in der Wartungsphase früherer Projekte die Anzahl der benötigten Updates je Komponente und deren Komplexität ermitteln und dokumentieren. Aus diesen Werten kann man mit der Zeit eine Funktion ableiten, die das Verhältnis zwischen Komplexität und Fehlerzahl darstellt. Nun kann eine maximale Fehlerzahl festgelegt werden und die daraus resultierende maximale Komplexität ermittelt werden.
Qualitätsmodelle
Was verstehen Sie unter einem Qualitätsmodell? Welche Funktionen erfüllen Qualitätsmodelle?
Nennen Sie vier Beispiele für Qualitätsmodelle!
CMM, CMMI, Spice, Bootstrap, ISO 9000
Was sind Risiken beim Einsatz eines Qualitätsmodells?
CMM
Geben Sie die Reifegradstufen im CMM Modell an und charakterisieren Sie jede Stufe kurz!
initial: Keinerlei Struktur, Erfolg abhängig von Individualleistungen
repeatable: Entwicklungsprozess mit klaren Phasen und Meilensteinen, Phasen sind black boxes
defined: Unternehmensweit einheitlich definierter Entwicklungsprozess
managed: Entwicklungsprozess wird anhand von festgelegten Kriterien kontrolliert und gesteuert
optimized: Entwicklungsprozess unterliegt einer ständigen Optimierung
Welche Bedeutung hat eine "key process area"?
Wie sind key process areas organisiert? Welcher Bezug besteht zu den Reifegraden?
Wie kann ein (informelles) Assesssment aussehen?
Wie wirken sich Verbesserungen durch eine CMM-Strategie aus?
Manuelle Prüfmethoden
Anforderungsermittlung