Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung in die Aspektorientierte Programmierung Seminarbetreuung: PD Wolfram Amme Bearbeitung: Martin Boehmer.

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in die Aspektorientierte Programmierung Seminarbetreuung: PD Wolfram Amme Bearbeitung: Martin Boehmer."—  Präsentation transkript:

1 Einführung in die Aspektorientierte Programmierung Seminarbetreuung: PD Wolfram Amme Bearbeitung: Martin Boehmer

2 0. Inhalt Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 2 1.Grundlagen 2.Probleme bei konventioneller Programmierung 3.Lösung der Probleme mittels AOP 4.Bedeutung der AOP

3 Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 3 1. Grundlagen

4 Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 4  Alle Programmierparadigmen haben das Ziel, die Programmierung (u.a.) durch Abstraktion zu erleichtern  Der Maschinencode bleibt davon weitgehend unberührt Evolution der Programmiermethodik Definition: abstrahieren  Das Allgemeine im Einzelnen erkennen und von ihm abheben; verallgemeinern

5 1. Grundlagen Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 5  Assembler-Sprachen abstrahieren Maschinencode zu Befehlen  Prozedurelle Programmierung (PP) abstrahiert zusammenhängende Befehle in Methoden  Objektorientierte Programmierung (OOP) abstrahiert zusammengehörige Methoden und Datenstrukturen zu Objekten  Aspektorientierte Programmierung (AOP) abstrahiert spezielle Programmanforderungen Evolution der Programmiermethodik

6 1. Grundlagen Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 6  Programmanforderungen sind Anliegen (concerns), die durch den Software-Entwickler im Programm implementiert werden sollen.  Die Gesamtheit der umgesetzten Anliegen bildet das Software-System.  Man unterscheidet: Was sind Programmanforderungen  core concerns (core-level-concerns)  crosscutting concerns (system-level-concerns)

7 1. Grundlagen Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 7  sind funktionale (Kern-)Anforderungen, die das System erfüllen muss.  sind i.A. gut in einzelne Funktionen kapselbar (Grundgedanke der PP) und in Klassen zu Modularisieren (Grundgedanke der OOP). Core-Level-Concerns Beispiel: Kernfunktionalität eines ZIP-Programms ist i.e.S. die Komprimierung und Dekomprimierung der Daten und i.w.S. die Möglichkeit, diese Funktionalität auch nutzen zu können

8 1. Grundlagen Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 8  sind Anforderungen, die Systemweit an unterschiedlichsten Stellen implementiert werden müssen und dadurch nicht einfach zu kapseln sind.  heißen auch crosscutting concerns, weil sie durch die logischen Schichten des Systems „schneiden“. System-Level-Concerns Beispiel: Es soll ein LOG-File erstellt werden, dass das Betreten und verlassen einer jeden Prozedur verzeichnet. Am Anfang und Ende jeder Methode muss der dazu benötigte Code angefügt werden.

9 1. Grundlagen Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 9  AOP ist ein Programmierparadigma  AOP ergänzt andere Programmierparadigmen (z.B. OOP), ersetzt sie jedoch nicht  AOP managet crosscutting concerns Was ist AOP ?

10 Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 10 2. Probleme bei konventioneller Programmierung

11 2. Probleme bei konventioneller Progr. Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 11  Code tangling („verwobener Code“) tritt immer dann auf, wenn in einem Modul mehrere Anliegen simultan implementiert werden. 1. Generelle Probleme der Nicht-Modularisierung a) code tangling *[J. S. 16]

12 2. Probleme bei konventioneller Progr. Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 12 1. Generelle Probleme der Nicht-Modularisierung a) code tangling Nachteile:  Schlechte Lesbarkeit/Übersichtlichkeit  Fehlende Unabhängigkeit Änderungen am Code sind aufwendiger! Code kaum wiederverwertbar!

13 2. Probleme bei konventioneller Progr. Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 13  Code scattering („verstreuter Code“) tritt immer dann auf, wenn ein Anliegen (crosscutting concern) über mehrere Module implementiert wird.  Code scattering wird in zwei Kategorien unterteilt: 1. Generelle Probleme der Nicht-Modularisierung a) code scattering  duplicated code blocks  complementary code blocks

14 2. Probleme bei konventioneller Progr. Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 14 1. Generelle Probleme der Nicht-Modularisierung a) code scattering  duplicated code blocks  Durch die zerstreute Implementierung muss ein möglicherweise fast identischer Code in jeden einzelnen Modul umgesetzt werden. *[J. S. 17] Nachteile:  Unnötiger Impl.-Aufwand  Änderungen in jedem Modul einzeln notwendig

15 2. Probleme bei konventioneller Progr. Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 15 1. Generelle Probleme der Nicht-Modularisierung a) code scattering  complementary code blocks Nachteile:  Funktion nicht einsichtig  Änderungen gefährden bei Unkenntnis schnell die Funktionalität *[J. S. 18]  In unterschiedlichen Modulen implementierte Teile der Anforderung müssen zusammenarbeiten, um die Funktionalität zu gewährleisten.

