Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

1 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 der Entwicklung programmiersprachlicher Technologie und SE-Methodologien

2 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ürze These  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

3 3 Modell 1 Modell 2 * wenn Ausführung in einem bestimmten Punkt des Aufrufgraphen ist rufe eine bestimmte Methode auf Idee: Crosscutting Modelle und Verbindungspunkte Aspektorientierung in aller Kürze

4 4 dispatch das Objekt wird erzeugt Ein Wert wird von dieser Methode zurückgegeben oder eine 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 Methode wird von diesem Objekt aufgerufen Idee: Crosscutting Modelle und Verbindungspunkte Aspektorientierung in aller Kürze vordefinierte Punkte im Aufrufgraphen

5 5 Entwurfsraum der AO Sprachen Aspektorientierung 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

6 6  Aspekte sind in der eigenen Modulstruktur (Ontologie) definiert: Menge von Typen und deren Beziehungen deklariert in Kollaborationsschnittstellen (CI) Edge > Vertex > Graph > 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

7 7 DAOP Ansatz Edge > Vertex > Graph > 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 > EIPI MatchedGraph > EIPI Aspekttypen als Kollaborationsschnittstellen (CI)

8 8 DAOP Ansatz ColoredGraph > SuccessiveAugmentation Vertex isLegalColor(int color) Edge badness: float > Aspekt Implementierungen EI getBadness() setBadness(float) void minColoring( Vertex v[] ) EIPI

9 9 DAOP Ansatz ColoredGraph > SuccessiveAugmentation > Aspekt Implementierungen EI SimulatedAnnealing... EI  Verschiedene Graphfärbung-Algorithmen als PI-Facetten von ColoredGraph  Alle parametrisiert durch die EI-Facette von ColoredGraph EIPI

10 10 DAOP Ansatz Aspekt Bindungen Basis Software Aspekt‘s CI * binding class Callback Operationen rufe eine bestimmte Methode in PI auf PI wenn Ausführung in einem bestimmten Punkt des Aufrufgraphen ist

11 11 CourseScheduling DAOP Ansatz Aspekt Bindungen Vertex c: Course Vertex(Course) edges(): Edge[] setColor(int) Edge c1, c2: Course Edge(Course, Course) getV1(): Vertex getV2(): Vertex ColoredGraph > EIPI > void courseAssignmentAboutToChange() PI callback after calls(Teacher.assignCourse(*)) || StudentYear.addRequired(*) { minColoring(...);} PI UniversitätsVerwaltung

12 12 DAOP Ansatz ColoredGraph > CourseScheduling > Aspekt Bindungen PI StudentContact... PI  Verschiedene Graph-Bindungen an die Universitäts- verwaltung-Software als EI-Facetten von ColoredGraph  Alle parametrisiert durch die PI-Facette von ColoredGraph EIPI

13 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(); class Sched1 = SuccAugmentation + CourseSched; class Sched2 = SimAnnealing + CourseSched; Sched1 courseSched = new Sched1();

14 14 Sched1 DAOP Ansatz Komponieren von Implementierungen und Bindungen UniversitätsVerwaltung ColoredGraph > SuccessiveAugmentationCourseScheduling Edge..Vertex.. Vertex..Edge.. Edge..Vertex.. Vertex..Edge.. + Umbindung der Typen  virtuellen Typen

15 15 DAOP Ansatz Implementierung und Bindung dynamisch variieren void sched(CourseScheduling cs, Course c[]) { cs.minColoring(courses); } 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 } void display(ColoredGraph cg) { // display a colored graph on the screen } cg kann von Typ CourseScheduling oder StudentContact sein

16 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

17 17 Binding Basis Applikation DAOP Ansatz Dimensionen der Wiederverwendbarkeit Aspekt‘s CI Impl Aspekt‘s CI Impl Binding1 Binding2 Base Applikation 1 Basis Applikation 1 generische wiederverwendbare Aspekte BindungenAnwendungen

18 18 QualitätViele AO SprachenCBSD Kommunikation ü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

19 19 QualitätDAOP Kommunikation ü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

20 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

21 21 Eureka! AOSD ist die Lösung! Es wird nie funktionieren ! Es ist trivial ! Das machen wir doch schon die ganze Zeit ! Es gibt noch viel zu tun... Zusammenfassung

22 22 Danke für die Aufmerksamkeit


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen