Vortrag im Überblick

22
1 Vortrag im Überblick AOP in aller Kürze, eigener Ansatz und Vergleich mit anderen AOP Ansätzen und CBSD CBSD als Ansatz zur Modularisierung von „Crosscutting Concerns“ und Probleme dieses Ansatzes Aspekte & Komponenten im Kontext r Entwicklung programmiersprachlicher Technologie und SE-Methodologien

description

Vortrag im Überblick. Aspekte & Komponenten im Kontext der Entwicklung programmiersprachlicher Technologie und SE-Methodologien. CBSD als Ansatz zur Modularisierung von „Crosscutting Concerns“ und Probleme dieses Ansatzes. AOP in aller Kürze, eigener Ansatz - PowerPoint PPT Presentation

Transcript of Vortrag im Überblick

Page 1: Vortrag im Überblick

1

Vortrag im Überblick

AOP in aller Kürze, eigener Ansatzund Vergleich mit anderen AOP Ansätzen

und CBSD

CBSD als Ansatz zur Modularisierung von „Crosscutting Concerns“ und Probleme

dieses Ansatzes

Aspekte & Komponenten im Kontext der Entwicklung programmiersprachlicher

Technologie und SE-Methodologien

Page 2: Vortrag im Überblick

2

“Crosscutting”: inherente Eigenschaft komplexer Systeme

“Crosscutting-Concerns” haben klares Ziel und eigene Struktur

Beteiligte Abstraktionen, mit ihren Definitionen

Kontroll- und Datenfluss Daher: “Crosscutting Concerns” modularisieren!

Programmiersprachen- und Werkzeugunterstützung

Aspektorientierung in aller KürzeThese

Modularisierung auf programmiersprachlicher Ebene (statt Konventionen)

Aspekte können jederzeit hinzukommen / entfernt werden (statt vordefinierte Menge von Diensten)

Anwendungsspezifische- und System-Aspekte uniform behandelt

“Crosscutting”: inherente Eigenschaft komplexer Systeme

“Crosscutting-Concerns” haben klares Ziel und eigene Struktur

Beteiligte Abstraktionen, mit ihren Definitionen

Kontroll- und Datenfluss Daher: “Crosscutting Concerns” modularisieren!

Programmiersprachen- und Werkzeugunterstützung

Page 3: Vortrag im Überblick

3

Modell 1

Modell 2

*

wenn Ausführung in einem bestimmten Punktdes Aufrufgraphen ist

rufe einebestimmte Methode auf

Idee: Crosscutting Modelle und VerbindungspunkteAspektorientierung in aller Kürze

Page 4: Vortrag im Überblick

4

dispatch

das Objektwird

erzeugt

Ein Wert wird von dieser Methode zurückgegeben

odereine Ausnahme wird geworfen

ein Rückgabewert oder eine Ausnahme

wird von diesem Objekt empfangen

Ein Wert wird von diesem Objekt zurückgegeben

oder eine Ausnahme wird

geworfen

Ein Methodenaufruf wird von diesem

Objekt empfangen

Ein Wert oder eine Ausnahme wird innerhalb dieser

Methode empfangen

Eine Methode

wird ausgeführt

Eine Methode wird von

innerhalb dieser Methode

aufgerufen

Eine Methodewird von diesem Objekt

aufgerufen

Idee: Crosscutting Modelle und VerbindungspunkteAspektorientierung in aller Kürze

vordefinierte Punkte im Aufrufgraphen

Page 5: Vortrag im Überblick

5

Entwurfsraum der AO SprachenAspektorientierung in aller Kürze

VP-Modell Statisch: Punkte im Programtext Dynamisch: Punkte im dynamischen

Aufrufgraph

Programmiersprachliche Mittel zur Spezifikation der VPs

Mittel für Spezifikation des Verhaltens an den VPs

Mittel für die Strukturierung der obengenannten Elemente

Page 6: Vortrag im Überblick

6

Aspekte sind in der eigenen Modulstruktur (Ontologie) definiert: Menge von Typen und deren Beziehungen deklariert in Kollaborationsschnittstellen (CI)

Edge<< CI >>

Vertex<< CI >>

Graph<< CI >>

interface Graph { provided shortestPaths(); interface Vertex { expected Edge[] edges(); } interface Edge { expected Vertex getV1(); expected Vertex getV2(); }}

EIPI

Darmstädter AOP (DAOP) Ansatz Aspekttypen als Kollaborationsschnittstellen (CI)

Provided-Interface (PI) : zur Verfügung gestellte Dienste

Expected-Interface (EI) : Erwartungen an die Einsatzumgebungen

Page 7: Vortrag im Überblick

7

DAOP Ansatz

Edge<< CI >>

Vertex<< CI >>

Graph<< CI >>

interface ColoredGraph extends Graph { provided minColoring(Vertex v[]); override Vertex { expected void setColor(int c); expected int getColor(); } override Edge { provided float getBadness(); }}

Verschiedene Graph-Typen

EIPI

ColoredGraph<< CI >>

EIPI

MatchedGraph << CI >>

EIPI

Aspekttypen als Kollaborationsschnittstellen (CI)

Page 8: Vortrag im Überblick

8

DAOP Ansatz

ColoredGraph<< CI >>

SuccessiveAugmentation

VertexisLegalColor(int color)

Edgebadness: float

<< implements >>

Aspekt Implementierungen

EI

getBadness()setBadness(float)

void minColoring( Vertex v[] )

EIPI

Page 9: Vortrag im Überblick

9

DAOP Ansatz

ColoredGraph<< CI >>

