Architekturentwurf und Architekturmodellierung Flashcards

1
Q

Ziele des Architekturentwurfs

A

Ziele des Architekturentwurfs:
1. Entwurf eines klar strukturierten Systems mit einem tragfähigen
Komponentenmodell und expliziten, schlanken Schnittstellen.
2. Entwurf einer durchgängigen Architektur mit explizit gewählten Stilen
und Mustern.
3. Dokumentation einer Architektur, die eine kontinuierliche
Qualitätssicherung zur Sicherstellung der Problemangemessenheit und
der Überprüfung der Auswirkungen von Änderungen ermöglicht.

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

Iterativ-Inkrementeller Architekturprozess

A
  1. Analyse des Kontexts und der Anforderungen
  2. Entwicklung von Architektursichten und technischen Konzepten
  3. Evaluierung von Architektur- und Entwurfsentscheidungen
  4. Überwachung und Überprüfung der Architekturrealisierung
    => 1.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Datenmodellierung im Systementwurf

A

Analyse -> Modellierung als UML-oder ER-Modell -> Umwandlung von UML zur ER-Modell -> Nutzung der Datenmodelle im Entwurf und der Implementierung des Systems

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

Analyseklassen

A

Notation: UML
Objekte: Faachgegenstände
Klassen: Fachbegriffe
Vererbung: Begriffsstruktur
Annahme perfekter Technologie
Funktionale Essenz
Grobe Strukturskizze

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

Entwurfsklassen

A

Notation: UML
Objekte: Softwareeinheiten
Klassen: Schemata
Vererbung: Programmableitung
Erfüllung konkreter Rahmenbendingungen
Gesamtstruktur des Systems
Genaue Strukturdefinierung

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

Data-Driven Design (DDD)

A
  • Welche Daten müssen im System repräsentiert werden?
  • Ausgehen von Analyseklassen
    -> Noun Identification
  • Sammeln aller für das System relevanten Daten
    Objekte der Domäne
    Rollen
    Ereignisse
    Ein- und Ausgabeobjekte von Aktivitäten
  • Aufteilung der Daten auf Klassen, die sie repräsentieren
  • Anschließend Zuordnung von Verantwortlichkeiten
    zur Realisierung der Systemfunktionen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Responsibility-Driven Design (RDD)

A
  • Wie werden die Verantwortlichkeiten verteilt?
  • Ausgehen von Sammlung der Systemfunktionen
    funktionale Anforderungen
    Use Cases, deren Abhängigkeiten und Prioritäten
    abgeleitete Systemaufgaben
  • Aufteilung der Verantwortlichkeiten auf Klassen
  • Faustregel: maximal drei Verantwortlichkeiten pro Klasse
    -> sonst Klasse aufteilen!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

CRC-Cards

A
  • Class
  • Zugeordnete Verantwortlichkeiten (Responsabilies), realisiert durch Operationen
  • Collaborators: Klassen die an der Realisierung der Verantwortlichkeiten beteiligt sind
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Inkrementelle Modellierung

A

Iterative Verfeinerung der Datenmodelle
- Finden beteiligter Klassen
- schrittweises Hinzufügen von Assoziationen
- schrittweises Hinzufügen von Attributen und Operationen
- schrittweises Hinzufügen von Multiplizitäten, Navigierbarkeiten etc.

Refactoring:
- Veränderung der Modelle (oder von Code),
- ohne das sichtbare Verhalten zu beeinflussen, z.B.
- Neuzuordnung von Operationen, Assoziationen etc.
- Beseitigung von überlappenden Verantwortlichkeiten
-> Abstraktionen (Auslagern in gemeinsame abstrakte Oberklasse)
-> lose Kopplung der Klassen!

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

8 Goldenen Regeln für Interface Design

A
  1. Strebe nach Konsistenz
  2. Strebe nach universeller Bedienbarkeit
  3. Biete informatives Feedback an
  4. Gestalte Dialoge so, dass sie zu einem Abschluss führen
  5. Verhindere Fehler
  6. Erlaube die Umkehrung von Aktionen (“undo”)
  7. Gib dem Nutzer das Gefühl der Kontrolle
  8. Reduziere die Belastung für das Kurzzeitgedächtnis
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Mock-UI

A

Simulierte Benutzeroberflächen, die die visuellen und interaktiven Aspekte der Software darstellenm aber ohne tatsächliche Funktionalität

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

Was ist zu beachten bei der Modellierung von Nutzungsschnittstellen?

A

Design-Richtlinien (”User Interface Design Guidelines”)
- Richtlinien für die Gestaltung von grafischen Benutzungsschnittstellen
- Fördern Konsistenz der Benutzeroberflächen, damit die Nutzer sich zurechtfinden

Formular-basiertes Arbeiten
- “Page Flow” für komplexe Anwendungen
- Legt fest, wie Dialoge und Formulare aufeinander aufbauen und wie zwischen diesen navigiert wird

Multimodale Nutzungsschnittstellen
- Unterstützung unterschiedlicher Eingabekanäle (z.B. Tastatur, Maus, Sprache) und
Ausgabekanäle (z.B. Text, Sprache)

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

Datensicherheit und Datenschutz (Architekturentwurf)

A

Datensicherheit:
- Datensicherung
- Maßnahmen zum Schutz von Daten bei hrer Bearbeitung
- Sicherstellung von Vertraulichkeit, Integrität und Verfügbarkeit

Datenschutz:
- Maßnahmen zur Verhinderung unerwünschter Folgen bei der Bearbeitung, Speicherung und Löschung von Daten
- Sicherstellung der Zugriffssicherheit
- Schutz vor unbefugtem Zugriff durch Dritte

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

