Grundlagen Flashcards

1
Q

Was sind die gemeinsamen Konzepte der unterschiedlichen Architekturdefinitionen?

A

Bausteine (Building Blocks, Komponenten, Packages), Beziehungen (relationships) zwischen den Bausteinen, Beziehungen der Bausteine zur Umwelt (Außenwelt, Kontext), Prinzipien, Regeln, Guidelines…

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

Was ist das wichtigste Entwurfsziel?

A

Qualität

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

Warum nimmt Softwarearchitektur eine zentrale Roll in Projekten ein?

A

Sie unterstützt den Übergang von der Analyse- zur Implementierungsphase und ist somit Teil des Software Lifecycles.

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

Was sind die für eine Architektur typischen Sichten auf ein System?

A
  • Kontextabgrenzung (Vogelperspektive & Nachbarsysteme)
  • Laufzeitsicht
  • Bausteinsicht
  • Verteilungssicht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was macht eine gute Softwarearchitektur aus?

A
  • Definition von Design Guidelines
  • Spezifikation notwendiger Eckpunkte
  • Schafft Verständnis des Systems bei den Stakeholdern
  • Dokumentation von Designentscheidungen
  • Sinnvolle Aufteilung von Komponenten
  • Sicherstellung der Erfüllung funktionaler und nicht-funktionaler Anforderungen an das System
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind die Ziele von Softwarearchitektur?

A
  • High-Level Struktur des Systems festlegen => Anforderungen und Qualitätsziele werden erfüllt
  • Zentrale Designparadigmen festlegen => Konsistenz im Entwurf (gleiche Probleme werden auf dieselbe Art gelöst)
  • Zuweisen von gewünschten Funktionalitäten zu Systembausteinen => Verständlichkeit des Systems wird sichergestellt
  • Anforderungen an Qualität festlegen => Nachvollziehbarkeit der Designentscheidungen
  • Unterstützung des Entstehungsprozesses, der Wartung und des Betriebs des Systems => Fokus auf Langlebigkeit und Wartbarkeit
  • Stakeholder unterstützen, das System zu verstehen => Wiederverwendbarkeit von Systemkomponenten oder Konzepten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was sind die Aufgabenbereiche der Softwarearchitektur?

A
  • Qualitätsanforderungen und -ziele erfüllen
  • Konzeptionelle Integrität (Konsistenz)
  • Verständlichkeit des Systems sicherstellen
  • Fokus auf Langlebigkeit
  • Unterstützung des gesamten Lebenszyklus
  • Vereinfachung der Wiederverwendung von Bestandteilen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was bedeutet Komplexität?

A

Complexity is the degree to which a system’s design or code is difficult to understand because of numerous components or relationships among components

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

Welche Einflussfaktoren auf eine Softwarearchitektur gibt es?

A
  • Funktionale Anforderungen
  • Nichtfunktionale/Qualitätsanforderungen
  • Externe Einflussfaktoren

Architekten prüfen die Anforderungen hinsichtlich der Umsetzbarkeit und stellen ihre korrekte Umsetzung sicher

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

Welche Aufgaben hat ein Softwarearchitekt?

A
  • Anforderungen und Randbedingungen klären
  • Die Architektur evaluieren
  • Architektur bewerten und kommunizieren
  • Architektur entwerfen oder auswählen
  • Implementation begleiten und anleiten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was sind die drei Grundmotive eines Architekten?

A
  • Effektivität
  • Agilität
  • Pragmatismus
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie lautet der Satz von Conway und was bedeutet er?

A

“Die Strukturen von Organisationen und der von ihnen entwickelten Architekturen sind isomorph.”

Die Entwurfsentscheidungen, die Architektur und das System haben auch Auswirkungen auf die Organisation.

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

Wie entstehen Softwarearchitekturen nicht?

A
  • Entkoppelt von der Realität echter Systeme
  • Losgelöst von Kunden, Auftraggebern und dem Entwicklerteam
  • Angepasst an eine bestimmte Technologie
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was sind die Stationen des Design Cycle?

A
  1. Start: Informationen sammeln, Ideen für das System entwickeln
  2. Anforderungen und Randbedingungen klären
  3. Risiken identifizieren
  4. Strukturen und technische Konzepte entwerfen
  5. Architektur kommunizieren
  6. Implementation begleiten und überwachen
  7. Die Architektur bewerten
  8. Ziel: die Auslieferung des Systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was sind die unterschiedlichen nichtfunktionalen bzw. Qualitätsanforderungen?

A
  • Übertragbarkeit
  • Funktionalität
  • Effizienz
  • Kompatibilität
  • Benutzbarkeit
  • Zuverlässigkeit
  • Sicherheit
  • Wartbarkeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie werden Qualitätsanforderungen konkretisiert und was sind die Eigenschaften dieses Hilfsmittels?

