Institut fürInformatik Technische Universität München fileDie Disziplin „Architektur“...

26
Vorlesung Wintersemester 2008 / 2009 Technische Universität München Institut für Informatik Lehrstuhl von Prof. Dr. Manfred Broy Dr. Klaus Bergner, Prof. Dr. Manfred Broy, Dr. Marc Sihling Softwarearchitektur (Architektur: αρχή = Anfang, Ursprung + tectum = Haus, Dach) 1. Einleitung und Überblick Inhalt Einleitung Motivation Organisatorisches zur Vorlesung Softwarearchitektur als Designergebnis Die Rolle der Softwarearchitektur für das System Beispiel Begriffsdefinition Softwarearchitektur als Tätigkeit im Projekt Die Rolle des Softwarearchitekten im Projekt Architekturanalyse und –entwurf Architekturmodelle 1.2 Softwarearchitektur – 1. Einleitung

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