Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Konzepte objektorientierter Systeme
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung Definition von Klassen
HG13_ Herzgen, Jung & Lorkowski
Java: Objektorientierte Programmierung
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Ein Beispiel in Java.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Reflection API ETIS SS04.
Einführung in die OOP in Java
Programmieren mit JAVA
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
AspectJ – Eine Aspektorientierte Programmiersprache
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
A. Zündorf, SE Group Reverse Engineering K2 1 Ziele Heute Compilerbau Nachlese Ausnutzung von Laufzeittypinformation.
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel Simeonov im Sommersemester 2007.
Einführung in C EDV1 - 03C-Einführung.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
Einführung in C EDV1 - 04C-Einführung.
DVG Klassen und Objekte
Klassen 02 - Klassen.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Eine Präsentation von Peter Rasser
Informatik Objekte und Klassen 1. Objektorientiertes Modellieren und Programmieren 1.1 Objekte und Klassen.
Dynamische Datentypen
Objektorientiertes Konstruieren
Objectives Verstehen was unterDelegate verstanden wird
EPROG Tutorium #4 Philipp Effenberger
EPROG Tutorium #6 Philipp Effenberger
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Objektorientierung.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
AOP Lösung für Querschnittsaufgaben. Was ist AOP ? AOP ist kein Ersatz für OOP AOP ergänzt OOP AOP beinhaltet die Behandlung von Querschnittsaufgaben.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Universität Bonn, Seminar AOP mit AspectJ WS 2003, Sebastian Scheid AOP mit AspectJ.
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Abstrakte Klassen und das Interface-Konzept
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Protokollieren, überwachen und verfolgen Vortrag zum Seminar „Aspektorientierte Programmierung“ von Andre Kaplick - 6. Juni 2016.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Einführung in die Aspektorientierte Programmierung Seminarbetreuung: PD Wolfram Amme Bearbeitung: Martin Boehmer.
© Tenbusch Oberstufenzentrum Informations- und Medizintechnik Objektorientierte Programmierung mit Java.
Objektorientierte Programmierung
OOP II.
Struktur-Funktions-Modelle von Pflanzen
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
9. Vererbung und Polymorphie
Implementieren von Klassen
Objektorientierte Programmierung
 Präsentation transkript:

Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join Points 6)Aspects 7)Logistik von AspectJ Gabor Meißner, Sommersemester 2006

1. Überblick ● Warum „AspectJ“? – Die Sprache ist eine Erweiterung von Java – Jedes Java- Programm ist auch ein AspectJ- Programm – Der AspectJ- Compiler erzeugt also.class- Dateien, die von der Java VM ausgeführt werden können

2. Elemente des crosscutting in AspectJ ● Was ist „crosscutting“? – Ist die Umsetzung des Verwebungskonzepts (weaving) aspektorientierter Programmierung in AspectJ – Verschiedene Module werden systematisch verwoben – Man unterscheidet in dynamisches (während der Ausführung) und statisches (in statischen Strukturen) crosscutting

2. Elemente des crosscutting in AspectJ ● Elemente des crotting in AspectJ sind: – Join points (Ereignis im Programmablauf) – Advices (Empfehlungen) – Pointscuts (Schnittpunkte) – Introductions (statisches Pendant zu join points) – Compile-time declaration (statische Umsetzung von Warnungs-/ Fehlererkennung) – Aspects („Klassen“ der Aspektorientierung)

2. Elemente des Crosscutting in AspectJ ● Vorgehensweise im Überblick 1.Definition von join points: An welcher Stelle im System soll das Verhalten geändert werden? 2.Implementierung des Designs mit Aspekten 3.Umsetzung der Funktionen durch point cuts 4.Implementierung der advices, die den point cuts zugeordnet sind

3. “Hello World” in AspectJ ● Funktionsweise am Beispiel: – Die Java- Klasse „MessageCommunicator“:

