Aspektorientierte Modellierung

Ähnliche Dokumente
Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Vortrag von: Ilias Agorakis & Robert Roginer

SharePoint Demonstration

Use Cases. Use Cases

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

BSV Ludwigsburg Erstellung einer neuen Internetseite

3D Visualisierung von UML Umgebungsmodellen

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Clients in einer Windows Domäne für WSUS konfigurieren

Kern Concept AG Software Entwicklung HMO und BlueEvidence

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

FUTURE NETWORK REQUIREMENTS ENGINEERING

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing


Java: Vererbung. Teil 3: super()

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Microsoft Update Windows Update

Client-Server-Beziehungen

Rhapsody in C ein System zur aspektorientierten Embedded- Entwicklung? Dr.- Ing. Alexander Steinkogler B. Braun Melsungen AG

Software Engineering Klassendiagramme Assoziationen

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

Objektorientierte Programmierung OOP

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

4. AuD Tafelübung T-C3

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

SJ OFFICE - Update 3.0

Lokale Installation von DotNetNuke 4 ohne IIS

Kurzanleitung OOVS. Reseller Interface. Allgemein

Marketing-Leitfaden zum. Evoko Room Manager. Touch. Schedule. Meet.

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Umstieg auf Microsoft Exchange in der Fakultät 02

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Sabotage in Scrum. dem Prozess erfolglos ins Knie schiessen. Andreas Leidig (andrena objects ag) Vortrag bei den XP Days 2007

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Powermanager Server- Client- Installation

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Anforderungen an die HIS

Übungsklausur vom 7. Dez. 2007

HANDBUCH LSM GRUNDLAGEN LSM

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Lernaufgabe Industriekauffrau/Industriekaufmann Angebot und Auftrag: Arbeitsblatt I Auftragsbeschreibung

Benachrichtigungsmöglichkeiten in SMC 2.6

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Acceptor-Connector. Acceptor-Connector

Wirtschaftsinformatik 2

Workflow Systeme mit der Windows Workflow Foundation

ICS-Addin. Benutzerhandbuch. Version: 1.0

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service

Skills-Management Investieren in Kompetenz

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Einsatzbearbeitung im Sanitätsdienst

Neue Funktionalität in mobidas 1.3. erp Serie

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Klassendiagramm. (class diagram)

15 Social-Media-Richtlinien für Unternehmen!

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Vorarlberger Standardschulinstallation Anbindung von Android Mobile Devices

Some Software Engineering Principles

LavA OS: Ein Betriebssystem für konfigurierbare MPSoCs

OPTIONALES LIEFERUNG AUF USB STICK. Lieferung Ihrer ausgewählten V-IUS SOLUTIONS Anwendung auf USB Stick..

swissdec-adapter Installationsanleitung für Patchrelease Versionsgeschichte Version Marco Stettler Patchversion 2.

Infrastruktur: Vertrauen herstellen, Zertifikate finden

BIF/SWE - Übungsbeispiel

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Unified Communication Client Installation Guide

GeODin 7 Installationsanleitung

Mitarbeiterbefragung als PE- und OE-Instrument

Applikationsvirtualisierung in der Praxis. Vortrag an der IHK Südlicher Oberrhein, Freiburg Thomas Stöcklin / 2007 thomas.stoecklin@gmx.

Kapitel 2: Der Software-Entwicklungsprozess

Trainingsplan 21-wöchiger Trainingsplan für einen Langdistanz-Schwimm- Wettkampf

Fragen und Antworten

Workshop: Eigenes Image ohne VMware-Programme erstellen

Kompetenz. rund um. Ihren. Entwicklungsprozess. Über uns. Technische Software. Modellbasierter Test. Prüfplätze. Automatisierung.

Step by Step VPN unter Windows Server von Christian Bartl

SWE5 Übungen zu Software-Engineering

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Seminar. NoSQL Datenbank Technologien. Michaela Rindt - Christopher Pietsch. Richtlinien Ausarbeitung (15. November 2015)

SCHULVERSUCH INFORMATIK IN BADEN-WÜRTTEMBERG. Gerhard Liebrich Peter-Petersen-Gymnasium Mannheim

Speicher in der Cloud

SDD System Design Document

Navigieren auf dem Desktop

Turtle Charts mit der ViFlow Turtle Schablone (VTS) erstellen

Transkript:

Aspektorientierte Modellierung Softwaretechnik-Seminar 2002 Thema: Evolutionäre Software Referent: Alexander Winter

Gliederung Einführung und Motivation Was ist Aspektorientierte Modellierung? Vorstellung und Vergleich zweier Ansätze der Aspektorientierten Modellierung Zusammenfassung und Ausblick 25.07.2002 SWT-Seminar SS 2002 2

Einführung Anforderung der Industrie an Softwareprodukte (Open-/closed-principle): Software soll in sich konsistent sein Software soll offen genug für Änderungen sein Sinn und Zweck der OO-Modellierung: Unterstützung des Entwicklungsprozesses zur Erfüllung der Anforderungen Richtlinien (z.b. RUP oder ROPES) und Erfahrungswerte sorgen für zielgerichtetes Vorgehen in bezug auf die Anforderungen 25.07.2002 SWT-Seminar SS 2002 3

