Modellierung und Architekturaspekte Flashcards
Was sind die drei Merkmale, die nach Stachowiak das Verhältnis von Urbild und Modell kennzeichnen?
- 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
Auf welche Arten lassen sich Modelle darstellen?
- UML
- ER-Modelle
- Aktivitätsdiagramme
- Petrinetze
- Domänenspezifische Sprachen (DSL)
- Textbasierte Beschreibung
Was sollten Softwarearchitekten in Bezug auf Modelle wissen?
- Modellierung und Begleitung der Umsetzung haben oft Überschneidungen
- Architekten benötigen Wissen über theoretische Modelle, Lösungsmuster, Implementierungsoptionen und bekannte Risiken
Was bedeutet Persistenz?
- 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
Was sind die Eigenschaften einer Persistenzschicht?
- 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
Was sind die Anforderungen an eine Persistenzschicht?
- Vollständige, einfache Kapselung
- Transaktionen, Vererbung, untersch. Speichermodelle, Lazy Loading, parallele Zugriffe, automatische IDs…
Was sind die Eigenschaften eines DAOs?
Data Access Object
- arbeitet mit Data Transfer Objects (DTOs)
- Kapselung
Was sind die Risiken und Probleme beim Entwurf eines Lösungsmusters für Persistenz?
- 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)
Was sind die Eigenschaften von Geschäftsregeln?
- 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
Welche Anwendungsbereiche für Integrationen gibt es?
- Integration von Legacy-Systemen
- Integration von Frameworks oder kommerziellen Fertigprodukten
- Frontend-Integration (z.B. Microfrontends)
Was sind typische Probleme bei der Integration?
- 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
Was sind die Eigenschaften der Integration durch Dateitransfer?
- 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
Was sind die Vor- und Nachteile der Integration durch Dateitransfer?
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
Was sind die Eigenschaften der Integration durch eine gemeinsame Datenbank?
- Alle Systeme schreiben in eine gemeinsame Datenbank
- Die Systeme eignen sich auf ein Datenbankschema
- Eher ein Antipattern aufgrund der engen Kopplung
Was sind die Vor- und Nachteile der Integration durch eine gemeinsame Datenbank?
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
Was sind die Eigenschaften der Integration durch Remote Procedure Call?
- Ein System ruft Funktionen in einem anderen Programm auf (Grundlage von Client-Server-Systemen)
- Stubs und Skeletons wichkeln die Kommunikation zwischen den Systemene ab
Was sind die Vor- und Nachteile der Integration durch Remote Procedure Call?
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
Was sind die Eigenschaften der Integration durch Messaging?
- Beteiligte Systeme senden und empfangen Datenpakete
- Pakete (Messages) enthalten einen Header mit Meta-Informationen und einen Body mit Nutzdaten
- Middleware übermittelt und speichert Nachrichten