lesson_7 Flashcards

(50 cards)

1
Q

Was ist das Kernziel der expliziten Entscheidungsfindung in Softwareprojekten

A

Explizite Entscheidungen sind oft besser als implizite da sie Transparenz schaffen und bewusst abgewogen werden können anstatt nur Gewohnheiten zu folgen

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

Wann ist ein impliziter Entscheidungsprozess im Projektmanagement vertretbar

A

Wenn die Rahmenbedingungen wie die Programmiersprache des Vorprojekts erfolgreich waren und das neue Projekt eine sehr hohe Ähnlichkeit aufweist

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

Welche zwei Faktoren bestimmen ob eine Entscheidung explizit dokumentiert werden muss

A

Die Wichtigkeit der Entscheidung für den Projekterfolg und die Kosten beziehungsweise der Aufwand die mit einer späteren Änderung dieser Entscheidung verbunden wären

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

In welche zwei Hauptkategorien lassen sich Software-Prinzipien unterteilen

A

In fundamentale Prinzipien wie Einfachheit und Vollständigkeit sowie strukturelle Prinzipien wie Dekomposition und Kapselung

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

Nenne die fünf fundamentalen Prinzipien der Softwarequalität nach Marcus Hilbrich

A

Simpizität beziehungsweise Einfachheit Analogie Vollständigkeit Beweisbarkeit und die Minimierung von Überraschungen

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

Nenne die fünf zentralen strukturellen Prinzipien der Softwareentwicklung

A

Dekomposition Kapselung Lokalität Separation of Concerns und Abstraktion

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

Was besagt das KISS-Prinzip im Kontext der Softwarequalität

A

Keep It Small and Simple fordert dazu auf die einfachste Lösung für ein Problem zu finden um die langfristige Wartbarkeit des Systems zu garantieren

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

Warum ist das Prinzip der Analogie für die Softwarequalität entscheidend

A

Ähnliche Sachverhalte sollten einheitlich behandelt werden um durch Konventionen die Verständlichkeit des Codes für Entwickler zu erhöhen

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

Was fordert das Prinzip der Vollständigkeit von einem Software-System

A

Es müssen alle möglichen Fälle berücksichtigt werden auch wenn diese nicht explizit in den Anforderungen genannt wurden um die Robustheit zu steigern

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

Muss bei strikter Einhaltung der Vollständigkeit jeder theoretische Sonderfall im Code behandelt werden

A

Nein es ist nicht zwingend erforderlich jeden Fall aktiv zu behandeln aber alle Fälle müssen im Entwurf bedacht worden sein

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

Wie definiert sich das Prinzip der Beweisbarkeit in der Qualitätssicherung

A

Es muss jederzeit möglich sein objektiv zu prüfen ob die definierten Systemziele und Anforderungen tatsächlich erfüllt sind

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

Welche Qualitätsmerkmale werden primär durch das Prinzip der Beweisbarkeit gefördert

A

Die Zuverlässigkeit und die Korrektheit des Softwaresystems stehen hierbei im Vordergrund

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

Was ist das Hauptziel des Prinzips der Überraschungsminimierung

A

Das Systemverhalten sollte so offensichtlich und erwartbar wie möglich sein um die Robustheit und die Usability zu verbessern

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

Welches Hilfsmittel unterstützt Entwickler bei der Einhaltung der Überraschungsminimierung

A

Die konsequente Nutzung und Anwendung von etablierten Industriestandards

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

Wie funktioniert das Prinzip der Dekomposition auf verschiedenen Systemebenen

A

Das Produkt wird systematisch in seine Komponenten und deren Beziehungen zerlegt wobei dies entweder Top-Down oder Bottom-Up erfolgen kann

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

Welche Vorteile bietet eine saubere Dekomposition für das Engineering

A

Sie verbessert signifikant die Verständlichkeit komplexer Systeme und erhöht die Flexibilität bei späteren Änderungen

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

Was ist der Kernmechanismus der Kapselung

A

Lokale Daten und Implementierungsdetails werden vor dem Zugriff von außen verborgen was auch als Information Hiding bezeichnet wird

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

Wie trägt Kapselung zur Reduzierung der Systemkomplexität bei

A

Durch die Minimierung von Schnittstellen wird die Abhängigkeit zwischen Modulen verringert was die Verständlichkeit und Flexibilität erhöht

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

Was versteht man unter dem Prinzip der Lokalität

A

Daten und Logik die logisch zusammengehören sollten auch physisch nah beieinander im Quellcode oder im Speicher abgelegt werden

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

Welches Qualitätsmerkmal wird durch hohe Lokalität besonders gestärkt

A

Die Wartbarkeit des Systems da Änderungen an zusammengehörigen Daten an einer zentralen Stelle erfolgen können

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

Definiere das Prinzip der Separation of Concerns

A

Dinge die fachlich oder technisch nicht direkt miteinander verwandt sind müssen strikt getrennt und separat gespeichert beziehungsweise verwaltet werden

22
Q

Welche drei architektonischen Vorteile liefert die Separation of Concerns

A

Eine klare Systemstruktur erhöhte Flexibilität bei Modultests und eine verbesserte langfristige Wartbarkeit

23
Q

Was ist das Ziel der Abstraktion im Software-Entwurf

A

Die Identifikation von uniformen Eigenschaften über verschiedene Systemstellen hinweg um redundante Strukturen zu vermeiden

24
Q

Welchen indirekten Vorteil bietet die Anwendung von Abstraktion für das Entwicklungsteam

