Modellierung und Architekturaspekte Flashcards

(45 cards)

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
Welche Stile der Kommunikation gibt es?
- Remote Procedure Call (RPC) - Publish-Subscribe - Broadcast
26
Inwiefern unterscheiden sich direkte und indirekte Kommunikation?
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
Was sind typische Kommunikationsprotokolle?
- TCP/IP - HTTP - SOAP - Apache Thrift - IIOP
28
Welche Bedeutung hat Geschäftsprozess-Management für die Architektur?
- 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
Was sind die Schritte der Geschäftsprozess-Analyse?
1. Erheben des Ist-Prozesses durch Requirements Engineering oder Process Mining 2. Dokumentation der Ist-Prozesse mittels BPMN 3. Teilprozesse zur Automation identifizieren
30
Was sind die verschiedenen Möglichkeiten zur Prozessautomation aus Sicht der Softwarearchitektur?
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
Was sind Workflow-Management-Systeme?
- 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
Was sind die Möglichkeiten der Softwarearchitektur für flexible Ablaufsteuerung?
- Zustandsautomaten mit Transitionstabellen - Workflow-Management-System wird in Anwendung integriert - Steuerung durch externes Workflow-Management-System - Vorgänge werden per E-Mail weitergeleitet
33
Was sind die Sicherheitsziele nach Starke?
- Vertraulichkeit - Integrität - Authentifizierung und Authorisierung - Verfügbarkeit - Gesicherte elektronische Kommunikation
34
Was sind Lösungsansätze zur Sicherstellung der Sicherheit?
- Verschlüsselungsverfahren (symmetrische Verfahren, asymmetrische Verfahren, hybride Verfahren) - Verwendung digitaler Signaturen (z.B. Public Key Infrastruktur)
35
Was sind Zertifikate?
- Sonderfall digitaler Signaturen - Bindung von Schlüsseln an Personen oder Systeme - Ausgestellt und signiert von Zertifizierungsstellen - Zertifizierungsstellen unterliegen strengen Behördenkontrollen
36
Was ist das Security Session Pattern?
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
Welche Arten der Protokollierung zur Laufzeit gibt es?
- Tracing: liefert Debugging-Informationen für Entwickler | - Logging: Fachliches Protokoll (für Geschäftsprozesse) und Technisches Protokoll (zur Fehlersuche)
38
Was sind typische Probleme bei der Protokollierung?
- Hohe Abhängigkeit von der Protokollierung - Hohe Flexibilität gefordert (Konfiguration von Ereignisprotokollierung, Prioritätensetzung, Speicherort...) - Protokollierung in heterogenen Systemen
39
Was sind weitere Aspekte der Protokollierung?
- Sicherheit (insbesondere bei sensiblen Daten) - Verteilung - Kommunikation
40
Inwiefern unterscheiden sich Ausnahme- und Fehlerbehandlung?
Fehlerbehandlung: Während der Verarbeitung tritt ein Fehler auf => weiterer Programmablauf Ausnahmebehandlung: Ein Baustein kann seinen normalen Ablauf nicht fortführen => weiterer Programmablauf
41
Was sind die Anforderungen an Ausnahme- und Fehlerbehandlung?
- Vorhersagbare und angemessene Reaktion - Möglichst keine Auswirkungen auf andere Programme - Erleichterung der Fehlerdiagnose
42
Welche Teilaufgaben der Ausnahme- und Fehlerbehandlung gibt es?
- 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
Welche Kategorien von Fehlern gibt es?
- 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
Inwiefern unterscheiden sich Skalierbarkeit und Elastizität?
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
Welche Skalierungsstrategien gibt es?
- Scale-Up (Aufrüsten von Verarbeitungseinheiten) - Vertical Scale-Out (Physisches Aufteilen auf mehrere Schichten) - Horizontal Scale-Out (parallel identische Verarbeitungseinheiten) - Strategiemix