• Keine Ergebnisse gefunden

E in fü hr un g in d ie o bj ekt or ie nt ie rt e S of tw ar ea rch ite kt ur

N/A
N/A
Protected

Academic year: 2021

Aktie "E in fü hr un g in d ie o bj ekt or ie nt ie rt e S of tw ar ea rch ite kt ur"

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik1

43 V erfeinerung von Lebensz yklen - Ges chic ht ete Interpre tier er (Automaten) P ro f. Dr . r e r. n a t. h a bil. Uwe A ß m an n In stitu t fü r S oftwa re - u n d M ultim ed ia te ch nik Le hr stu hl S oftwa re te ch no lo gie F aku ltä t fü r In fo rm atik T U Dr esd en V er sio n 1 0- 0.3 , 27 .0 6.1 1

1) In te rp re tie re r 2) Sch ich tu ng

Prof. U. Aßmann, Softwaretechnologie2

O bl igat or ische Li ter at ur

(2)

Prof. U. Aßmann, Softwaretechnologie3

O bj ekt or ient ier ter E nt w ur f (O bj ect -O rient ed D esi gn, O O D )

1.

E in fü hr un g in d ie o bj ekt or ie nt ie rt e S of tw ar ea rch ite kt ur

1.Modularität und Geheimnisprinzip 2.Entwurfsmuster für Modularität 3.BCD-Architekturstil (3-tier architectures) 2.

V e rf ei ne ru ng d e s E nt w ur fsm o de lls zu m I m pl e m e nt ie ru ng sm o de ll (A nr ei ch er un g vo n K la sse nd ia gr am m en )

1.Verfeinerung von Operationen 2.Verfeinerung von Assoziationen 3.Verfeinerung von Vererbung 3.Verfeinerung von Lebenszyklen 1.Verfeinerung von verschiedenen Steuerungsmaschinen 2.Querschneidende Verfeinerung mit Chicken Fattening 4.

O bj ekt or ie nt ie rt e R ah m en w er ke ( fr am ew or ks)

5.

S of tw ar ea rch ite kt ur m it de m Q ua sa r- A rch ite kt ur st il

Prof. U. Aßmann, Softwaretechnologie4

P unkt w ei se vs quer schnei dende V er fei ner ung

P un kt w ei se V er fe in er un g:

Verfeinerung von Lebenszyklen, d.h. Objekten, Operationen und Attributen Arbeit jeweils an einem Punkt der Spezifikation

Q ue rsch ne id en de V er fe in er un g:

Arbeit an mehreren Punkten der Spezifikation Kapselung des Querschnittsverhaltens in einer Kollaboration (Konnektor)

(3)

Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik5

