47. Werkzeuge für die modellgetriebene Architektur (Model- Driven Architecture, MDA)

Ähnliche Dokumente
64. Tools for Model-Driven Architecture (MDA) (Werkzeuge für die modellgetriebene Architektur)

37. Werkzeuge für die Model- Driven Architecture

Model Driven Development im Überblick

Model Driven Architecture Praxisbeispiel

Grundlagen von MOF. Alexander Gepting 1

Model Driven Architecture (MDA)

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

MDA-Praktikum, Einführung

Model Driven Architecture

MDA MDA mit mit Open-Source-Software Eine Eine Bestandsaufnahme

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Vortrag von: Ilias Agorakis & Robert Roginer

Ausarbeitung Referat zur MDA

M2M-Transformation mitder QVTRelations Language

MDA auf der Grundlage der OMG Konzepte

Generischer Modellvergleich mit EMF Compare

Model-Driven Software Engineering (HS 2011)

Model Driven Architecture

Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Michael Piechotta - CASE Tools. openarchitecture Ware

Usecase Meta Model Comparison and Model Migration. Dawid Kostrzycki Entwicklung verteilter eingebetteter Systeme

Herausforderung: Entwicklungsmethodik und technisches Umfeld

Henshin: Modelltransformationen in EMF. Dr. Thorsten Arendt Marburg, 29. Oktober 2015

Poseidon for UML. Einführung. Andreas Blunk

Dialogentwicklung mit Hilfe des Model Driven Architecture Ansatzes

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Software Factories SS Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung

25. Meta-CASE-Werkzeuge

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

Modellgetriebene Softwareentwicklung. Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg

10. Werkzeuge für den objektorientierten Entwurf und Wiederverwendung

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Softwarearchitektur mit dem Quasar- Architekturstil

Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen

10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Model Driven Software Development

Eclipse Modeling Framework

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

SEA. Modellgetriebene Softwareentwicklung in der BA

Modellgetriebene Entwicklung von grafischen Benutzerschnittstellen

Institut für Informatik Betriebliche Informationssysteme Graph-basiertes Reengineering

Inhalt. Motivation Techniken des MDE. Fallbeispiele

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis

Modellierung mit UML. Thomas Kistel. 24. November Thema - Untertitel Datum/Semester Ihr Name Seite 1

Model Driven Architecture

Software Factories SS Prof. Dr. Dirk Müller. 6 Eclipse Modeling Framework

Einführung in das Eclipse Modeling Framework (EMF)

Visual Studio 2010 Neues für Architekten

Seminar: Software Engineering verteilter Systeme

Visual Studio 2010 Jetzt auch für Architekten

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code.

Model Driven SOA. < J Springer. Anwendungsorientierte Methodik und Vorgehen in der Praxis. Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann

46 Softwarearchitektur mit dem Quasar-Architekturstil

<Insert Picture Here> Generierung von ADF-Applikationen aus Metadaten des Oracle Designer

Komponentenorientierter Entwurf von PIMs und CIMs mit der KobrA-Methode

Christian Kurz SWT Projekt WS 07/08

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München,

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Themen. Software Design and Quality Group Institute for Program Structures and Data Organization

Modellgetriebene Architektur - Grundlagen, Vor- und Nachteile, Erfahrungen - Uwe Kuehn Freie Universität Berlin

Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Werkzeugunabhängigkeit bei der Modellierung Schwierigkeiten und mögliche Lösungsansätze

Common Warehouse Metamodel und Imperfektion

Klassifikation von Modelltransformationen

Metamodellierung mit MOF und Ecore

Übersicht Eclipse Modeling Project EMP. Zoltan Horvath

Jochen Bauer

Systemdenken und Gestaltungsmethodik System-Modellierung

Modellgetriebene Softwareentwicklung und Modelltransformationen in der Praxis. Vorstellung Gruppe Softwaretechnik für Verteilte Systeme

Seminar: Software Engineering verteilter Systeme

Modellgetriebene Softwareentwicklung

WIRTSCHAFTSINFORMATIK

Seminar Aktuelle Themen der Informatik

Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt

Kapitel 2 - Die Definitionsphase

Vorlesung Software Engineering

Spring IDE. Christian Dupuis - Spring 2.0 Release Party

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015