SuccessiveAugmentation

<< implements >>

Aspekt Implementierungen

EISimulatedAnnealing ...

EI EI

Verschiedene Graphfärbung-Algorithmen als PI-Facetten von ColoredGraph

Alle parametrisiert durch die EI-Facette von ColoredGraph

EIPI

Page 10: Vortrag im Überblick

10

DAOP Ansatz Aspekt Bindungen

Basis Software

Aspekt‘s CI

*

binding class

CallbackOperationen

rufe einebestimmte Methode in PI auf

PI

wenn Ausführung in einem bestimmten Punktdes Aufrufgraphen ist

Page 11: Vortrag im Überblick

11

CourseScheduling

DAOP Ansatz Aspekt Bindungen

Vertexc: CourseVertex(Course)edges(): Edge[]setColor(int)

Edgec1, c2: CourseEdge(Course, Course)getV1(): VertexgetV2(): Vertex

ColoredGraph<< CI >>

EIPI

<< binds >>

void courseAssignmentAboutToChange()

PIcallback

after calls(Teacher.assignCourse(*)) || StudentYear.addRequired(*) { minColoring(...);} PI

UniversitätsVerwaltung

Page 12: Vortrag im Überblick

12

DAOP Ansatz

ColoredGraph<< CI >>

CourseScheduling

<< binds >>

Aspekt Bindungen

PIStudentContact ...

PI PI

Verschiedene Graph-Bindungen an die Universitäts-verwaltung-Software als EI-Facetten von ColoredGraph

Alle parametrisiert durch die PI-Facette von ColoredGraph

EIPI

Page 13: Vortrag im Überblick

13

+

DAOP Ansatz Komponieren von Implementierungen und Bindungen + Operator komponiert EI- / PI-Facetten und

erzeugt vollständige Implementierung von CI‘s

class Sched1 = SuccAugmentation + CourseSched;class Sched2 = SimAnnealing + CourseSched;Sched1 courseSched = new Sched1();

Page 14: Vortrag im Überblick

14

Sched1

DAOP Ansatz Komponieren von Implementierungen und Bindungen

UniversitätsVerwaltungColoredGraph

<< CI >>

SuccessiveAugmentation CourseScheduling

Edge..Vertex..

Vertex..Edge..

Edge..Vertex..

Vertex..Edge..

+

Umbindung der Typen virtuellen Typen

Page 15: Vortrag im Überblick

15

DAOP Ansatz Implementierung und Bindung dynamisch variieren

void sched(CourseScheduling cs, Course c[]) {cs.minColoring(courses);

}

cs kann von Typ SuccessiveAugmentation oder SimulatedAnnealing sein

void display(ColoredGraph cg) { // display a colored graph on the screen}

cg kann von Typ CourseScheduling oder StudentContact sein

Page 16: Vortrag im Überblick

16

DAOP Ansatz Ausführen bestehend. Code im Kontext eines Aspektes... if onlineSchedOn() { SchedulingGraph sg = getStrategy(); apply (sg) in { startUniversitySW(); ... }} else {

startUniversitySW(); }

ein Aufruf von Teacher.assignCourse innerhalb der transitiven Hülle der Ausführung in diesem Block verursacht die Ausführung der callback-Operation in SchedulingGraph

Page 17: Vortrag im Überblick

17

Binding Basis Applikation

DAOP Ansatz Dimensionen der Wiederverwendbarkeit

Aspekt‘s CI

Impl

Impl

Aspekt‘s CI

Impl

Impl

Binding1

Binding2Base Applikation 1Basis Applikation 1

generischewiederverwendbare Aspekte Bindungen Anwendungen

Page 18: Vortrag im Überblick

18

Qualität Viele AO Sprachen CBSDKommunikation über Schnittstellen

Abhängigkeiten von Implementierungsdetails

statische Typisierung ddsj

Strings / Reflection, Typumwandlungen

Subtyp-Polymorphie, dynamisches Binden ddsj

Code-Transformationen, statisches globales Binden

Konventionen,kontextuelles statisches Binden

getr. Kompilierung, „Open World“-Annahme

globale Kompilierung, „Closed World“Annahme

Orthogonalität, Uniformität der PS

ad-hoc Spracherweiterungen

ad-hoc, Außersprachlich

wichtige (vergessene) Qualitäten DAOP in Vergleich

Page 19: Vortrag im Überblick

19

Qualität DAOPKommunikation über Schnittstellen statische Typisierung

Subtyp-Polymorphie, dynamisches, kontextuelles Binden Getr. Kompilierung, „Open World“ Orthogonalität, Uniformität der PS

wichtige Qualitäten DAOP in Vergleich

Page 20: Vortrag im Überblick

20

Binding Basis Applikation

DAOP Ansatz Stand der Dinge

Aspekt‘s CI

Minos, LAC (´01, ´02) prototypische Realisierungen der kontextuellen Ausführung. Kooperation, Siemens CT

PCA & JADE (´99,´00)neues OO Kompositionsmodell, Latte Machiatto (´01, ´02)

konzeptuell ausgearbeitet (´02)

prototypische Realisierung (´02) des vollständigen Modells. Kooperation, Siemens CT

Delegation Layers (´02)konzeptuell ausgearbeitet

Page 21: Vortrag im Überblick

21

Eureka! AOSD ist die Lösung!

Es wird nie funktionieren !

Es ist trivial !

Das machen wirdoch schon die ganze Zeit !

Es gibt noch viel zu tun ...

Zusammenfassung

Page 22: Vortrag im Überblick

22

Danke für die Aufmerksamkeit