Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel...

Preview:

Citation preview

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

Recommended