Lesson 2 Flashcards

(52 cards)

1
Q

Nenne die zwei Hauptkonzepte (principal methods) zur Qualitätssicherung!

A

Analytisch: Die Qualität des Produkts prüfen (und korrigieren).
Konstruktiv: Einen Konstruktionsprozess verwenden, der Qualität garantiert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Warum ist der Zusammenhang zwischen Prozess- und Produktqualität bei Software komplexer als in der traditionellen Fertigung?

A

Software wird designt (ein kreativer Prozess), nicht gefertigt. Der Einfluss individueller Fähigkeiten und Erfahrung ist signifikant, und externe Faktoren (wie Neuheit oder kommerzieller Druck) beeinflussen die Produktqualität unabhängig vom Prozess.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Kann die Standardisierung von Softwareprozessen negative Auswirkungen haben?

A

Ja, Prozessstandardisierung kann manchmal die Kreativität unterdrücken, was zu schlechterer statt besserer Softwarequalität führen kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Nenne die drei Hauptkategorien analytischer Methoden zur Qualitätssicherung und gib jeweils Beispiele.

A
  1. Test (z.B. Black Box, White Box, Testabdeckung, Regressionstests).
  2. Messung (z.B. Codegröße, Komplexitätsmetriken, OO-Metriken).
  3. Inspektion (z.B. Verifikation).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Nenne Beispiele für konstruktive Methoden zur Qualitätssicherung.

A

Gutes Arbeiten (gute Methoden, Tools, Vorgehen, Personen) und Automation (z.B. Modellierung und Transformation, Modellierung und Generierung, formale Definition und Generierung).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Teile einer Organisation oder welche Rollen können für das Qualitätsmanagement verantwortlich sein?

A

Die Organisation selbst, Management, Finanzplanung, Risikomanagement-Team, Entwicklungsteams, Entwickler, QM-Team, Testteams, externe Tester, Käufer, Portfolio Owner, Product Owner, Component Owner oder individuelle Entwickler.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche prinzipiellen Arten von Rollen/Aufgaben gibt es im Qualitätsmanagement?

A
  1. Durchführung von Tests/Methoden (z.B. Tester testet).
  2. Initialisierung von Konzepten (z.B. Team Lead definiert Standards).
  3. Management von Ergebnissen (z.B. über Fixes entscheiden).
  4. Bereitstellung von Ressourcen (z.B. Zeit für Doku planen).
  5. Awareness (Bewusstsein für Qualität schaffen).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist die Herausforderung bei der Messung der Korrektheit von Software?

A

Während die Korrektheit eines einzelnen Ergebnisses oft leicht zu messen ist, ist es nicht einfach oder nicht möglich, alle potenziellen Ergebnisse zu testen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Ist eine hohe Anzahl gefundener und gefixter Bugs ein gutes Qualitätsmaß?

A

Nicht eindeutig. Es kann bedeuten, dass das Programm extrem fehlerhaft ist, oder dass die Bugs sehr schnell reduziert werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was sind Herausforderungen bei der Messung nicht-funktionaler Eigenschaften wie der Antwortzeit eines Web-Service?

A

Es ist schwierig, sie für alle möglichen Anfragen, unter hoher Last, über ein unkontrolliertes Netzwerk oder bei Einbeziehung eines vom Client verwalteten Browsers zu messen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Warum ist die Interpretation von (Code-)Komplexitätsmetriken schwierig?

A

Ein komplexes Programm ist nicht zwangsläufig von niedriger Qualität. Die Komplexität könnte durch das reale Problem oder durch hochwertige Fehlerbehandlung bedingt sein. Sie sollten nicht die einzige Messgröße sein.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist das übergeordnete Ziel der Qualitätssicherung?

A

Das Ziel ist ein Produkt, das seinen Zweck (purpose) erfüllt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wovon wird definiert, was ‘gute Qualität’ bedeutet?

A

Vom Zweck (purpose) des Produkts, der den Kontext definiert. Relevante Fragen sind z.B. Nutzungsdauer, Priorität (Time-to-Market, Features oder Qualität), Budget, Benutzer oder ob es ein Prototyp ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was bedeutet ‘innere Qualität’ (inner quality) von Software?

A

Sie bedeutet z.B.: Verwendung korrekter Sprache und Tools, elegante Struktur, Architektur, Code und Dokumentation, Einhaltung von Standards und dass Code leicht zu lesen und zu verstehen ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Nenne Vorteile einer hohen inneren Qualität von Software.

A

Wartbarkeit, Wiederverwendbarkeit, Lernen von weniger erfahrenen Teammitgliedern, geringere Komplexität, Robustheit und Korrektheit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was kann die Basis oder das Ziel (base/target) für Qualitätsmanagement oder Tests sein?

A

