11 - Aspektorientierte Entwicklung Flashcards
Definition: Aspektorientierte Entwicklung
Eine Entwicklungsmethode, die das Konzept der Aspekte verwendet. Aspekte kapseln Funktionalität, die andere Funktionalität kreuzt (sog. “crossing concerns”). Sie soll “seperation of concerns” ermöglichen, da Aspekte unabhängig voneinander geändert und wiederverwendet werden können.
Bestandteile: Aspekt (3)
1) Advice
2) Pointcut
3) Mögliche Join Points
Definition: Advice (Aspekt)
Der Code gemäß den (andere Anforderungen kreuzenden) Anforderungen
Definition: Join Point (Aspekt)
Ein Ereignis in einem ausgeführten Programm, bei dem der mit einem Aspekt verknüpfte Advice ausgeführt werden kann.
Definition: Verbindungspunktmodell (Aspekt)
Der Satz von Ereignissen, auf die in einem Pointcut verwiesen werden kann.
Definition: Pointcut (Aspekt)
Eine in einem Aspek eingeschlossene Anweisung, die die Verbindungspunkte definiert, an denen der mit dem Aspekt verknüpfte Advice ausgeführt werden soll.
Definition: Einweben (Aspekt)
Das einbeziehen des Advicecodes an den angegebenen Verbindungspunkten durch einen Aspect-Weber
Möglichkeiten: Einweben von Aspekten (3)
1) Quellcodevorverarbeitung
2) Während des Linkens
3) Zur Laufzeit
Einweben von Aspekten: Quellcodevorverarbeitung
Der Aspect-Weaver läuft über den Quellcode und fügt ihn (in angepasster Form) an den passenden Stellen ein. Danach lässt sich ein Standardcompiler verwenden.
Einweben von Aspekten: Während des Linkens
Der Aspect-Weaver wird sozusagen in den Compiler eingebaut.
Einweben von Aspekten: Zur Laufzeit
Join Points werden ständig im Hintergrund überwacht. Tritt ein definiertes Ereignis ein, so wird der zugehörige Advice ausgeführt. Dies ist aber weniger performant als die anderen Methoden.
Design von Aspektorientierter Software.
Mit diesem Ansatz kann sich auch einiges bei der Design Phase ändern. Dies wäre z.B. bei Use-Case-Diagrammen, wo Aspekte als erweiternde Anwendungsfälle modelliert werden, die im Diagramm je nach Art des Join Points mit «_space;extends»_space; oder «_space;include»_space; gekennzeichnet werden.
V&V Aspektorientierter Software
Nur bei White-Box-TEsts und Programminspektionen haben AOSD einige Besonderheiten. Hier sollte jeder Advice einzeln testbar sein, Tests sollten entworfen werden, die Aspekte unabhängig vom System testen, in das sie eingewoben werden und ein Test sollte alle Join Points umfassen, die in dem System vorkommen.