A

Qualitätsanforderungen werden über Szenarien konkretisiert. Diese enthalten

  • den Auslöser (stimulus)
  • die Quelle des Auslösers (source)
  • die Umgebung (environment)
  • den Systembestandteil (artifact)
  • die Antwort des Systems durch seine Architektur (response)
  • die Antwortmetrik (response measure)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wer sind für eine Architektur relevante Stakeholder und wie kann man deren Interesse gut dokumentieren?

A
  • Marketing (neue Features)
  • Management (kostengünstig)
  • IT Operations (Stabilität)
  • Maintenance (Erweiterbarkeit)
  • User (Benutzbarkeit)

Die Akteure können in einer Stakeholder-Tabelle dokumentiert werden

18
Q

Was sind organisatorische Einflussfaktoren auf die Architektur?

A
  • Struktur der Organisation
  • Ressourcen
  • Standards der Organisation
  • Juristische Faktoren
19
Q

Was sind typische Risiken im Design Lifecycle?

A
  • Begrenze Verfügbarkeit der Ressourcen
  • Eignung der Ressourcen
  • Fehlende Expertise
  • Neue ungetestete Produkte
  • Kritische externe Interfaces
  • Verfügbarkeit technischer Infrastruktur
  • Unzureichend formulierte Anforderungen
  • Viele Änderungen der Anforderungen
  • Fehlende Dokumentation
  • Mehrdeutigkeit
  • Fehlende Priorisierung
  • Enger Zeitplan
20
Q

Welche Vorgehensweisen gibt es beim iterativen/inkrementellen Architekturentwurf?

A
  • top-down (abstrakt zu detailliert)
  • bottom-up (detailliert zu abstrakt)
  • outside-in (ausgehend von externen Schnittstellen zum Inneren des Systems)
  • inside-out (Systeminneres zu Schnittstellen)
21
Q

Welche drei Konzepte charakterisieren die Entwurfsgrundlagen einer Architektur?

A
  • Maximen (werden als allgemeingültig vorausgesetzt)
  • Prinzipien (konkrete, etablierte Regeln des methodischen Software Engineering)
  • Heuristiken (Daumenregeln oder Handlungsempfehlungen)
22
Q

Was sind die Maximen der Softwarearchitektur (direkt auf den Code bezogen)?

A
  • KISS (Keep it Small and Simple)
  • YAGNI (You Aren’t Gonna Need It)
  • DRY (Don’t Repeat Yourself)
23
Q

Welche Maximen gibt es, die sich nicht direkt auf den Code beziehen?

A
  • Es gibt kein Patenrezept
  • Änderungen sollten erwartet und begrüßt werden
  • Qualitätsanforderungen sollten immer eingehalten werden
  • Die Stakeholder beurteilen den Erfolg von Lösungen
  • Voraussetzungen, Annahmen und Entscheidungen sollten immer explizit gemacht werden
24
Q

Was sind die allgemeinen Prinzipien der Softwarearchitektur?

A
  • Anforderungen sind höher als Prinzipien zu gewichten
  • Strebe nach loser Kopplung
  • Strebe nach hoher Kohäsion
  • Trenne Verantwortlichkeiten
  • Achte auf Abstraktion, Kapselung, Geheimnisprinzip
  • Zerlege das System in geeignete Module
  • Vermeide zyklische Abhängigkeiten
  • Dokumentiere angemessen
25
Q

Wofür steht SOLID?

A
  • Single Responsibility Principle (SRP)
  • Open Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependecy Inversion Principle (DIP)
26
Q

Welche Rolle hat das Domänenmodell im Domain Driven Design?

A

DDD basiert auf fundierter Kenntnis der jeweiligen Fachdomäne. Die Domäne wird strukturiert und eine Abstraktion wird erstellt (nicht technisch).

Das Domänenmodell ist Grundlage für die Ubiquitous Language, die alle Stakeholder sprechen sollten. Sie muss strikt, genau, durchgängig und knapp sein.

27
Q

Was ist ein Bounded Context?

A
  • eine fachliche Einheit
  • mehrere BCs kommen in einem Domänenmodell vor
  • Begriffe innerhalb eines BCs haben die gleiche Bedeutung
  • Jeder BC kann ein eigenes Modell haben mit Entities, Aggregaten und Services
  • Zusammenhang mehrerer BCs wird in einer Context Map dargestellt
28
Q

Was sind Tactical Patterns im Rahmen von DDD und woraus bestehen sie?

A

Tactical Patterns sind Basisbausteine innerhalb eines Bounded Context.