Die Zufriedenheit der Entwickler, die Anforderungen (requirements), das Feedback des Käufers oder die Unterstützung des Geschäftsmodells.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was sind Vor- und Nachteile von Anforderungen (Requirements) als Basis für Tests?

A

Vorteile: Sie sollten messbar und sind die ideale Basis für Tests. Nachteile: Sie können informell sein, falsch sein (z.B. durch Misskommunikation) oder veraltet sein (z.B. eine 5 Jahre alte Anforderung).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Welchen Fokus setzt das Qualitätsmanagement, wenn das Geschäftsmodell (Business Model) das Ziel ist?

A

Fokus auf kurze Time-to-Market, Dinge später reparieren, Nutzerfeedback zur Verbesserung nutzen und nur das reparieren, womit man Geld verdient.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Was ist eine ‘Trade-off decision’ (Zielkonflikt)?

A

Man muss sich zwischen mehreren Optionen entscheiden und kann nicht alle haben. Man hat eine Ressource (z.B. Geld, Zeit) und mehrere Optionen, diese zu nutzen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Erkläre das ‘Teufelsquadrat’ (Devils-Square) nach Sneed.

A

Es beschreibt den Trade-off zwischen Qualität, Quantität (Funktionalität), Dauer und Kosten. Um z.B. Kosten und Dauer zu senken, muss man Qualität und/oder Funktionalität senken. Um die Qualität zu steigern, muss man die Funktionalität senken oder Dauer/Kosten erhöhen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was ist das Hauptproblem bei der Projektplanung zu Beginn?

A

Das Problem des fehlenden Wissens (missing knowledge). Man kennt zu Beginn nicht alle Probleme und Herausforderungen, die bis zur Lösung auftreten werden.

22
Q

Wie gehen unterschiedliche Vorgehensmodelle mit dem ‘Problem des fehlenden Wissens’ bei der Planung um?

A

Konzepte wie das V-Modell gehen davon aus, dass man das komplette Projekt planen kann. Scrum und andere Ansätze gehen Schritt für Schritt vor.

23
Q

Was ist die Hauptidee von ‘Best Practices’?

A

Wenn eine Methode als funktionierend bekannt ist, sollte dieselbe Methode wiederverwendet werden, wann immer es möglich ist.

24
Q

Was ist ein ‘Pattern Catalog’ (Musterkatalog)?

A

Eine Sammlung von Patterns (Mustern). Jedes Pattern ist eine einfach anzupassende Strategie zur Lösung eines definierten, wiederkehrenden Problems.

