1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof....
-
Upload
renate-peters -
Category
Documents
-
view
218 -
download
0
Transcript of 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof....
![Page 1: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/1.jpg)
1
Aspekte und Modellierung
Seminar “Component and Aspect Engineering“WS2003/2004
Univ.-Prof. Dr. Armin B. CremersDr. Günter KnieselDaniel Speicher
Referentin: Anastasija Eifer
![Page 2: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/2.jpg)
2
Gliederung
Einführung Modellierung mit UMLAnwendungsfälle und AspekteObjektorientierte Modellierung mit UMLAspektorientierte Modellierung mit UMLErweiterung von UML für AOMZusammenfassung
![Page 3: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/3.jpg)
3
Einführung (1/2)
Objektorientierte Programmierung und objektorientierteModellierung:
Entwurfsmodelle oft groß und monolithisch die Umsetzung der Anforderungen schwierig zu
verfolgen Entwürfe nicht immer wiederverwendbar und schwer
zu warten
![Page 4: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/4.jpg)
4
Einführung (2/2)
Aspektorientierte Programmierung und aspektorientierteModellierung:
Entwurf und Code hinsichtlich verschiedener Anforderungen zu trennen (separation of concerns)
sog. nichtfunktionale Anforderungen in Aspekten zu kapseln
Modelle stärker entsprechend den Anforderungen zu spezifizieren
bisher kein “Standard“ für die Modellierung
![Page 5: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/5.jpg)
5
Modellierung mit UML
Standard-Objektmodellierungssprache Notationen und Metamodelle
Klassendiagramm Anwendungsfalldiagramm Aktivitätsdiagramm Sequenzdiagramm Zustandsdiagramm Kollaborationsdiagramm Komponentendiagramm Verteilungsdiagramm
![Page 6: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/6.jpg)
6
Modellierung mit UML
Kommunikation klare Darstellung der Konzepte eine Übersicht über das System Konzentration auf die wichtigen Details
Warum Analyse und Entwurf?
![Page 7: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/7.jpg)
7
Modellierung mit UML
Grady Booch, Ivar Jacobson,
Jim Rumbaugh
Ivar Jacobson is a father of the following techniques: use cases, component-based development, the Unified Modeling Language, the Rational Unified Process, and business modelling with use cases and objects. He founded the Swedish company Objectory AB, whichmerged with Rational in 1995. He departed recently from Rational as an employee, but he is still an executive technical consultant of the company.
![Page 8: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/8.jpg)
8
Analysiere Risiko
Preis für Handelbestimmen
Handel festmachen
Grenzen überschritten
Bewertung
<<include>>
<<include>>
Händler
Verkäufer
Abb.1: Anwendungsfalldiagramm (use case diagram)
Anwendungsfälle und Aspekte (1/6)
![Page 9: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/9.jpg)
9
Stammkunde
Kaufe ein Produkt
ErweiterungsstellenZahlungsdatenVersanddaten
<<extend>>
(Zahlungsdaten, Versanddaten)
Abb.2: Erweitert-Beziehung mit Erweiterungsstellen (extension points)
Anwendungsfälle und Aspekte (2/6)
![Page 10: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/10.jpg)
10
join points – die Stellen, an denen Aspekte mit dem normalen Javacode interagieren können
pointcuts – beschreiben joint points und spezifizieren zusätzliche Anweisungen (in advice-Block)
Grundbegriffe von AspectJ:
Anwendungsfälle und Aspekte (3/6)
![Page 11: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/11.jpg)
11
UML-Begriffe Äquivalente AOP- Begriffe
extension aspect
extension points join points
list of extension points
pointcuts
Anwendungsfälle und Aspekte (4/6)
![Page 12: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/12.jpg)
12
Interface
Interface
InterfaceInterface
Cash Withdrawal
Cash Withdrawal
Cash
Cash
CashTransfer Funds Transfer FundsTransfer Funds
Withdraw Cash
Deposit Funds Deposit Funds Deposit Funds
Abb.3: Scattering and Tangling
Use Cases Use Case Realization Components
Anwendungsfälle und Aspekte (5/6)
![Page 13: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/13.jpg)
13
Anwendungsfälle und Aspekte (6/6)
Anwendungsfälle (use cases):
use case realizations und components:
Grundlage für Gespräche zwischen Kunden und Entwicklern repräsentieren externe Perspektive auf das System Mit Hilfe von extensions können Aspekte modelliert werden
repräsentieren interne Struktur des Systems ( design model) im Moment keine Konstrukte für extensions to use-case
realizations und extensions to components in UML
![Page 14: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/14.jpg)
14
Objektorientierte Modellierung mit UML (1/3)
public class Account {
private int balance = 0; public void withdraw (int amount) {...}; public void deposit (int amount) {...}; public int getBalance() {...};
}
public class Customer {
public String name;
// inside some method (a is an account) a.withdraw(50);
}
![Page 15: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/15.jpg)
15
a : Accountc : Customer
1: withdraw(50)
Abb.4: UML-Kollaborationsdiagramm
Objektorientierte Modellierung mit UML (2/3)
![Page 16: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/16.jpg)
16
Customer
-name: String
Account
-balance: int
+withdraw(amount:int)+deposit(amount:int)
ownedAccount
owner
1..*
0..*
Abb.5: UML-Klassendiagramm
Objektorientierte Modellierung mit UML (3/3)
![Page 17: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/17.jpg)
17
pointcut someName : call(Signature);
public aspect Logging { private Log Account.myLog; public void Account.setLog(String fileName) { myLog = new Log(fileName); myLog.println ("This is the logfile for account " + this); }declare parents: Account implements Loggable;
pointcut MethodCall(Customer c, Account a) : call (public * Account.*(..)) && this(c) && target(a); after (Customer c, Account a) : MethodCall(c, a) { a.myLog.println(c + " called " + thisJoinPoint.getSignature().getName()); a.myLog.flush(); }}
Aspektorientierte Modellierung mit UML (1/4)
![Page 18: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/18.jpg)
18
Account
-balance: int
+withdraw(amount:int)+deposit(amount:int)
ownedAccount
owner
1..*
0..*
Customer
-name: String
<<interface>>Loggable
+setLog(fileName:String)
Log
+println()+flush()
0..1
1myLog
Abb.6: Klassendiagramm für Account Logging Aspect
Aspektorientierte Modellierung mit UML (2/4)
![Page 19: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/19.jpg)
19
a : Accountc : Customer
1: withdraw(50)
i : Interceptor
myLog : Log
Abb.7: UML-Kollaborationsdiagramm mit Interceptor
1.1: withdraw(50)
1.2: println(..)1.3: flush(..)
Aspektorientierte Modellierung mit UML (3/4)
![Page 20: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/20.jpg)
20
Nachteile des Modells:
Crosscutting concerns können nicht gut modularisiert werden
Keine explizite Modellierung der Grundmodelle von AspectJ (pointcuts, advice)
Inkonsequenz der Diagramme (kein Interceptor-Objekt im Klassendiagramm)
Der Code muss geändert werden Das Modell zeigt nicht, dass der Account mit oder
ohne logging verwendet werden kann
Aspektorientierte Modellierung mit UML (4/4)
![Page 21: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/21.jpg)
21
c : Customer i : Interceptor a : Account
myLog : Log
1.2: println(..)1.3: flush(..)
1: withdraw(50) 1.1: withdraw(50)
Erweiterung UML für AOM (1/7)
CP1
CP3
CP2
Abb.8: Identifying Connection Points
![Page 22: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/22.jpg)
22
Account
balance: int
+withdraw(amount:int) +deposit(amount:int)
Customer
-name: String
<<aspect>>AccountLogging
-Account::myLog: PrintWriter
+Account::setLog(fileName:String)
Adviceafter(c:Customer, a:Account):methodCall(c,a)
Log
+println(s:String)+flush()
Abb.9: Klassendiagramm für Account Logging Aspect
LogCall
Callpublic void a.myLog.println(“..“);public void a.myLog.flush(..);
<<pointcut>>methodCall
a: Account c: Customer
Call call(public*Account.*(..))&&this(c)
&&target(a);
-myAccount
0..*
<<binding>><<binding>>
<<binding>>
Erweiterung UML für AOM (2/7)
![Page 23: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/23.jpg)
23
Das Klassendiagramm für Account Logging Aspect :
Idee:
Aspekt wird als Komponente modelliert connection points stellen die Schnittstelle des Aspekts dar “binding“-Assoziationen spezifizieren, welche Objekte mit dem Aspekt
verbunden werden können das Einweben wird nicht gezeigt
Definiere Ports von Klassen, um die Schnittstellen der einzelnen Elementen darzustellen
In unserem Beispiel: AccountPort, CustomerPort und LogPort Das Einweben kann gezeigt werden (später im
Konfigurationsmodel)
Erweiterung UML für AOM (3/7)
![Page 24: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/24.jpg)
24
Account
-balance: int
+withdraw(amount:int) +deposit(amount:int)
Customer
-name: String
<<aspect>>AccountLogging
-Account::myLog: PrintWriter
+Account::setLog(fileName:String)
Adviceafter(c:Customer, a:Account): methodCall(c,a)l
Log
+println(s:String) +flush()
Abb.10: Aspekt-Design-Modell
LogCall
Callpublic void a.myLog.println(“..“);public void a.myLog.flush(..);
<<pointcut>>methodCall
a: Account c: Customer
Call call(public*Account.*(..))&&this(c)
&&target(a);
CustomerPort
Requires
+withdraw(amount:int) +deposit(amount:int)
LogPort
Provides+println(s:String) +flush()
Requires
AccountPort
Provides+withdraw(amount:int) +deposit(amount:int)
Requires
-myAccount
0..*
<<binding>><<binding>>
<<binding>>
O O
O
Erweiterung UML für AOM (4/7)
![Page 25: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/25.jpg)
25
:Account
:Log
:Customer<<aspect>>
:AccountLoggingaccountport customerport
accountbinding customerbinding
Outputbinding
logport
Abb.11: Konfigurationsmodell vor dem Einweben
Erweiterung UML für AOM (5/7)
![Page 26: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/26.jpg)
26
a:Account
myLog:Log
c:Customeraport:AccountPort
cport:
CustomerPortlogport:LogPort
Abb.12: Konfigurationsmodell nach dem Einweben
AccountPort
myLog:Log
Provides+withdraw(amount:int) +deposit(amount:int) setLog(fileName:String)
Requires
O
Erweiterung UML für AOM (6/7)
![Page 27: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/27.jpg)
27
:Account
:Log
:Customer
Abb.13: Komposition von Aspekten im Konfigurationsmodell
<<aspect>>:Blocking
<<aspect>>:Logging
Erweiterung UML für AOM (7/7)
![Page 28: 1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:](https://reader033.fdocuments.net/reader033/viewer/2022052513/570491c51a28ab14218dab3b/html5/thumbnails/28.jpg)
28
Zusammenfassung
UML muss für die aspektorientierte Modellierung angepasst werden: geeignete UML-Elemente für AOP-Konstrukte
Das Aspekt-Design-Modell zeigt die statische Struktur des Aspekts
Das Konfigurationsmodell beschreibt, wie der Aspekt in das System eingewoben wird; nach dem Einweben können jetzt zusätzliche Eigenschaften gezeigt werden