Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Rein Hempfling Geändert vor über 10 Jahren
1
Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel Simeonov im Sommersemester 2007
2
Samuel Simeonov - Kombination von AOP und FOP 2/18 Inhalt Einleitung Überblick: AspectJ Schrittweise Entwicklung AOP als algebraisches Modell Ausblick Zusammenfassung
3
Samuel Simeonov - Kombination von AOP und FOP 3/18 Einleitung AspectJ bringt einige Vorteile sowie erhebliche Nachteile mit sich Aspekte gar nicht bzw. beschränkt wiederverwendbar Aspektverhalten schwer vorhersagbar Aspekteinflechtung schwer nachvollziehbar Damit: Behinderung etablierter Programmierpraktiken
4
Samuel Simeonov - Kombination von AOP und FOP 4/18 AspectJ – Static Crosscuts Als Transformation:
5
Samuel Simeonov - Kombination von AOP und FOP 5/18 AspectJ – Dynamic Crosscuts Als Transformation:
6
Samuel Simeonov - Kombination von AOP und FOP 6/18 AspectJ – Ordnung von aspects Unterschiedliche Einflechtungsreihenfolgen führen zu verschiedenem Programmverhalten Um Ergebnis vorherzusagen muss man Reihenfolge kennen Nur möglich durch declare precedence Ohne: Programme nicht portierbar
7
Samuel Simeonov - Kombination von AOP und FOP 7/18 AspectJ – Ordnung von advices 2 Regeln: after advices immer entgegengesetzt der Implementierungsreihenfolge, die anderen advices immer in Implementierungsreihenfolge 2 Probleme: zirkularität und unvollständigkeit
8
Samuel Simeonov - Kombination von AOP und FOP 8/18 Incremental Development
9
Samuel Simeonov - Kombination von AOP und FOP 9/18 AOP als algebraisches Modell Vorüberlegung Alle introductions müssen explizit sein Advice und introduction müssen getrennt werden pure advice
10
Samuel Simeonov - Kombination von AOP und FOP 10/18 AOP als algebraisches Modell Summe von introductions + ist die Vereinigung disjunkter Mengen, also ergibt sich: Identität: 0 ist das leere Programm: Kommutativität: gegeben weil die Mengenvereinigung kommutativ ist Assoziativität: gegeben, weil die Mengenvereinigung assoziativ ist + erlaubt anders als AspectJ kein overriding von membern
11
Samuel Simeonov - Kombination von AOP und FOP 11/18 AOP als algebraisches Modell weaving Identität: id ist das null pure advice, ein advice das keine join points hat Distributivität: weaving ist distributiv über introduction Summen Dies ist die zentrale Eigenschaft von AOP Assoziativität: weaving ist rechtsassoziativ
12
Samuel Simeonov - Kombination von AOP und FOP 12/18 AOP als algebraisches Modell Summe von advices Advices können als Funktionen angesehen werden Verknüpfung von advices wird als Funktionsverknüpfung modelliert Identität: id ist das null pure advice, wenn a pure advice Kommutativität: die Reihenfolge der advices spielt eine Rolle, ist nicht kommutativ, es sei denn die advices haben keine gemeinsamen join points Assoziativität: gegeben, weil die Funktionsverknüpfung assoziativ ist
13
Samuel Simeonov - Kombination von AOP und FOP 13/18 AOP als algebraisches Modell Modellierung von Aspects als Tupel
14
Samuel Simeonov - Kombination von AOP und FOP 14/18 AOP als algebraisches Modell aspect composition
15
Samuel Simeonov - Kombination von AOP und FOP 15/18 AOP als algebraisches Modell Das funktionale Modell
16
Samuel Simeonov - Kombination von AOP und FOP 16/18 Ausblick Die Ordnungsregeln für Advices in AspectJ sollten eliminiert werden Die Ordnungsregeln für Aspects in AspectJ sollten geändert werden Wenn Aspekte Kommutativ sind: keine Ordnung mehr nötig Existierende Compiler und Tools sollten dahingehend nachgerüstet werden
17
Samuel Simeonov - Kombination von AOP und FOP 17/18 Zusammenfassung Limitierung von AspectJ Darstellung der Komplexität der Verknüpfung von aspects Entwicklung eines algebraischen Modells um die Quelle des Problems zu finden Lösung des Problems in Ansätzen
18
Samuel Simeonov - Kombination von AOP und FOP 18/18 Vielen Dank für eure Aufmerksamkeit Quellen: Roberto Lopez-Herrejon, Don Batory, Christian Lengauer: A disciplined approach to aspect composition
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.