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



Ähnliche Dokumente
Aufgaben eines Codegenerators

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

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

Ferhat Ayaz. XML mit C++

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Smap3D PDM 10. Installation. Stand-Alone-Migration-Analyzer

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?

XMI & Java. von Stefan Ocke so3@inf.tu-dresden.de 5.Juli 2001

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

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

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

Model Driven Architecture (MDA)

DSL Entwicklung und Modellierung

Kurzanleitung zu XML2DB

EMF-GMF-Tutorial: Petrinet

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

egovernment für das Open Source CMS Contao

XSLT Vortrag. 2. Beispiel XML. 3. Anwendungsmöglichkeiten von XSLT 4. XHTML

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Innovator 11 classix. Erweiterter XMI-Export aus Innovator Business und Object classix. HowTo.

Validiert das RTF-Template auf syntaktische Fehler und gibt Hinweis auf Zeilennummer in der RTF-Datei. der eingebetteten XML-Daten

Software Engineering II

Transformation von RailML timetable Daten zu SVG mittels XSLT zur Darstellung von Zeit-Weg-Liniendiagrammen

Gegeben ist das folgende XML-Dokument.

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

ECO-Manager - Funktionsbeschreibung

Errata-Liste zum Kurs: Einführung in XML (2. Auflage)

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML

Entwicklung mit Arbortext Editor 6.1

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics )

Software Engineering II

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

X-Technologien. XML and Friends. Jörn Clausen 9. Juli 2001

Klaus Schild, XML Clearinghouse Transformation von XML-Dokumenten

Dateninteroperabilität für INSPIRE in der Praxis Datenintegration und -harmonisierung

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Sonnenfinsternis in der Technischen Redaktion

XML Tutorium mit Oxygen. Oxygen Version 9.3!!

GITS Steckbriefe Tutorial

Print2CAD 2017, 8th Generation. Netzwerkversionen

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Installations Guide für YAJSW und DTLDAP

Abschlussarbeiten für StudentInnen

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

MGB PROFINET. EUCHNER GmbH + Co. KG Postfach D Leinfelden-Echterdingen

Datenfernübertragung von CAD/CAM Daten. Part 7: Einsatz von Containerfiles bei CAD- Zusammenbauten P 7

Die Technologie der Mumie

Klausur GUI-Entwicklung WS10/11 1.Termin

IBM SPSS Statistics Version 23. Einführung in Installation und Lizenzierung

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Produktskizze. 28. November 2005 Projektgruppe Syspect

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Referenzen TYPO3 Projekt Slider für Reiseberichte Stand: Februar 2015

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo)

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Updateseite_BuV-PlugIn-NERZ-Gesamt

Telefonverzeichnis der Uni Salzburg Anleitung zur Einrichtung und Verwendung in verschiedenen Mail-Programmen.

Was ist das Tekla Warehouse

Arbeiten mit UMLed und Delphi

Ablösung von Control-M durch JobScheduler

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt.

Neuer Vorraum-Sensor. Dr. H. Klein, CEDES GmbH VII. Schwelmer Symposium Juni 2009

NODELOCKED LIZENZ generieren (ab ST4)

Übersicht. Generierung von IPv6-Paketen mit Scapy. Scapy GUI - Kurzvorstellung. Szameitpreiks - Beuth Hochschule für Technik Berlin

Exportieren von Domino-Datenbanken in XML Das Lotus XML Toolkit Abbildung 1 Anwendung des Lotus XML Toolkits Seite 1 von 8

Qualitätssicherung bei der mobilen Datenerfassung

BPEL. Business Process Execution Language. Andre Rein. 21. August Serviceorientierte Architekturen

Daten- und Metadatenstandards Wintersemester 2011 / November 2011 XML II: DTD

XML-Austauschformat für Sicherheitsdatenblätter

Seminar Bassem Ben Helal

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

Word-Vorlagen-System mit Outlookanbindung

Silverlight for Windows Embedded. Martin Straumann / Stv. Business Unit Leiter Microsoft Technologien / Application developer

VNUML Projektpraktikum

Gemeinsam mit Book Industry Study Group, New York, und Book Industry Communication, London. ONIX for Books Supply Update Nachricht Überblick

QTTabBar Einrichtung, ein Tutorial