Artefakte, Linktypen und Besonderheiten von OOSE/RUP

Referenzarchitekturen und MDA 1

2 Softwarearchitektur in der Organisationsstruktur 25

Modellgetriebene Softwareentwicklung

Wiederverwendung von Transformationen


Über den Unterschied zwischen Business Analysis und Requirements Engineering & Management

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

Problemseminar ModelDrivenSoftwareDevelopment

Round-Trip mit CASE-Werkzeugen: (Alp)traum oder Wirklichkeit?

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Modellgetriebene Softwareentwicklung

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

openarchitectureware

Entwicklung einer formalen Sprache zur Modelltransformation auf Basis von UML & XMI

MDA, alter Wein in neuen Schläuchen oder Weg für die Zukunft?

Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme

iks Gesellschaft für Informations- und Kommunikationssysteme mbh Sponsor der

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Transkript:

47. Werkzeuge für die modellgetriebene Architektur (Model- Driven Architecture, MDA) Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden http://st.inf.tu-dresden.de Version 11-0.1, 29.12.11 1) MDA 2) QVT 3) ATL SEW, Prof. Uwe Aßmann 1

Literature Alan Brown. An introduction to Model Driven Architecture. Part I: MDA and today's systems http://www.ibm.com/developerworks/rational/library/3100.html Frédéric Jouault and Ivan Kurtev. On the Architectural Alignment of ATL and QVT. In: Proceedings of the 2006 ACM Symposium on Applied Computing (SAC 06). ACM Press, Dijon, France, chapter Model transformation (MT 2006), pages 1188 1195. http://atlanmod.emn.fr/bibliography/sac06a Tutorial über ATL Families2Persones http://www.eclipse.org/m2m/atl/doc/atlusecase_families2persons.ppt ATL Zoo von Beispielen http://www.eclipse.org/m2m/atl/atltransformations K. Lano. Catalogue of Model Transformations http://www.dcs.kcl.ac.uk/staff/kcl/tcat.pdf / Implementation in ATL http://www.eclipse.org/m2m/atl/atltransformations/equivalenceattributesassociations/equiv alenceattributesassociations.pdf Prof. U. Aßmann, SEW 2

47.1 Modellgetriebene Architektur (MDA) SEW, Prof. Uwe Aßmann 3

Modelle und Spezifikationen der MDA sind Graphen MDA-Werkzeuge benötigen Graph-Mapping, Graph-Querying und Graphtransformation Gewöhnlich bieten sie Unterstützung für eine oder mehrere der besprochenen Sprachen Typisierung durch Metamodelle Oft werden die Sprachen QVT oder ATL unterstützt Prof. U. Aßmann, SEW 4

Modell-Verknüpfung am Beispiel INNOVATOR Innovator kann gleichzeitig für Analyse-, Entwurfs- und Implementierungsmodelle eingesetzt werden, sowie für Transformationen dazwischen Wie kann man diese Modelle systemisch mit einander verknüpfen? Prof. U. Aßmann, SEW 5

PIM und PSM gemäß der MDA Für die unterschiedlichen Abstraktionsebenen PIM und PSM stehen verschiedene Beschreibungsmittel zur Verfügung: Fachkonzept auch CIM (Computation independent model) Plattformunabhängiges Modell (UML, OCL, XMI) PIM Plattformspezifi sches Modell Basiskomponenten (JB) Steuerungskomponenten Infrastrukturkomponenten (EJB, CCM, COM+,.NET) Anwendungskomponenten Programmierung (oop) PSM Ein PSM berücksichtigt die jeweilige Basistechnologie, auf der ein PIM zum Einsatz kommen kann (CORBA-Broker,.NET-Spezifi ka oder das Web-Service-Protokoll SOAP). Auch PSMs können mit der UML modelliert werden. In jedem Fall werden aus den PSMs die Codegerüste erzeugt, die die Komponenten-Entwickler dann weiter bearbeiten. Quelle: Warum JANUS MDA und MDA JANUS ist; Whitepaper der Firma otris Software AG Dortmund; URL: www.otris.de Prof. U. Aßmann, SEW 6

