Aspektorientierte Entwicklung Flashcards
1
Q
Hintergrund für AOSD
A
- für Wartung eines Softwaresystems ist Aufteilung in Komponenten anhand Anforderungen ideal –> Separation of Concerns
- es gibt immer Anforderungen, die sich auf mehrere Komponenten beziehen und Komponenten, die mehrere Anforderungen erfüllen müssen (m:n-Beziehung)
2
Q
Grenzen des Prinzips “Separation of Concerns”
A
- Belange überlagern sich (crossing concerns)
- Beispiele: Authentifizierung, Logging, Sicherung im Hintergrund
3
Q
Konzept der Aspekte
A
- Aspekt kapselt Funktionalität, die andere Funktionalität kreuzt (an vielen Stellen im System vorkommt)
- Spezifikation im Quellcode, wie Aspekte in Code eingewoben werden
- Aspekte können unabhängig voneinander geändert und wiederverwendet werden
4
Q
Bestandteile Aspekt
A
Advice: der Quellcode gemäß den (andere Anforderungen kreuzenden) Anforderungen
Pointcut: die Definition, an welchen Joint Points der Aspekt eingefügt werden soll (Exceptions, Konstruktoren)
5
Q
Möglichkeiten des Einwebens von Aspekten
A
- Quellcodevorverarbeitung (Aspect Weaver über Quellcode, dann Standardcompiler)
- während des Linkens (Aspect Weaver in Compiler eingebaut)
- zur Laufzeit (Joint Points im Hintergrund überwacht, bei Ereignis: Ausführung des Advice)
6
Q
V&V aspektorientierter Software
A
- Black-Box-Test normal
- White-Box-Tests: Advice einzeln testen, alle Joint Points umfassen, Aspekte systemunabhängig testen, Ausschließen von gegenseitiger Störung bei Aspekten
7
Q
Definition Joint Point
A
Ereignis in einem ausgeführten Programm, bei dem der mit einem Aspekt verknüpfte Advice ausgeführt werden kann