3. “Hello World” in AspectJ ● Test- Klasse für „MessageCommunicator“:

3. “Hello World” in AspectJ ● Ausgabe wäre dann... – Willst du AspectJ lernen? – Harry, viel Spass! ● Wir definieren nun den Aspekt „MannersAspect“

3. “Hello World” in AspectJ ● Eine zweite Erweiterung: der Nachsatz „-ji“ (indische Ausdruck des Respektes):

4. Wie Aspekte in Java verwoben werden ● Der AspectJ- Compiler muss Code erzeugen, der von der Java VM interpretiert werden kann ● Zentrale Frage dieses Abschnitts: Wie wandelt dieser Compiler also die Elemente der aspektorientierten Programmierung in „normalen“ Java- Bytecode um?

4. Wie Aspekte in Java verwoben werden ● Aspects: – Werden als normale Klassen abgebildet, alle Daten und Methoden bleiben entsprechend erhalten. ● Advices: – Als eine oder mehrere Methoden. Ihr Aufruf findet an der Schnittstelle zwischen join points und pointcuts statt ● Pointcuts: – Werden meist nicht explizit abgebildet – können aber bei komplexeren Aufgaben in Methodenform realisiert werden

4. Wie Aspekte in Java verwoben werden ● Introductions: – Durch Veränderungen im Quellcode der Klassen ● Compile-zeit Warnungen und Fehler: – Klar: erzeugen Warnungen und Fehler ● Nun kann gezeigt werden, wie ein veränderter Quellcode der MessangerCommunication- Klassen aussehen würde (Achtung: der Compiler erzeugt keinen veränderten Java- Quellcode, sondern nur Java- Bytecode!)

4. Wie Aspekte in Java verwoben werden ● Wir wandeln also den Aspekt in eine Klasse um:

4. Wie Aspekte in Java verwoben werden ● Nun müssen ebenfalls Anpassungen der MessangerCommunicator- Klasse vorgenommen werden:

5. Join points ● = jeder identifizierbare Ausführungspunkt, z.B.: – Methodenaufrufe, -ausführungen, ein return- Statement... ● In AspectJ findet bei diesen join points das zentrale Konzept des crosscutting seine Umsetzung ● Jeder für den Programmierer nutzbare join point nennt sich exposed join points ● Man unterscheidet in verschiedene Kategorien, die nun vorgestellt werden sollen

5. Join points ● Methoden- join points – Es gibt Ausführungs- und Aufrufsvarianten – Beispiel für execution join point:

5. Join points ●... und ein Beispiel für einen call join point: – Der Aufruf (account.debit(100)) ist der Ort für den join point

5. Join points ● Constructor join points: – Ähnlich wie Methoden- join points, nur für Konstruktoren ● Field access join points: – Bei Lese-/ Schreibzugriffen auf Klassenmitglieder oder Instanzen ● Exception handler execution join points: – Bei der Ausnahmebehandlung... ● Class (pre-) initialization join points: – Bei der Initialisierung eines Objekts... ● Advice execution join points: – Umfasst alle Advices eines Systems...

6. Aspects ● Sind klassen- ähnliche Einheiten, die die Regeln der Verhaltsänderungen eines Systems durch Aspekte implementieren ● Der Aufbau der Aspekte:

6. Aspects ● Die wichtigsten Regeln im Umgang mit Aspekten: – Können data members, methods und Zugriffsspezifikationen besitzen – Können abstrakt sein – Können Klassen und abstrakte Aspekte beinhalten und können in Klassen und Interfaces eingebettet werden – Können mit priviligiertem Zugriff versehen werden

7. Logistik von AspectJ ● Der Compiler und seine Arbeitsweise wurden bereits vorgestellt... ● Es gibt einen speziellen Browser zur Darstellung der Verwebung ● Sowie eine Plugin- basierte Anbindung an gängige Programmierumgebungen für Editierung, Compilierung und Debugging