Beruflich Dokumente
Kultur Dokumente
Prof. M. Broy (I4), Prof. B. Brgge, (I1), Prof. F. Matthes (I19), Prof. A. Pretschner (I22)
Architekturentwurf
3.1 Motivation
3.2 Konzepte des Architekturentwurfs
Komponente, Schnittstelle, Vertrag, Substituierbarkeit, ...
3.3 Architekturdokumentation mit der UML und DSM
3.4 Zur Rolle des Softwarearchitekten
3.5 Architekturmuster
3.6 Beispiel eines Architekturentwurfs
Architekturentwurf
Prozess
Software-
Rolle architekt
Architektur-
beschreibung
Komponenten-
Artefakte diagramm
Deployment-
diagramm
Ausgangspunkt
Funktionale und nicht-funktionale Anforderungen aus der Analysephase, z.B.
Pflichtenheft
Ergebnis
Softwarearchitektur (Systemarchitektur)
Spezifikationen der Systemkomponenten
WAS? WIE?
Paketdiagramme,
Komponentendiagramme,
Anwendungsfalldiagramme, Entwurfs-Klassendiagramme,
konzeptuelle Klassendiagramme, Verteilungsdiagramme,
Aktivittsdiagramme ...
[EB07]
[Za87]
Pretschner SoSe 2014 - EIST 3 - Architekturentwurf TUM 5
Jedes Softwaresystem hat eine Architektur
Die Architektur eines Softwaresystems umfasst
die Struktur,
das Verhalten und
die Verteilung
des Systems, jedoch auf einem hohen Abstraktionslevel.
Die Auswahl der Architektur bestimmt das Verhalten des zu entwickelnden Systems
mageblich.
[ReHa06]
(De-)
Composition
Interface:
abstract Architecture
functionality
9
und ihre Beziehungen I
(De-)
Composition
Interface:
abstract Architecture
functionality
10
und ihre Beziehungen II
connects
(De-)
Composition
Interface: has
abstract Architecture
functionality
11
Funktionale Anforderungen I
connects
(De-)
Composition
Interface: has
abstract Architecture
functionality drive
describes Functional
requirements
has
System
12
Funktionale Anforderungen II
connects
(De-)
Composition
Interface: has
abstract Architecture
functionality drive
describes Functional
captures requirements
has
System
13
Nichtfunktionale Anforderungen I
connects
(De-)
Composition
Interface: has
abstract Architecture
functionality drive
describes Functional
captures requirements
has
System
Non-functional
requirements drive
14
Nichtfunktionale Anforderungen II
connects
(De-)
Composition
Interface: has determines
abstract Architecture
satisfaction drive
functionality
describes Functional
captures requirements
has
System
Non-functional
requirements drive
15
Software Architecture is a set of functional
decompositions of a software system according to
non-functional requirements.
connects
(De-)
Composition
Interface: has determines drive
abstract Architecture
satisfaction drive
functionality
Functional
describes requirements
has
System
Non-functional
requirements
16
Bedeutung von Softwarearchitektur
Die Softwarearchitektur hat starken Einfluss auf den Erfolg eines Softwareprojekts.
Software architecture is the set of design decisions which, if made incorrectly, may
cause your project to be cancelled. Eoin Woods
Die Bedeutung der Architektur steigt, je grer (und komplexer) das Projekt ist.
Die Softwarearchitektur beeinflusst hauptschlich das Projektmanagement.
[PBG07]
Spezielle Bedeutung kommt dabei Anforderungen zu, welche die Gestaltung der
Architektur beschrnken, z.B. durch Vorgabe von:
Programmiersprachen
Fachlichen (Industrie-)Standards
Anzubindenden Altsystemen
[Bo94]
Zwei Kernbegriffe:
Komponente (Baustein)
Schnittstelle (nach auen klar definierte Menge von Funktionalitten)
Architekturentwurf
Entwurf Entwurf
Schnittstelle Schnittstelle
12 2
Entwurf Entwurf
Komponente 1.1 Komponente 2.1
Hohe Kohsion Kohsion beschreibt den Grad der Bindung der Elemente innerhalb
eines Bausteins. Hohe Kohsion, d.h. die enge Bindung verwandter Elemente in einen
Baustein ist dabei im Sinne der klaren Trennung von Verantwortlichkeiten im System
vorzuziehen.
Zulnglichkeit Zulnglichkeit beschreibt den Grad der Eignung eines Bausteines fr die
im zugewiesenen Aufgaben. (Ist der Baustein hinreichend, um die Aufgaben zu erfllen?)
Einfachheit Einfachheit gibt einen Anhaltspunkt, wieweit ein Baustein die Komplexitt
seines Aufgabenbereichs reflektiert.
[Bo94]
Interessante Fragestellungen:
Hat der Aufruf eines Dienstes einer Komponente stets einen Unteraufruf an eine
weitere Komponente zur Folge?
Ja Vielleicht sollten die Komponenten zusammengefhrt werden
Welche Komponenten rufen einander bei der Diensterbringung auf?
Knnen Aufrufe durch Umstrukturierung oder nderung der Schnittstellen
vermieden werden?
Lassen sich die Komponenten hierarchisch, d.h. in Schichten organisieren?
Interessante Fragestellungen:
Muss die aufrufende Klasse die Attribute der aufgerufenen Klasse kennen?
Ist es mglich, dass die aufrufende Klasse sich auf Methoden der aufzurufenden
Klasse beschrnkt?
David Parnas
Architekturentwurf
Prozess
Software-
Rolle architekt
Architektur-
beschreibung
Komponenten-
Artefakte diagramm
Deployment-
diagramm
Achtung:
In den Kontrakten wird Bezug auf den Zustand des Systems gegeben, in dem die
Methode genutzt wird.
Die beiden Begriffe werden hufig miteinander verwechselt, lassen sich aber klar
verschiedenen Phasen im Softwareentwicklungsprozess zuordnen.
StorageCell
Admin
Konsequenz: Jeder Aufruf einer Methode vom Typ T ist ein syntaktisch korrekter Aufruf
einer Methode vom Typ T,kurz T subtype T
Im Szenario vorher:
Kovarianter Rckgabetyp, kontravariante Argumenttypen
Garantiert statische Typsicherheit
T required: allgemeinerer Rckgabetyp, speziellere Argumenttypen
T provided : speziellerer Rckgabetyp, allgemeinere Argumenttypen
Intuitiv:
Wenn eine Komponente Methode T bentigt, ist ein angebotenes T in Ordnung (kompatibel)
T lsst allgemeinere Argumente zu (die weniger knnen mssen)
T lsst spezielleren Rckgabetyp zu (der mehr knnen darf)
Eine Sub-Schnittstelle darf keinen der Vertrge brechen, die fr ihre Super-Schnittstelle
gelten.
Die Methoden der Sub-Schnittstelle knnen andere Vor- und Nachbedingungen besitzen,
solange diese zu den Vor- und Nachbedingungen der entsprechenden Methoden in der
Super-Schnittstelle kompatibel sind.
User
DataProcessing
User interaction
importData()
Interface Black-Box exportData()
Admin
StorageCell
User
Admin
StorageCell
DataBase
Architekturentwurf
Prozess
Software-
Rolle architekt
Architektur-
beschreibung
Komponenten-
Artefakte diagramm
Deployment-
diagramm
Waren-
wirtschaftssystem
Point Of Sales
Terminal
Fakturierungs-
system
sd Waren verbuchen
wareRegistrieren ()
getPreis()
getPreis:Preis
warenAusgang()
fakturieren()
<<device>> <<device>>
server :Host pos1 :Host
<<artifact>> <<artifact>>
jdbc.jar jdbc.jar
<<deploy>> <<deploy>>
<<artifact>> <<artifact>>
WaWi.ear POS.java
<<manifest>> <<manifest>>
Waren Point-of-Sales
wirtschaftssystem Terminal
Quelle: www.lattix.com
Pretschner SoSe 2014 - EIST 3 - Architekturentwurf TUM 58
Darstellung einer Architektur durch eine DSM
www.lattix.com
Quelle: www.lattix.com
Architekturentwurf
Prozess
Software-
Rolle architekt
Architektur-
beschreibung
Komponenten-
Artefakte diagramm
Deployment-
diagramm
Jedoch kann die Konzentration auf eine Plattform die Sicht auf das Problem verndern
(vgl. Maslow):
If the only tool you have is a hammer, you tend to see every problem as a nail.
[ReHa06]
Der Schwerpunkt beim Entwurf liegt auf Methoden und Paradigmen, nicht auf
Technologien und Plattformen.
Die Architekten leisten einen Beitrag auf einem hohen Abstraktionsniveau.
Der Entwurf auf niedrigeren Ebenen wird delegiert.
[ReHa06]
Management Marketing
Endbenutzer Kunde
Wartungstrupp
Geringe Kosten,
gute Personal- Viele Funktionen,
auslastung! schnelle Entwick- nderbarkeit!
lung, geringe Verhalten,
Kosten, Performanz,
Konkurrenz- Sicherheit,
Niedrige
fhigkeit! Verfgbarkeit,
Kosten,
Benutzbarkeit!
Fertigstellung
gem
Zeitplan!
Softwarearchitekt
[BCK03]
Pretschner SoSe 2014 - EIST 3 - Architekturentwurf TUM 64
Der Softwarearchitekt als Domnenexperte
Eine zentrale Aufgabe des Softwarearchitekten ist es, den Kunden bei der
Formulierung nicht-funktionaler Anforderungen an das System zu untersttzen.
Der Softwarearchitekt muss ein Domnenexperte sein, um eine Architektur zur Lsung
eines Problems aus der Anwendungsdomne entwerfen zu knnen.
Hufig haben Softwarearchitekten spezialisiertes Wissen ber einzelne
Anwendungsdomnen, welches sie im Laufe frherer Projekte gesammelt haben.
Architekturentwurf
Prozess
Software-
Rolle architekt
Architektur-
beschreibung
Komponenten-
Artefakte diagramm
Deployment-
diagramm
Repository
Client 1
Server
Client 2
C1assE C1assF
attr attr Virtual Machine 3
op op
C1assC C1assD
attr attr Virtual Machine 2
op op
Class A C1ass B
attr attr Virtual Machine 1
op op
Jede Schicht (virtuelle Maschine) kann nur Jede Schicht (virtuelle Maschine) kann auf
auf Operationen der unmittelbar darunter Operationen aller darunter liegenden
liegenden zugreifen. zugreifen.
Erhhte Wartbarkeit und Flexibilitt Erhhte Performanz
C1assE C1assF C1 C1
attr attr VM3 attr attr VM3
op op op op
C1assC C1assD C1 C1
attr attr VM2 attr attr VM2
op op op op
Class A C1ass B C1 C1
attr attr VM1 attr attr VM1
op op op op
Presentation Layer
Application/Business Layer
Data
Storage
Controller 1 Controller 2
Model
View: Graphical
View: Outline
Architekturentwurf
Prozess
Software-
Rolle architekt
Architektur-
beschreibung
Komponenten-
Artefakte diagramm
Deployment-
diagramm
Grobentwurf:
Festlegung der Systemarchitektur, (grerer) Komponenten und
der Schnittstellen zwischen Komponenten
Blockdiagramme (UML: Komponentendiagramme)
Feinentwurf:
Verfeinerung der Teilsysteme zu programmiersprachlich
darstellbaren Komponenten (z.B. Module, Klassen)
Klassendiagramme (UML), programmiersprachliche
Definitionen
Core
Layouter
Fordere/liefere Fordere/liefer
Schema Daten
Darstellung ohne
Transformer
Positionsinformation
Datenhaltung
Schema Daten