Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel...
-
Upload
rein-hempfling -
Category
Documents
-
view
110 -
download
0
Transcript of Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel...
![Page 1: Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel Simeonov im Sommersemester 2007.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/1.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/2.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/3.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/4.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/5.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/6.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/7.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/8.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/9.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/10.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/11.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/12.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/13.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/14.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/15.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/16.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/17.jpg)
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.](https://reader035.fdocument.pub/reader035/viewer/2022062318/55204d6749795902118bd033/html5/thumbnails/18.jpg)
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