Durchschnittlicher Fortschritt
Gewusst0
Nicht gewusst0
Noch nicht gestartet31

Empfohlene Karteikarten-Sets

Karteikarten im Karteikarten-Set

Noch nicht gestartet (31)

Was ist Softwarequalität?

Softwarequalität ist die Gesamtheit der Merkmale und Merkmalswerte eines Software-Produkts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse (Anforderungen) zu erfüllen.

Softwarequalität ist ein Maß, wie positiv Software von Stakeholdern (extern) und Entwicklern (intern) wahrgenommen wird

Was führt zu, Niedrige Softwarequalität?

Niedrige Softwarequalität führt zum Scheitern von Projekten!

Nennen Sie mit Erklärung 4 von Externe Softwarequalität?

Faktoren, die beeinflussen, wie Stakeholder Software sehen

• Richtigkeit – verhält sich wie Stakeholder erwarten

• Responsiveness – Reaktionszeit auf Nutzereingaben

• Benutzbarkeit – Leichtigkeit des Erlernens und Nutzens

• Funktionalität – hat von Nutzern erwartete Features

• Interoperabilität – hält sich an Standards, arbeitet mit anderen Systemen zusammen

• Portabilität – in verschiedenen Umgebungen lauffähig

• Effizienz – geringe nötige Rechenleistung, Finanzmittel, etc.

• Wiederverwendbarkeit – von Komponenten in anderen Projekten

Beschreiben Sie • Richtigkeit –

• Richtigkeit – verhält sich wie Stakeholder erwarten

Externe Softwarequalität

Beschreiben Sie • Responsiveness

• Responsiveness – Reaktionszeit auf Nutzereingaben

Externe Softwarequalität


Beschreiben Sie Benutzbarkeit

• Benutzbarkeit – Leichtigkeit des Erlernens und Nutzens

Externe Softwarequalität

Beschreiben Sie • Funktionalität

• Funktionalität – hat von Nutzern erwartete Features

Externe Softwarequalität

Beschreiben Sie Interoperabilität

• Interoperabilität – hält sich an Standards, arbeitet mit anderen Systemen zusammen

Externe Softwarequalität

Beschreiben Sie • Portabilität

• Portabilität – in verschiedenen Umgebungen lauffähig

Externe Softwarequalität

Beschreiben Sie • Effizienz

• Effizienz – geringe nötige Rechenleistung, Finanzmittel, etc.

• Externe Softwarequalität

Beschreiben Sie Wiederverwendbarkeit

Wiederverwendbarkeit – von Komponenten in anderen Projekten

Externe Softwarequalität

Nennen Sie mit Erklärung 4 von Interne Softwarequalität

Faktoren, die beeinflussen, wie Entwickler Software sehen

• Erweiterbarkeit – Leichtigkeit, Feature hinzuzufügen oder zu ändern

• Wartbarkeit – z.B. Leichtigkeit, Software auf neue Versionen von

Abhängigkeiten anzupassen

• Verständlichkeit – der Software für Entwickler

◦ Neue Entwickler verstehen den Code schnell

◦ Finden von Komponenten, die bestimmte Aufgaben erfüllen

• Enjoyability – Wie gern Entwickler an der Software arbeiten

◦ Leichter, Entwickler für die Software zu finden

◦ Motiviertere und produktivere Entwickler

Beschreiben Sie • Erweiterbarkeit

• Erweiterbarkeit – Leichtigkeit, Feature hinzuzufügen oder zu ändern

Interne Softwarequalität

Beschreiben Sie • Wartbarkeit

• Wartbarkeit – z.B. Leichtigkeit, Software auf neue Versionen von

Abhängigkeiten anzupassen

Interne Softwarequalität

Beschreiben Sie • Verständlichkeit

• Verständlichkeit – der Software für Entwickler

◦ Neue Entwickler verstehen den Code schnell

◦ Finden von Komponenten, die bestimmte Aufgaben erfüllen

Interne Softwarequalität

Beschreiben Sie • Enjoyability

• Enjoyability – Wie gern Entwickler an der Software arbeiten

◦ Leichter, Entwickler für die Software zu finden

◦ Motiviertere und produktivere Entwickler

Interne Softwarequalität

Vergleichen Sie zwischen  Verifikation und Validierung

Verifikation: wird die Software richtig entwickelt?

Validierung: wird die richtige Software entwickelt?