Erweiterung des Fallbeispiels Einführung neuer Funktionalität im DDS: Simples Logging wird erweitert Funktionsweise: Client und Server führen ein Log über auftretende Ereignisse in einem Puffer Bei entsprechendem Füllstand: Schreiben des Logs in eine Datei 25.07.2002 SWT-Seminar SS 2002 4

Klassenmodell: Ursprüngliches DDS dialer.net.server +isregistered:boolean +register: void dialer.server.dialer +dial: boolean +hangup: boolean dialer.server.dialoutserver +dial: void +hangup: void +isdialed: boolean 25.07.2002 SWT-Seminar SS 2002 5

Klassenmodell: Ursprüngliches DDS dialer.net.client _connector +isregistered:boolean +register: void dialer.server.buttondialer +cmdexit:void +cmdserverdial:void +showmessage:void dialer.client.dialoutclient +dial: void +hangup: void +hasdialed: boolean 25.07.2002 SWT-Seminar SS 2002 6

Erweiterung des Loggings (I) <<interface>> Logger int buffersize +logevent(event, result) +writelog(file) ClientLogger ServerLogger <<uses>> <<uses>> dialer.client.dialoutclient +dial: void +hangup: void +hasdialed: boolean dialer.client.dialoutserver +dial: void +hangup: void +isdialed: boolean 25.07.2002 SWT-Seminar SS 2002 7

Nachteile des Modells Wenig Flexibilität gegenüber Änderungen, unter Umständen Verlust des Interfaces Das Klassenmodell reicht als Illustration des Vorgangs nicht aus Folge: wechselseitige Abhängigkeit verschiedener Modelle (Sequence Diagrams, Klassenmodell,) Fehlende Ausdruckskraft von UML (beispielsweise bei Sequence Diagrams) 25.07.2002 SWT-Seminar SS 2002 8

Ablauf des Loggings 25.07.2002 SWT-Seminar SS 2002 9

Ablauf des Loggings (II) 25.07.2002 SWT-Seminar SS 2002 10

Was ist Aspektorientierte Modellierung? Idee: Eigenschaften, die sich über mehrere Klassen verteilen, sollen im UML-Modell an einer Stelle konzentriert werden Angaben der Stellen, an denen diese Eigenschaft eine Rolle spielt, muß möglich sein Transformation des Modells in ein OO-Modell sollte existieren 25.07.2002 SWT-Seminar SS 2002 11

Was ist ein Aspekt? Nach Kiczales/Lamping: Eine Eigenschaft ist eine Komponente, sofern sie sauber in einer allgemeinen Prozedur (Objekt, Methode, API) gekapselt werden kann Ein Aspekt, sofern dies nicht der Fall ist (Crosscutting) Beispiele für Komponenten: GUI Widgets, Image Filter, Bankkonten,... Beispiele für Aspekte: Synchronisation, Geschwindigkeit, Speicherbedarf 25.07.2002 SWT-Seminar SS 2002 12

Aktueller Stand der AOM Bisher noch keine festgelegter Standard auf Modellierungsebene, sondern mehrere Ansätze Existierende Tools der AOP (LAC, AspectJ) vereinfachen die Umsetzung eines Modells in eine Implementation Vorstellung zweier Alternativen am Fallbeispiel: Erweiterung der Klassensemantik (Pawlak, Duchien, Florin, Legond-Aubry, Seinturier, Martelli) UML for Aspects (UFA, Stephan Herrmann) : Erweiterung der Komponenten-Semantik 25.07.2002 SWT-Seminar SS 2002 13

Modell 1: Erweiterung der Klassensemantik Einführung sogenannter Aspektklassen Unterschied zu gewöhnlichen Klassen: Addition von Aspektmethoden Anbindung an andere Klassen durch Pointcut relations Abstraktion von Verteilung und Klassenunterschieden durch neuen Stereotyp <<group>> 25.07.2002 SWT-Seminar SS 2002 14

Erweiterung des Loggings (II) File +attach(string Filename,Handle h:boolean) +open(handle h):boolean +write(handle h, Strimg s):boolean +close(handle h): void <<uses>> <<aspect>> Logging <<pointcut>> 1 Int buffersize 1 <<pointcut>> logevent Event[] buffer logevent?all\ hasdialed 1 <<after >> logevent(<event, <result) 1?ALL\ isdialed dialer.client.dialoutclient +writelog(<file) dialer.client.dialoutserver +dial: boolean +hangup: boolean +hasdialed: boolean +dial: boolean +hangup: boolean +isdialed: boolean 25.07.2002 SWT-Seminar SS 2002 15

Vorteile des Modells Aspekt ist an einer Stelle konzentriert anstatt über das Modell verteilt Pointcuts definieren bereits konkrete Stellen der Einbindung für die Programmumsetzung Weaver sorgt später für die automatisierte Einbindung an den richtigen Stellen => erhebliche Verringerung des Aufwands bei Änderungen des Aspekts/der Komponenten 25.07.2002 SWT-Seminar SS 2002 16

