1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin:

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Objektrelationales Mapping mit JPA
1 Referenzmodelle für HISinOne Dr. Uwe Hübner, 02. Juli 2009.
Grundlegende Entwicklungsstrategien [Schönthaler/Neméth 1990, S. 17]
Dokumentation von Software Architekturen unter Berücksichtigung von IEEE 1471 Vortrag an der FH Regensburg © Dr. Ulrich Margull, 2004 Dr. Ulrich.
Rollenbasierter Entwurf am Beispiel eines benutzeradaptierbaren Hyperbooks Institut für Informatik Rechnergestützte Wissensverarbeitung Universität Hannover.
Frank Simon, BTU Cottbus: Einführung in UML
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Objektorientierte Konzepte und Notation in UML
Manfred Thaller, Universität zu Köln Köln 28. Januar 2008
Manfred Thaller, Universität zu Köln Köln 7. Januar 2010
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
Modellierung komplexer Realität mit Objekten
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
AspectJ – Eine Aspektorientierte Programmiersprache
Programmiermethodik SS 07 Prof. Albert Zündorf
Programmiermethodik SS 09 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339 im Altbau)
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
1 WS 2012 Software-Engineering II Aspektorientierung.
Kombination von AOP und FOP Ein Vortrag für das Seminar erweiterte Programmiertechniken von Samuel Simeonov im Sommersemester 2007.
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
Rational Rose und UML: Erstellung einer Kontoverwaltung
UML Begleitdokumentation des Projekts
Unified Modeling Language Einführung zu UML Was ist „UML“?
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Referat „COMET-Basis“
Objektorientierte Modellierung
Software Engineering SS 2009
2. Vorlesung Ansätze der Systemanalyse: Strukturierte Analyse (SA)
12. Vorlesung: Aktivitätsdiagramme
Letzter Tag Spaeter Zeitpunkt letzte Lied hoert man weiter.
Unified Modeling Language Repetition / Einführung zu UML
Einführungskurs in die UML
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #3 ER Modellierung.
UML-Kurzüberblick Peter Brusten.
Unified Modeling Language
UML Modellierung des Verhaltens von Klassen und Objekten
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Vom Geschäftsprozess zum Quellcode
Informatik und Programmieren 3
Parameterübergabemechanismen für den Methodenaufruf
1 Ausgangslage Vorgehensweise: Informell, pragmatisch, stark graphisch orientiert. Systemanalytischer Ausgangspunkt: Klassischer Systembegriff als Ansammlung.
Objektorientierte Modellierung mit UML
Die Unified Modeling Language UML
AOP Lösung für Querschnittsaufgaben. Was ist AOP ? AOP ist kein Ersatz für OOP AOP ergänzt OOP AOP beinhaltet die Behandlung von Querschnittsaufgaben.
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
Kurze Rekapitulation aus der Einführungsvorlesung Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 20. Oktober 2011.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
1 Objektorientierter Entwurf E-R-Modellierung: Ausschließlich strukturelle Aspekte Verhaltensaspekte noch unberücksichtigt:  Interaktionen zwischen Objekten.
Objektorientierte (OO) Programmierung
Neukonzeptionierung des SVNCheckers > Malte Legenhausen > DLR > Folie 1 Observer - Pattern Malte Legenhausen, Robert Werschnitzke Asea Brown.
© Till Hänisch, 2002 BA Heidenheim Objekte und UML "You can model 80 percent of most problems by using about 20 percent of the UML." -- Grady Booch But.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Protokollieren, überwachen und verfolgen Vortrag zum Seminar „Aspektorientierte Programmierung“ von Andre Kaplick - 6. Juni 2016.
Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Historisch Kulturelle Informationsverarbeitung Hauptseminar:
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
UML und Modellierung mit ArgoUML
UML – Unified Modeling Language
Systemanalyse BA Heidenheim 2002.
Vorlesung #3 ER Modellierung
 Präsentation transkript:

1 Aspekte und Modellierung Seminar “Component and Aspect Engineering“ WS2003/2004 Univ.-Prof. Dr. Armin B. Cremers Dr. Günter Kniesel Daniel Speicher Referentin: Anastasija Eifer