25
Wie unterscheidet sich ein 'Architectural Style' (Architekturstil) von einem 'Pattern'?
Ein Architekturstil ist im Allgemeinen abstrakter. Ein Pattern beschreibt eine anpassbare Lösung, während ein Stil eine Idee einer Lösungsstrategie beschreibt (z.B. Layering).
26
Was ist die Hauptidee von 'Change Management' (Veränderungsmanagement)?
Die Hauptidee ist, (relevante) Änderungen an der Organisationsstruktur oder den Artefakten der Organisation nicht zuzulassen, ohne den Change-Management-Prozess anzuwenden.
27
Wovon hängt die Dauer (kurz vs. heavy-weight) eines Change-Management-Prozesses ab?
Von der Art der Änderung. Ein Notfall-Shutdown ist extrem schnell, während die Entscheidung zur Entwicklung neuer Software ein aufwändiger (heavy-weight) Prozess ist.
28
Was ist die Hauptkritik an der Nützlichkeit von ISO 9001 für Softwareprodukte?
Der Standard stellt nur sicher, dass die Organisation QM-Prozeduren hat und diese befolgt. Es gibt keine Garantie, dass sie die besten Entwicklungspraktiken anwenden oder dass ihre Prozesse zu hochwertiger Software führen.
29
Nenne die 5 fundamentalen Prinzipien (fundamental principles) in Softwareprojekten.
1. Simplicity (Einfachheit) 2. Analogy (Analogie) 3. Completness (Vollständigkeit) 4. Provability (Beweisbarkeit) 5. Surprise minimisation (Minimierung von Überraschungen).
30
Nenne die 5 strukturellen Prinzipien (structural principles) in Softwareprojekten.
1. Decomposition (Zerlegung) 2. Encapsulation (Kapselung) 3. Locality (Lokalität) 4. Separation of concerns (Trennung der Belange) 5. Abstraction (Abstraktion).
31
Was bedeutet das Prinzip 'Simplicity' (KISS) und welchem Ziel dient es?
Finde die einfachste Lösung. Ziel: Wartbarkeit (Maintainability).
32
Was bedeutet das Prinzip 'Analogy' (Uniformity) und welchem Ziel dient es?
Dinge, die ähnlich sind, sollten ähnlich behandelt werden. Ziel: Verständlichkeit (Understandability).
33
Was bedeutet das Prinzip 'Completeness' und welchem Ziel dient es?
Betrachte alle möglichen Fälle, auch wenn sie nicht erwähnt werden. Ziel: Robustheit (Robustness).
34
Was bedeutet das Prinzip 'Provability' und welchem Ziel dient es?
Es ist immer möglich, die Erfüllung von Zielen zu überprüfen. Ziele: Zuverlässigkeit (Reliability) und Korrektheit (Correctness).
35
Was bedeutet das Prinzip 'Surprise minimisation' und welchem Ziel dient es?
Das Verhalten von etwas sollte das offensichtlichste sein. Ziele: Robustheit (Robustness) und Benutzerfreundlichkeit (Usability).
36
Was bedeutet das Prinzip 'Decomposition' und welchem Ziel dient es?
Zerlege das Produkt auf allen Ebenen in seine Komponenten und deren Beziehungen. Ziele: Verständlichkeit (Understandability) und Flexibilität (Flexibility).
37
Was bedeutet das Prinzip 'Encapsulation' (Information Hiding) und welchem Ziel dient es?
Lokale Daten sind von außen unzugänglich. Ziele: Flexibilität (Flexibility) und Verständlichkeit (Understandability).
38
Was bedeutet das Prinzip 'Locality' und welchem Ziel dient es?
Daten, die zusammengehören, sind auch physisch zusammen. Ziel: Wartbarkeit (Maintainability).
39
Was bedeutet das Prinzip 'Separation of concerns' und welchem Ziel dient es?
Dinge, die nicht miteinander in Beziehung stehen, werden getrennt und getrennt gespeichert. Ziele: Struktur, Flexibilität und Wartbarkeit.
40
Was bedeutet das Prinzip 'Abstraction' und welchem Ziel dient es?
Dinge mit einheitlichen Eigenschaften müssen identifiziert werden, auch wenn sie an verschiedenen Orten auftreten. Ziele: Wartbarkeit (Maintainability) und tieferes Verständnis des Systems.
41
Wozu führen die strukturellen Prinzipien (Zerlegung, Kapselung, Lokalität, etc.)?
Sie resultieren in hoher Kohäsion (high cohesion) und geringer Kopplung (low coupling) der Komponenten sowie einer guten Struktur.
42
Wie unterscheiden sich qualitätssichernde Methoden, die auf Organisationen vs. Personen abzielen?
Organisationen: Stellen Prozesse sicher, erzwingen deren Einhaltung und sind zertifiziert (z.B. ISO 9000). Personen: Lernen und führen Prozesse aus, lernen eine einheitliche Sprache und haben persönliche Zertifikate (z.B. ITIL).
43
Ist Qualität ein Zustand oder ein Prozess?
Man benötigt einen kontinuierlichen Prozess. Obwohl der aktuelle Zustand geprüft werden kann, ist die Qualität ohne Aktion nicht stabil (z.B. durch Veralterung der UI, geänderte Anforderungen oder Wissensverlust).
44
Ist ITIL ein analytischer oder konstruktiver Ansatz?
Hauptsächlich konstruktiv: Es führt Methoden ein, um hochwertige Software zu bauen. Es beinhaltet aber auch Prüfungen (Checks). Es basiert auf der Ausbildung und Zertifizierung von Personen.
45
Ist ISO 9000 ein analytischer oder konstruktiver Ansatz?
Konstruktiv: Es führt Methoden auf Organisationsebene ein, um hochwertige Software zu bauen.
46
Sind 'Best Practices' ein analytischer oder konstruktiver Ansatz?
Konstruktiv: Folge der 'Best Practice', um ein gutes Ergebnis zu erhalten.
47
Sind Tests ein analytischer oder konstruktiver Ansatz?
Analytisch: Sie testen die Qualität des Produkts/der Software.
48
Sind Reviews und Inspektionen ein analytischer oder konstruktiver Ansatz?
Analytisch: Sie ermitteln die aktuelle Qualität von Artefakten/Code. Ein Nebeneffekt ist der Wissenstransfer im Team.
49
Ist 'Pair Programming' ein analytischer oder konstruktiver Ansatz?
Konstruktiv: Zwei Programmierer liefern zusammen eine höhere Qualität. Es fördert auch den Wissenstransfer.
50
Sind Softwareprozessmodelle (z.B. Scrum, V-Modell) analytisch oder konstruktiv?
Überwiegend konstruktiv: Sie geben einen Prozess vor, um angemessene Qualität zu realisieren. Sie beinhalten aber auch analytische Teile (z.B. Tests), um den Zwischenstand zu prüfen.
51
Welchen Bezug hat Risikomanagement zur Softwarequalität?
Es ist nicht direkt verwandt, aber das Vermeiden von oder Vorbereiten auf Risiken kann die Qualität verbessern.
52
Welchen Bezug hat Human Resource Management (HRM) zur Softwarequalität?
Es ist nicht direkt verwandt, aber man benötigt qualifizierte und motivierte Personen, um hohe Qualität zu liefern.