16 2. Probleme bei konventioneller Progr. Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 16 2. Problem des abhängigen Codes  Die Unabhängigkeit von Modulen wird durch Crosscutting Concerns verhindert. *[J. S. 12] Nachteile:  Kein Modul ist unabh. vom Logging-Modul nutzbar Eingeschränkte Wiederverwertbarkeit

17 2. Probleme bei konventioneller Progr. Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 17  Betrachtet man n unabhängige Anforderungen, so kann man sie in einem n-Dimensionalen Koordinatensystem darstellen, wobei jede Anforderung eine Achse einnimmt.  Die Implementierung ist jedoch nur eindimensional möglich. 3. Ursache der Probleme Ein n-dim. Problem muss in einer eindim. Umgebung umgesetzt werden. *[J. S. 10]

18 Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 18 3. Lösung der Probleme mittels AOP

19 Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 19  Crosscutting Concerns werden statt in den Kern- Modulen in Aspekte implementiert Einführung von Aspekten Umsetzung: 1.Aspectual decomposition (Zerlegung der Anforderungen) 2.Concern implementation 3.Aspectual recomposition (Zusammenfügen der Anforderungen)

20 3. Lösung der Probleme mittels AOP Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 20  Zerlegen der Anforderungen  Identifikation der crosscutting concerns 1. Aspectual decomposition Die Zerlegung der Anforderungen ist vergleichbar der Zerlegung von Licht durch einen Prisma *[J. S. 9]

21 3. Lösung der Probleme mittels AOP Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 21 2. Concern implementation  Implementierung der Kernfunktionalität ohne AOP  Implementierung der Systemweiten Anforderungen mittels Aspekten In den Aspekt werden die sogenannten weaving rules geschrieben. Diese Regeln sagen dem System später, wie und wo der Aspekt einsetzt.

22 3. Lösung der Probleme mittels AOP Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 22 2. Concern implementation  In ein vorhandenes modularisiertes System soll ein Logger integriert werden  Die Kernfunktionalität wurde bereits in Modulen umgesetzt. Ebenfalls besteht bereits eine Klasse Logger. Beispiel: Wir benötigen folgende weaving rules:  Logge das Betreten einer Methode  Logge das Verlassen einer Methode

23 3. Lösung der Probleme mittels AOP Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 23 2. Concern implementation Beispiel: *[W] Advices

24 3. Lösung der Probleme mittels AOP Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 24 2. Concern implementation  Join Points sind implizit gegeben.  Der Pointcut spezifiziert die für den Aspekt relevanten Join Points  Die Advices sind implizit gegeben und spezifizieren, welcher Code wann innerhalb des Aspekts auszuführen ist. *[W]

25 3. Lösung der Probleme mittels AOP Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 25 2. Concern implementation  Der Aspekt greift extern auf die Module zu  Es ist auch möglich, die Module durch den Aspekt zu manipulieren. *[J. S. 13]

26 3. Lösung der Probleme mittels AOP Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 26 3. Aspectual recomposition  Der Aspect Weaver fügt die Core- und die Crosscutting-Module mit Hilfe der Weaving Rules wieder zusammen (weaving).  I.A. geschieht dies durch das kopieren des Quelltextes an die entsprechenden Join Points in den Modulen *[J. S. 25]

27 3. Lösung der Probleme mittels AOP Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 27 Analogie mit der Lichtbrechung an Prismen *[J. S. 22] 1. 2.3.

28 Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 28 4. Bedeutung der AOP

29 Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 29  Leichteres Design, Implementierung und Handhabung der System-Architektur  Kein Verzicht auf konventionelle Programmierparadigmen  Nachteile entstehen nur bei wirklicher Verwendung von Aspekten 1. Bedeutung für den Software-Entwickler  Bessere Lesbarkeit/Übersichtlichkeit  Änderungen einfacher  Erhöhte Sicherheit insbes. bei Änderungen  Erhöhte Wiederverwertbarkeit der Module

30 4. Bedeutung der AOP Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 30  Kürzere Produktentwicklungszeiten  Geringere Entwicklungskosten 2. Bedeutung für Unternehmen  Bei Konventioneller Programmierung müssen zukünftige Programmanforderungen bzw. Features bereits bei der Programmerstellung geplant werden.  Geringere Kosten bei Programmänderungen  Geringere Kosten bei der Implementierung neuer Features

31 Literaturverzeichnis Einführung in die Aspektorientierte Programmierung Martin BoehmerFolie: 31  *[W] http://de.wikipedia.org/wiki/AOPhttp://de.wikipedia.org/wiki/AOP  *[J.] „AspectJ in Action“, Ramnivas Laddad, S. 3-32


Herunterladen ppt "Einführung in die Aspektorientierte Programmierung Seminarbetreuung: PD Wolfram Amme Bearbeitung: Martin Boehmer."

Ähnliche Präsentationen


Google-Anzeigen