Software Architektur Flashcards

1
Q

Was versteht man unter Software Architektur?

A

Software-Architektur ist die Planung einer grundlegenden Struktur, wie die zu programmierende Software aufgebaut ist. So Prinzipien wie beispielsweise “Wie kommunizieren einzelne Softwarekomponenten miteinander” sind ein wichtiger Bestandteil der Software-Architektur.

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

Welche Aussagen beschreiben Software-Architektur?

A

Es geht um Bausteine und deren Schnittstellen und Beziehungen
Baustein als allgemeiner Begriff, Komponente eine spezielle Ausprägung
Strukturierungen, Prinzipien und umfassende Konzepte
Entwurfsentscheidungen
Software-Architektur betrifft das Gesamtsystem und den gesamten Lebenszyklus

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

Durch welche Faktoren kann Software-Architektur beeinflusst werden? Nenne 3 Faktoren.

A

Produktbezogene Faktoren
Technische Faktoren
Organisatorische Faktoren
Regulatorische Faktoren
Trends
Implizites Wissen

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

Nenne 3 produktbezogene Einflussfaktoren für Software-Architektur und jeweils ein Beispiel dazu.

A

Funktionale Anforderungen → Das Programm muss mit großen Datenströmen umgehen können
Qualitätsziele → Muss skalierbar sein, gut wartbar
Qualitätsanforderungen → Benutzerfreundlichkeit, Sicherheit
Produktkosten → möglichst billig, im Budget bleiben
Geschäftsmodell → Money++

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

Was sind funktionale Anforderungen an die Software? 2 Anforderungen mit je einem Beispiel

A

Funktion - was kann unsere Software? Datenbanken verwalten?
Verhalten - macht die Software das, was ich mir erwarte? Wenn ich auf senden klicke, wird meine Kundenanfrage abgesendet?

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

Erkläre das Wesen des Kano-Modell in kurzen Worten. Was sagt es aus? Je Faktor ein Beispiel mit kurzer Erklärung.

A

Das Kano-Modell ist eine systematische Herangehensweise zur Erreichung von Kundenzufriedenheit, die von mehreren Faktoren geprägt ist

Basisfaktoren (Muss Merkmale) - grundlegendes zu erwartendes Verhalten eines Produkts, das dem Kunden nur bei Nichterfüllung bewusst wird → Handy ohne Kamera (heutzutage)

Leistungsfaktoren (Soll-Merkmale) - sind dem Kunden bewusst, sie beseitigen Unzufriedenheit oder schaffen Zufriedenheit abhängig vom Ausmaß der Erfüllung → Handy kann bis zu 20 Applikationen gleichzeitig offen haben, biometrischer Login

Begeisterungsfaktoren (Kann-Merkmale) - Merkmale, mit denen der Kunde nicht unbedingt rechnet, machen das Produkt einzigartig gegenüber der Konkurrenz → verbiegbares Handy

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

Was sind Qualitätsanforderungen an die Software?

A

Qualitätsanforderungen bestimmen das “Wie” - also wie wird Software umgesetzt

Funktionalität, Benutzerfreundlichkeit, Zuverlässigkeit, Leistung, Sicherheit, Wartbarkeit, Skalierbarkeit, Kompatibilität, Dokumentation…

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

Qualitätsanforderungen sollen SMART sein. Was bedeutet das? Kurze Erklärung.

A

sind SMART → Spezifisch, messbar, attraktiv, realistisch, terminiert

Spezifisch: Anforderungen müssen eindeutig sein
Messbar: Anforderungen müssen messbar sein
Attraktiv: Anforderungen müssen für die Person ansprechend sein
Realistisch: Anforderungen müssen möglich und realisierbar sein
Terminiert: Anforderungen muss mit einem fixen Datum festgelegt werden können

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

Was ist das AAA-Pattern?

A

Das AAA pattern ist eine Herangehensweise zum Schreiben von Unit Tests und wird in Arrange, Act und Assert gegliedert

Arrange: Erforderliche Vorbedingungen für den Test werden eingerichtet - Erzeugen von Testdaten, Initialisieren von Objekten und Setzen von Variablen
Act: Eigentliche Testaktion wird durchgeführt - zum Beispiel der Aufruf einer Methode oder eine Funktion mit den vorbereiteten Daten
Assert: Es wird überprüft, ob das Ergebnis der Testaktion dem erwarteten Ergebnis entspricht (Vergleich mit Rückgabewert)

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

Was versteht man unter Black-Box-Sichtweise auf Bausteine in der Software-Technik?

A

Black-Box-Bausteine sind geschlossene Systeme, bei denen man Daten reinwirft (Eingabe) und auf der anderen Seite Daten rauskommen (Ausgabe), ohne zu wissen, was in der Black Box passiert
ignoriert Innenleben, betrachtet Schnittstellen

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

Was bedeutet der Ausdruck “Hierarchischer Architekturstil”? Welche gibt es?

A

Hierarchie ist eine stufenmäßig auf Überordnung und Unterordnung beruhende Ordnung - Rangordnung mit einer Wertigkeit, Ordnungsrelation

Schichten und Layer, Leader & Follower, Virtual Machine, Ports & Adapter (Hexagonal)

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