2 Gliederung Einführung Modellierung mit UML Anwendungsfälle und Aspekte Objektorientierte Modellierung mit UML Aspektorientierte Modellierung mit UML Erweiterung von UML für AOM Zusammenfassung

3 Einführung (1/2) Objektorientierte Programmierung und objektorientierte Modellierung:  Entwurfsmodelle oft groß und monolithisch  die Umsetzung der Anforderungen schwierig zu verfolgen  Entwürfe nicht immer wiederverwendbar und schwer zu warten

4 Einführung (2/2) Aspektorientierte Programmierung und aspektorientierte Modellierung:  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

5 Modellierung mit UML  Standard-Objektmodellierungssprache  Notationen und Metamodelle  Klassendiagramm  Anwendungsfalldiagramm  Aktivitätsdiagramm  Sequenzdiagramm  Zustandsdiagramm  Kollaborationsdiagramm  Komponentendiagramm  Verteilungsdiagramm

6 Modellierung mit UML  Kommunikation  klare Darstellung der Konzepte  eine Übersicht über das System  Konzentration auf die wichtigen Details Warum Analyse und Entwurf?

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, which merged with Rational in He departed recently from Rational as an employee, but he is still an executive technical consultant of the company.

8 Analysiere Risiko Preis für Handel bestimmen Handel festmachen Grenzen überschritten Bewertung > Händler Verkäufer Abb.1: Anwendungsfalldiagramm (use case diagram) Anwendungsfälle und Aspekte (1/6)

9 Stammkunde Kaufe ein Produkt Erweiterungsstellen Zahlungsdaten Versanddaten > (Zahlungsdaten, Versanddaten) Abb.2: Erweitert-Beziehung mit Erweiterungsstellen (extension points) Anwendungsfälle und Aspekte (2/6)

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)

11 UML-Begriffe Äquivalente AOP- Begriffe extension aspect extension points join points list of extension points pointcuts Anwendungsfälle und Aspekte (4/6)

12 Interface Cash Withdrawal Cash Transfer Funds Withdraw Cash Deposit Funds Abb.3: Scattering and Tangling Use Cases Use Case Realization Components Anwendungsfälle und Aspekte (5/6)

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

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); }

15 a : Accountc : Customer 1: withdraw(50) Abb.4: UML-Kollaborationsdiagramm Objektorientierte Modellierung mit UML (2/3)

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)

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)

18 Account -balance: int +withdraw(amount:int) +deposit(amount:int) ownedAccount owner 1..* 0..* Customer -name: String > Loggable +setLog(fileName:String) Log +println() +flush() myLog Abb.6: Klassendiagramm für Account Logging Aspect Aspektorientierte Modellierung mit UML (2/4)

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)

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)

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

22 Account balance: int +withdraw(amount:int) +deposit(amount:int) Customer -name: String > AccountLogging -Account::myLog: PrintWriter +Account::setLog(fileName:String) Advice after(c:Customer, a:Account):methodCall(c,a) Log +println(s:String) +flush() Abb.9: Klassendiagramm für Account Logging Aspect LogCall Call public void a.myLog.println(“..“); public void a.myLog.flush(..); > methodCall a: Account c: Customer Call call(public*Account.*(..))&&this(c) &&target(a); -myAccount 0..* > Erweiterung UML für AOM (2/7)

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)

24 Account -balance: int +withdraw(amount:int) +deposit(amount:int) Customer -name: String > AccountLogging -Account::myLog: PrintWriter +Account::setLog(fileName:String) Advice after(c:Customer, a:Account): methodCall(c,a)l Log +println(s:String) +flush() Abb.10: Aspekt-Design-Modell LogCall Call public void a.myLog.println(“..“); public void a.myLog.flush(..); > 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..* > O O O Erweiterung UML für AOM (4/7)

25 :Account :Log :Customer > :AccountLogging accountport customerport accountbindingcustomerbinding Outputbinding logport Abb.11: Konfigurationsmodell vor dem Einweben Erweiterung UML für AOM (5/7)

26 a:Account myLog:Log c:Customer aport:AccountPort cport: CustomerPort logport: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)

27 :Account :Log :Customer Abb.13: Komposition von Aspekten im Konfigurationsmodell > :Blocking > :Logging Erweiterung UML für AOM (7/7)

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