Tactical Patterns enthalten Entities, die innerhalb der Domäne eine unveränderliche Identität haben (Schlüssel) und einen klar definierten Lebenszyklus.

Value-Objects besitzen keine eigene Identität und beschreiben den Zustand anderer Objekte.

29
Q

Wofür steht WAM und welche Elemente enthält der Ansatz?

A

Werkzeug, Automat, Material

WAM liefert eine Mustersprache für Entwurf und Konstruktion.

30
Q

Welche Elementarten gibt es in WAM?

A
  • Fachwerte
  • Materialien
  • Fachliche Services
  • Werkzeuge
  • Automaten
  • Technische Services
31
Q

Was sind Fachwerte im WAM-Ansatz?

A
  • Modellieren benutzerdefinierte Werte aus der Domäne
  • Haben einen festen Wertebereich und werden durch Standardtypen realisiert
  • Besitzen keine Identität und sind nicht veränderbar
  • Beispiele: IBAN, Telefonnummer
32
Q

Was sind Materialien im WAM-Ansatz?

A
  • Repräsentieren Gegenstände, die im Rahmen einer Aufgabe Teil des Arbeitsergebnisses werden
  • Repräsentieren ein domain-spezifisches Konzept
  • Haben eine Identität
  • Stellen ihre fachliche Konsistenz sicher
  • Beispiele: Bankkonten, Krankenakten
33
Q

Was sind fachliche Services im WAM-Ansatz?

A
  • Fassen fachliches Wissen einer Domäne zusammen
  • Bündeln zusammengehörige fachliche Gegenstände oder Prozesse
  • Bieten den Werkzeugen und Automaten einen einheitlichen Dienst an
  • Sind zustandslos und unabhängig vom jeweiligen Frontend
  • Beispiele: BuchungsService, VertragsService
34
Q

Was sind Werkzeuge im WAM-Ansatz?

A
  • Verkörpern fachliche Tätigkeiten und Arbeitsschritte
  • Werden verwendet, um Materialien zu untersuchen und zu ändern
  • Beispiel: Überweiser zum Verbuchen von Überweisungen
35
Q

Was sind Automaten im WAM-Ansatz?

A
  • Erledigen wiederkehrende Routinetätigkeiten
  • Automatisieren Folgen von Arbeitsschritten
  • Haben ein definiertes Ergebnis
  • Laufen nach der initialen Einstellung ohne weitere äußere Eingriffe ab
  • Beispiele: Geldautomat, Dauerüberweisungsautomat im Nachtlauf
36
Q

Was sind technische Services im WAM-Ansatz?

A
  • Kapseln technische Schnittstellen

- Besorgen die benötigten Materialien und Fachwerte aus der Datenbank oder von externen Schnittstellen

37
Q

Was macht Quality Driven Software Architecture (QDSA) aus?

A
  • Schwerpunkt liegt auf den konkreten Qualitätszielen
  • Folgt dem Planen-Handeln-Prüfen-Zyklus (Aim Plan Build Check)
  • Zyklisches bzw. iteratives Vorgehen ermöglicht die systematische Überprüfung der Zielerreichung des Systems
38
Q

Was wird in der Aim-Phase im Kontext von QDSA getan?

A
  • Notwendige Qualitätsanforderungen konkretisieren und priorisieren
  • Erarbeitung von Qualitätsszenarien mit Qualitätszielen
  • Qualitätsbäume oder MindMaps können Qualitätsziele darstellen
39
Q

Was wird in der Plan-Phase im Kontext von QDSA getan?

A
  • Definition von Maßnahmen zur Erreichung spezifischer Qualitätsziele
  • Zurückgreifen auf bewährte Patterns
  • Sammeln und Analysieren von Maßnahmen durch Brainstorming
  • Durchführung von Konsequenzanalysen
40
Q

Was sind die Bestandteile einer Schnittstelle und welche Arten der Zusammenarbeit gibt es?

A
  • Consumer und Provider
  • Consumer ruft einen Provider Dienst auf und erwartet eine synchrone Antwort
  • Consumer ruft einen Provider Dienst auf und erwartet später eine asynchrone Antwort
  • Einer benachrichtigt den anderen (ohne Bestätigung)
  • Einer sendet eine Nachricht unabhängig von möglichen Empfängern
41
Q

Was sind die Anforderungen an Schnittstellen?

A
  • Anforderungen der Consumer erfüllen
  • Einfach zu erlernen und zu benutzen
  • Missbräuchliche oder falsche Benutzung erschweren
  • Konsistent zu anderen Schnittstellen im System
  • Leicht erweiterbar
  • Angemessene Fehlerbehandlung