• Keine Ergebnisse gefunden

Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und

N/A
N/A
Protected

Academic year: 2021

Aktie "Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und "

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Softwaretechnologie, © Prof. Uwe Aßmann

Technische Universität Dresden, Fakultät Informatik 1

44) Querschneidende Verfeinerung durch Unterobjekt-Integration

(Object Fattening)

Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und

Multimediatechnik Lehrstuhl Softwaretechnologie

Fakultät für Informatik TU Dresden Version 11-0.1, 10.07.11

1) Object und Platform Fattening

1) Plattformobjekte- und konnektoren

2) Abbildung der Integrates-Relation 3) Gesamtbild der

Verfeinerung

Prof. U. Aßmann, Softwaretechnologie 2

Objektorientierter Entwurf

(Object-Oriented Design, OOD)

1) Einführung in die objektorientierte Softwarearchitektur 1) Modularität und Geheimnisprinzip

2) Entwurfsmuster für Modularität

3) BCED-Architekturstil (3-tier architectures)

2) Verfeinerung des Entwurfsmodells zum Implementierungsmodell 1) Anreicherung von Klassendiagrammen

2) Verfeinerung von Lebenszyklen

3) Querschneidende Verfeinerung mit Object Fattening 3) Objektorientierte Rahmenwerke (frameworks) 4) Softwarearchitektur mit dem Quasar-Architekturstil

Prof. U. Aßmann, Softwaretechnologie 3

Obligatorische Literatur

OSGI Technical White Paper. www.osgi.org

Softwaretechnologie, © Prof. Uwe Aßmann

Technische Universität Dresden, Fakultät Informatik 4

44.1 Object Fattening und Platform Fattening (Querschneidende

Verfeinerung für Plattformen)

.. Verfeinerung durch Integration von Unterobjekten..

(2)

Prof. U. Aßmann, Softwaretechnologie 5

Object Fattening (Wdh.)

Unterobjekt-Anreicherung (Object fattening) ist ein

Verfeinerungsprozess zur Entwurfszeit, der an ein Kernobjekt aus dem Domänenmodell Unterobjekte anlagert (Domänenobjekt- Verfeinerung durch Integration), die

Teile ergänzen (Teile-Verfeinerung)

Rollen ergänzt (Konnektor-Verfeinerung),

Facetten ergänzen

Rollen ergänzen (Konnektor-Verfeinerung), die Beziehungen klären zu

Plattformen (middleware, Sprachen, Komponenten-services)

Komponentenmodellen (durch Adaptergenerierung)

Ziel: Entwurfsobjekte, Implementierungsobjekte

Prof. U. Aßmann, Softwaretechnologie 6

Personen-Analysemodell – Wie komme ich bloß dahin?

Child Father

Playable

Player

Eating Eatable

Heart Stomach Person

Person

Ball

Sausage Newspaper

Reading Readable

FatherShip Child

Father Skin

Meat

Skin

Mit Verfeinerung durch Integration von Unterobjekten (Object Fattening)

Person Person

Ball

Newspaper

Rohzustand: Identifikation der natürlichen Typen (in dem Domänenmodell)

Sausage

Mit Verfeinerung durch Integration von Unterobjekten (Object Fattening)

Heart Stomach Person

Person

Ball

Sausage Newspaper

Schritt 1: Teile-Verfeinerung

Meat

Skin

Skin

(3)

Prof. U. Aßmann, Softwaretechnologie 9

Mit Verfeinerung durch Integration von Unterobjekten (Object Fattening)

Child Father

Playable

Player

Eating Eatable

Heart Stomach Person

Person

Ball

Sausage Newspaper

Reading Readable

FatherShip Child

Father

Schritt 2: Erweiterung durch Konnektoren (Kollaborationen, Teams)

Meat

Skin

Skin

Prof. U. Aßmann, Softwaretechnologie 10

Platform Fattening – Weitere Schritte im Entwurf

Teile- und Rollenverfeinerung laufen noch im Analysemodell ab.

Ziel in der Analyse: Entwurfsobjekte

Konnektor-Verfeinerung wird durch Szenarienanalyse angeregt

Bei Entwurfsobjekten kommen dann noch folgende Schritte hinzu:

Finden von Plattform-Konnektoren (/-team), die plattform-fundierte Unterobjekte anlagern, die das spezifische Verhalten bezüglich eines Plattformobjektes kapseln

Plattformfähigkeiten (platform abilities, platform-founded types) bilden fundierte Typen, die die die Beziehungen zu Plattformen klären

Komponentenadapter (component-model-founded adapters) klären die Beziehung zu Komponentenmodellen

Ziel im Entwurf: Implementierungsobjekte ableiten

