Kapitel 4 - Entwurf Flashcards Preview

Software Engineering I > Kapitel 4 - Entwurf > Flashcards

Flashcards in Kapitel 4 - Entwurf Deck (37)
Loading 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
2
Q

Definition: Softwarekomponente

A

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

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
4
Q

Nennen sie die Vorteile der Verwendung von Werkzeugen im Entwurf

A
  • Effizienz
  • Wiederverwendbarkeit
  • Versionierung
  • Verteilung
  • Modellbasierte Codegenerierung
5
Q

Kategorie von Werkzeugen (Schaubild)

A
6
Q

Weitere unterstüzende Werkzeuge (Schaubild)

A
7
Q

Was ist eine IDE?

A

Anwendungsprogramm zur Entwicklung von Software

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
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
10
Q

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

A
  • Sichten
  • Stile
  • Muster
11
Q

Worauf fokusiert sich die Architektursicht?

A

Teile und Eigenschaften eines Systems

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 *

13
Q

Was sind statische Sichten und was sind dynamische Sichten?

A
  • Statisch
    • Struktur
  • Dynamisch
    • Ablaufeigenschaften (Datenfluss, Kontrollfluss, usw.)
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
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
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
Q

Architekturmuster: SCHICHTEN

Was bewirkt es?

Welche Probleme löst es?

A

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
Q

Architekturmuster: SCHICHTEN

Vorteile?

A
  • Entwurf in Abstraktionsebenen
  • Erweiterung möglich durch Einschieben von Schichten
  • Schichten-Implementierung austauschbar
27
Q

Architekturmuster: SCHICHTEN

Nachteile?

A
  • Schichtenstruktur nicht immer geeignet
  • Schichten nicht einfach zu definieren
  • Kopplung über mehrere Schichten aus Performance-Gründen sinnvoll
28
Q

Verteilungsmuster: “Client/Server”

Problem?

Lösung?

A

​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
Q

Was ist ein Thin-Client?

A
  • Nur die Benutzungsschnittstelle auf dem Client-System
  • Ähnlich zu zentralem System, aber oft mit Download-Mechanismen
30
Q

Was ist ein Fat-Client?

A
  • Teile der Fachlogik oder gesamte Fachlogik auf dem Client-System
  • Hauptfunktionen des Servers: Datenhaltung
  • Entlastung des Servers
  • Zusätzliche Anforderungen an Clients
31
Q

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
A
32
Q

Architekturmuster der Laufzeitsicht

A
  • Zentrale Steuerung
    • Call-Return
    • Master-Slave
  • Ereignis-Steuerung
    • Selective Broadcast
    • Interrupt
  • Auch Steuerungsmuster genannt
33
Q

Steuerungsmuster “Master-Slave”

Problem

Lösung

Vorteil

A

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
Q

Bewertung e-r Architektur: Gute Komponenten

A
  • 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
Q

Nennen Sie die Kriterien eines guten Entwurfs

A
  • 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
Q

Nennen sie Beispiele für nicht-funktionale Anforderungen

A
  • Reife (siehe Versionsnummer, Releasedatum)
  • Support, Lizenz
  • Preis
  • Einfachheit = Erlernbarkeit
  • Wenig Zusatzaufwand beim Programmieren anpassbar
37
Q

Architekturmuster: SCHICHTEN

Entwurfsregeln?

A

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