Kapitel 4 - Entwurf Flashcards

1
Q

Definition: Softwarearchitektur

A
  • Eine Software-Architektur wird durch die Beschreibung von Software-Komponenten und deren Verbindungen und Interaktionen untereinander definiert
  • Softwarearchitektur ist eine Struktur und grundlegende Organisation eines Systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definition: Softwarekomponente

A

Aktive Einheiten einer Architektur, die Aufgaben durch interne Berechnungen und externe Kommunikation mit anderen Komponenten des Systems bewerkstelligen

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

Was ist Objektorientiertes Design (ODD)

A
  • Architektur-Entwurf basierend auf objektorientierten Konzepten wie Klassen und Objekten
  • Lösung zum Problem, das durch OOA analysiert wurde
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Nennen sie die Vorteile der Verwendung von Werkzeugen im Entwurf

A
  • Effizienz
  • Wiederverwendbarkeit
  • Versionierung
  • Verteilung
  • Modellbasierte Codegenerierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Kategorie von Werkzeugen (Schaubild)

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

Weitere unterstüzende Werkzeuge (Schaubild)

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

Was ist eine IDE?

A

Anwendungsprogramm zur Entwicklung von Software

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

Was für gängige Komponenten enthält eine IDE?

A
  • Texteditor
  • Compiler bzw. Interpreter
  • Linker
  • Debugger
  • Quelltextformatierungsfunktion

Kann auch enthalten:

  • Versionsverwaltung
  • Projektmanagement
  • UML-Modellierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Nennen Sie das Vorgehen für die Werkzeugwahl

A
  1. Definition der funktionalen und nicht-funktionalen Anforderungen
  2. Priorisierung der Anforderungen
  3. Erstellung der Long List (Liste möglicher Werkzeuge)
  4. Auswertung von Produktvergleichen
  5. Eigene Recherchen
  6. Software-Test -> Short List und Entscheidung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Möglichkeiten gibt es für den Entwurf und der Bewertung von Architekturen?

A
  • Sichten
  • Stile
  • Muster
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Worauf fokusiert sich die Architektursicht?

A

Teile und Eigenschaften eines Systems

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

Warum gibt es Sichten?

A
  • Komplexe Systeme lassen sich nicht mit einer einzigen Beschreibung erfassen
  • Unterschiedliche Stakeholder arbeiten mit unterschiedlichen Informationen

*Eine Art Brille durch die man eine Architektur betrachtet, die jedoch nur bestimmte Aspekte der Architektur unter bestimmten Gesichtspunkten sichtbar macht *

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

Was sind statische Sichten und was sind dynamische Sichten?