Rollen ergänzen, die Beziehungen klären zu

Plattformobjekten (middleware, Sprachen, Komponenten-services)

Komponentenmodellen (durch Adaptergenerierung)

Realisierung der Integrationsrelation

Einfache Implementierung durch Teams!

Prof. U. Aßmann, Softwaretechnologie 11

Plattformobjekte und -konnektoren

Ein Plattformobjekt ist ein Objekt einer Systembibliothek, auf die eine Software angepasst werden muss

Bietet Schnittstelle an bzgl. bestimmter Funktionalität, z.B. abstrakte Maschine (Interpretierer)

Variable: je nach Maschine, Middleware, Betriebssystem, Datenbank, Programmiersprache unterschiedlich ausgeprägt

Die Kollaboration mit der Plattform wird durch einen Konnektor zum Plattformobjekt, dem Plattformkonnektor (Plattform-Team), ausgedrückt

OSGI: Komponentenplattform www.osgi.org

im Handy, 5er BMW, in Eclipse 3.0, Shell home automation HomeGenie

Ein bundle (Komponente) paketiert verschiedene Klassen

OSGI OSGI platform mapping

starting, stopping

start-stop interface

Analyse-

Objekt

+void install(bundle)

+void uninstall(bundle) +void start(bundle) +void stop(bundle) +void update(bundle)

Prof. U. Aßmann, Softwaretechnologie 12

Plattformobjekt OSGI

OSGI bietet 5 Schnittstellen (rot)

Klassenlader (für Ersetzung von bundles)

Lebenszyklus (life cycle) von bundles (Paketen von Klassen, mit zip gepackt und verschickt)

Register (service registry): dient zum Registrieren von Bundles und ihren Zuständen

Dienste (services) verschiedener Art

Sicherheitsfunktionalität

[OSGI Technical White Paper]

(4)

Prof. U. Aßmann, Softwaretechnologie 13

Mit Verfeinerung durch Plattform-Konnektoren (platform fattening)

Eating Eatable

Heart Stomach

Person Person

Ball

Sausage Newspaper

Reading Readable

FatherShip

Child Father

Plattform-Konnektoren beschreiben die Beziehungen zu Plattformobjekten (gelb; Analyse- Konnektoren: lila)

Plattformobjekte können als Alternativen existieren (hier OSGI, JDK threads) für die Plattform

“Lebenszyklus”

Meat Skin

Skin

OSGI OSGI platform mapping

starting, stopping

start-stop interface

JDK Threads OSGI platform mapping

starting, stopping

Runnable interface

Player Playing

Playable

Prof. U. Aßmann, Softwaretechnologie 14

Plattform CORBA: CORBA:Object

CORBA bildet eine Kompo- nentenplattform für heterogen programmierte Systeme

CORBA:Object get_implementation get_interface is_nil

is_a

is_equivalent create_request duplicate release ....

In der Klasse CORBA:Object wird elementare Funktionalität einer CORBA Komponente definiert

heterogen benutzbar über viele Sprachen hinweg

CORBA untertützt Reflektion:

get_interface liefert eine Referenz auf ein

“Schnittstellenobjekt”

get_implementation eine Referenz auf eine

“Implementierung”

(Klassenprototyp)

Mit Verfeinerung durch mehrere Plattform- Konnektoren verschiedener Plattformen

Eating Eatable

Heart Stomach

Person Person

Ball

Sausage Newspaper

Reading Readable

FatherShip

Child Father

Plattform-Verfeinerung kann auf verschiedenen Stufen ablaufen, und somit verschiedene Plattformen behandelt werden

Plattformkonnektoren werden stufenspezifisch eingesetzt und können gegen Varianten ausgetauscht werden

Meat Skin

Skin

OSGI OSGI platform mapping

starting, stopping

start-stop interface

CORBA CORBA platform mapping

Reflecting Reflection Player Playing

Playable

Plattform 1

Plattform 2

Softwaretechnologie, © Prof. Uwe Aßmann

Technische Universität Dresden, Fakultät Informatik 16

44.2 Abbildung der Integrationsrelation

.. in der Implementierung ..

(5)

Prof. U. Aßmann, Softwaretechnologie 17

Wie bilde ich “integrates” ab?

Eating Eatable

Heart Stomach

Person Person

Ball

Sausage Newspaper

Reading Readable

FatherShip

Child Father

Kollaborationen/Konnektoren und die “integrates”-Relation können verschieden auf eine Programmiersprache abgebildet werden

1) Durch Rollensprachen wie ObjectTeams; dann liegt die Abbildung im Übersetzer

Meat Skin

Skin

OSGI OSGI platform mapping

starting, stopping

