Modellierung und Architekturaspekte Flashcards

1
Q

Was sind die drei Merkmale, die nach Stachowiak das Verhältnis von Urbild und Modell kennzeichnen?

A
  • Abbildung: Modelle sind nicht identisch mit dem Urbild
  • Verkürzung: Modelle bilden immer nur eine bestimmte Perspektive ab und niemals alle Merkmale des Urbilds
  • Pragmatismus: Modelle erfüllen eine Ersatzfunktion, für bestimmte Subjekte innerhalb bestimmter Zeitintervalle zu einem bestimmten Zweck
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Auf welche Arten lassen sich Modelle darstellen?

A
  • UML
  • ER-Modelle
  • Aktivitätsdiagramme
  • Petrinetze
  • Domänenspezifische Sprachen (DSL)
  • Textbasierte Beschreibung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sollten Softwarearchitekten in Bezug auf Modelle wissen?

A
  • Modellierung und Begleitung der Umsetzung haben oft Überschneidungen
  • Architekten benötigen Wissen über theoretische Modelle, Lösungsmuster, Implementierungsoptionen und bekannte Risiken
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was bedeutet Persistenz?

A
  • Daten aus einem flüchtigen Hauptspeicher in ein beständiges Medium und zurück zu bringen
  • praktisch handelt es sich um Datenbanken in verschiedenen Formen
  • Speichern und Fachlogik sollten voneinander getrennt geschehen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind die Eigenschaften einer Persistenzschicht?

A
  • Kapselt die Details der Datenspeicherung
  • Ein Persistenzsubsystem hat zwei Schichten, von denen die obere die Konzepte der Objektorientierung kapselt, während die untere die Schnittstelle zum Speichermedium ist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind die Anforderungen an eine Persistenzschicht?

A
  • Vollständige, einfache Kapselung

- Transaktionen, Vererbung, untersch. Speichermodelle, Lazy Loading, parallele Zugriffe, automatische IDs…

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

Was sind die Eigenschaften eines DAOs?

A

Data Access Object

  • arbeitet mit Data Transfer Objects (DTOs)
  • Kapselung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was sind die Risiken und Probleme beim Entwurf eines Lösungsmusters für Persistenz?

A
  • Abhängigkeit vom DBMS
  • Seiteneffekte
  • Bestehende Mainframe-Systeme schwer zu integrieren
  • Unterschiedliche Strukturen in den unterschiedlichen Schichten müssen berücksichtigt werden (kann durch OR-Mapping aufgelöst werden)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was sind die Eigenschaften von Geschäftsregeln?

A
  • Zusammenhänge der Art “Wenn … Dann”
  • Aktionen oder Abläufe, die von bestimmten Bedingungen oder Zuständen abhängen
  • Änderungen an der Fachlogik bedürfen der Anpassung des Quellcodes
  • Komplexe Fachlogik lässt sich mithilfe einer Regelmaschine überprüfen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Anwendungsbereiche für Integrationen gibt es?

A
  • Integration von Legacy-Systemen
  • Integration von Frameworks oder kommerziellen Fertigprodukten
  • Frontend-Integration (z.B. Microfrontends)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was sind typische Probleme bei der Integration?

A
  • Der Quellcode ist nicht verfügbar oder nicht dokumentiert
  • Die Kommunikation zwischen Alt- und Neusystemen ist durch unterschiedliche Protokolle, aufwendige Konvertierung etc. erschwert
  • Schlechte Performance des alten Systems lässt sich schwer ausgleichen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was sind die Eigenschaften der Integration durch Dateitransfer?

A
  • Eine Applikation schreibt in eine Datei, die eine andere Applikation zu einem späteren Zeitpunkt lesen kann
  • Systeme müssen sich auf gemeinsame Formate und Dateipfade einigen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was sind die Vor- und Nachteile der Integration durch Dateitransfer?

A

Vorteile:

  • Universelle Verfügbarkeit von Daten
  • Einfachheit
  • Unabhängigkeit von Architekturen, Systemen oder Sprachen

Nachteile:

  • Konvertierung kann aufwendig sein
  • Performance von Dateioperationen kann gering sein
  • Keine feingranularen Sicherheitsmechanismen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was sind die Eigenschaften der Integration durch eine gemeinsame Datenbank?

A
  • Alle Systeme schreiben in eine gemeinsame Datenbank
  • Die Systeme eignen sich auf ein Datenbankschema
  • Eher ein Antipattern aufgrund der engen Kopplung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was sind die Vor- und Nachteile der Integration durch eine gemeinsame Datenbank?

A

Vorteile:

  • Leistungsfähiger, sicherer und konsistenter als der Dateitransfer
  • Unabhängigkeit von Systemen und Sprachen

Nachteile:

  • Gemeinsames Datenbankschema schwer zu finden
  • Standardprodukte haben oft unverträgliche Schemata
  • Die DB kann die Performance beeinträchtigen
  • Änderung des Schemas führt zur Änderung aller Systeme
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was sind die Eigenschaften der Integration durch Remote Procedure Call?