Modell 2 : UFA UML for Aspects Erweiterung von UML um Aspektuelle Komponenten (Aspectual Components) Aspektmodellierung geschieht auf Komponentenebene: Aspekt wird als abstrakte Komponente dargestellt Basiskomponenten werden adaptiert Anbindung des (allgemeinen) Aspekts geschieht durch einen Connector 25.07.2002 SWT-Seminar SS 2002 17

Erweiterung des Loggings (III) Server dialer.net.server +isregistered:boolean +register: void dialer.server.dialer +dial: boolean +hangup: boolean dialer.server.dialoutserver +dial: void +hangup: void +isdialed: boolean 25.07.2002 SWT-Seminar SS 2002 18

Erweiterung des Loggings (IV) Client dialer.net.client _connector +isregistered:boolean +register: void dialer.server.buttondialer +cmdexit:void +cmdserverdial:void +showmessage:void dialer.client.dialoutclient +dial: void +hangup: void +hasdialed: boolean 25.07.2002 SWT-Seminar SS 2002 19

Erweiterung des Loggings (V) {abstract} Observer <<connector>> Logging <<adapt>> Server <<adapt>> Client 25.07.2002 SWT-Seminar SS 2002 20

Erweiterung des Loggings (VI) {abstract} Observer {abstract} Subject +{abstract} attach(observer) +{abstract} detach(observer) +{abstract} notify() <<uses>> {abstract} Observer +{abstract} update() 25.07.2002 SWT-Seminar SS 2002 21

Erweiterung des Loggings (VI) <<connector>> Logging Server DataObserver File Server +attach... Subject = DialoutServer EventObserver <<adapts>> Dialer DialoutServer 25.07.2002 SWT-Seminar SS 2002 22

Erweiterung des Loggings (VII) << connector >> Logging DataObserver int buffersize Event[] buffer +update <<uses>> Subject = DialoutServer +attach <- after {start} +detach <- after {stop} +notify <- after {dial, hangup, } <<uses>> <<uses>> EventObserver int buffersize Event[] buffer +update File +attach(string f, Handle h) +open(handle h) +write(handle h, String s) <<uses>> initlogging (boolean events, boolean data) 25.07.2002 SWT-Seminar SS 2002 23

Vorteile von UFA Das Modell bietet alle Vorteile des ersten Modells Zusätzlich lassen sich Dynamic Connectors modellieren Da ein Aspekt als Komponente modelliert wird, läßt er sich ebenfalls adaptieren => Aufhebung der strikten Trennung von Aspekt und Komponente 25.07.2002 SWT-Seminar SS 2002 24

Vergleich beider Modelle: Aspektklassenmodell Aspektklassenmodell leicht erweiterbar durch Klassenmechanismen wie Vererbung Unterstützung der Implementation durch AspectJ Aufteilung und Übersicht größerer Modelle problematisch Dokumentationswert ohne zusätzliche Anmerkungen nach längerer Zeit geringer 25.07.2002 SWT-Seminar SS 2002 25

Vergleich beider Modelle: UFA UFA-Modell ebenfalls leicht erweiterbar durch Spezialisierung von Komponenten Unterstützung der Implementation durch LAC Gute Übersicht durch Wahl verschiedener Detailgrade möglich Umfassender als das Aspektklassenmodell, allerdings ist ein größerer Kontext für das Verständnis des Zusammenhangs notwendig 25.07.2002 SWT-Seminar SS 2002 26

Zusammenfassung Zur Zeit existieren mehrere verschiedene Ansätze Modellierungsidee hilfreich bei evolutionärer Software Bisheriger Stand: Toolunterstützung zur Modellierung fehlt Fehlender Ansatz zur Einbindung zweier Aspekte in eine Basisklasse Nutzen eines Modells zur Visualisierung der AOP hat sich bestätigt 25.07.2002 SWT-Seminar SS 2002 27

Offene Fragen Ist der Ansatz auch in größeren Projekten praxistauglich? Es fehlen umfassendere Modelle, an denen eine Konsistenz verschiedener Ansätze geprüft werden kann Konzepte aus der OO-Modellierung müssen noch entwickelt werden: Wann ist ein Modell gut? Methoden zum Reengineering oder zum Testen Aspektorientierter Programme fehlen völlig 25.07.2002 SWT-Seminar SS 2002 28

Quellen [1] Jan Wloka, Stephan Hermann: Systembeispiel eines DDS [2] G. Kiczales, J. Lamping, A.Mendhekar, C. Maeda, C. Videira, J. Irwin, J.-M. Longetier: Aspect-oriented Programming, 1997. [3] R. Pawlak, L. Duchien, G. Florin, F. Legond-Aubry, L. Seinturier, L. Martelli: A UML-Notation for Aspect-oriented Design. AOSD, 2002. [4] Stephan Herrmann: Composable Designs with UFA, 2002. 25.07.2002 SWT-Seminar SS 2002 29