start-stop interface

CORBA CORBA platform mapping

Reflecting Reflection Player Playing

Playable

Plattform 1

Plattform 2

Prof. U. Aßmann, Softwaretechnologie 18

b) Wie bilde ich “integrates” durch Delegation ab?

Eating Eatable

Heart Stomach

Person Person

Ball

Sausage Newspaper

Reading Readable

Ersetze alle “integrates”, “plays”, “mandatory-part”, etc. durch Assoziationen

Einfach, allerdings splittert man alle logischen komplexen Objekte in unzählige Implementierungsobjekte auf (siehe Vorlesung “Design Patterns and Frameworks”

Meat Skin

Skin

OSGI

CORBA

Plattform 1

Plattform 2

Child Father

Playable Player

starting,

stopping start-stop interface

Reflecting Reflection

Prof. U. Aßmann, Softwaretechnologie 19

c) Wie bilde ich “integrates” durch Vererbung ab?

Eating Eatable

Heart Stomach

Person Person

Ball

Sausage Newspaper

Reading Readable

Ersetze alle “integrates”, “plays”, “mandatory-part”, etc. durch Vererbung

Einfach, allerdings braucht man Mehrfachvererbung oder “mixin inheritance”

Meat Skin

Skin

OSGI

CORBA

Plattform 1

Plattform 2

Child Father

Playable Player

starting, stopping

start-stop interface

Reflecting Reflection

Prof. U. Aßmann, Softwaretechnologie 20

d) Wie bilde ich “integrates” durch Implementierungsmuster ab?

Heart Stomach

Person Person

Ball

Sausage Newspaper

FatherShip:Observer

Child Father

Meat Skin

OSGI OSGI mapping:Mediator

starting, stopping

start-stop interface

CORBA CORBA mapping:Mediator

Reflecting Reflection Player Playing:Mediator

Playable

Plattform 1

Plattform 2

Readership:Visitor

Reader Readable

eaters:Observer parts:Composite parts:Composite

Ersetze alle “integrates”, “plays”, etc. durch Muster wie Observer, Visitor

Ersetze alle “mandatory-part” durch Muster wie Decorator, Composite

Weitere Abbildung dann durch Handimplementierung der Muster

(6)

Prof. U. Aßmann, Softwaretechnologie 21

d) Wie bilde ich “integrates” durch Transformation ab?

Ersetze alle “integrates”, “plays”, etc. durch Transformationsregeln

Führt auf Modellgetriebene Architektur (model-driven architecture, MDA)

Weiter in der Softwaretechnologie-II

Prof. U. Aßmann, Softwaretechnologie 22

44.3 Gesamtbild der Verfeinerung

Analyse Datengetrieben

Entwurf Verfeinerung Klassendiagramm

Entwurf

Querschneidende Verfeinerung (Object fattening, Plattformkollaboration)

Analyse Szenarienanalyse

Analyse Object fattening;

Konnektorverfeinerung

Entwurf Verfeinerung von

Lebenszyklen

Implementierung Transformation

Implementierung Implementierungsmuster

The End

Referenzen

ÄHNLICHE DOKUMENTE

Klaus Arnold, der ehemalige Direktor des Instituts für Medizini- sche Physik und Biophysik der Medi- zinischen Fakultät der Universität Leipzig im Alter von 69 Jahren.. In

► Aspect-oriented problem analysis combines a concern space with a problem analysis method (crossproduct of concerns and problems). ■ Matrix analysis:

► Verbundobjekte sind strukturiert in Kerne und Mixins (Unterobjekte wie Rollen, Teile, Facetten, Phasen), die durch Endo-Assoziationen zusammengefügt werden.. ► Verstehe die Natur

Dabei stellte sich insbesondere die Präparation des Gewebes durch Perfusion der Koronarien über eine in die Aorta eingebrachte Perfusionskanüle als geeignet dar, um eine Klärung des

Bitte klären Sie vor der verbindlichen Anmeldung Ihre Teilnahmemöglichkeit ab, Stornierungen ab 01.03.14 ziehen Stornogebühren in Höhe von 50,00 nach

Verfahren zur Hersteliung einer w^Brigen Di- spersion Fluorcarbon enthaltender Phospholipid- vesikel, dadurch gekennzeichnet, daB man ein Phospholipid und ein oder mehrere

The microwave steam pressure cooking technique is a method for cooking a large variety of food suitable for moisture cooking systems. This concept allows a customised

Ein Graph stellt jeweils die Analyse Ergebnisse des Psoas Muskels und des Quadriceps Muskels für die STZ Ratten (T1DM Modell) und Placebo sowie Enalapril behandelten ZSF1 Ratten