Kurzanleitung Installation der Zend Studio Sprachpakete

Predictive Modeling Markup Language. Thomas Morandell

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API

Installationsanleitung. Lohn Manager 9.5

SimPDM Datenmodell im Kontext zu Teamcenter und PLMXML

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Model Driven Development im Überblick

Transkript:

Current Workflow Rules T1 Rules Extensions XMLfile DOM processing with Meta API-calls Model 1 T2 Model 2 Code Generation (Smarty) Source code PP formatted sourcecode DTD V1 Rules XMI 1/21

Anbindung eines graphischen Frontends Optionen: Entwicklung eines graphischen Editors (z.b. mit Hilfe des Eclipse Graphical editing framework - GEF) Einsatz eines handelsüblichen UML-Modellierungstools (Magic Draw, Poseidon,...) mit XMI-Export XMI ist das Standardaustauschformat für UML Modelle (OMG) Hauptbestandteile von XMI: XMI model (semantische Information des UML-Modells) XMI diagram (Darstellungsinformationen) Aktuelle Version: 2.1 Ein sehr gesprächiges Format XMI 2/21

Werkzeuge UML - Editor Magic Draw UML 17.04 Unterstützt XMI 2.1 Trialversion verfügbar Homepage: http://www.magicdraw.com/ XSLT-Prozessor (Kommandozeile) XML Editor Oxygen Version 9.3 Im Poolraum installiert Trialversion verfügbar Xalan-C++ (Apache 2 License) Download von http://xml.apache.org/xalan-c/ (benötigt zusätzlich Xerces-C++) XQuery-Prozessor (Kommandozeile) Zorba (Apache 2 License) Download von http://www.zorba-xquery.com/html/download XMI 3/21

UML Klassenmodell XMI 4/21

Struktur XMI (1) XMI 5/21

Struktur XMI (2) XMI 6/21

Struktur XMI (3) XMI 7/21

Struktur XMI (4) XMI 8/21

XML-Element f. Klasse <packagedelement xmi:type="uml:class" xmi:id="_485" name="film" visibility="public" isleaf="false" isabstract="false" isactive="false"> <ownedattribute xmi:type="uml:property" xmi:id="..._503" name="titel" visibility="private" isordered="false" isunique="true" isleaf="false"...> <type xmi:type="uml:primitivetype" href="...uml.xml#string"> <xmi:extension extender="magicdraw UML 16.5"> <referenceextension referentpath="...s::primitivetypes::string" referenttype="primitivetype"/> </xmi:extension> </type> </ownedattribute> <ownedattribute xmi:type="uml:property" xmi:id="_505" name="erscheinungsjahr" visibility="private"... > <type xmi:type="uml:datatype" href="uml_standard_pr...3305590699_364818_1"> <xmi:extension extender="magicdraw UML 16.5"> <referenceextension referentpath="...::datatypes::date" referenttype="datatype"/> </xmi:extension> </type> </ownedattribute> XMI 9/21

<ownedattribute xmi:type="uml:property" xmi:id="..._541" name="schauspieler" visibility="public"... type="..._509"> <uppervalue xmi:type="uml:literalunlimitednatural" xmi:id="..._560" name="" visibility="public" value="*"/> <lowervalue xmi:type="uml:literalinteger" xmi:id="..._559" name="" visibility="public" value="0"/> </ownedattribute> <ownedattribute xmi:type="uml:property" xmi:id="..._568" name="regisseur" visibility="public"... type="..._509" association="..._567"> <xmi:extension extender="magicdraw UML 16.5"> <modelextension> <uppervalue xmi:id="..._592" name=""visibility="public" value="1"/> </modelextension> </xmi:extension> <lowervalue xmi:type="uml:literalinteger" xmi:id="..._591" name="" visibility="public" value="0"/> </ownedattribute> </packagedelement> XMI 10/21

XML-Element f. Assoziation <packagedelement xmi:type="uml:association" xmi:id="..._539" name="spielt_mit" visibility="public" > <memberend xmi:idref="..._540"/> <memberend xmi:idref="..._541"/> </packagedelement> <packagedelement xmi:type="uml:association" xmi:id="..._567" name="fuehrt_regie" visibility="public" > <memberend xmi:idref="..._568"/> <memberend xmi:idref="..._569"/> </packagedelement> XMI 11/21

