Institut fürInformatik Technische Universität München fileDie Disziplin „Architektur“...
Transcript of Institut fürInformatik Technische Universität München fileDie Disziplin „Architektur“...
Vorlesung W
intersem
ester 2008 / 2009
Technische U
niversität München
Institut für Inform
atik
Lehrstuhl von Prof. D
r. Manfred B
roy
Dr. K
laus Bergner, Prof. D
r. Manfred B
roy, Dr. M
arc Sihling
Softwarearchitektur
(Arch
itektur: αρχή
= Anfan
g, Urspru
ng +
tectum= Hau
s, Dach
)
1. Einleitung und Ü
berblick
Inhalt
�Ein
leitung
�Motivation
�Organisatorisches zur V
orlesung
�Softw
arearchitektu
r als Design
ergebnis
�Die R
olle der Softwarearchitektur für das System
�Beispiel
�Begriffsdefinition
�Softw
arearchitektu
r als Tätigkeit im
Projekt�
Die R
olle des Softwarearchitekten im
Projekt
�Architekturanalyse und –entw
urf
�Architekturm
odelle
1.2
Softw
arearch
itektu
r –1. E
inleitung
Problemstellung
�Beobach
tungen:
�Der A
lltag ist immer stärker durchdrungen von Softw
are
�Softw
are bestimmt im
mer m
ehr den Geschäftserfolg
�Die G
röße von Systemen w
ächst kontinuierlich (siehe beispielsw
eise Toll-C
ollect, FISCUS, etc.)
�Unsere Fähigkeit, Softw
aresysteme zu entw
ickelnwächst langsam
er als der Bedarf (sog. „Softw
are-Krise“)
�Nur etw
a 25% aller E
ntwicklungsprojekte verlaufen
erfolgreich (hinsichtlich Zeit, Qualität, K
osten)
�Bis zu ca. 80%
der Gesam
tkosten eines Softwaresystem
sfallen nach Fertigstellung an
1.3
Softw
arearch
itektu
r –1. E
inleitung
Ansatz: Softw
are-Engineering
�Softw
areentwicklung w
ird aufgefasst als Ingenieursdisziplin, mit
Methoden, T
echniken und Werkzeugen, die teilw
eise von traditionellen D
isziplinen (z.B. M
aschinenbau oder Architektur)
„abgeschaut“werden.
�Kom
plexität wird begegnet m
it dem Handw
erkszeug des Ingenieurs�
Teile u
nd H
errsche: ein
Problem w
ird in klein
ere Häppch
en zerlegt, die
versteh-un
d handh
abbar sind (->
Modu
l, Kom
ponen
te)
�Abstraktion
: die für die aktu
elle Zielsetzung irrelevan
ten Details w
erden
ausgeblen
det (-> Schn
ittstelle)
�Wiederverw
endu
ng: die Situ
ation w
ird mit verstan
denen
Problemen
korreliert, fü
r die Lösungen
bekannt sin
d
�Softw
arearchitektur ist eine Teildisziplin des Softw
are-Engineerings,
für die sich überraschend viele Analogien zur klassischen
Architektur finden lassen
1.4
Softw
arearch
itektu
r –1. E
inleitung
Architektur-B
eispiel: das Münchner O
lympiagelände
�Gew
inner des dam
aligen
Arch
itekturw
ettbewerbs:
G. B
ehnisch
�Gebau
t in den
Jahren 1966-1972
�Charakteristisch
es Zeltdach, gestü
tzt von 58 Pylon
en
�Kon
zipiert als „offenes
Amph
itheater“
�Unter D
enkm
alschutz
seit 1977
1.5
Softw
arearch
itektu
r –1. E
inleitung
Wichtigste A
nforderungen
�Lan
glebigkeit �
Vielfältige E
insatzmöglichkeiten (7.400 V
eranstaltungen seit ´72)
�Dauerhaftigkeit der Strukturen
�Geringe W
artungskosten (vgl. andere Städte!!!)
�Ästh
etik�
Imagetransport, auch über O
lympia hinaus
�Unterstützung der Funktion
�Berü
cksichtigun
g lokaler Gegebenh
eiten�
Brachgelände m
it angrenzendem Schuttberg
�Balan
ce zwisch
en Q
ualität, Zeit u
nd Kosten
�Begrenztes B
udget
�Hoher Zeitdruck
�Und viele m
ehr…
.1.6
Softw
arearch
itektu
r –1. E
inleitung
Leistung der Architekten
�Spektaku
läre Ingenieursleistu
ng
�Dachkonstruktion nicht „berechenbar“
�Einfache Sim
ulationsmodelle
�Elegan
z, Tran
sparenz, Leich
tigkeit�
Organische E
inbettung der Sportanlagen in die Umgebung
�„Blick ü
ber den Tellerran
d“�
Konzeption eines dauerhaften N
aherholungsgebiets
�Vielfältige E
insatzmöglichkeiten (Studentenstadt, K
onzerte und Fußballspiele im
Stadion, etc.)
1.7
Softw
arearch
itektu
r –1. E
inleitung
Die D
isziplin „Architektur“
»Arch
itektur ist die Kom
bination von utilitas, firm
itas und venustas.«
frei nach Vitru
vius (Röm
ischer Architekt 90-20 v. C
hr.)
�utilita
s: das G
ebäude erfüllt seine Funktion
�firm
itas: das G
ebäude ist stabil
�venusta
s: das G
ebäude ist ästhetisch gestaltet
1.8
Softw
arearch
itektu
r –1. E
inleitung
Die D
isziplin „Architektur“
»Arch
itektur ist die Kom
bination von utilitas, firm
itas und venustas.«
frei nach Vitru
vius (Röm
ischer Architekt 90-20 v. C
hr.)
�utilita
s: das G
ebäude erfüllt seine Funktion
(das Softwaresystem
erfüllt seine Anforderungen)
�firm
itas: das G
ebäude ist stabil (das Softw
aresystem ist langlebig und
„stabil“gegenüber Ä
nderungen)
�venusta
s: das G
ebäude ist ästhetisch gestaltet
(das Softwaresystem
weist klare, logische Stru
kturenauf, die das V
erständnis vereinfachen)
1.9
Softw
arearch
itektu
r –1. E
inleitung
Organisatorisches zur V
orlesung „Softwarearchitektur“
�Ort: M
I HS2
�Zeit: M
ontags von
14:00 –16:00 U
hr
�Website: h
ttp://www4.in
.tum.de/leh
re/vorlesungen/sw
_arch/WS0809/
�Mailverteiler: savorles@
in.tum.de
�Büro: FM
I 01.11.044 (Sekretariat Broy)
1.10
Softw
arearch
itektu
r –1. E
inleitung
Überblick über die V
orlesung
�20.10.08: E
inleitung und Überblick
�27.10.08: G
rundlagen der Softwarearchitektur
�03.11.08: B
eschreibungstechniken (1)�
10.11.08: Beschreibungstechniken (2)
�17.11.08: Sichten (1)
�24.11.08: Sichten (2)
�01.12.08: A
usprägungen (1)�
08.12.08: Ausprägungen (2)
�15.12.08: B
etriebliche Informationssystem
e (1)�
12.01.08: Betriebliche Inform
ationssysteme (2)
�19.01.08: E
ingebettete Systeme (1)
�26.01.08: E
ingebettete Systeme (2)
�02.02.08: E
ingeladener Industrievortrag
�06.02.09: A
nmeldeterm
in zur Prüfung�
09.02.09: Prüfung1.11
Softw
arearch
itektu
r –1. E
inleitung
Zielgruppe der Vorlesung
�Vorau
ssetzung:
�Grundstudium
Informatik
�Vorlesung Softw
aretechnik oder Softwareengineering
�Nützlich
:�
Erfahrungen bei der Program
mierung größerer System
e (nicht nur m
it der Technik –
auch mit dem
sozialen Gefüge eines
Team
s)
�Kenntnisse der U
ML
1.12
Softw
arearch
itektu
r –1. E
inleitung
Inhalt
�Ein
leitung
�Motivation
�Organisatorisches zur V
orlesung
�Softw
arearchitektu
r als Design
ergebnis
�Die R
olle der Softwarearchitektur für das System
�Beispiel
�Begriffsdefinition
�Softw
arearchitektu
r als Tätigkeit im
Projekt�
Die R
olle des Softwarearchitekten im
Projekt
�Architekturanalyse und –entw
urf
�Architekturm
odelle
1.13
Softw
arearch
itektu
r –1. E
inleitung
Bedeutung der Softw
arearchitektur
�Die A
rchitektu
r�
ist Grundlage für das V
erständnis über das System
im Projektteam
�definiert die E
ntwicklungsprozesse
im Team
und beeinflusst somit die
Effizient im
Projekt
�Die Q
ualität der A
rchitektu
r�
entscheidet über den Projekterfolg
�entscheidet über die Q
ualität des Produkts
�entscheidet über die W
artbarkeit und E
rweiterbarkeit des System
s
1.14
Softw
arearch
itektu
r –1. E
inleitung
Beispiel: A
rchitektur eines Übersetzers
1.15
Softw
arearch
itektu
r –1. E
inleitung
Lexical Analyzer
Lexical Analyzer
ParserParser
Generator
Generator
foo.cfoo.ou
tabstract syn
tax treetoken
s
Wer heutzutage einen Ü
bersetzer programmiert, profitiert von einem
etablierten V
erständnis der einzelnen Bestandteile und ihrer jew
eiligen Aufgaben, V
erantwortlichkeiten sow
ie Abhängigkeiten untereinander.
Das realisierte System
wird daher w
ohl ganz ähnlich zur obigen Abbildung aussehen…
Kernpunkte der Ü
bersetzerarchitektur
�Einfach und verständlich�
ein „D
atenstrom
“du
rchläu
ft verschieden
e „Stationen
“mit klar
definierten
Eingabe-
und A
usgabeformaten
�Fu
nktionsprin
zip kann schn
ell verstanden
und kommuniziert w
erden
�Effizient realisierbar�
Zerlegung erlau
bt die parallele Entw
icklung in
meh
reren Team
s
�Betriebssystem
e wie U
nix verein
fachen
die Implem
entieru
ng
�Langlebig�
Das System
kann seh
r einfach u
m neu
e Funktion
alität erweitert
werden
, beispielsw
eise um ein
e Station, die den
abstrakten
Syntaxbau
m optim
iert
�Skalierbar�
Im Rah
men
einer verteilten Umgebu
ng kan
n die Anwen
dung leicht
parallelisiert und m
ehrere Station
en redu
ndan
t ausgelegt werden
1.16
Softw
arearch
itektu
r –1. E
inleitung
Wege der W
iederverwendung der A
rchitektur
�Als „R
eferenz-Architektur“
für den Bau von Ü
bersetzern: Festlegung der einzelnen System
teile, ihrer Verantw
ortung und des gem
einsamen Zusam
menspiels. E
rweiterungsm
öglichkeiten werden
aufgezeigt.
�Als „A
rchitektur-Stil“: allgemeines Strukturprinzip, bekannt als
„pipes-and-filter“-Architektur. D
atenströme w
erden über „pipes“von einem
„filter“zum
nächsten transportiert und dort weiterverarbeitet. D
as funktioniert nur bei Anw
endungen mit
�sequ
entialisierbaren
Bearb
eitungssch
ritten
�Abh
ängigkeiten
nur zw
ischen
benach
barten Bearb
eitungssch
ritten
�Als „Fram
ework“: für die R
ealisierung eines Übersetzers m
uss diese „halbfertige Im
plementierung“
nur noch an wenigen Stellen
angepasst werden.
1.17
Softw
arearch
itektu
r –1. E
inleitung
(Noch) offene Fragen…
�Erfüllt die A
rchitektur die Anforderungen an das System
?
�Existieren bessere A
rchitekturen für den Übersetzerbau?
�Wie ist der Zusam
menhang zw
ischen bestimmten M
erkmalen einer
Architektur u
nd bestimmten A
nforderungen?
�Auf w
elche Weise w
ird die Architektur am
besten dokumentiert und
kommuniziert (m
it Kästchen und Pfeilen?)
�Wie können besonders gute E
igenschaften der Übersetzerarchitektur auf andere System
e übertragen w
erden?
�Welche B
estandteile des Übersetzers kann m
an wiederverw
enden für die R
ealisierung weiterer System
e? (Tatsächlich findet sich diese
Architektur in
vielen Übersetzern w
ieder.)
1.18
Softw
arearch
itektu
r –1. E
inleitung
Softwarearch
itektur als Prozess u
nd Ergebn
is
�Eine Softw
arearchitektur
�unterteilt das A
nwendungssystem
in Bestandteile m
it definierten Verantw
ortlichkeiten und einem festgelegten Zusam
menspiel
�erm
öglicht die Beurteilung der Q
ualität des Gesam
tsystems
anhand der Qualitäten der E
inzelteile
�definiert Schnittstellen für zukünftige E
rweiterungen
�Eine S
oftw
are
arch
itektu
r besteht aus einer Menge von
Kom
ponenten und ihren Beziehungen untereinander.
�Die Softw
arearchitektur beeinflusst maßgeblich E
ntwicklungs-
und Weiterentw
icklungsprozesse.
�Die D
isziplin
Softw
are
arch
itektu
rwird als T
eil des Software-
Engineerings verstanden und definiert M
ethoden, Techniken und
Werkzeuge zur effizienten E
ntwicklung qualitativ hochw
ertiger Softw
arearchitekturen.
1.19
Softw
arearch
itektu
r –1. E
inleitung
Was ist eine K
omponente?
�Eine K
om
ponente
�ist ein
Bau
stein des Systems
�kapselt ih
r Inneres u
nd kom
muniziert m
it anderen
Kom
ponen
ten über
präzise definierte Sch
nittstellen
�kan
n, m
uss aber n
icht tatsäch
lichen
Modu
len der Im
plemen
tierung
entsprech
en. In
sbesondere kan
n m
an auch
Kom
ponen
ten definieren
, oh
ne in
der Implem
entieru
ng ein
entsprech
endes K
onzept hierfü
r zu
haben
.
�Beispiele für K
ompon
enten�
Enterprise Java-B
ean
�Term
inal m
it Tou
chscreen und T
reibersoftware
�Alternative D
efinition�
A softw
are compon
ent is a un
it of composition
with
contractu
allyspecified in
terfaces and explicit con
text dependen
cies only.
A softw
are compon
ent can be deployed in
depen
dently an
d is subject to
composition
by third parties
1.20
Weitere D
efinitionen
Es existieren über 90 D
efinitionen des Begriffs „Softw
arearchitektur“(siehe http://w
ww.sei.cm
u.edu). Zwei prom
inente Beispiele:
�„Architecture is defined [...] as the fu
ndam
enta
l org
aniza
tionof a system
, embodied in its co
mponents, their
relatio
nsh
ipsto each other and to the environm
ent, and the prin
ciples g
overn
ing its d
esig
n and evolu
tion.“
(IEEE Std. N
o. 1471-2000)
�„The stru
cture
of the com
ponents
of a program/system
their in
terre
latio
nsh
ips, and principles and g
uid
elin
es g
overn
ing
their d
esig
n and evolu
tionover tim
e.“(G
arlan und Perry, 1995)
1.21
Softw
arearch
itektu
r –1. E
inleitung
Ein B
eispiel:wie kom
mt m
an zur Softw
arearchitektur?
�Ein gängiger W
eg, um die K
omponenten einer A
rchitektur zu erm
itteln,besteht in der B
etrachtung von Abhängigkeiten
2.22
Softw
arearch
itektu
r–1. E
inleitung
Ein B
eispiel:wie kom
mt m
an zur Softw
arearchitektur?
�Ein gängiger W
eg, um die K
omponenten einer A
rchitektur zu erm
itteln,besteht in der B
etrachtung von Abhängigkeiten
�Kom
ponenten „gruppieren“Elem
ente mit starker A
bhängigkeit
2.23
ABC
Softw
arearch
itektu
r–1. E
inleitung
Ein B
eispiel:wie kom
mt m
an zur Softw
arearchitektur?
�Ein gängiger W
eg, um die K
omponenten einer A
rchitektur zu erm
itteln,besteht in der B
etrachtung von Abhängigkeiten
�Kom
ponenten „gruppieren“Elem
ente mit starker A
bhängigkeit
�Abhängigkeiten zw
ischen Elem
enten werden zu Schnittstellen
�Ist die A
rchitektur einmal festgelegt, gibt sie R
ichtlinien vor für die Einführung neuer A
bhängigkeiten (hier: keine Verbindung zw
ischen den K
omponenten A
und C)
2.24
ABC
ABC
Softw
arearch
itektu
r–1. E
inleitung
Inhalt
�Ein
leitung
�Motivation
�Organisatorisches zur V
orlesung
�Softw
arearchitektu
r als Design
ergebnis
�Die R
olle der Softwarearchitektur für das System
�Beispiel
�Begriffsdefinition
�Softw
arearchitektu
r als Tätigkeit im
Projekt�
Die R
olle des Softwarearchitekten im
Projekt
�Architekturanalyse und –entw
urf
�Architekturm
odelle
1.25
Softw
arearch
itektu
r –1. E
inleitung
Die R
olle des Softwarearchitekten (nach V
-Modell X
T)
�Aufgaben
und B
efugn
isse�
Entw
urf der System-bzw
. Softwarearchitektur
�Umsetzung der A
nforderungen an die Kom
ponen
ten�
Verantw
ortlichkeit für Implem
entierungs-, Integrations-und Prüfkonzept
�Fäh
igkeitsprofil�
Kennt A
nwendung, R
ahmenbedingungen und E
insatzgebiete des System
s�
Kennt die Schnittstellen des System
s�
Kennt A
rchitekturprinzipien und verschiedene SW
-Architekturen
�Kennt Standard-Softw
are, COTS, M
OTS, etc.
�Kennt M
ethoden und W
erkzeuge �
Hat Fähigkeit, Schw
achstellen und Risiken zu erkennen
�Hat Fähigkeit, Problem
e unter adäquater B
erücksichtigung der SW/H
W zu
analysieren und entsprechende Lösungsvorschläg
e auszuarbeiten�
Hat Fähigkeit, zu
abstrahieren und zu vereinfachen�
Hat Fähigkeit, A
bhängigkeiten zu erkennen�
Hat K
ommunikationsfähig
keit mit A
nwendern und T
eam
1.26
Softw
arearch
itektu
r –1. E
inleitung
Spannungsfeld Architekturentw
urf
1.27
Softwarearchitekt
Endbenutze
rKunde
Management
Methodike
rEntwickle
r
Administra
tor
Marke
tingmehr F
unktio
nalitä
t als d
ie Konkur-
renz, ku
rze Entwicklu
ngsdauer,...
hohe Effe
ktivität,
Ausla
stung, W
achstu
m,...
einfacher B
etrie
b,
einfache W
artu
ng,...
Funktio
nalitä
t, Perfo
rmanz,
Stabilitä
t, Sich
erheit,...
geringe Koste
n, hohe
Qualitä
t, Term
intre
ue,...
Implementierungs-
richtlin
ien, D
esig
n,...
Einhaltung vo
n Standards fü
r Dokumentation, V
orgehen,...
Organisa
tion
Einhaltung vo
n Betrie
bs-
vereinbarungen, R
ichtlin
ien,...
Softw
arearch
itektu
r –1. E
inleitung
Ziel des Architekturentw
urfs
�Eine Softw
arearchitektur besteht aus einer Menge von
Kom
ponenten und deren Beziehungen untereinander.
�Ziel des A
rchitekturentwurfs ist:
�Den
Bau
plan des System
s zu erstellen
, nach
dem sich dan
n Erstellung,
Wartu
ng, Pfleg
e und W
eiterentw
icklung au
srichten
�Ein
e vollständige u
nd prägn
ante A
rchitektu
rbeschreibu
ng erstellen
�Dabei d
ie geforderten fu
nktionalen
und n
icht fu
nktion
alen
Anforderu
ngen gew
ährleisten
�Die A
rchitekturbeschreibung dient als
�Kom
munikation
s-und D
iskussion
splattform
�Design
-und Im
plemen
tierungsplan
1.28
Softw
arearch
itektu
r –2. Z
iele und Ergebnisse
des A
rchitektu
rentwurfs
Architekturbeschreibung:
Kom
munikations-
und Diskussionsplattform
�Abstrakte B
eschreibu
ng des System
s
�Beh
errschbarkeit der K
omplexität
�Zuordn
en, Priorisieren und R
eflektieren von fu
nktion
alen und n
icht fu
nktion
alen Anforderun
gen
�Integration von
existierenden Lösu
ngen und System
en
�Abgleich
mit den
Anforderun
gen an
Systemarch
itektur
und H
ardware
�Erarbeiten
, Evaluieren un
d Bew
erten von altern
ativen Lösu
ngsansätzen
1.29
Softw
arearch
itektu
r –2. Z
iele und Ergebnisse
des A
rchitektu
rentwurfs
Softw
arearchitekt
Endbenutze
rKunde
Management
Marke
ting
Organisa
tion
Softw
arearchitekt
Endbenutze
rEndbenutze
rKunde
Kunde
Management
Management
Marke
ting
Marke
ting
Organisa
tion
Organisa
tion
Architekturbeschreibung:
Design-
und Implem
entierungsplan
�Festlegu
ng der Kom
ponen
ten des System
s sow
ie deren Sch
nittstellen
und
Interaktionsm
uster
�Integration von
neu
en Tech
nologien
und in
novativen Lösungsan
sätzen
�Erarbeitun
g, Einführung, Sch
ulung u
nd Überprüfun
g von
Programmierrich
tlinien
�Erstellu
ng von Prototypen
und exem
plarischen
Teillösun
gen
�Wiederverw
endu
ng von existierenden
Implem
entierungen
und Teilim
plemen
tierungen
�Rah
men für die Projektorgan
isation und -plan
ung
1.30
Softw
arearch
itektu
r –2. Z
iele und Ergebnisse
des A
rchitektu
rentwurfs
Softw
arearchitekt
Methodiker
Entwick
ler
Administra
tor
Softw
arearchitekt
Methodiker
Methodiker
Entwick
ler
Entwick
ler
Administra
tor
Administra
tor
Architekturm
odellierung
.31
File
- FileN
ame : S
tring
P
- X : int
- Y : int F
o
- Nam
e : String
- Style : int
- Size : int
Di
- Heig
ht : int- W
idth : intLine
+$ S
TRAIGHT : LineS
tyle+$ S
NAPPED : LineS
tyle+$ S
LANTED : LineS
tyle+$ LO
OP : LineS
tyle
<<Enum
>>
Autom
a
+$ IM
PLE
MENTATION : A
utomatonK
ind+$ C
LASSSPEC : A
utomatonK
ind+$ T
YPESPEC : A
utomatonK
ind
<<Enum
>>
Dire
+$ IN
: Direction
+$ O
UT : D
irection
<<Enum
>>
Tran
- Nam
e : String
- Input : String
- Output : S
tring- P
reCondition : S
tring- P
ostCondition : S
tring- A
ction : String
- IsOuter : boolean
- ControlP
ointOne : P
oint- C
ontrolPointT
wo : P
oint
Par
- Nam
e : String
Rep
S
Inte
- Nam
e : String
- Condition : S
tring- D
irection : int- Location : P
oint
* 1
+OutS
egment*
+SourceP
oint 1
* 1+InS
egment
* +DestinationP
oint1
Com
- Nam
e : String
- OEFStream
: String
- OEFAnnotation : S
tring
* 1* 1
Re
- Nam
e : String
11
11
Proj
Chan
- Nam
e : String
- Type : S
tring- D
isplayFont : F
ont- D
rawType : int
- TextB
oxSize : D
imension
- TextB
oxLocation : Point
Stat
- Nam
e : String
- Predicate : S
tring- E
ntryAction : S
tring- E
xitAction : S
tring- IsH
istory : boolean- IsInitial : boolean- Location : P
oint- S
ize : Dimension
- Border : int
0..1*
0..1*
1* 1*
Proj
- Nam
e : String
- OEFStream
: String
* 1* 1 1* 1*
0..1
*
+SuperP
roject
0..1
+SubP
roject
*
11
11
S
Attr
- Nam
e : String
- Type : S
tring
Port
- Nam
e : String
- Direction : D
irection = -1
- Type : S
tring- Location : P
oint# D
isplayFont : F
ont- S
howNam
e : boolean
0..1 1
+OutC
hannel
0..1
+SourceP
ort
1
0..1
1
+InC
hannel
0..1
+DestinationP
ort
1
Co
- Nam
e : String
1
*
1
*
Auto
- Nam
e : String
- Kind : int
- ClassN
ame : S
tring
0..1* 0..1*
1
*
1
*
Com
- Nam
e : String
- Location : Point
- Size : D
imension
- Border : int
- DisplayF
ont : Font
- TextB
oxLocation : Point
- TextB
oxSize : D
imension
0..1*
0..1*
1*
+SuperC
omponent
1
+SubC
omponent *
1
*
1
*
1* 1*
0..1
1
0..1
1
0..1
0..1
0..1
0..1
Te
- Line : String
11..*11..*
top-downbottom-up
fachlich
technisch
Arch
itektu
rmodell
Wiederve
rwendung
Applika
tionsse
rver,
Datenbanken,
Transaktio
nsm
onitore
existie
rende
Komponenten &
Syste
me
fachlich
eAnforderungen
Syste
march
itektu
r, Hardware
Arch
itektu
ranalyse
Softw
arearch
itektu
r –1. E
inleitung
Eingangsprodukte des E
ntwurfs: A
nforderungen
�Anforderungskategorien
�Funktionale A
nforderungen: Verw
altung von Kunden,
Verw
altung von Verträgen, etc.
�Nicht funktionale A
nforderungen-
Qualitätsan
forderungen
(IEEE 1061): Ben
utzbarkeit, Stabilität,
Wartbarkeit, Erw
eiterbarkeit, Performan
z, etc.
-Ran
dbedingu
ngen-
System / Produ
kt: Vorgaben zur V
erteilung, physikalische Anforderungen, U
mweltanforderu
ngen, Materialanforderungen, etc.
-Technologie: V
orgaben zur Hardw
are, Vorgaben zur Softw
are, Vorgaben zu Standardtechnologie, etc.
-Prozess: V
orgaben zum Vorgehen
smodell, A
nforderungen bzgl. Einführung und M
igration, etc.
-Organisation / M
anagement: V
orgaben bzgl. Zeit und B
udget, Vorgaben bzgl. Personal, V
orgaben bzgl. Ressourcen
1.32
Softw
arearch
itektu
r –1. E
inleitung
Ergebnisprodukte der A
rchitekturanalyse
�Besch
reibung der A
rchitektu
ranforderungen
�Identifizieren, E
inordnen und Beschreiben der A
nforderungen
�Charakterisierung der A
nforderungen bzgl. Flexibilität und Änderbarkeit
�Ausw
irkungsanalyse von Anforderungsänderungen
�Besch
reibung der A
rchitektu
rtreiber �
Identifizieren der zentralen Architekturtreiber und Zuordnen der
Anforderungen
�Entw
icklung von (alternativen) (Teil-) Lösungen und Strategien
bzw. Strategiebausteinen
�Identifizieren von Strategien und Lösungen, die in B
eziehung stehen
1.33
Softw
arearch
itektu
r –1. E
inleitung
Beschreibung der A
nforderungen
<Name der Anforderung>
Kategorie:
<Kategorie der A
nforderung: fu
nktio
nale Anforderung, nich
t funktio
nale Anforderung (Q
ualitä
tsanforderung), R
ahmen-
bedingung Syste
m/Produkt, u
sw.; G
egenebenenfalls V
erweis
auf das A
nforderungsanalyse
-bzw
. Domänenanalyse
-dokument>
Beschreibung:
<Kurze
Besch
reibung der A
nforderung>
Prioritä
t:<muss | so
ll | kann>
Flexibilitä
t und
Änderbarkeit:
<Besch
reibung der F
lexib
ilität der A
nforderung, d
.h. in
wie weit
akze
ptiert d
er A
nforderungsträ
ger, d
ass d
iese Anforderung
verändert w
erden.
Besch
reibung der Ä
nderbarke
it der A
nforderung, d
.h. in
wie
weit sin
d Änderungen dieser A
nforderung durch
den
Anforderungsträ
ger a
bzusehen.>
Auswirkungen:
<Ausw
irkungen auf andere Anforderungen und auf die
Arch
itektu
r bzw
. auf T
eile der A
rchitektu
r bei Ä
nderungen
dieser A
nforderung>
1.34
Softw
arearch
itektu
r –1. E
inleitung
Beschreibung der A
rchitekturtreiber
<Name des Architekturtre
ibers>
Beschreibung:
<Kurze
Besch
reibung des A
rchitektu
rtreibers>
Anforderungen:
<Liste
der A
nforderungen, d
ie der A
rchitektu
rtreiber
adressie
rt.>
1. Testszenario:
<Besch
reibung eines A
nwendungssze
narios u
m eine ko
rrekte
Realisie
rung des A
rchitektu
rtreibers zu
überprüfen.>
N. Testszenario:
<dito>
Lösung:
<Kurze
Lösungsbesch
reibung>
1. Strategiebaustein:
<Besch
reibung eines S
trategiebauste
ins. M
ehrere
Stra
tegiebauste
ine kö
nnen so
wohl alternativ a
ls auch
kombiniert ve
rwendet w
erden.>
N. Strategiebaustein:
<dito>
Verwandte Strategien:
<Liste
anderer A
rchitektu
rtreiber b
zw. S
trategiebauste
inen, d
ie
in Bezug zu
diesem Arch
itektu
rtreiber ste
hen>
1.35
Softw
arearch
itektu
r –1. E
inleitung
Anw
endungsbeispiel: eVersicherung 2000
�Neu
es Inform
ationssystem
„eVersich
erung 2000“
der „Versich
erungs A
G“
�Produ
kte der Versich
erungs A
G�
Lebensversicherungen
�Rentenversicherungen
�Unfallversicherungen
�Fu
nktion
alität der eVersich
erung 2000
�Versicherungsangebote verw
alten
�Versicherungsverträge verw
alten
�Versicherungspolicen verw
alten
�Anwen
der des Systems sin
d Endkunden, M
akler und
Mitarbeiter der V
ersicheru
ngs AG
1.36
Softw
arearch
itektu
r –1. E
inleitung
Beispiel einer A
rchitekturanforderungsbeschreibung
A1: Verwaltung von Kundendaten
Kategorie:
funktio
nale Anforderung
Beschreibung:
Das S
ystem erm
öglich
t Benutze
rn Kunden zu
erze
ugen, deren
Daten (N
ame, A
dresse
, etc.) zu
bearbeiten, zu
suchen und zu
lösch
en.
Prioritä
t:muss
Flexibilitä
t und
Änderbarkeit:
Exte
rne Kundendatenbanken müsse
n in zu
künftig
en
Versio
nen des S
ystems e
ingebunden werden kö
nnen.
Auswirkungen:
Die nachträ
glich
e Integration exte
rner K
undendatenbanken
kann große Ausw
irkungen auf d
ie Arch
itektu
r und so
mit a
uch
auf das S
ystem so
wie die damit ve
rbundenen
Entwicklu
ngssa
ufwände haben.
1.37
A2: Verwaltung von Vertra
gsdaten
Kategorie:
funktio
nale Anforderung
.....
Softw
arearch
itektu
r –1. E
inleitung
Beispiel einer A
rchitekturanforderungsbeschreibung
Softw
arearch
itektu
r –2. Z
iele und Ergebnisse
des A
rchitektu
rentwurfs
1.38
A3: Gleichzeitiges Arbeiten mehrer Benutzer
Kategorie:
Qualitä
tsanforderung
A4: Internet-basiertes System mit grafischer Oberfläche
Kategorie:
Qualitä
tsanforderung
A5: Benutzer haben Zugriff a
uf aktuelle Daten
Kategorie:
Qualitä
tsanforderung
A6: Time-to-market ist zw
ei Jahre
Kategorie:
Rahmenbedingung Syste
m/Produkt
A7: Anforderungen sind priorisiert
Kategorie:
Rahmenbedingung Prozess
A8: Release-Zyklus wichtiger als Funktionalität
Kategorie:
Rahmenbedingung Management
.....
Beispiel einer A
rchitekturtreiberbeschreibung
Aktuelle, konsistente, mehrbenutzerfähige Datenbearbeitung
Beschreibung:
Mehrere Benutze
r müsse
n gleich
zeitig
mit d
em Syste
m die
Daten bearbeiten und auf a
ktuelle und ko
nsiste
nte Daten
zugreifen kö
nnen. A
uf D
atenänderungen anderer B
enutze
r muss e
in möglich
st zeitnaher Z
ugriff m
öglich
sein.
Anforderungen:
A1, A
2, A
3, A
4, A
5, A
6, A
8,
1. Testszenario:
Das S
ystem ste
llt dem Benutze
r eine Kundenliste
zur
Verfü
gung. D
er B
enutze
r wählt e
inen Kunden zu
r Bearbeitung
aus u
nd ändert d
en Namen des K
unden. M
it der B
estä
tigung
der N
amensänderung, ä
ndert sich
auch der N
ame in der
dargeste
llten Kundenliste
.
2. Testszenario:
Benutze
r A bearbeitet die Daten eines K
unden. E
in anderer
Benutze
r B erm
ittelt g
leich
zeitig
ein Liste
mit K
unden deren
Versich
erungsvo
lumen ein bestim
mtes L
imit ü
bertrifft. In
dieser
Kundenliste
taucht auch der ve
ränderte
Name des K
unden auf,
der g
erade vo
n Benutze
r A bearbeitet w
urde.
Lösung:
????
Softw
arearch
itektu
r –2. Z
iele und Ergebnisse
des A
rchitektu
rentwurfs
1.39
Beispiel einer A
rchitekturtreiberbeschreibung
Lösung:
Kombination vo
n Model/V
iew/Contro
ller M
uste
r und
Transaktio
nsm
echanism
us. Z
uerst e
ine Kombination aus d
em
1. und dem 6. S
trategiebauste
in. D
ann vo
n dem 1. zu
m 2. und
später zu
m 3. S
trategiebauste
in erweitern, entsp
rechend dem
Arch
itektu
rtreiber „K
urze
Entwicklu
ngszykle
n“.
1. Strategiebaustein:
Benutze
r kann die Aktu
alisie
rung der D
aten auf K
nopfdruck
aktivie
ren.
2. Strategiebaustein:
In bestim
mten Zeitin
terva
llen werden die angezeigten Daten
aktu
alisie
rt.
3. Strategiebaustein:
Nach einer D
atenänderung werden die Daten anderer
Benutze
r automatisch
aktu
alisie
rt.
4. Strategiebaustein:
Eine Transaktio
n pro Benutze
r
5. Strategiebaustein:
Eine Transaktio
n pro Dialog / F
enste
r
6. Strategiebaustein:
Eine Transaktio
n pro Anwendungsfa
ll
Verwandte
Strategien:
Arch
itektu
rtreiber: K
urze
Entwicklu
ngszykle
n; 1. S
trategie:
Einfaches, in
krementelles H
inzufügen vo
n Funktio
nalitä
t
1.40
Softw
arearch
itektu
r –1. E
inleitung
Ergebnistyp der A
rchitekturmodellierung:
Architekturbeschreibung bzw
. Architekturspezifikation
�Ein
e Arch
itekturbesch
reibung bzw
. Arch
itektur-
spezifikation besch
reibt ein Arch
itekturm
odell (meist in
Form
eines Softw
arearchitektu
rdokumentes)
�Ein
Softwarearch
itekturdokumen
t sollte enthalten:
�En
twurfsziele, R
ichtlin
ien und M
uster der A
rchitektur
�Abstrakte, grafisch
e Besch
reibungen
mit versch
iedenen
Sichten�
Zusätzlich
er, erklärender T
ext�
Entw
urfsen
tscheidungen
und A
lternativlösu
ngen�
Funktion
ale und nich
t funktion
ale Testfälle
�Erw
eiterungsm
öglichkeiten
�Ein
Softwarearch
itekturdokumen
t sollte so einfach
wie
möglich
sein, aber so u
mfan
greich w
ie notwen
dig.�
“You
know you
've achieved perfection in design, not
when
you have noth
ing m
ore to add, but w
hen
you
have noth
ing m
ore to take away.”
[nach Antoine de Saint-Exupery]
1.41
Softw
arearch
itektu
r –1. E
inleitung
Techniken für den A
rchitekturentwurf
�Ziel des A
rchitektu
rentwurfs
�Kom
ponenten identifizieren
�Schnittstellen der K
omponenten beschreiben
�Kom
position der Kom
ponenten beschreiben
�Tech
niken
�Anw
endung von Heuristiken zur K
omponentenidentifikation
-Hau
ptwörter in
Anforderun
gen w
erden zu
Entitäten
und Verben
werden
zu Aktivitäten
-Bündelu
ng von A
ktivitäten und En
titäten in
Kom
ponenten
�Von Szenarien zu vollständigen M
odellen-
Von
UML-Sequen
zdiagrammen
zu UML K
lassendiagram
men
-Class R
esponsibilities C
ollaborations W
orkshop, C
RC-Karten
�Wiederverw
endung von bewährten A
rchitekturen (Architekturstile, Fram
eworks, etc.)
1.42
Softw
arearch
itektu
r –1. E
inleitung
Erfolgsfaktoren des A
rchitekturentwurfs
�In m
inim
alen Sch
nittstellen
und K
ompon
enten den
ken
�Syn
tax und V
erhalten
von Schnittstellen
und
Kom
ponenten
beschreiben
�Kom
position der K
ompon
enten
zu ein
er Arch
itektur
getrennt besch
reiben
�Modu
larität
�Lose K
opplung
�Abh
ängigkeiten
sichtbar m
achen
�Zu
erst fachlich
e Sichten
, dann tech
nisch
e
�Geeign
ete Kom
bination
von bottom-up u
nd top-down
1.43
Softw
arearch
itektu
r –1. E
inleitung
1-44
Architekturdokum
ente nach V-M
odell XT
�Die zen
tralen Produ
kte der Systemerstellu
ng, der H
W-und SW
-Entw
icklung
haben
eine einh
eitliche T
hem
enstru
ktur.
�…
legen rich
tungsw
eisende A
rchitektu
rprinzipien
fest
�…
untersu
chen m
ögliche En
twurfsaltern
ativen
�…
beschreiben
die Zerlegung in
Kom
ponen
ten
�…
identifizieren
Schnittstellen
und B
eziehungen
zwisch
en Kom
ponen
ten und
zur U
mgebun
g des Systems
�(U
nte
rstützu
ngs-) S
yste
m-/ H
W-/ S
W-A
rchite
ktu
r�
Arch
itektu
rprin
zipien u
nd E
ntw
urfsa
ltern
ativ
en
�Dekom
positio
n d
es (U
nte
rstützu
ngs-) S
yste
ms /
der H
W-/ S
W-E
inheit
�Quersch
nittlich
e S
yste
meig
ensch
afte
n (nur bei (U
nterstützun
gs-) System
)
�Sch
nittste
llenübersich
t
�(Ü
berg
reife
nder) D
ate
nkata
log
�Desig
nabsich
eru
ng
�Zu sp
ezifizie
rende S
yste
m-/ H
W-/ S
W-E
lem
ente
Designabsicherung
�Ziel: Zeigen
, dass die Arch
itektur die A
nforderungen
erfü
llt. Eventuell darüber h
inau
s Altern
ativen bew
erten�
Modellgetrieben
e Validierun
g und Verifikation
�exem
plarische „Ausführung“
der Modelle
�Modelchecking
�Bew
eisen bestimmter E
igenschaften (Theorem
beweiser)
�Prototyping�
experimentelle Prototypen
�explorative Prototypen
�evolutionäre Prototypen
�Tests�
funktionale Tests
�Lasttests
�Perform
ance-Tests
�Messu
ngen m
it Metriken
(siehe [G
il02])1.45
Softw
arearch
itektu
r –1. E
inleitung
Der A
rchitekt als Programmierer
�Evalu
ierung von En
twurfsaltern
ativen m
it Hilfe von
experim
entellen
Prototypen
�Ein
führung un
d Verbreitu
ng der Softwarearch
itektur im
En
twicklerteam
durch
evolutionären
Prototypen
�Evalu
ierung u
nd Einführun
g von neu
en innovativen
Tech
nologien
und Konzepten
�Mitarbeit im
Entw
icklerteam als Program
mierer u
. Tester
�Train
er und B
erater des Entw
icklungsteam
s
�Koordin
ation und M
oderation der Schnittstellen
-festlegun
g wäh
rend Fein
design un
d Implem
entierun
g
�Initiieru
ng und Etablieru
ng des Dialogs zw
ischen
den En
twicklern
im Team
2.46
Softw
arearch
itektu
r –2. Z
iele und Ergebnisse
des A
rchitektu
rentwurfs
Der A
rchitekt als Analyst
�Maßgeblich
e inhaltliche G
estaltung der System
vision: Festlegu
ng der übergreifen
den Ziele, A
nforderu
ngen und
Rah
menbedingungen
des Systems u
nd Arch
itektur
�Abstim
mung der System
anforderu
ngen durch
explorative Prototypen
�Wirku
ngsanalyse, A
bstimmung un
d Review
von Anforderungen
an das System
�Integration von
technisch
en und konzeptionellen
Innovationen
in die gem
einsam
e Systemvision
�Verbreitu
ng und A
kzeptanz der Systemvision
unter allen
Beteiligten
: Endbenu
tzer, Kunde, En
twicklu
ngsteam
, etc.1.47
Der A
rchitekt als technischer Projektleiter (1)
�En
tscheidun
gskompeten
z für alle w
esentlich
en En
twurfs-
entsch
eidungen u
nd Verän
derungen
: Entscheidun
gen so
spät wie m
öglich und so frü
h wie nötig treffen
!�
Ausw
ahl u
nd Beu
rteilung der techn
ischen
Fähigkeiten
von B
ewerbern un
d Mitarbeitern
�Ausw
ahl u
nd Festlegung von Sch
ulungen, W
erkzeugen
und T
echnologie
�Sch
ulung un
d Einführu
ng der Softwarearch
itektur im
En
twicklerteam
�Motivation
, Begeisterun
g und Integration des
Entw
icklerteams bzgl. des A
rchitektu
rentwurfs
�Organisation
des Entw
icklerteams en
tsprechend dem
Arch
itekturen
twurf u
nd dem Projektplan
1.48
Der A
rchitekt als technischer Projektleiter (2)
�Zuordn
en der konkreten
Implem
entieru
ngsaufgaben zu
den Entw
icklern
�Delegieren von „lokalen
“En
twurfsen
tscheidu
ngen an
Spezialisten und an
das Entw
icklungsteam
�Verfolgu
ng und Ü
berprüfung der im
plementieru
ngs-spezifisch
en Projektm
eilenstein
e
�Verfolgu
ng und Ü
berprüfung der Q
ualität des
Feindesigns der Im
plemen
tierung
�Überprü
fung der In
tegrität und korrekten
Realisierun
g der Softw
arearchitektu
r
�Organisation
von Wartu
ng und W
eiterentw
icklung der
zentralen
Schnittstellen
des Systems
1.49
Der A
rchitekt als „Hüter“
der Softwarearchitektur
�Überprü
fung u
nd Sicherung der Ein
haltu
ng der Arch
itekturvorgaben im
konkreten
Entw
icklungsprojekt
�Softw
arearchitektu
r und die R
olle des Software-
architekten als B
estandteil der Untern
ehmen
skultu
r etablieren
�Iden
tifikation, Koordination
und Erarbeitung von
projektübergreifenden A
rchitektu
rthem
en aus der eigen
en Projektlandschaft, In
dustrie und Forsch
ung
�Defin
ition und Integration des A
rchitektu
rentwurfs in
die firm
enübergreifende Projektman
agemen
t-un
d Qualitätssich
erungsstan
dards
1.50
Zusammenfassung „D
isziplin Softwarearchitektur“
�Ziel des A
rchitektu
rentwurfs ist es ein
e vollständige u
nd prägn
ante A
rchitektu
rbeschreibun
g zu erstellen
, um die
geforderten fun
ktionalen
und n
icht fun
ktionalen
Anforderungen
zu gewäh
rleisten�
Der Softw
arearchitekt ist D
IE Brücke zw
ischen
allen Anforderungsträgern un
d der Softwaretech
nik
�Der En
twurfsprozess steh
t im Zentru
m des gesam
ten
Entw
icklungsprozesses; Er h
at Schnittstellen zu
Anfor-
derungsanalyse, System
architektu
r und Im
plementierung
�Der En
twurfsprozess ist ein Zyklu
s aus A
nalyse,
Modellieru
ng und V
alidierung der Softw
arearchitektur
�Die qu
erschnittlich
en Aufgaben
des Arch
itekten geh
en von der Program
mierun
g bis zur Firm
enstrategiegestaltu
ng2.51
Softw
arearch
itektu
r –1. E
inleitung
Literaturhinweise
�[BRS97] K
laus Bergner, A
ndreas Rausch, M
arc Sihling: U
sing UML for M
odeling a Distribu
ted Java Application, T
echnischer B
ericht der U
niversität München, T
UM-
I9735, http://wwwbib.in
formatik.tu-m
uenchen.de/infberich
te/1997/TUM-
I9735.ps.gz,1997
�[AF98] Paul A
llen, Stuart Forst: C
omponent-Based D
evelopment for Enterprise
Systems: A
pplying The SELECT Perspective , C
ambridge U
niversity Press, 1998�
[BCK+98] Len B
ass, Paul Clem
ents, R
ick Kazm
an, Ken B
ass: Software A
rchitecture in Practice (Sei Series in Softw
are Engineering) , Addison
-Wesley Pub
lishing, 1998�
[DW98] D
esmon
d Francis D'Sou
za, Alan C
ameron W
ills. Objects, C
omponents, and
Framew
orks With U
ML: The C
atalysis Approach
, Addison W
esley Publishing Com
pany, 1998�
[HNS99] C
hristine Hofm
eister, Robert N
ord, Dilip S
oni: Applied Softw
are Architecture , A
ddison W
esley –Object T
echnology Series, 1999�
[HS99] Peter H
erzum, O
liver Sims. B
usiness Com
ponent Factory: A
Com
prehensive Overview
of Com
ponent-Based Developm
ent for the Enterprise , John W
iley & Sons,
1999�
[JRL+
00] Mehdi Jazayeri, A
lexander R
an, Frank Van D
er Linden, Philip V
an Der
Linden: Software A
rchitecture for Product Families: Principles and Practice, A
ddison-
Wesley Publishin
g, 2000�
[Gil02] T
om Gilb: C
ompetitive E
ngineering, www.gilb.com
, 2002
1.52
Softw
arearch
itektu
r –1. E
inleitung