**Dies ist eine alte Version des Dokuments!**
Software-Qualität
Mögliche Klausurthemen
Produktmetriken
Wartungsmetriken
COCOMO
Halstead
Volumen, Difficulty, Abstraktionsniveau (Herleitung)
* Function Points
* Qualitätssysteme
Zuverlässigkeitsmetriken
Fehlertoleranzmaßnahmen
Manuelle Prüfmethoden
Anforderungsermittlung
CMM
Prozessmetriken
CMM Grundprinzip
Sonstiges
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)
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
Funktionen von Qualitätsmodellen
Messlatte zur Ermittlung der Prozessqualität
Hilfestellung bei der Festlegung von Verbesserungsmaßnahmen
* Beispiele: CMM, CMMI, Spice, Bootstrap, ISO 9000
Technologiekompetenz und Prozessbeherrschung müssen stets gemeinsam verbessert werden.
Capability Maturity Model
Ausgangspunkt ist ein Assessment anhand eines Fragebogens → Prozessmetrik.
Ermittelt den Grad der Prozessbeherrschung, nicht jedoch die Qualität des Produktes.
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.
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 → definierte Stufen.
Reife liegt vor, wenn folgende Punkte zutreffen:
firmenweite Methodik zur Organisation von SW-Entwicklung
Prozess ist exakt erläuterbar
Arbeiten werden gemäß der Planung durchgeführt
Rollen und Verantwortlichkeiten sind klar definiert
Manager überwachen die Qualität des Prozesses
es liegen objektive und quantifizierbare Kriterien zur Prozessanalyse vor
es gibt festgelegte Verfahren zur Problemanalyse
Zeitplan- und Budget-Vorgaben sind realistisch und basieren auf Erfahrung
die Beteiligten befolgen die disziplinierte Vorgehensweise aus innerer Überzeugung
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
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)
repeatable
defined
firmenweite Prozessüberwachung
firmenweite Prozessdefinition
Ausbildungsprogramm
ganzheitliche Prozessdefinition
SW-Produktengineering
Koordination zwischen Entwicklungsteams
Reviews
managed
optimized
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
Handlungsanweisungen, Aktivitäten und Maßnahmen
Die Handlungsanweisungen beschreiben das Vorgehen um die Schlüsselbereiche möglichst effizient zu etablieren. Jede Handlungsanweisung kann in einem Satz definiert werden. Eine Handlungsanweisung beschreibet 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 Fragsbogens
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(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
Inspektionsprotokoll
Einsatz
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
44% der Kosten eines Projekts entfallen auf Fehlerbeseitigung
Mängel werden durch manuelle Prüfmethoden früh gefunden
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ällt
* Arbeitsumfeld != 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