MDA-Transformationsprozess Aus plattformunabhängigem (independent) Metamodell PIM sind mittels Regeln, Techniken plattformspezifi sche (specifi c) Modelle PSM zu entwerfen, zu generieren, oder abzuleiten, um neue Anwendungen für eine bestimmte (Komponenten-)Plattform zu erhalten. Ein weiteres Ziel von MDA ist die Integration solcher Technologien wie CORBA, J2EE,.Net und XML als Plattform. Source Language depends upon Transformation Specifi cation depends upon Target Language defi ned in defi ned by defi ned in Source Model Transformation Target Model Quelle: PIM PSM Kleppe, A., Warmer, J., Bast, W.: MDA Explained - Practice and Promise of the Model Driven Architecture; Addison Wesley 2003 (Draft 25.10.02) Prof. U. Aßmann, SEW 7

Das MDA-Metamodell <<basiert auf>> PIM Mapping Techniken Mapping von PIM zu PIM UML <<dargestellt mit>> 1..n <<beschrieben mit>> PIM 1..n <<unabhängig von>> MOF <<dargestellt mit>> Metamodel 1..n Mapping von PIM zu PSM Refactoring vom PSM zu PIM andere Sprachen <<dargestellt mit>> 1..n 1..n <<beschrieben mit>> 1..n PSM <<hängt ab von>> Infrastruktur <<basiert auf>> 1..n PSI PSM Mapping Techniken Mapping von PSM zu PSM PSM = plattformspezifi sches Modell PSE = plattformspezifi sche Erweiterung PSI = plattformspezifi sche Implementation Transformationen bezeichnet man auch als Abbildungen (mappings). Mapping von PIM zu PIM schafft neue Business Viewpoints, von PSM zu PIM Abstraktionen aus plattformabhängigen Implementierungen und zwischen PSM weiteren Verfeinerungen oder Zielplattformen. Prof. U. Aßmann, SEW 8 PSE