Achtung: uneinheitliche Verwendung

• Verifikation oft mit formaler Verifikation gleichgesetzt

• Validierung und Verifikation oft gleichgesetzt

Beschreiben Sie Qualitätsmanagement (QM)

Qualitätsmanagement (QM) umfasst alle aufeinander abgestimmten

Tätigkeiten einer Organisation bezüglich Qualität:

• Qualitätsplanung („quality planning“),

• Qualitätssteuerung („quality control“),

• Qualitätsverbesserung („quality improvement“),

• Qualitätssicherung („quality assurance“)

Beschreiben Sie Qualitätsplanung


Qualitätsplanung (quality planning) ist der Teil des QMs, der auf das

Festlegen der Qualitätsziele und der notwendigen Ausführungsprozesse sowie der zugehörigen Ressourcen zur Erfüllung der Qualitätsziele gerichtet ist.

Aufgaben umfassen

• Festlegung von Qualitätsanforderungen an den Prozess und das Produkt in überprüfbarer Form (Qualitätsziele):

◦ Auswahl/Entwicklung eines Qualitätsmodells (z.B. ISO 25000)

◦ Festlegung von Soll-Werten

• Maßnahmen zur Q-Steuerung und Q-Sicherung festlegen

• Erstellen von QM-Plänen

Beschreiben Sie Qualitätssteuerung

Qualitätssteuerung (quality control) umfasst den Teil des QMs, der auf die Erfüllung von Qualitätsanforderungen gerichtet ist.

Aufgaben umfassen

• Durchführung konstruktiver Maßnahmen (präventiv) zur Erfüllung der

geplanten Qualität

• Durchführung analytischer Maßnahmen zur Überprüfung der geplanten Qualität

◦ (und Einleitungen geeigneter Maßnahmen bei einer Abweichung von der geforderten Qualität, z.B. Überleitung zur Entwicklung zur Fehlerkorrektur)

Beschreiben Sie Qualitätsverbesserung


Qualitätsverbesserung (quality improvement) ist der Teil des QMs, der auf die Erhöhung der Fähigkeit zur Erfüllung von Qualitätsanforderungen gerichtet ist.

Aufgaben umfassen

• Modifikationen der Q-Planung und Q-Lenkung auf Basis von Messungen, Auswertung von Fehlerursachen, ...

• Prozessverbesserung

Beschreiben Sie Qualitätssicherung


Qualitätssicherung (quality assurance) ist der Teil des QMs, der darauf ausgelegt ist ausreichendes Vertrauen zu schaffen, dass eine Einheit die Qualitätsanforderungen erfüllen wird.

Aufgaben umfassen

• Regelmäßige Überprüfung der Wirksamkeit des

Qualitätsmanagementsystems durch Experten in Audits

• Publikation von qualitätsrelevanten Messgrößen

• Dokumentation (und teilweise Offenlegung) der Prozesse und

Qualitätsverfahren

• Zertifizierung des Qualitätsmanagementsystems

Vergleischen Sie Konstruktives vs. analytisches QM

Konstruktives QM umfasst

• Maßnahmen die sicherstellen, dass ein Produkt oder Prozess a priori

bestimmte Eigenschaften besitzt

• Ziel: fehlerfreie Erzeugung von Software ("Correctness by Construction")

Analytisches QM dient der Aufdeckung von Fehlern

• Gefundene Fehler müssen auch noch korrigiert werden, das wird aber

i.d.R. nicht als Teil des analytischen QM angesehen

-Beschreiben Sie Konstruktives QM

-vergleichen Sie zwischen Technische Maßnahmen: vs. Organisatorische Maßnahmen:


Technische Maßnahmen:

• Methoden (z.B. modellbasierte Code-Generierung)

• Werkzeuge (z.B. UML-Modellierungstools)

Organisatorische Maßnahmen:

• Vorgabe von Richtlinien (z.B. Programmierrichtlinien)

• Vorgabe von Standards (z.B. Gliederung von Anforderungsdokumenten nach IEEE 830)

• Checklisten (z.B. worauf man bei der Erstellung einer Spezifikation achten sollte)

Beschreiben Sie Analytisches QM

Dynamische Verfahren:

• Die Software wird dazu ausgeführt

• Tests, Messungen der Laufzeit, ...

Statische Verfahren:

• Ohne Ausführung der Software, prinzipiell "von Hand" möglich

• Verifizierende Verfahren

◦ Prüfung gegen vorgegebenes Qualitätsziel/Artefakt, z.B. formale Verifikation

• Analysierende Verfahren

◦ Berechnung von Eigenschaften, Maßen (z.B. Lines of Code)

Verfahren finden jeweils andere Arten von Fehlern!

Verfahren sind in unterschiedlichen Entwicklungsphasen einsetzbar

Beschreiben Sie Qualitätszielbestimmung in Prinzip 1 Produkt-/Prozessabh. ?

Art und Einsatzzweck einer Software bestimmt relevante Qualitätsmerkmale

• z.B. Notabschaltung im Kernkraftwerk vs. Computerspiel

Qualitätszielbestimmung:

• Auseinandersetzung mit

◦ Verwendungszweck und Lebensdauer des Produkts

◦ Kritikalität des Systems (z.B. Gefahren für Menschen, wirtschaftl. Erfolg)

◦ Projektrisiken (z.B. Komplexität, Qualifikation der Mitarbeiter)

◦ rechtlichen Rahmenbedingungen, Qualitätsstandards

• Festlegung von Qualitätszielen vor Beginn der Entwicklung

◦ Anpassung bei späteren Änderungen der Rahmenbedingungen

• entsprechende Auswahl von QM-Methoden und Werkzeugen

Beschreiben Sie Qualitätszielbestimmung in Prinzip 2 Quantitatives QM ?

Sollwerte (Qualitätsanforderungen) und Istwerte (Qualitätseigenschaften) müssen quantifizierbar sein

• eindeutig bestimmbar (objektive Maße)

• leicht überprüfbar (geringer Aufwand der Messung)

• vergleichbar

Praktische Probleme:

• oft nur subjektive Maße verfügbar (z.B. Fragebögen)

• oft kontextabhängig (Projekt, Produkt, Firma, Domäne, ...),

nicht allgemeingültig

◦ z.B. Lines of Code in Java vs. Python

Beschreiben Sie Qualitätszielbestimmung in Prinzip 3 Maximales konstruktives QM ?


• Fehler, die nicht gemacht werden, müssen nicht behoben werden

• Fehlerbehebung führt zu neuen Fehlern

• Aufwand in konstruktivem QM maximieren, um analytisches QM zu

optimieren

◦ konstruktive Verfahren ermöglichen

· bestimmte anal. Verfahren, z.B. wenn Standards eingehalten werden

· effektivere anal. Verfahren, z.B. Testbarkeit wenn Modelle eingesetzt werden

Beschreiben Sie Qualitätszielbestimmung in Prinzip 4 Frühe Fehlererkennung und -behebung


• QM in frühen Projektphasen besonders wichtig

• Beseitigung/Vermeidung von Fehlern, die bereits erkennbar sind

• Korrekturen lassen sich aber nicht vollständig vermeiden:

◦ neue Erkenntnisse (Erfahrungskurve der Stakeholder)

◦ geänderte Anforderungen

◦ technische Neuerungen

Beschreiben Sie Qualitätszielbestimmung in Prinzip 5 Integriertes QM

QM sollten in den Entwicklungsprozess integriert sein

• Projektplanung sollte QM-Maßnahmen berücksichtigen (QM-Plan)

• Jede Entwicklungsaktivität sollte aus einem konstruktiven und einem

analytischen (prüfenden) Teil bestehen

◦ Konstruktiver Teil kann neben Entwicklung auch konstruktive QM enthalten

• Integriertes QM nötig für realistische Beurteilung des Projektfortschritts

◦ sonst immenser Fehlerbehebungsaufwand am Ende möglich

Beschreiben Sie Qualitätszielbestimmung in Prinzip 6 Unabängigkeit der Qualitätsprüfung

Bei Konstruktion der Software Verantwortung für QS bei Entwicklern

(Requirements Engineers, Architekten, Implementierer)

Für analytisches QM oft personelle Trennung zw. Entwicklern und Prüfern

Entwickler

Vorteile

• Kenntnis der Software

Nachteile

• blind für eigene Fehler

• wenig Anreiz, eigene Fehler zu finden

unabhängige Prüfer

Vorteile

• objektive Prüfung

• Betonung des QM

Nachteile

• Einarbeitung nötig

• kann als unerwünschte Kontrolle empfunden werden