Beschreibe mit eigenen Worten das Architekturmuster “Schichten und Layer”. Was sind die wesentlichen Eigenschaften.

A

Software wird in Schichten unterteilt und jede Schicht wird entkoppelt durch Schnittstellen
Die obere Schicht kann immer nur auf die untere Schicht zugreifen, es kann keine Schicht übersprungen werden

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

Benenne die 3 Bestandteile des MVC-Patterns und erkläre die Aufgabe der Bestandteile in kurzen Worten.

A

Model - enthält Daten, ist unabhängig von View und Controller, genaue Implementierung ist nicht geregelt
View - bildet mit Controller ein Paar und präsentiert die Daten (generische Verwendung)
Controller - verwaltet Model und View, wertet Benutzereingaben aus, gibt Änderungen bekannt

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

Benenne die 3 Bestandteile des MVP-Patterns und erkläre die Aufgabe der Bestandteile in kurzen Worten.

A

Model - enthält die Daten für Anzeige (wie bei MVC), eventuell Daten für View anpassen (Aggregation)

View - Baum von Widgets, keine Reaktion von Benutzeraktionen, Widgets beinhalten View und Controller von MVC, View wird über Observer aktualisiert, besitzt Interface

Presenter - das Reagieren auf User Events obliegt dem Presenter mittels Commands (Command Pattern), Presenter ändert Daten im Model, synchronisiert Änderungen zwischen Model und View

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

Was ist der entscheidende Unterschied zwischen den Architekturmustern “Schichten und Layer” und “Hexagonale Architektur”

A

Schichten und Layer teilt das System in logische Schichten und Layer, die jeweils unterschiedliche Funktionen erfüllen, jede Schicht hat bestimmte Verantwortung und Aufgaben im System und kommuniziert mit der direkt drunter liegenden Schicht; Klare Trennung von Aufgaben und Verantwortlichkeiten im System und erleichtert die Wartung und Erweiterbarkeit des Codes

Bei der hexagonalen Architektur besteht das System aus einer zentralen Domäne und einer Reihe von Ports oder Schnittstellen, über die das System mit der Außenwelt kommuniziert

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

Beschreibe die wesentlichen Prinzipien des Architekturmusters “Leader and Follower”.

A

Hierarchische Verwaltung von Zugriffen auf gemeinsame Ressourcen

ein Teilnehmer ist Primary, alle anderen Secondary
Primary darf als einziger auf die Ressource zugreifen
Secondary darf nur auf Ressource zugreifen, wenn es vom Primary die Erlaubnis bekommt
Secondary muss warten, bis er die Erlaubnis bekommt (Wartepflicht)
Secondary kann Primary signalisieren, dass er die Erlaubnis bekommen möchte

17
Q

Beschreibe die wesentlichen Prinzipien des Architekturmusters “Virtuelle Maschine”.

A

Funktionsweise
Kapselung eines Rechnersystems (oft Betriebssystem) innerhalb eines Rechners
Nachbildung eines realen Rechners
Hypervisor abstrahiert den Hostrechner
Mehrere virtuelle Maschinen auf einer realen Maschine möglich
Verschiedene Ausprägungen von rein Hardware- bis rein softwaremäßige Visualisierung

Container Systeme
Container bekommt nur notwendige Abhängigkeiten und ein Minimum an Betriebssystemanteilen
teilen sich den Betriebssystem-Kernel
sind untereinander isoliert
Klein, schnell, ressourcensparend
Nicht nur “docker”

18
Q

Was bedeutet “SOA”?

A

= Service Oriented Architecture

19
Q

Welche Ziele will man mit Hilfe der “Service Oriented Architecture” erreichen?

A

“Das Hauptziel einer Service-Orientierten Architektur (SOA) besteht darin, die Flexibilität, Agilität und Wiederverwendbarkeit von Anwendungen und IT-Systemen zu verbessern, indem sie als lose gekoppelte, wiederverwendbare Services organisiert werden.”

20
Q

Beschreibe die wesentlichen Eigenschaften von “Microservices”.

A

Microservices sind ein Architekturmuster (distributed systems)
Methode der Softwareprogrammierung
Microservices zerlegen komplexe Anwendungen in kleinste unabhängige Prozesse
Weitestgehend entkoppelt und erledigen eine kleine Aufgabe
organisiert um Business Capabilities
Unabhängiges Deployment
verbesserte Skalierung und Ressourcenausnutzung pro Service
Prozesse kommunizieren über sprachunabhängige Schnittstellen miteinander
Ermöglichen einen modularen Aufbau der Software
Implementieren das Single Responsibility Pattern

21
Q

Microservices unterliegen als Verteilte Architektur dem CAP-Theorem. Was sagt dieses Theorem aus?

A

In einem verteilten System ist es unmöglich, gleichzeitig die folgenden drei Eigenschaften zu garantieren:

Consistency (Konsistenz)
Availability (Verfügbarkeit)
Partition Tolerance (Ausfalltoleranz)

Laut dem CAP-Theorem kann ein verteiltes System zwei der Eigenschaften gleichzeitig erfüllen, jedoch nicht alle drei