Fehlerbehandlung

A
  • Softwaresysteme müssen nicht nur bei korrekter Bedienung zuverlässig reagieren
  • Fehlerhafte Eingaben oder unsach- gemäße Bedienung sollen nicht zu
    Systemzusammenbruch oder unerwünschten Datenverlusten führen
  • Robuste Syteme betreiben Ausnahme- oder Fehlerbehandlung, um kontrolliert zu reagieren
  • Softwarearchitektur sollte Konzeption einer umfassenden
    Fehlerbehandlung enthalten, idealerweise in ausschließich dafür
    zuständiger Komponente
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Der Grobentwurf

A

Der Grobentwurf: Entwicklung der Systemarchitektur
* Zerlegung des Systems in Komponenten und Beschreibung ihrer
Schnittstellen

Unterscheiden:
- Black-Box-Sicht (Außensicht): Nur die Schnittstelle der Komponente nach außen wird angegeben, die Realisierung ist nach außen hin verborgen.
- White-Box-Sicht (Glas-Box oder Innensicht): Die Realisierung der Komponente (interner Aufbau) wird betrachtet.

+++
* Der Komponentenentwurf folgt dann den gleichen Prinzipien wie der
Systementwurf

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

Allgemeine Qualitätsanforderunen an Komponenten

A
  • Genauigkeit der Spezifikation
  • Reife (Geringe Versagenshäufigkeit)
  • Flexibilität/Fehlertoleranz
  • Robustheit (Wiederaufsetzbarkeit)
  • Effizienz (Speicherplatz und Laufzeit)
  • Test und Verifizierbarkeit
17
Q

Der Feinentwurf

A
  • Untergliederung einer Komponente in Module/Klassen
  • Auch: Implementierungsarchitektur
  • Verfeinerung des Grobentwurfs
  • Ziel ist Menge programmiertechnisch realisierbarer Module/Klassen
18
Q

Softwarearchitektur zur Entwurfs- und Laufzeit

A

Verfeinerung mit Fokus auf Entwurfszeit (Design Time):
- Festlegung der Beziehungen zwischen den Ausgangskomponenten und den für
deren Implementierung genutzten Modulen/Klassen
- Spezifikation der Module/Klassen
- Identifikation von Möglichkeiten zur Wiederverwendung

Verfeinerung mit Fokus auf Laufzeit (Runtime):
- Deployment (welche Komponenten werden auf welcher Hardware ausgeführt)
- Scheduling (wann werden Komponenten zur Ausführung gebracht)

19
Q

Verfeinerung von Komponenten

A

Schrittweise Verfeinerung von Komponenten (Idealvorstellung):
1. Der Aufgabenumfang wird schrittweise zugeschnitten. Das bedeutet,
dass die Spezifikation schrittweise vervollständigt wird.
2. Die Spezifikation wird in eine in der Regel implementierungsnähere,
effizientere Form gebracht.
3. Die Komponente wird weiter in Teilkomponenten zerlegt und es
werden Implementierungsdetails hinzufügt.

20
Q

Dokumentation der Architektur

A
  • Gründliche Dokumentation ist wichtig!

Verschieden Arten der Dokumentation:
- Interne Entwicklungsdokumente (z.B. Systemarchitektur)
- Vertriebsschriften (z.B. Angebot, Pflichtenheft)
- Einführungsschriften (z.B. Installationsanleitungen)
- Betriebshandbücher (z.B. Benutzer- oder Administratorenhandbücher)

+++
* Dokumentation sollte während der Entwicklungsarbeit erstellt werden
(Nachdokumentation ist aufwendig und fehleranfällig)

21
Q

Das Pflichtenheft

A

Pflichtenheft:
* Erstellt auf Basis des Lastenhefts als Ergebnis der Erstelllung der
Systemanforderungen, ergänzt und präzisiert dieses
* Beschreibt die einzelnen Funktionen, die das System in seiner
Einsatzumgebung anbietet
* Zusätzlich: Anforderungen an Entwicklungsumgebung, Dokumentation,
Qualitätsanforderungen, rechtliche Rahmenbedingungen
* Grundlage des Entwicklungsauftrags, Basis für das rechtlich verbindliche
Angebot

22
Q

Inhalte des Pflichtenhefts

A
  • Abgrenzung des Aufgabenbereichs
  • Festlegung der Systemschnittstellen
  • Festlegung der Produktfunktionen
  • Festlegung der Leistungsmerkmale
  • Festlegung der Benutzungsschnittstelle
  • Festlegung des groben Projektplans
  • Festlegung des Risikopotentials
23
Q

Bestandteile einer Architekturdokumentation

A

Architekturüberblick
- wesentliche Überlegungen, grundsätzliche Architektur- und Entwurfsentscheidungen
- Grundlegende Systemstruktur und Kernfunktionalität
* Dokumentationsüberblick
- Zusammenfassung der Architekturdokumentation, “Meta-Dokumentation”

Architekturpräsentation
- Überblickspräsentation (kompakt)
- Detaillierte Darstellung (Wallpaper)

Entwicklungsprozess
- Handreichung für Entwickler
- Auflistung von Werkzeugen und Methoden

24
Q

Qualitätssicherung des Architekturentwurfs

A
  • Schwierig!
  • Korrektheit des Entwurfs bezüglich der Systemanforderungen
  • Weitere Qualitätsanforderungen
  • Probleme zeigen sich häufig erst bei Implementierung oder Nutzung
25
Q

Evaluation von Systementwürfen

A
  • Architekturverifikation
  • Leistungsabschätzung
  • Prototyping im Architekturentwurf
  • Architekturreviews