Modularisierung Flashcards
Welche Sichten gibt es?
- Kontextsicht
- Bausteinsicht (= Struktur)
- Laufzeitsicht (= Verhalten, Dynamik)
- Verteilungssicht
Was zeigt die Kontextsicht?
„Die Kontextsicht zeigt das Umfeld eines Systems sowie dessen Zusammenhang mit seiner Umwelt.“ (G. Starke)
Systemkontextdiagramm: Visualisierung des Umfelds
◼das zu beschreibende System im Mittelpunkt als Blackbox
◼drum herum die direkt beteiligten Benutzer und Fremdsysteme
◼Verbindung zwischen einem solchen Akteur und dem System drückt Interaktion aus.
Was zeigt die Bausteinsicht?
„Die Bausteinsicht bildet die Funktionalität des Systems auf Software-oder Implementierungsbausteine ab. Die Sicht macht Struktur und Zusammenhänge zwischen den Bausteinen der Struktur explizit “ (G. Starke)
BSP: S84
Eigenes System als Whitebox
Die Laufzeitsicht
„Die Laufzeitsicht beschreibt welche Bausteine des Systems zur Laufzeit existieren und wie sie zusammenwirken. Im Gegensatz zur Bausteinsicht werden hier dynamische Strukturen beschrieben. “ (G. Starke)
- Nur Positivfall
S85
Die Verteilungssicht
„Die Verteilungssicht beschreibt Hardwarekomponenten, auf denen das System abläuft.“ (G. Starke)
S86
Welche Möglichkeiten gibt es Abhängigkeiten zu reduzieren?
Inversion of Control Dependecy Injektion Default Implementierungen Factories Intefaces Geheimnisprinzip
Welche Auswirkungen haben Abhängigkeiten
◼Performanz ◼weniger Indirektion ◼Robustheit ◼hohe Kohäsion, lose Kopplung ◼Testbarkeit ◼hohe Kohäsion, lose Kopplung ◼Trennung von Interface & Implementierung ◼Erweiterbarkeit ◼lose Kopplung ◼Kapselung ◼Abstraktion ◼Separation ofConcerns ◼Wartbarkeit
Was ist das Dependency Inversion Principle
A.High-level modules should not depend on low-level modules. Both should depend on abstractions.
B.Abstractions should not depend on details. Details should depend on abstractions.
Was ist die Laufzeitsicht/Verhaltensicht?
◼Die Bausteinsicht bietet lediglich eine statische Sicht
◼Oft bringt erst die Zusammenschau mit dynamischen Aspekte Einsichten, wie das System eigentlich funktioniert, bzw. zu verwenden oder zu erweitern ist.
Die Laufzeitsicht(alternativ: Verhaltenssicht) beschreibt, wie Softwareelemente zur Laufzeit interagieren, bzw. wie ein Element selbst sich verhält.
Was soll die Laufzeitsicht beinhalten?
◼Wie setzen die Bausteine die wichtigsten Anwendungsfälleum?
◼Welche Zugriffe stehen hinter den identifizierten Abhängigkeiten?
◼Wie kooperieren die Bausteine?
◼Wie arbeiten die Bausteine mit externen Komponenten zusammen?
◼Wie verhält sich das System in besonderen Situationen, wie:
◼Startup◼Shutdown◼Update◼Kritische Fehler
Welche Arten von Laufzeitsichten gibt es?
Sequenzdiagramm, Aktivitätsdiagram und Zustandsdiagram
Nenne Kriterien für Schnittstellen
Einfach zu lernen, benutzen, erweitern
Schwer zu missbrauchen
Funktional vollständig
Qualitäten: Skalierbarkeit Performance Sicherheit Kompatibilität
Wie wirkt sich die technische Architektur auf die Bausteinsicht aus?
◼Die technische Architektur wird maßgeblich von Qualitätsmerkmalen bestimmt
◼Zur technischen Architektur gehören Architekturmuster, Plattformen, Infrastruktur, Frameworks, Referenzarchitekturen, etc.
◼Die technische Architektur hat Auswirkungen auf die Bausteinsicht
◼Vor Allem unterhalb der groben fachlichen Gliederung wichtig!
◼Technische Aspektesollten gekapseltwerden: technische Bausteine entstehen