A

Sie führt zu einem tieferen Systemverständnis da die zugrunde liegenden Muster und Essenzen der Logik extrahiert werden

25
Was ist das resultierende Gesamtziel aller strukturellen Prinzipien
Das Erreichen einer hohen Kohäsion innerhalb der Komponenten und einer losen Kopplung zwischen den Komponenten
26
Warum führt hohe Kohäsion zu besserer Softwarequalität
Weil Komponenten mit einer klaren und fokussierten Aufgabe leichter zu testen zu verstehen und zu warten sind
27
Was bedeutet lose Kopplung in einer Softwarearchitektur
Dass Komponenten nur minimale Abhängigkeiten untereinander haben wodurch Änderungen in einem Modul kaum Auswirkungen auf andere Module besitzen
28
Wie beeinflusst die Wahl der Programmiersprache die implizite Entscheidungsfindung
Sie fungiert oft als technischer Standard der ohne erneute Prüfung übernommen wird wenn das Team bereits Expertise darin besitzt
29
Was ist die Gefahr wenn das Prinzip der Überraschungsminimierung ignoriert wird
Es sinkt die Usability und es kommt vermehrt zu Fehlbedienungen oder unerwarteten Systemzuständen die die Robustheit gefährden
30
Welche Beziehung besteht zwischen Dekomposition und Verständlichkeit
Durch die Zerlegung in kleinere überschaubare Einheiten wird die kognitive Last für den Entwickler reduziert
31
Warum ist Information Hiding ein Synonym für Kapselung
Weil beide Konzepte darauf abzielen interne Zustände zu schützen und nur notwendige Interaktionen über definierte Schnittstellen zu erlauben
32
Was beschreibt die physische Zusammengehörigkeit im Prinzip der Lokalität
Dass der Code und die zugehörigen Datenstrukturen idealerweise in derselben Datei oder demselben Modul lokalisiert sind
33
Wie hängen Separation of Concerns und Modularität zusammen
Separation of Concerns ist die methodische Grundlage um ein System in unabhängige und austauschbare Module zu unterteilen
34
Welches Prinzip fordert dass Dinge die ähnlich sind auch ähnlich gehandhabt werden
Das Prinzip der Analogie beziehungsweise Uniformität
35
Warum ist die Beweisbarkeit für die Korrektheit einer Software essentiell
Ohne Verifizierbarkeit der Anforderungen kann die Korrektheit gegenüber der Spezifikation nicht formal oder empirisch belegt werden
36
Inwiefern fördert Abstraktion die Wartbarkeit
Durch die Zusammenfassung gleicher Eigenschaften müssen Änderungen an der Logik nur an einer abstrakten Stelle statt an vielen Orten durchgeführt werden
37
Was ist ein praktisches Beispiel für die Minimierung von Schnittstellen
Die Verwendung von privaten Attributen in einer Klasse die nur über spezifische öffentliche Methoden verändert werden können
38
Was versteht man unter dem Begriff Robustheit im Kontext der Vollständigkeit
Die Fähigkeit des Systems auch bei nicht explizit spezifizierten Eingaben oder Zuständen stabil zu bleiben
39
Wie beeinflusst die Komplexität einer Entscheidung deren Dokumentationspflicht
Je komplexer und folgenreicher eine Entscheidung desto eher sollte sie explizit getroffen und als Architekturentscheidung festgehalten werden
40
Was ist der Fokus des Software-Quality Engineering nach Hilbrich
Die systematische Anwendung von Prinzipien zur Sicherstellung von minimalen Qualitätsstandards in Softwareprojekten
41
Welche Rolle spielen Konventionen beim Prinzip der Analogie
Konventionen stellen sicher dass alle Entwickler demselben Muster folgen was den gesamten Quellcode konsistent macht
42
Was bedeutet Top-Down Dekomposition
Die Zerlegung des Systems vom groben Ganzen ausgehend in immer feinere Teilkomponenten
43
Was bedeutet Bottom-Up Dekomposition
Der Aufbau des Gesamtsystems durch die Kombination von bereits existierenden oder neu entwickelten Basiskomponenten
44
Warum ist die Trennung nicht verwandter Belange für die Flexibilität wichtig
Es erlaubt den Austausch einzelner Belange ohne das Gesamtsystem in Mitleidenschaft zu ziehen
45
Was ist das Gegenteil von hoher Kohäsion
Eine schwache Kohäsion bei der eine Komponente viele unterschiedliche und nicht zusammenhängende Aufgaben wahrnimmt
46
Was ist das Gegenteil von loser Kopplung
Eine starke Kopplung bei der Module so eng miteinander verflochten sind dass sie nicht isoliert verändert werden können
47
Warum ist Einfachheit oft schwerer zu erreichen als Komplexität
Weil es tiefe Analyse erfordert um die Essenz eines Problems zu finden und unnötigen Overhead wegzulassen
48
Welches Prinzip wird durch die Verwendung von Design Patterns oft unterstützt
Das Prinzip der Analogie da Patterns bewährte und einheitliche Lösungen für wiederkehrende Probleme bieten
49
Was ist die primäre Zielgruppe für das Prinzip der Verständlichkeit
Die Entwickler und Maintainer die den Code zu einem späteren Zeitpunkt lesen und modifizieren müssen
50
Was ist der wichtigste Outcome einer guten Softwarestruktur
Ein System das durch hohe Kohäsion und lose Kopplung langlebig und effizient anpassbar bleibt