Oxygen - XPath Builder XMI 12/21

XPath zur Extraktion relevanter Teile Klassen des Modells /xmi:xmi/uml:model/packagedelement[@xmi:type='uml:class'] Attribute einer Klasse /xmi:xmi/uml:model/packagedelement[@xmi:type='uml:class' and @name='film'] /ownedattribute[type]/@name Assoziationsenden einer Klasse /xmi:xmi/uml:model/packagedelement[@xmi:type='uml:class' and @name='film'] /ownedattribute[@association]/@name Assoziationen des Modells /xmi:xmi/uml:model/packagedelement[@xmi:type='uml:association'] ID s der Assoziationsenden einer Assoziation /xmi:xmi/uml:model/packagedelement[@xmi:id='_16_5_ca5026a_1241545088561_668956_605'] /memberend/@xmi:idref XMI 13/21

... puh, und jetzt? Möglichkeiten: Anpassen des Importfilters auf XMI Transformation von XMI in unser Format XQuery (z.b. mittels Zorba) XSLT (z.b. mittels Xalan) XMI 14/21

XQuery Transformation (1) declare namespace xmi = "http://www.omg.org/spec/xmi/20110701"; declare namespace uml="http://www.omg.org/spec/uml/20110701"; for $class in /xmi:xmi/uml:model/packagedelement[@xmi:type='uml:class'] return <class name="{$class/@name}"/> <?xml version="1.0" encoding="utf-8"?> <class name="film"/> <class name="person"/> XMI 15/21

XQuery Transformation (2) declare namespace xmi = "http://schema.omg.org/spec/xmi/2.1"; declare namespace uml="http://schema.omg.org/spec/uml/2.2"; for $class in /xmi:xmi/uml:model/packagedelement[@xmi:type='uml:class'] return <class name="{$class/@name}"> {for $attribute in $class/ownedattribute[type] return <attribute name="{$attribute/@name}"/>} </class> <?xml version="1.0" encoding="utf-8"?> <class name="film"> <attribute name="titel"/> <attribute name="erscheinungsjahr"/> </class> <class name="person"> <attribute name="nachname"/> <attribute name="vorname"/> </class> XMI 16/21

attribute/@type: analog Attribut name + fn:substring-after($string, $delim) Element relation: analog Element attribute mit xml-attributen: @min @max @role @relation_name Hinweis: z.t. sind die Hierarchien bei den Kardinalitäten und Datentypen leicht unterschiedlich (--> // statt / benutzen) XMI 17/21

Weitere Modelltransformation Unsere XMI Datei ist plattformunabhängig und kennt deshalb nicht das Konzept des Primärschlüssels Wie kann diese Information hinzugefügt werden? Modell Transformation mithilfe der Metamodell API XSLT Transformation Eingabaut in Transformation von XMI -> unserem XML Separate Transformation unseres XML Modells (Stylesheet siehe nächste Seite) XMI 18/21

XSLT-Transformation <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" doctype-system="my-meta.dtd"/> handle all existing attributes <xsl:template match="class"> <class> add id attribute <xsl:apply-templates select="@*"/> <attribute name="id" type="integer" primary-key="true"/> <xsl:apply-templates select="node()"/> </class> handle all subelements </xsl:template> <xsl:template match="@* node()"> <xsl:copy> <xsl:apply-templates select="@* node()"/> </xsl:copy> </xsl:template> identity stylesheet </xsl:stylesheet> XMI 19/21

Current Workflow new features in blue UML modeling tool Stylesheet XSLT Rules T1 Rules Rules T3 Extensions XMI XQuery Engine XML- File DOM processing with Meta API-calls Model 1 T2 Model 2 Code Generation (Smarty) Source Code PP Formatted Source Code XQuery - DTD V1 Rules XMI 20/21

Übung 5 Erweiterung des Generators um eine Komponente die XMI (Version 2.1) in unser XML-Format übersetzt. XSLT, bzw. XQueryTransformationen durch Kommandotool (z.b. Xalan, Zorba) Entwicklung eines eigenen, durchgängigen Szenarios, das alle Schritte der Codegenerierung umfasst Steuerung durch makefile XMI 21/21