18
Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel Simeonov im Sommersemester 2007

Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel Simeonov im Sommersemester 2007

Embed Size (px)

Citation preview

Page 1: Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel Simeonov im Sommersemester 2007

Kombination von AOP und FOP

Ein Vortrag für das Seminar erweiterte Programmiertechniken

von Samuel Simeonov im Sommersemester 2007

Page 2: 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

Page 3: 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

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

Page 4: 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

4/18

AspectJ – Static Crosscuts

Als Transformation:

Page 5: 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

5/18

AspectJ – Dynamic Crosscuts

Als Transformation:

Page 6: 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

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

Page 7: 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

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

Page 8: 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

8/18

Incremental Development

Page 9: 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

9/18

AOP als algebraisches ModellVorüberlegung

• Alle introductions müssen explizit sein• Advice und introduction müssen getrennt

werden pure advice

Page 10: 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

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

Page 11: 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

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

Page 12: 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

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

Page 13: 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

13/18

AOP als algebraisches ModellModellierung von Aspects als Tupel

Page 14: 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

14/18

AOP als algebraisches Modellaspect composition ◊

Page 15: 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

15/18

AOP als algebraisches ModellDas funktionale Modell

Page 16: 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

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

Page 17: 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

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

Page 18: 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

18/18

Vielen Dank für eure Aufmerksamkeit

• Quellen:

• Roberto Lopez-Herrejon, Don Batory, Christian Lengauer: A disciplined approach to aspect composition