43.1 Ges chic ht ete Lebensz yk len (S teu er ungsm asch in en, A bst ra kt e M aschi ne n, Layer ed A bst ract M achi nes, Layer ed Int er pr et er

Prof. U. Aßmann, Softwaretechnologie

G eschi cht et e Lebenszykl en

D er A rch ite kt ur st il

Geschichtete Lebenszyklen

( g esc hi ch te te S te u er un g sm a sch in en , ab st ra kt e M a sc hi ne n , L a ye re d A bst ra ct M ach in es) b en u tzt p un kt w ei se V er fe in er u ng , um h ö he r lie ge n de ab st ra kt e M a sch in en m it a usd ru cksst ar ke n K om m a nd os pr a ch en in ni ed er er li eg en de a bst ra kt e M asch in en a bzu bi ld en

G esch ich te t

D om in an t b ei in te ra kt ive n A nw en du ng en

Büroautomation (office systems) Editoren Formular-basierte Anwendungen, auch Web

A uch fü r ba tch -S yst em e (o hn e In te ra kt io n)

Auftragsbearbeitung (Order processing) Transaktionsverarbeitung (OLTP, online transaction processing)

(4)

Prof. U. Aßmann, Softwaretechnologie7

La yer ed A bst ract M achi ne s (Laye re d Int er pr et er s)

E in e

abstrakte maschine (Interpreter,abstract machine, interpreter)

be st eh t au s

Einer Menge von Operationen und gekapselten Daten Wird realisiert auf einer niederer liegenden abstrakten Maschine (verborgen)

W en n di e a bst ra kt e M asch in e m it e in em A ut om at a ls Le be n szykl u s ve rse he n w ird , sp re ch en w ir vo n ei ne r S te u er un g sm a sch in e (si eh e zu vo r)

Siehe Entwurfsmuster Command and Interpreter (Gamma-Buch”)

Processor<<interpreter>> open() <<command>> read() <<command>> write() <<command>> close() <<command>> Prof. U. Aßmann, Softwaretechnologie8

La yer ed A bst ract M achi ne s (Laye re d Int er pr et er s, Layer ed A ut om at a)

D ie U S E S -R el at io n zw isc h en ab st ra kt en M a sc hi n en m u ss zykl en fr ei se in

HigherProcessor<<interpreter>> open() <<command>> read() <<command>> write() <<command>> close() <<command>> LowerProcessor<<interpreter>> start() <<command>> get() <<command>> put() <<command>> stop() <<command>>

realization

(5)

Prof. U. Aßmann, Softwaretechnologie

R eal isi er un g vo n In ter pr et er n m it S teuer ungsm aschi nen

Verhalten von Interpretern kann durch Steuerungsmaschinen beschrieben werden können Interpreter (Steuerungs- maschinen) auf oberen Schichten können Interpreter auf unteren Schichten steuern

Tür abgesperrt

verriegeln/ amp.rotesLichtAn() entriegeln/ amp.grünesLichtAn()

geschlossen entry/stop() schließen/ amp.gelbesLichtAn() tm.start()

öffnen()/ tm.start()öffnen(), verriegeln(), entriegeln()/ - öffnen, schließen verriegeln -

entriegeln(), schließen()/ amp.beep() offen entry/stop() TürAmpel

öffnen() schließen() verriegeln() entriegeln() rotesLichtAn() grünesLichtAn() gelbesLichtAn() beep() rotesLichtAn() /.... grünesLichtAn()/ .....

gelbesLichtAn()/ ..... beep()

<<Steuerungsmaschine>>

<<Steuerungsmaschine>> TürMotor start() stop() runningstoppedstop()/... start()/...

<<Steuerungsmaschine>>

Schichtgrenze Prof. U. Aßmann, Softwaretechnologie

R eal isi er un g von Int er pr et er n dur ch S teuer ungsm aschi nen

Gelingt es, die Anwendung durch Schichten von Steuerungsmaschinen zu beschreiben, liegt ein sehr stark strukturierte Variante von Geschichteten Abstrakten Maschinen vor: Geschichtete Steuerungsmaschinen (layered behavioral machines) Diese können durchaus als Fassadenklassen von Paketen dienen, die das ganze Paket steuern P1 <<private>> I1.1<<private>> I1.2F1 P2 <<private>> I2.1 <<private>> I2.2

F2<<private>> I2.3 P3 <<private>> I3.1 <<private>> I3.2

F3<<private>> I3.3

(6)

Prof. U. Aßmann, Softwaretechnologie11

G eschi cht et e S te uer un gsm asch in en (Laye re d A bst ract M achi nes)

Abstrakte Maschine als Lebenszyklus von Implementierungsobjekten in einer Programmiersprache Abstrakte Maschine als Lebenszyklus eines technischen Entwurfsobjektes niederer Abstraktion

Abstrakte Maschine als Lebenszyklus eines technischen Entwurfsobjektes

Abstrakte Maschine als Lebenszyklus eines Analyseobjektes USES Relation

Anwendungs- orientiert Maschinen- orientiert Prof. U. Aßmann, Softwaretechnologie12

V er fei ne rung m it geschi cht et en S teuer ungsm aschi nen (t op- dow n)

Abstrakte Maschine als Lebenszyklus von Implementierungsobjekten in einer Programmiersprache Abstrakte Maschine als Lebenszyklus eines technischen Entwurfsobjektes niederer Abstraktion

Abstrakte Maschine als Lebenszyklus eines technischen Entwurfsobjektes

Abstrakte Maschine als Lebenszyklus eines Analyseobjektes USES Relation

Anwendungs- orientiert Maschinen- orientiert

(7)

Prof. U. Aßmann, Softwaretechnologie

3 A rt en von Lebenszykl en: Tool s, M at er ial ien, A ut om at en

W erk ze uge ( tool s)

Aktiv Vom Benutzer oder von Automaten aus angesteuerbar

M at eri al ie n (ma te ri al s)

Passiv; nur über ein Tool benutzbar In die Datenbank (E- und D- Schicht) Gehorchen der CRUD-Schnittstelle (create, read, update, delete)

A ut o ma t (I nt erpre ti ere r, a ut oma ton, w ork fl ow , int erpre te r)

Arbeitsfluss; Programmsteuerung Steuert Werkzeuge an, die auf Materialien arbeiten Gleiche Schnittstelle wie tool

Tool<<tool>> start() work_1() .. work_n() step() stop() Material<<material>>

<<uses>> create() read() update() ( write() ) delete() open() close()

Automat<<automaton>> start() run() step() stop() <<uses>> Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik14

43.2 Anwendung von gesc hichten abs trak ten Mas chinen

(8)

Prof. U. Aßmann, Softwaretechnologie15

D er ga nze C om put er ist ei ne ei nzi ge geschi cht et e abst rakt e M aschi ne

Specification language High level programming language Intermediate language Assembler Machine code Kernel interface Microcode Gates Physics

shell-Interpreter, VDM Chip simulator ?

Prolog-Interpreter JVM-Interpreter, emacs Lisp Code, .NET-VM Microcode interpreterOS

B e fe hl e h ö he re r E be n en w e rd e n au f B ef eh le n ie de re r E be n en ab ge bi ld et

Domänenspezifische Sprache Mathlab, Simulink

Kommandosprache in der GUI Apple Automator Prof. U. Aßmann, Softwaretechnologie16

B ei spi el : T ext -P rogr am m

Operating System Assembler

Java

Wordprocessor Commands (textual, click-and-drop) USES Relation JVM C

(9)

Prof. U. Aßmann, Softwaretechnologie

S tr ukt ur ier un g de r A nw endu ngsl ogi k in S chi cht en

P un kt w ei se V er fe in er un g de r A nw en du ng sl og ik in S ch ich te n

Data Repository Layer (database, memory)MiddlewareGraphical user interface Application logic (business logic)<<control>> <<entity>> Data access object (DAO)

Abstract machine 2 Abstract machine 3

Abstract machine 1 Prof. U. Aßmann, Softwaretechnologie

E nt w ur f m it ge schi cht et en A bst rakt en M aschi nen

N ut ze B C E D -A rch ite kt ur st il

Id en tif izi er e ab st ra kt e M asch in en in d er C on tr ol -S ch ich t

Ordne sie in Schichten an Denke über ihr “Schichtengeheimnis” nach Kapsele eine Schicht hinter eine Fassade (und in ein Paket) Statte die Fassade mit einer Steuerungsmaschine aus

V or te ile :

Einfachheit Hohe Kohäsion, niedrige Kopplung Gute Austauschbarkeit Gute Variierbarkeit

G eh e fü r di e an de re n S ch ich te n äh nl ich vo r

(10)

Prof. U. Aßmann, Softwaretechnologie19

W as w ol len w ir ei gent lich var iier en?

Produktlinien entstehen durch systematische Variation von Geheimnissen Funktionale Eigenschaften (Funktionale Varianten in der Control) Dynamische Kontexteigenschaften

Mailer Calendar Browser

Writer SlideEditor Wiki MiddlewareVarianten (Entity level) Plattformeigenschaften (Boundary, Database) Benutzer (Level, Präferenzen) Netzwerkverbindung Sicherheitseigenschaften

Chip, OS, GUI-Bibliothek Persistenz, Displaygerät Web/Rich/Smart Client

Parallelität (Transaktionen) Verteilung Prof. U. Aßmann, Softwaretechnologie20

The E nd

Referenzen

ÄHNLICHE DOKUMENTE

The compiler generates U symbols for functions that are called but not defined within the program, for variables that are declared to be extern and which are

das w eite re ne hme n w ir in (12.17) eine line are T rans formation de r In te grati-onsvariablenvor,x07!⌧:=xx0.AufdieTransformationderGrenzen ka

unteren Abschnitt derselben betrifft, den Verdacht auf das Bestehen einer doppelten Gebärmutter leiten (hierbei kann es sich allerdings ebenso gut um Bilocularität, w i e um

[r]

Eigene Lieferanten, die aufgrund ihrer Größe konzernartig strukturiert sind, verfügen in der Regel über sehr gute Marktdaten und haben aufgrund der Beziehung ein Interesse, den

ben oder etwas lesen während Sie warten?« (Abb. 2) Klickt man auf »lesen«, erscheinen die Zugriffsstatistiken der Webseite. 3) Bei einem Klick auf »schreiben« öffnet sich

Die Dänische Eintagsfliege trägt bereits als Larve auf ihrem Hinterleib ähnliche dunkle Zeichnungen wie das fertig ausgebildete Fluginsekt. Die Entwicklung der Larven dauert

There are two different types of rock glaciers on Nevado de Toluca volcano (4558 m): (a) rock glaciers (Blockgletscher) that occur beneath steep walls, where they are supplied