Software Architektur Teil 1 Flashcards
Grundlagen Softwaretechnik
Definition Softwarearchitektur
Die Softwarearchitektur ist die grundlegende Organisation (Struktur) eines Systems
Grundlagen Software-Architektur
Abgrenzung mit physikalischer Architektur
- Software-Architektur ist nicht direkt mit physikalischer Architektur vergleichbar
- Sie folgt keinen Naturgesetzen, ist immateriell, dynamisch, sehr umfangreich und komplex
Grundlagen Software-Architektur
Anforderungen bei der Software-Architektur
Die Anforderungen beschreiben was ein Software-System zu tun hat
Grundlagen Software-Architektur
Software-Entwurf bei der Software-Architektur
- Der Software-Entwurf beschreibt WIE das WAS realisiert werden soll
- Die Software-Architektur ist ein Teil des Entwurfs
Grundlagen Software-Architektur
Änderbarkeit in der Software-Architektur
Während des Architekturentwurfs kann sich vieles verändern, wegen z.B.: später Anforderungen oder Verständnisproblemen
Information Hiding und Modularisierung in der Software Architekur
Wenn beides kombiniert kann man die Komplexität und die Größe der Software beherrschen
Kohäsion in der Software-Architkéktur
Innerhalb der Module besteht eine hohe Kohäsion
Kopplung in der Software-Architektur
Innerhalb der Module ist die Kopplung gering
Wiederverwendbarkeit in der Software-Architektur
- Wiederverwendbarkeit muss geplant sein und nicht zufällig sein
- Wiederverwendungsansätze sind Entwurfsmuster oder Produktlinienarchitekturen
Architekturebenen in der Software-Architektur
- Fachliche (konzeptuelle) Architektur
- Softwaretechnische Architektur
- Systemtechnische Architektur
Architekturebenen in der Software-Architektur
Fachliche Architektur
Die fachliche Architektur beschreibt das Software-System in fachliche Teilsysteme und Schnittstellen
Architekturebenen in der Software-Architektur
Softwaretechnische Architektur
Die softwaretechnische Architektur beschreibt konkrete technische Komponenten und deren Beziehungen
Architekturebenen in der Software-Architektur
Systemtechnische Architektur
Die systemtechnische Architektur beschreibt wie die einzelnen Komponenten auf Recheneinheiten installiert und mit existierenden Systemen verbunden werden.
Architekturebenen in der Software-Architektur
Wesentliche Elemente der fachlichen Architektur
- Fachliche Module
- Statische und dynamische Beziehungen zwischen Teilsystemen/Modulen
- Den Datenhaushalt darstellen
Architekturebenen in der Software-Architektur
Wesentliche Elemente der softwaretechnischen Architektur
- Software-Komponenten
- Interfaces und Aufrufbeziehungen
Architekturebenen in der Software-Architektur
Wesentliche Elemente der systemtechnischen Architektur
Verteilung der softwaretechnischen Komponenten auf Ressourcen
Vorgehensweisen bei der modularen Architektur
- Der Top-down-Entwurf
- Der Bottom-up-Entwurf
Modulare Architektur
Nutzung des Top-Down-Entwurfs
- Wenn keine Vorstellungen bzgl. der einzusetzenden Grundbestandteile existieren
- Die Komponenten werden solange dekomponiert bis man zu überschaubaren und realisierenden Teilen gelangt
Modulare Architektur
Nutzung des Bottom-Up-Entwurfs
- Wenn es eine Menge wiederverwendbarer Komponenten gibt, die benutzt werden sollen
- Die Komponenten werden solange komponiert, bis man zu einer überschaubaren Menge von Komponenten gelangt
Komponenten und Beziehungen in der Softwarearchitektur
Was ist eine Komponente?
- Eine abgeschlossene Einheit
- Explizite Defintion von Diensten / Leistungen
Komponenten und Beziehungen in der Softwarearchitektur
Wie wird eine Beziehung charakterisiert?
- Es werden Leistungen angeboten (provided / Export) und bezogen (required / Import)
- Werden als graphische Notation dargestellt
Beziehung zwischen Komponenten
Die Relation “benutzt”
Die “benutzt”-Relation entspricht häufig dem Aufruf einer Operation, die von der aufgerufenen Komponente angeboten wird
Beziehung zwischen Komponenten
Die Relation “ist_Bestandteil_von”
Die Relation ist_Bestandteil_von beschreibt Verfeinerung zwischen Komponenten
Beispiel zur “benutzt” und “ist_Bestandteil von” Relation
- Die benutzt Relation verbindet Komponente 1 mit Komponente 2 und 3
- Bei der ist_Bestandteil_von Relation sind mehrere kleine Komponenten von der Komponente 1 miteinander verbunden