VL6 - Vom Geschäftsprozess zur Softwarearchitektur Flashcards
Begriff “Softwarearchitektur”
Die grundlegende Organisation eines Systems, dargestellt durch dessen Komponenten, deren Beziehungen zueinander und zur Umgebung sowie den Prinzipien, die den Entwurf und die Evolution der Systeme bestimmen. (Hasselbring 2006)
Kernphasen von “Softwarengineering”
- Planung
- Analyse
- Entwurf
- Implementierung
- Test
- Evolution/Wartung
Ziele einer “Softwarearchitektur” (im Lebenszyklus von Standardsoftware)
- Beherrschung der Komplexität
- Testbarkeit
- Erweiterbarkeit
- Wartbarkeit / Updatefähigkeit
- Anpassbarkeit
- Integrationsfähigkeit
- Skalierbarkeit
4 Qualitätskriterien für “Softwarearchitekturen”
- Ordnungsmäßigkeit
- Richtigkeit
- Interoperabilität
- Sicherheit
- Zuverlässigkeit
- Benutzbarkeit
- Effizienz
- Übertragbarkeit
scalability
availability / reliability
security
safety
usability
portability
performance
interoperability
evolvability
extensability
Aufbau einer “Software-Architektur”
- Modellsammlung (Referenzmodelle)
- Technologie
- Umgebung (Hardware, Software)
4 Arten von Sichten
- Kontext: Zeigen den Zusammenhang des Systems mit seiner Umgebung aus der Vogelperspektive
- Bau: Statische Struktur der Architekturbausteine des
Systems, Subsysteme, Komponenten und deren
Schnittstellen zueinander - Laufzeit: Zusammenwirken der Bausteine zur
Laufzeit - Verteilung: Beschreibung der Hardwarekomponenten (Rechner, Prozessoren, Netztopologien)
Begriff “Metamodell”
Ein Modell, das eine Menge anderer Modelle definiert, die als Instanzen des Metamodells bezeichnet werden.
Begriff “Model Driven Architecture”
Ansatz mit klarer Trennung von Funktionalität und Technik.
Standardisierte Transformation vom plattformunabhängigen Modell zum Quellcode.
Lösung für Probleme:
Fachliche Sicht lässt sich nicht immer in technische Sicht abbilden
Kommunikationsprobleme zwischen den entsprechenden Abteilungen
Wissen der Entwickler wandert ab
Begriff “ATAM” (Bewertungskriterium)
Architecture Trade-off Analysis Method.
Beschreibung:
Szenariobasierter Ansatz zur Bewertung der
Architekturentscheidungen, der einen klaren
Schwerpunkt auf die Anforderungen an
Qualitätsmerkmale legt.
Vorteile:
Eindeutige Korrelation der Anforderungen an
Qualitätsattribute und der zugrunde liegenden Geschäftstreiber mit den Merkmalen einer Architektur.
Früherkennung von Risiken oder Fehlentscheidungen.
Unterstützung der Architekten bei der Architekturentwicklung.
Unterstützung bei der Auswirkungsanalyse in
Situationen mit veränderten Anforderungen
an Qualitätsmerkmale.
Vorgehensmodell für “ATAM”
- Präsentation
- Erhebung & Analyse
- Testen
- Reporterstellung
Begriff “CBAM” (Bewertungskriterium)
Cost Benefit Analysis Method.
Beschreibung:
Ökonomische Konsequenzen der
Entwurfsentscheidung
Analyse der Qualitätsattribute hinsichtlich
Kosten und Leistungen
Vorteile:
Einfache Anwendung
Verschafft Klarheit in unvorhersehbaren
Situationen
Identifizieren und bewerten von Ausgaben
Gibt an, inwiefern der Nutzen die Kosten
überwiegt
Begriff “Softwaremuster”
Beziehung zwischen einem bestimmten Kontext, einem bestimmten System an Kräften, die in diesem Kontext wiederkehrend auftreten, und einer bestimmten Software-Konfiguration, die diesen
Kräften erlaubt, sich gegenseitig aufzulösen
Begriff “Schichtenmuster”
Hierarchische Organisation.
Mittel der Strukturierung.
Darstellung verschiedener, aufeinander aufbauender
Abstraktionslevel.
Vorteile:
Leicht verständlich
Technologietrennung und -integration
Wohl definierte Zugriffskonzepte durch Beschreibung
der Protokolle
Nachteile:
Notwendigkeit von definierten stabilen Schnittstellen
Kritische Performance
Hohe Kosten bei Gesamtsystemveränderung
Beispiele:
2-Schichten-Modell, z.B. Rich-Client Szenarien
3-Schichten-Modell, z.B. Daten-, Geschäftslogik- und
Präsentationsschicht
N-Schichten-Modell, z.B. ISO OSI Referenzmodell für
die Kommunikation offener Systeme
Begriff “Client-Server-Architekturen” (Anwendung des Schichten-Musters in betrieblichen Anwendungssystemen)
Layer 1: Dienstanbieter (Server)
Stellt für die Bearbeitung der Funktionen dem Client die notwendigen Daten zur Verfügung.
Layer 2: Dienstnutzer (Client)
Enthält die Anwendungslogik, häufig umgesetzt als Fat-Client.
Eigenschaften:
Trennung von Datenhaltung und Datenverarbeitung
Keine Verantwortung für die Datenspeicherung und
sämtlicher damit verbundener Konzeptionen der
Client-Komponente
Client-Komponente nutzt die zugesicherten Dienste
der Server-Komponente
Begriff “Drei-Schichten-Architektur” (Anwendung des Schichten-Musters in betrieblichen Anwendungssystemen)
Layer 1: Datenhaltung
Layer 2: Business Logic
Layer 3: Präsentation
Eigenschaften:
Weitere Dekomposition der Client-Komponente
Businesslogik wird getrennt von der Präsentation
Variante 1: Geschäftslogik ist Teil des Servers
(Thin-Client)
Variante 2: Geschäftslogik ist Teil des Client
(FAT-Client)