Model Management In der MDA müssen Modelle (Graphen) verwaltet werden: Modellalgebren Lookup Diff, comm, union, compose Versionsmanagement Konfigurationsmanagement Das führt auf metamodellgesteuerte Repositorien/Modellinfrastrukturen (siehe Kapitel Repositories und Modellmanagement Prof. U. Aßmann, SEW 9

Bewertungsaspekte von MDA-Tools Unterstützung der Metamodellierung Metamodelle der Sprachen UML 2.0, OCL, CWM (MOF 2.0-basiert) Metamodellgesteuerte Repositorien Erweiterungsmöglichkeiten der UML-Profile durch explizite Metamodellierung sowie Modellprüfung Austauschformate: Import, Export und Validierung von Modellen auf Basis ihres Austauschs mit XMI 2.0 Validierung der Modelle mit OCL Model-to-Model Mapping bzw. Transformation (z. B. PIM zu PSM) mit QVT, ATL oder einer proprietären Sprache Forward-, Reverse- bzw. Roundtrip-Engineering auf der Code-Ebene Codegenerierung (Model-to-Code Transformation, PSM zu PSI) Mapping zu einer Programmiersprache wie z. B. JMI Modellierung von Testfällen und automatische Generierung der Testdaten (Modeldriven Testing) Quelle: Petrasch, R., Meimberg, O.: Model Driven Architecture - eine praxisorientierte Einführung in die MDA; dpunkt-verlag 2006 Prof. U. Aßmann, SEW 10

Werkzeugfunktionen am Bsp. ArcStyler Das Werkzeug ArcStyler ist im Zusammenspiel mit einem UML-Editor wie MagicDraw (oder Rational Rose...) ein leistungsfähiges Werkzeugsystem (MDA-Suite), mit dem sich zum Beispiel J2EE-Applikationen gemäß den Konzepten der MDA entwickeln lassen. Object Modeler erfasst Anforderungen unabhängig von Plattform (funktionale, essentielle Anforderungen) Basis CRC-Cards Technologie Pattern Refinement Assistent überführt Fachmodell interaktiv in PIM UML-Modell (Basis MagicDraw oder Rational Rose) mit Annotation der essentiellen Design- Entscheidungen Verfeinerung des Fachmodells top down in untergeordnete UML-Diagramme und Quellcodegenerierung ebenfalls mit UML-Tool (MagicDraw) Codevervollständigung und Optimierung für jeweiligen Applikationsserver mit Cartriges (Codegenerierungs-Plugins) Komponentengenerierung für Oberfläche sowie weitere Projekt- und Konfigurationsdateien mit JBuilder. Schnittstelle zu IDE ist Standard Ant Build Process Datenbankgenerierung über Skripte zum Erstellen der DB-Schemas möglich. Quelle: Versteegen, G.: Wege aus der Plattformabhängigkeit - Hoffnungsträger Model Driven Architecture; Computerwoche 29(2002) Nr. 5 vom 1. Febr. 2002 Prof. U. Aßmann, SEW 11

Vorgehen und Unterstützung beim ArcStyler http://www.interactive-objects.com/products/arcstyler/supportdocumentation.html Prof. U. Aßmann, SEW 12

Cartridges und generierte Artifakte Quelle: Butze, D.: Entwicklung eines Praktikums für die werkzeugestützte Softwareentwicklung nach der Model-Driven-Architecture; Großer Beleg an der Fakultät Informatik der TU Dresden 2004 Prof. U. Aßmann, SEW 13

Kurzbeschreibung weiterer MDA-Tools Integriert in URL AndroMDA Eclipse http://www.andromda.org/ XText, Xpand Eclipse http://www.eclipse.org/xtext/ IBM Rational Suite Software Architect Eclipse BITplan smart Generator Eclipse http://www.bitplan.com/ Quelle: Petrasch, R., Meimberg, O.: Model Driven Architecture - eine praxisorientierte Einführung in die MDA; dpunkt-verlag 2006 Prof. U. Aßmann, SEW 14

47.2 Query-View-Transformations (QVT) The language of the OMG for model transformations within MDA SEW, Prof. Uwe Aßmann 15

QVT Dialekte Prof. U. Aßmann, SEW 16

Transitive Hülle mit QVT Relations // Transitive Hülle in QVT relations, mit Verwendung einer rekursiven Relation relation transitiverelation { domain node:node { // matching attributes name = samename; } domain node2:node { // node2 must have the same name as node name = samename; } domain node3:node { // node3 must also // have the same name name = samename; } when { // conditions: base relation must exist baserelation(node,node2) or // or a transitive relation to a base relation (transitiverelation(node,neighbor) and baserelation(neighbor,node2)); } where { // Aufruf einer Transformation makenodesound(node); } } Prof. U. Aßmann, SEW 17

QVT und EARS QVT Relational ist eine Sprache, die Kantenadditionssysteme realisiert. Werkzeuge, die QVT-Relational unterstützen, sind in Wirklichkeit einfache Graphersetzungssysteme Prof. U. Aßmann, SEW 18

QVT Tools Tool Eclipse M2M Project Operational http://www.eclipse.org/m2m/ Magic Draw Operational MediniQVT Relational http://projects.ikv.de/qvt/wiki Prof. U. Aßmann, SEW 19

47.3 ATL eine QVT-alike Sprache für Modelltransformationen ATLAS Transformation Language Statt QVT ist in der Praxis auch ATL sehr beliebt http://www.eclipse.org/atl/ SEW, Prof. Uwe Aßmann 20

ATL integriert OCL // Transitive Hülle in ATL, mit Verwendung einer rekursiven OCL Query rule computetransitiveclosurebasecase { from node: Node ( // possible to call OCL expressions node->baserelation.collect( e e.baserelation)->flatten() ); ) to newnode mapsto node ( // set new transitive relation newnode->transitiverelation <- node->baserelation ) } rule computetransitiveclosurerecursivecase { from node: Node ( node->transitiverelation.collect( e e.baserelation)->flatten() ); ) to newnode mapsto node ( // set new transitive relation newnode->transitiverelation <- node->transitiverelation ) } Prof. U. Aßmann, SEW 21

OCL ist eine Graph-Query-Sprache, ähnlich zu EARS und.ql rule checknodoublefeatureinsuperclasses(name:string) { from node: Class ( node->transitiveclosure()->collect.().exists(s s.name() = name); ) to System.out.println("Error: super class has doubly defined feature: "+s.name()); } Prof. U. Aßmann, SEW 22

End Prof. U. Aßmann, SEW 23