A
  • Statisch
    • Struktur
  • Dynamisch
    • Ablaufeigenschaften (Datenfluss, Kontrollfluss, usw.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was sind Architekturstile?

A
  • Beschreiben die grundlegende Art des Aufbaus eines Softwaresystems
    • Struktur
    • physikalische Verteilung
    • Zuordnung von Prozessen und Prozessoren
    • Kommunikationsformen und -protokolle
    • Haben grundlegenden Einfluss auf die Qualität des Gesamtsystems
  • In konkreten Systemen findet man oft einen Mix von Architekturstilen - meist sind nur Teilsysteme in einem reinen Stil
  • Sind im Vergleich zu Architekturmustern gröber und abstrakter
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was sind Architekturmuster?

A
  • Muster beschreiben häufig auftretende Entwurfsprobleme und dazu universell verwendbare generische Lösungsschemen
  • Entwurfsmuster sind weniger abstrakt als Architekturstile und beziehen sich konkret auf die Softwarekodierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was machen Architekturmuster?

A
  • Architekturmuster beschreiben abstrakt eine bewährte Lösung für eine Klasse ähnlicher Probleme
  • Architekturmuster machen Erfahrungswissen für andere zugänglich
  • Architekturmuster sind eine gute Grundlage, um Entscheidungen und Alternativen zu diskutieren
17
Q

In welche Sichten sind Architekturmuster zu unterscheiden?

A
  • Komponentensicht
  • Physische Sicht
  • Laufzeitsicht
18
Q

Beschreiben Sie die Musterstruktur (5)

A
  • Ziel: Was soll erreicht werden
  • Kontext: abstrakte beschreibung der Situation
  • Problem: Wieseo ist es in diesem Kontext schwierig, das Ziel zu erreichen?
  • Wirkkräfte: Welche Kräfte bewirken den Konflikt, de dem Problem zugrunde liegt?
  • Lösung: Wie kann man das Problem lösen?
19
Q
  • Architekturmuster: KETTE*
  • Was bewirkt es?*
  • Welche Probleme werden damit gelöst?*
A

Was bewirkt es:

  • Aufteilung der Verarbeitung des Datenstroms in einzelne unabhängige Schritte
  • Einzelne Schritte werden in verschiedene Komponenten ausgelagert

Welche bisherigen Probleme damit gelöst werden:

  • austauschbarkeit der Schritte
  • leichte Wartbarkeit
  • Wiederverwendbarkeit in anderen Anwendungen
  • Implementation von unterschiedlichen Entwicklern möglich
  • Parallele Verarbeitung möglich
  • Kann auf verschiedenen Servern laufen
20
Q
  • Architekturmuster: KETTE*
  • Nennen sie Vorteile*
A
  • Kompositionalität erleichtert Verständnis und Erweiterung
  • Wiederverwendung einfach zu erreichen
  • Analyse auf bestimmte Eigenschaften relativ leicht möglich (Durchsatz, Deadlockfreiheit,….)
21
Q

Architekturmuster: KETTE

Nennen sie Nachteile

A
  • Stapelverarbeitung ungeeignet für moderne interaktive Systeme oder kurze Reaktionszeiten
  • Korrespondenz (Zusammenführung) zwischen verschiedenen Strömen schwierig
  • Zusätzlicher Aufwand für Konversion von Daten in einheitliches Schnittstellenformat
22
Q

Architekturmuster: REPOSITORY

Was bewirkt es?

Welche Probleme werden damit gelöst?

A

Was es bewirkt:

  • Einführung einer zentralen Stelle für die Basisfunktion und Daten
  • Zugriff auf zentrale Stelle nur nach Zugangsprüfung

Welche Probleme es löst:

  • Vorhandene Menge an Basisfunktionen um Daten zu bearbeiten
  • Basisfunktionen sollen über verschiedene Wege aufrufbar sein
  • Zugriff auf Basisfunktionen und Daten soll gesichert sein
  • Varianten in der Zugriffskoordination und Benachrichtigung
23
Q

Architekturmuster: REPOSITORY

Vorteile?

A
  • Gesamtsicht des Systemzustands
  • Entkopplung der Werkzeuge, damit hohe Erweiterbarkeit
  • Wiederverwendung des Repository und seiner Struktur
24
Q

Architekturmuster: REPOSITORY

Nachteile?

A
  • Zugriffskoordination kann “Flaschenhals” werden oder Inkonsistenzen verursachen
  • Lokale Datenhaltung in den Werkzeugen birgt Gefahr der Inkosistenz und benötigt aufwendige Benachrichtigungsmechanismen
  • Einheitliche Schnittstelle für alle Werkzeuge nötig
25
Architekturmuster: SCHICHTEN Was bewirkt es? Welche Probleme löst es?
Was es bewirkt: * Aufbau des Systems in Schichten * Festlegung von festen **definierten Schnittstellen** * Jede Schicht **bietet** Dienste (nach oben) und **nutzt** Dienste (nach unten) Welche Probleme werden dadurch gelöst: * Einfacher Aufbau eines Systems * Funktionen sollen möglichst getrennt voneinander aufgebaut sein * Aufruf von Funktionen nur in eine Richtung * Ermöglichung der sequentiellen und parallelen Entwicklung des Systems
26
Architekturmuster: SCHICHTEN Vorteile?
* Entwurf in **Abstraktionsebenen** * Erweiterung möglich durch **Einschieben** von Schichten * Schichten-Implementierung **austauschbar**
27
Architekturmuster: SCHICHTEN Nachteile?
* Schichtenstruktur **nicht immer** geeignet * Schichten **nicht einfach** zu definieren * **Kopplung** über mehrere Schichten aus Performance-Gründen **sinnvoll**
28
Verteilungsmuster: "Client/Server" Problem? Lösung?
​Problem: * Zentrale Datenhaltung * Fachlogik und Systemfunktionen Lösung * Sogenannte "Two-Tier" Client/Server-Architektur * Client * Benutzerschnittstelle * Einbindung in Geschäftsprozesse * Entkoppelt von Netztechnologie und Datenhaltung * Server * Datenhaltung, evtl Fachlogik
29
Was ist ein Thin-Client?
* Nur die **Benutzungsschnittstelle** auf dem Client-System * Ähnlich zu zentralem System, aber oft mit **Download-Mechanismen**
30
Was ist ein Fat-Client?
* **Teile der Fachlogik oder gesamte Fachlogik** auf dem Client-System * Hauptfunktionen des Servers: **Datenhaltung** * **Entlastung** des Servers * Zusätzliche Anforderungen an Clients
31
Verteilungsmuster: "Three-Tier Client/Server" Wie löst dieses muster folgende Probleme: * Trennung Fachlogik und Systemfunktionen von Daten * Zentraler Ort für Fachlogik und Systemfunktionen * Unabhängiger Ort für Daten
32
**_Architekturmuster der Laufzeitsicht_**
* Zentrale Steuerung * Call-Return * Master-Slave * Ereignis-Steuerung * Selective Broadcast * Interrupt * Auch Steuerungsmuster genannt
33
Steuerungsmuster "Master-Slave" Problem Lösung Vorteil
Problem: * Zentrale periodische Abfrage von Zustandsänderungen * Reaktion auf Ereignisse durch zentralen Programmteil Lösung * Verwendung einer zentralen Endlosschleife (Master) zur Ereignisbehandlung * Master prüft, ob Ereignisse vorliegen oder Zustandsänderungen erfolgt sind * Führt dann entsprechende Aktivitäten durch * Master reagiert auf entsprechende Zustandsänderungen oder Ereignisse Vorteile Gut um Realzeitsysteme zu konstruieren ABER: Jedes aufgerufene Prgramm darf bestimmte Schranke an Zeit nicht überschreiten.
34
**_Bewertung e-r Architektur: Gute Komponenten_**
* Haben definierte Schnittstellen -\> können einfach kombiniert und leicht ausgetauscht werden * Große Kohäsion (innerer Zusammenhalt) * Schwache Kopplung (über definierte Schnittstellen) * Offenheit für Erweiterungen * Geschlossenheit für Änderungen
35
**_Nennen Sie die Kriterien eines guten Entwurfs_**
* **Hohe Kohäsion** * Elemente sollen in Komponenten zusammengefasst werden, die inhaltlich zusammengehören * **Niedrige Kopplung** * Einzelne Komponenten sollen möglichst unabhängig voneinander sein * **Daneben allgemeine Eigenschaften** * Korrektheit * Anpassbarkeit * Verständlichkeit * Ressourcenschonung
36
*Nennen sie Beispiele für nicht-funktionale Anforderungen*
* Reife (siehe Versionsnummer, Releasedatum) * Support, Lizenz * Preis * Einfachheit = Erlernbarkeit * Wenig Zusatzaufwand beim Programmieren anpassbar
37
Architekturmuster: SCHICHTEN Entwurfsregeln?
Benutzungsschinttstelle Fachlicher Kern Persistenzschicht * Benutzerschnittstelle greift nie direkt auf Datenhaltung zu * Persistenzschicht verkapselt Zugriff auf Datenhaltung, ist aber nicht identisch mit dem Mechanismus der Datenhaltung (z.B. Datenbank) * Fachlicher Kern basiert auf dem Analyse-Modell