A
  • Ein System ruft Funktionen in einem anderen Programm auf (Grundlage von Client-Server-Systemen)
  • Stubs und Skeletons wichkeln die Kommunikation zwischen den Systemene ab
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was sind die Vor- und Nachteile der Integration durch Remote Procedure Call?

A

Vorteile:

  • Hohe Flexibilität
  • Gute Kapselung
  • Bestehende Systeme können wiederverwendet werden

Nachteile:

  • Entfernte Funktionsaufrufe sind aufwendiger
  • Komplexität wird durch den Einsatz von Middleware erhöht
  • Erhöhtes Fehlerpotenzial aufgrund von hoher Komplexität
  • Partnersysteme sind durch lange Antwortzeiten und Schnittstellenänderungen voneinander abhängig
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was sind die Eigenschaften der Integration durch Messaging?

A
  • Beteiligte Systeme senden und empfangen Datenpakete
  • Pakete (Messages) enthalten einen Header mit Meta-Informationen und einen Body mit Nutzdaten
  • Middleware übermittelt und speichert Nachrichten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Was sind die Vor- und Nachteile der Integration durch Messaging?

A

Vorteile:

  • Zeitliche Entkopplung durch Asynchronität vermeidet Blockierung der Systeme
  • Unabhängig von Sprachen und Systemen
  • Zuverlässigkeit durch Garantie der Zustellung

Nachteile:

  • Bruch des konventionellen Modells aufgrund der Asynchronität
  • Spezifische Reihenfolge der Nachrichten ist nicht garantiert
  • Forderung von Synchronität und kurzfristigen Antworten schränkt die Anwendbarkeit ein
  • Systeme sind abhängig von der Messaging-Lösung (vendor lock-in)
20
Q

Wann sind verteilte Systeme nützlich?

A
  • Komponenten nutzen spezielle Eigenschaften der Laufzeitsysteme
  • Neue Systeme sollen in Legacy Systeme integriert werden
  • Ausfallsicherheit oder dynamische Lastenverteilungen haben eine hohe Priorität
21
Q

Was sind typische Probleme von verteilten Systemen?

A
  • hoher Overhead durch verteilte Methodenaufrufe
  • Datenintegrität ist schwerer sicherzustellen
  • Datentransfer verursacht Netzwerklast
  • Fehlersuche ist erschwert
  • Differenzierung zwischen fachlichen Fehlern und Kommunikationsfehlern ist schwer
22
Q

Was sind Techniken der verteilten Systeme?

A
  • REST
  • SOAP
  • CICS und MQ-Series (Mainframe)
  • COBRA
  • Message-Broker (wie Apache Kafka)
  • generell Middleware
23
Q

Was sind Vor- und Nachteile verteilter Systeme?

A

Vorteile:

  • Flexibilität
  • Skalierbarkeit
  • Lastenverteilung

Nachteile:

  • viele potenzielle Fehlerquellen
  • Entwicklung von Integrationstest ist schwierig
  • Performance kann schlechter sein
  • Verteilung, Installation und Verwaltung der Software ist schwieriger
24
Q

Inwiefern unterscheiden sich synchrone und asynchrone Kommunikation?

A

Synchrone Kommunikation:

  • Aufrufer wartet auf aufgerufene Komponente
  • Normalfall in der Softwareentwicklung

Asynchrone Kommunikation:

  • Prinzip: fire and forget
  • Häufig bei Kommunikation zu externen Systemen
  • Realisierung mittels Message Queues, Publish & Subscribe
25
Q

Welche Stile der Kommunikation gibt es?

A
  • Remote Procedure Call (RPC)
  • Publish-Subscribe
  • Broadcast
26
Q

Inwiefern unterscheiden sich direkte und indirekte Kommunikation?

A

Direkte Kommunikation:

  • Client kennt Server
  • Abhängigkeit zwischen Client und Server

Indirekte Kommunikation:

  • Entkopplung von Client und Server
  • Aufruf von Services über Vermittler
  • Flexiblerer Betrieb von Services
27
Q

Was sind typische Kommunikationsprotokolle?

A
  • TCP/IP
  • HTTP
  • SOAP
  • Apache Thrift
  • IIOP
28
Q

Welche Bedeutung hat Geschäftsprozess-Management für die Architektur?

A
  • Beinflusst die Erfassung der funktionalen Anforderungen
  • Beeinflusst Schnittstellen zwischen Systemen und Systemen und Menschen
  • Für komplexe Geschäftsprozesse sind oft mehrere Softwaresysteme notwendig
29
Q

Was sind die Schritte der Geschäftsprozess-Analyse?

A
  1. Erheben des Ist-Prozesses durch Requirements Engineering oder Process Mining
  2. Dokumentation der Ist-Prozesse mittels BPMN
  3. Teilprozesse zur Automation identifizieren
30
Q

Was sind die verschiedenen Möglichkeiten zur Prozessautomation aus Sicht der Softwarearchitektur?

A

Prozesse selbst ausprogrammieren

