Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software-Architektur KE2 (Architekturmuster (Muster (zusammengesetzte…
Software-Architektur KE2
Architektonische Sichten u. Aspekte
Aspekt: Property/Anforderung, das zu dem System als Ganzes gehört
funktional
korrektes Verhalten des Systems
Deadlockfreiheit
Terminierung
nicht-funktional
Performanz, Security, Verfügbarkeit, Zuverlässigkeit, Testbarkeit, Änderbarkeit, Wiederverwendbarkeit, Skalierbarkeit, Übertragbarkeit, Bedienbarkeit
Unterscheidung funktional/nicht-funktional nicht deutlich: z.B. Fehlerbehandlung, Performanz, garbage collection
Zusammenhang Systemanforderungen u. -architektur
Unterscheidung
View: Ein System anhand der Strukturierung des Verhaltens beschreiben. "Was ist der Zustand des System? Was sind die Komponenten?"
Aspekt: Ein System beschreiben, indem sich auf verschiedene systemweite Eigenschaften fokussiert wird.
Views
"4+1" view model
4 Hauptsichen, 1 abgegrenzte
Scenarios
verwendet wichtige Anwendungsszenarien, um zu zeigen, wie die Strukturen der 4 Sichten nahtlos zusammenarbeiten.
physical view
Systemanforderungen z.B. Verfügbarkeit, Zuverlässigkeit, Performanz, Skalierbarkeit.
beschreibt das System vom Standpunkt des Systemarchitekten
Verteilung der Softwarekomponenten auf physikalischer Ebene und der Kommunikation zwischen diesen Komponenten
Logical view
Funktionalität des Systems für den Endnutzer
Development view
Beschreibt das System vom Standpunkt eines Entwicklers und beschäftigt sich mit dem Softwaremanagement
Process view
dynamische Aspekte
verdeutlicht die Prozesse des Systems und wie diese kommunizieren hinsichtlich des Laufzeitverhaltens
Parallelität, Verteilung, Integration, Performance, Skalierbarkeit
static view
Software- & Codestrukturen
Beziehungen
generalized uses-relation
transaltional relation
Eigenschaften
Programmgröße
Codelesbarkeit
Vermeidung Coderedundanz
Codewiederverwendung
dynamic view
Laufzeitstrukturen
Komponenten: Prozesse, Threads, Objekte, Speichergeräte
Konnektoren: Methodenaufrufe, eventbasierte Kommunikation, streambasierte Kommunikation, Protokolle
Eine Sicht kombiniert mehrere Strukturen, die ähnliche Eigenschaften oder eine ähnliche Perspektive teilen.
Kann als Mittel gesehen werden, Architekturbeschreibungen zu ordnen.
Konzentriert sich auf spezielle Eigenschaften einer Architektur oder betrachtet die Architektur aus einer bestimmten Perspektive.
Beziehung zwischen dynamischer und statischer Sicht
Eine Komponente der statischen Sicht entspricht (meistens) mehreren Instanzen in der dynamischen Sicht.
process vs. programm
object vs class
state vs variables/files
protocol vs ?
? vs. module/package
Kriterien zur Beurteilung von Architekturen
Architekturmuster
Definiton
Generische Strukturen der dynamischen Sicht
Patterns drücken wesentliche Schemas zur Strukturierung von Software-Systemen in Komponenten aus.
Beschreibt eine Familie von Systemen, die eine ähnlich struktuierten Aufbau teilen.
Stellt ein allgemeines Modell bereit, das die Hauptaufgaben der Komponenten und deren Interaktionen beschreibt.
Identifikation in Software-Systemen?
Komponenten
Computational
Memory
Sensor
Process-control
Muster
Schichtenmuster
hierarchisch in Schichten strukturiert
jede Schicht stellt Services für die darüberliegende Schicht bereit
strikt: eine Schicht kommuniziert nur mit der Schicht direkt unter ihrer
zusammengesetzte Objekte (Compound Object Pattern)
Berechnungs-Modell das OOP zugrunde liegt
compound object zuasmmengesetzt aus mehreren kleinen Objekten
sehr flexibel
Ein compound object ist eine Komponente, die Aktivitäten triggern, Berechnungen ausführen, und einen Teil des Systemstatus erfassen kann
Der Status des CO ist weggekapselt.
Pipe-and-Filter-Muster
pipe: inaktive Datenwarteschlange (connector)
filter: aktives Objekt, das Daten aus input-pipes lesen und in output-pipes schreiben kann.
erlaubt Vielfalt an Systemtopologien
Spezialisierung: pipeline.Schränkt die Topologie auf eine Sequenz von Filtern und Pipes ein.
erlaubt , das System in lose gekoppelte, unabhängige Komponenten aufzubauen.
Client-Server-Muster
Repository-Muster
zentrale Speicher-Komponente, auf die von verschiedenen Clients zugegriffen wird
gemeinsame Daten halten
database system: Clients lesen u. schreiben Daten
blackboard architecture: zentrale Speicherkomponente ist zuständig für die Kontrolle
Prozesssteuerungsmuster (process-control)
process variables
input variables
controlled variables
manipulated variables
set point
bezieht sich auf eingebettete Systeme
Architektonische Strukturen
Klassifiation
statische
dynamische
Definition
Eine Struktur identifiziert die wichtigen Komponenten/Entitäten eines Systems und beschreibt dessen Beziehungen und Zusammenspiel.