Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität 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, Softwaretechnologie2O bl igat or ische Li ter at ur
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, Softwaretechnologie4P 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)Softwaretechnologie, © Prof. Uwe Aßmann Technische Universität 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)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
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 steuernTü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.2F2<<private>> I2.3 P3 <<private>> I3.1 <<private>> I3.2
F3<<private>> I3.3
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 AbstraktionAbstrakte 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 AbstraktionAbstrakte Maschine als Lebenszyklus eines technischen Entwurfsobjektes
Abstrakte Maschine als Lebenszyklus eines Analyseobjektes USES Relation
Anwendungs- orientiert Maschinen- orientiert
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 toolTool<<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ät Dresden, Fakultät Informatik14
43.2 Anwendung von gesc hichten abs trak ten Mas chinen
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 Physicsshell-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, SimulinkKommandosprache in der GUI Apple Automator Prof. U. Aßmann, Softwaretechnologie16
B ei spi el : T ext -P rogr am m
Operating System AssemblerJava
Wordprocessor Commands (textual, click-and-drop) USES Relation JVM C
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
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 KontexteigenschaftenMailer 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