Process Engine:

  • Programming in the large: Abbildung durch technische Prozessmodelle, von Engine ausgeführt
  • Programming in the small: Geschäftsfunktionen werden in Programmiersprachen implementiert
31
Q

Was sind Workflow-Management-Systeme?

A
  • Systeme, die Prozesse definieren und durch den Einsatz von Software steuern
  • stellen Definitions- und Modellierungswerkzeuge bereit
  • Integration in Mailsysteme, Dokumentenablagen
  • Stellen Protokollierungsmöglichkeiten bereit
32
Q

Was sind die Möglichkeiten der Softwarearchitektur für flexible Ablaufsteuerung?

A
  • Zustandsautomaten mit Transitionstabellen
  • Workflow-Management-System wird in Anwendung integriert
  • Steuerung durch externes Workflow-Management-System
  • Vorgänge werden per E-Mail weitergeleitet
33
Q

Was sind die Sicherheitsziele nach Starke?

A
  • Vertraulichkeit
  • Integrität
  • Authentifizierung und Authorisierung
  • Verfügbarkeit
  • Gesicherte elektronische Kommunikation
34
Q

Was sind Lösungsansätze zur Sicherstellung der Sicherheit?

A
  • Verschlüsselungsverfahren (symmetrische Verfahren, asymmetrische Verfahren, hybride Verfahren)
  • Verwendung digitaler Signaturen (z.B. Public Key Infrastruktur)
35
Q

Was sind Zertifikate?

A
  • Sonderfall digitaler Signaturen
  • Bindung von Schlüsseln an Personen oder Systeme
  • Ausgestellt und signiert von Zertifizierungsstellen
  • Zertifizierungsstellen unterliegen strengen Behördenkontrollen
36
Q

Was ist das Security Session Pattern?

A

Problem: Berechtigung einzelner Nutzer eines Systems müssen geprüft werden

Lösung: Einführung eines Session-Objekts, welches alle relevanten Benutzerdaten enthält

Vorteil: Keine Berechtigungsprüfung in einzelnen Komponenten

Nachteil: Angriffsmöglichkeit durch Session Hijacking

37
Q

Welche Arten der Protokollierung zur Laufzeit gibt es?

A
  • Tracing: liefert Debugging-Informationen für Entwickler

- Logging: Fachliches Protokoll (für Geschäftsprozesse) und Technisches Protokoll (zur Fehlersuche)

38
Q

Was sind typische Probleme bei der Protokollierung?

A
  • Hohe Abhängigkeit von der Protokollierung
  • Hohe Flexibilität gefordert (Konfiguration von Ereignisprotokollierung, Prioritätensetzung, Speicherort…)
  • Protokollierung in heterogenen Systemen
39
Q

Was sind weitere Aspekte der Protokollierung?

A
  • Sicherheit (insbesondere bei sensiblen Daten)
  • Verteilung
  • Kommunikation
40
Q

Inwiefern unterscheiden sich Ausnahme- und Fehlerbehandlung?

A

Fehlerbehandlung:

Während der Verarbeitung tritt ein Fehler auf => weiterer Programmablauf

Ausnahmebehandlung:

Ein Baustein kann seinen normalen Ablauf nicht fortführen => weiterer Programmablauf

41
Q

Was sind die Anforderungen an Ausnahme- und Fehlerbehandlung?

A
  • Vorhersagbare und angemessene Reaktion
  • Möglichst keine Auswirkungen auf andere Programme
  • Erleichterung der Fehlerdiagnose
42
Q

Welche Teilaufgaben der Ausnahme- und Fehlerbehandlung gibt es?

A
  • Ausnahmen und Fehler erkennen, 3 Fragen beantworten: Was ging schief? Wo ist es passiert? Warum ging es schief?
  • Auf Fehler angemessen reagieren (u.U. durch Benachrichtigungen an den Nutzer)
  • Fehler vorzeitig erkennen und präventiv reagieren
43
Q

Welche Kategorien von Fehlern gibt es?

A
  • Fachliche Fehler (z.B. kein Vertrag zum Kunden vorhanden)
  • Technische Fehler (z.B. Datenbankverbindung verloren)
  • Syntaxfehler
  • Formatfehler (ungültige oder überschrittene Werte)
  • Protokollfehler (Datenlieferung zum falschen Zeitpunkt oder auf dem falschen Kanal)
44
Q

Inwiefern unterscheiden sich Skalierbarkeit und Elastizität?

A

Skalierbarkeit: Fähigkeit eines Systems, auf Änderungen an Datenmengen, Anzahl der Nutzeranfragen oder Anzahl an Transaktionen pro Zeiteinheit gut reagieren zu können

Elastizität: Fähigkeit eines Systems, bei Bedarf hoch- oder herunterzuskalieren

45
Q

Welche Skalierungsstrategien gibt es?

A
  • Scale-Up (Aufrüsten von Verarbeitungseinheiten)
  • Vertical Scale-Out (Physisches Aufteilen auf mehrere Schichten)
  • Horizontal Scale-Out (parallel identische Verarbeitungseinheiten)
  • Strategiemix