3. Se - 11. Aspektorientierte Softwareentwicklung Flashcards

1
Q

Für die Wartung eines Softwaresystems ist es ideal, seine Aufteilung in (1) anhand der (2) vorzunehmen.

Was sollte für die Zahlen eingegeben werden?

A

1 - Komponenten
2 - Anforderungen

Für die Wartung eines Softwaresystems ist es ideal, seine Aufteilung in Komponenten anhand der Anforderungen vorzunehmen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Für die Wartung eines Softwaresystems ist es ideal, seine Aufteilung in Komponenten anhand der Anforderungen vorzunehmen.

Welches Prinzip entspricht dies vollständig?

A

Prinzip “Seperation of concerns”

Side Info:
Mann kann versuchen diesem Ziel so nahe wie möglich zu kommen, doch zu 100% wird es nie erreichbar sein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist eine m:n Beziehung?

A

Es gibt immer Anforderungen, die sich auf mehrere Komponenten beziehen und Komponenten, die mehrere Anforderungen erfüllen müssen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wann stößt das Prinzip “Serperation of concerns” an seine Grenzen? Und wie heißt das Fachwort dazu?

A

Wenn die Belange sich überlagern (crossing concerns)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Nenne häufige Bsp für crossing conerns (3)

A

Authentifizierung
Logging
Sicherung im Hintergrund

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist AOSD?

Welches Konzept führt es ein?

A

Aspektorientierte SoftwareEntwicklung

Konzept der Aspekte. Ein Aspekt kapselt Funktionalität, die anderen Funktionalität kreuzt, also an vielen Stellen im System vorkommt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was wird im Quellcode spezifiziert?

A

Wie Aspekte in den Code eingeworben werden, um ein ausführbares Programm zu erzeugen
Somit können Aspekte UNabhängig voneinander geändert und wiederverwendet werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist ein Aspekt?

Aus was besteht ein Aspekt?

A

Ein Aspekt kapselt Funktionalität, die anderen Funktionalität kreuzt, also an vielen Stellen im System vorkommt

Advice: der Quellcode gemäss den (anderen Anforderungen kreuzenden) Anforderungen

Pointcut: die Definition, an welchen Join Points der Aspekte eingefügt werden soll

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was sind mögliche Join Points?

A

Vor oder nach dem Aufruf bestimmter Methoden oder Konstruktoren

Zugriffe auf bestimmte Attribute einer Klasse oder bestimmter Objekte

Initialisierung von Objekten

Exceptions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Nenne (6) Begriffe des AOSD und die Definition

A

Advice: Code zum Implementieren eines Belanges

Aspekt: Programmabstraktion, die einen sich kreuzenden Belang definiert. Sie enthält die Definition eines Pointercuts und den mit dem Belang verknüpften Advice

Verbindungspunkt (Joint Point): Ergebis in einem ausgeführten Programm, bei dem der mit einem Aspekt verknüpfte Advice ausgeführt werden kann

Verbindungspunktmodell: Satz von Ereignissen, auf die in einem Pointcut verwiesen werden kann

Pointcut: Eine in einem Aspekt eingeschlossenen Anweisungen, die die Verbindungspunkte definiert, an denen der mit dem Aspekt verknüpfte Advice ausgeführt werden soll

Einweben: Einbeziehen des Advicecodes an den angegeben Verbindundspunkten durch einen Aspect Weber

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welche Möglichkeiten gibt es zur Einwebung von Aspekten?

A
  1. Quellcodeverarbeitung: Zunächst läuft der Aspect Weaver über den Quellcode und fügt ihn (in angepasster Form) an den passenden Stellen ein. Danach lässt sich ein Standardcompiler verwenden
  2. Während des Links: Der Aspect-Weaver wird sozusagen in den Compiler “eingebaut”
  3. zur Laufzeit: Join Points werden ständig im Hintergrund überwacht. Tritt ein definiertes Ereignis ein, so wird der zugehörige Advice ausgeführt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie werden bei der Use Case Modellierung Aspekte w.z.B erweiternde Anwendungsfälle, gekennzeichnet?

A

&laquo_space;extends&raquo_space;

&laquo_space;include&raquo_space;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie können Black-Box-Tests durchgeführt werden?

A

Black-Box-Test können für aspektorientierte Software durchgeführt werden wie für jede andere Software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welche Besonderheiten haben White-Box-Test und Programminspektionen bei AOSD?

A

Aspekte unabhängig von dem System testen, in das sie eingewoben werden

Jeder Advice einzeln testbar

Gegenseitige Störung von Aspekten muss ausgeschlossen werden, indem Programmabläufe erzeugt werden, bei denen die beteiligten Aspekte in allen möglichen Kombinationen und Reihenfolge aufgerufen werden

Test sollte alle Join Points umfassen, die in dem System vorkommen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly