Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel...
-
Upload
rein-hempfling -
Category
Documents
-
view
112 -
download
0
Transcript of Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel...
Kombination von AOP und FOP
Ein Vortrag für das Seminar erweiterte Programmiertechniken
von Samuel Simeonov im Sommersemester 2007
Samuel Simeonov - Kombination von AOP und FOP
2/18
Inhalt
• Einleitung
• Überblick: AspectJ
• Schrittweise Entwicklung
• AOP als algebraisches Modell
• Ausblick
• Zusammenfassung
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
Samuel Simeonov - Kombination von AOP und FOP
4/18
AspectJ – Static Crosscuts
Als Transformation:
Samuel Simeonov - Kombination von AOP und FOP
5/18
AspectJ – Dynamic Crosscuts
Als Transformation:
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
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
Samuel Simeonov - Kombination von AOP und FOP
8/18
Incremental Development
Samuel Simeonov - Kombination von AOP und FOP
9/18
AOP als algebraisches ModellVorüberlegung
• Alle introductions müssen explizit sein• Advice und introduction müssen getrennt
werden pure advice
Samuel Simeonov - Kombination von AOP und FOP
10/18
AOP als algebraisches ModellSumme 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
Samuel Simeonov - Kombination von AOP und FOP
11/18
AOP als algebraisches Modellweaving
Identität: id ist das null pure advice, ein advice das keine join points hat
Distributivität: weaving ist distributiv über introduction SummenDies ist die zentrale Eigenschaft von AOP
Assoziativität: weaving ist rechtsassoziativ
Samuel Simeonov - Kombination von AOP und FOP
12/18
AOP als algebraisches ModellSumme 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
Samuel Simeonov - Kombination von AOP und FOP
13/18
AOP als algebraisches ModellModellierung von Aspects als Tupel
Samuel Simeonov - Kombination von AOP und FOP
14/18
AOP als algebraisches Modellaspect composition ◊
Samuel Simeonov - Kombination von AOP und FOP
15/18
AOP als algebraisches ModellDas funktionale Modell
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
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
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