© WZL/Fraunhofer IPT Seminararbeitsvortrag Betrachtung der Transformationssprache QVT operational innerhalb der Eclipse-Plattform.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Modellgetriebene Softwareentwicklung
Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
DOM (Document Object Model)
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Software-Technik: (fortgeschrittene) Klassendiagramme
Software Engineering Seminar Metamodellierung
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
UML Begleitdokumentation des Projekts
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
12. Vorlesung: Aktivitätsdiagramme
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Wir bauen uns eine Webapplikation!
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Sesame Florian Mayrhuber
Einführung Modellgetriebene Softwareentwicklung, Metamodellierung Stephan Hildebrandt.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Java Programmierung.
PHP: Operatoren und Kontrollstrukturen
Vortrag: Frames & Javascript.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs Übung Besprechung der Hausaufgabe
Seminar Modellgetriebene Softwareentwicklung XMI - XML Metadata Interchange Vortrag im Rahmen des Seminar Modellgetriebene Softwareentwicklung Mirko Otto.
Seminar Modellgetriebene Softwareentwicklung Thema 3: Metamodelle – MOF Michél Rieser Prof. Dr.-Ing. habil. Georg Paul
MDA – Model Driven Architecture
Wie definiere ich meine Prozesse?
Objektorientierte (OO) Programmierung
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Neukonzeptionierung des SVNCheckers > Malte Legenhausen > DLR > Folie 1 Observer - Pattern Malte Legenhausen, Robert Werschnitzke Asea Brown.
© WZL/Fraunhofer IPT MATLAB Simulink am Beispiel schwingender mechanischer Systeme Seminarvortrag im Rahmen des Studiengangs Scientific Programming von.
Einführung in PowerPoint Zum Seminar „Video und Multimedia im Unterricht DaF“ (Theorie und Praxis der Lehr- und Lernmittel) bei Prof. Dr. E. Tschirner.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
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.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Operator Overloading, Mehrfachvererbung, Safe Pointer, Observer.
Tutorium Software-Engineering SS14 Florian Manghofer.
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
Vorbereitung einer Anforderungsanalyse für ein GUI im Kreditkarten- Processing-Umfeld Yanik Dreiling MatrNr
Eine Präsentation von Sandro Schluep und Leon Wink.
OCL – Object Constraint Language
Methodische Grundlagen des Software-Engineering
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
«Delegierter» Methoden Schablone Funktionszeiger
1. Die rekursive Datenstruktur Liste 1
Übersicht und Benutzung von Sphinx
Produktname.
9. Vererbung und Polymorphie
Präsentation von Darleen und Michèle
Wissenschaftliches Projekt
Von Wietlisbach, Lenzin und Winter
SO VERWENDEN SIE DIESE VORLAGE
Eine Präsentation von Heiko Gericke
 Präsentation transkript:

© WZL/Fraunhofer IPT Seminararbeitsvortrag Betrachtung der Transformationssprache QVT operational innerhalb der Eclipse-Plattform

Seite 2© WZL/Fraunhofer IPT Auswertung der Erkenntnisse6 Betrachtung einer Transformation5 Integration in Eclipse4 Einblick in die Object Constraint Language3 Struktur der QVTo-Skripte2 Einführung in die Thematik1 Agenda

Seite 3© WZL/Fraunhofer IPT Auswertung der Erkenntnisse6 Betrachtung einer Transformation5 Integration in Eclipse4 Einblick in die Object Constraint Language3 Struktur der QVTo-Skripte2 Einführung in die Thematik1 Agenda

Seite 4© WZL/Fraunhofer IPT Zielsetzung Motivation Modellgetriebene Entwicklung Meta Object Facilities QVT – Transformation Einführung in die Thematik1

Seite 5© WZL/Fraunhofer IPT Zielsetzung Betrachtung der Transformationssprache QVT operational –Funktionsweise –Einsatzmöglichkeiten Untersuchung der Benutzerfreundlichkeit innerhalb der Entwicklungsumgebung Eclipse Sammeln der Erkenntnisse anhand eines geschilderten Beispielszenarios

Seite 6© WZL/Fraunhofer IPT Modellgetriebene Entwicklung Behandelt Probleme die seit der Software-Krise der 60er Jahre bestehen Objekt orientierte Programmierung ist nur ein Tropfen auf den heißen Stein Umfang Kosten Zeit Qualität Steigende Anforderungen an Softwareprojekte Erschwerte Aufwandsbewältigung

Seite 7© WZL/Fraunhofer IPT Modellgetriebene Entwicklung Beschreibung eines Systems auf verschiedenen Abstraktionsebenen als Modell Konkretisierung in Richtung Plattform ermöglicht schnellere Portierbarkeit Definition der verschiedenen Ebenen ermöglicht Validierung

Seite 8© WZL/Fraunhofer IPT Modell Abstraktion bzw. Vereinfachung eines realen Systems Dient dem Lösen bestimmter Probleme innerhalb eines Systems Reduktion auf relevante Aspekte 1."Models provide abstractions of a physical system that allow engineers to reason about that system by ignoring extraneous details while focusing on the relevant ones.” [BROW04] 2.“A model is a simplification of a system built with an intended goal in mind. The model should be able to answer questions in place of the actual system.” [HUTC09] 3.“A model is an abstraction of a (real or language-based) system allowing predictions or inferences to be made.” [KÜHN06]

Seite 9© WZL/Fraunhofer IPT Motivation Modelltransformationen sollen … –… den Entwicklungsprozess beschleunigen. –… Validität der Modelle sicherstellen. –…Konsistenz gewährleisten. Weitere Einsatzgebiete sind … –… Sicherung von Synchronität. –… Vernetzung heterogener Applikationen.

Seite 10© WZL/Fraunhofer IPT Meta Object Facilities

Seite 11© WZL/Fraunhofer IPT QVT - Transformation Query beschreibt eine Anfrage an ein Eingangsmodell View beschreibt das Produkt der Transformation Transformation bezeichnet den gesamten Prozess

Seite 12© WZL/Fraunhofer IPT Meta Object Facilies definieren ein Meta-Metamodel Modelle haben ein eigenes Metamodell Definition von vier verschiedenen Meta-Ebenen –M3 : Beschreibt Aufbau eines Metamodells –M2 : Beschreibt Aufbau eines Modells –M1 : Beschreibt Aufbau der Instanzen zur Laufzeit –M0 : Instanzen zur Laufzeit

Seite 13© WZL/Fraunhofer IPT Auswertung der Erkenntnisse6 Betrachtung einer Transformation5 Integration in Eclipse4 Einblick in die Object Constraint Language3 Struktur der QVTo-Skripte2 Einführung in die Thematik1 Agenda

Seite 14© WZL/Fraunhofer IPT QVT-Skripte haben ihr eigenes Metamodell Objekte in operational Mappings Query und Helper dienen der Unterstützung Struktur der QVTo-Skripte2

Seite 15© WZL/Fraunhofer IPT QVT-Skripte haben ihr eigenes Metamodell Metamodell definiert Aufbau (Syntax) der Transformation MOF – konform (Ebene M2) Abbildung stellt nur die Grundzüge des Metamodells dar

Seite 16© WZL/Fraunhofer IPT Transformation-Objekt sind Grundlage eines Skriptes Transformationen sind komplexe Datentypen besitzen eine beliebige Anzahl an Helpern und Querys Bestehen aus einer beliebigen Anzahl Mappings Grundlage eines Skriptes Werden mit einer frei wählbaren Anzahl an Ein- und Ausgangsmodellen inititalisiert

Seite 17© WZL/Fraunhofer IPT Mappings-Objekt Erstellen Objekte des Zielmodells Initialisieren Werte der enthaltenen Variablen … –… in Abhängigkeit zum Quellelement oder –… fix definiert Bestehen aus –Vorbedingung –Population –Nachbedingung

Seite 18© WZL/Fraunhofer IPT Query und Helper dienen der Strukturierung Haben Über- und Rückgabewert Sind für einen bestimmten Datentyp definiert Aufruf eines Query: ‚Hallo‘.concetanate(‚ Welt!‘) query String::concatenate(in str : String) : String { var res : String; res := self + str; return res; }

Seite 19© WZL/Fraunhofer IPT Auswertung der Erkenntnisse6 Betrachtung einer Transformation5 Integration in Eclipse4 Einblick in die Object Constraint Language3 Struktur der QVTo-Skripte2 Einführung in die Thematik1 Agenda

Seite 20© WZL/Fraunhofer IPT OCL ist ein Werkzeug zur Modellabfrage und Standard für Invarianten Bringt einen Satz an Datentypen mit Stellt eine Reihe von Funktionen zur Verfügung Einblick in die Object Constraint Language3 Integerzur Speicherung ganzzahliger Werte Realzur Speicherung reeller Werte Stringzur Speicherung von Zeichenketten Booleanzur Speicherung der bool’schen Werte true und false

Seite 21© WZL/Fraunhofer IPT Funktionen select( : | ) –Wird auf eine Liste angewendet und gibt diejenigen Objekte zurück, die die gegebene Bedingung erfüllen oclAsType( ) –Wird auf einzelnes Objekt angewendet und castet dieses Objekt in den übergebenen Typen oclIsUndefined() –Prüft ob einem Attribut oder einer Variable kein Wert zugewiesen wurde oclIsTypeOf( ) –Kann sowohl auf Attribute, als auch auf Variablen angewendet werden und gibt True zurück, falls dieses dem übergebenen Typ entspricht..allInstances() –Gibt eine Liste aller Instanzen vom Typ, auf den diese Funktion angewendet wird, zurück

Seite 22© WZL/Fraunhofer IPT Auswertung der Erkenntnisse6 Betrachtung einer Transformation5 Integration in Eclipse4 Einblick in die Object Constraint Language3 Struktur der QVTo-Skripte2 Einführung in die Thematik1 Agenda

Seite 23© WZL/Fraunhofer IPT Ein kurzer Einblick in Eclipse Installieren der benötigten Plug-Ins Vorstellung des Eclipse Modeling Frameworks Blick auf das Beispielszenario Aufsetzen der Entwicklungsumgebung Integration in Eclipse4

Seite 24© WZL/Fraunhofer IPT Ein kurzer Einblick in Eclipse Eclipse ist eine integrierte Entwicklungsumgebung Ursprünglich nur für JAVA gedacht – mittlerweile für eine Vielzahl an Aufgaben nutzbar Eclipse bietet eine Reihe an Vorteilen –Hohe Akzeptanz –Quelloffenheit –Hoher Grad an Modularität

Seite 25© WZL/Fraunhofer IPT Der Eclipse Modeling Framework stellt eine Reihe wichtiger Tools bereit Bietet eine Reihe an Tools zur Modellierung und Codegenerierung Hauptziel ist die Synchronisierung verschiedener Darstellungsmöglichkeiten von Modellen Ermöglicht die Nutzung aller Vorteile der verschiedenen Darstellungsformen Verhindert Inkonsistenzen Generierter Code unterstützt Integration in eigene Applikation

Seite 26© WZL/Fraunhofer IPT Installieren der benötigten Plug-Ins Es gibt eine Reihe fertiger Eclipse-Pakete, für verschiedene Aufgaben Das Paket „Eclipse Modling Tools“ enthält einen Großteil der benötigten Plug-Ins Diese bietet die Möglichkeit einfach weitere Module aus dem Bereich der Modellierung zu installieren Einfaches Auswählen von „Operational QVT“ aus einer Liste an Modellierungs-Komponenten installiert die restlich benötigten Plug-Ins

Seite 27© WZL/Fraunhofer IPT Auswertung der Erkenntnisse6 Betrachtung einer Transformation5 Integration in Eclipse4 Einblick in die Object Constraint Language3 Struktur der QVTo-Skripte2 Einführung in die Thematik1 Agenda

Seite 28© WZL/Fraunhofer IPT Bekanntmachung der Metamodelle Struktur der einzelnen Mappings Einblick in ausgewählte Mappings Vorstellung der Query getDataType() Präsentation einer Beispieltransformation Betrachtung einer Transformation5

Seite 29© WZL/Fraunhofer IPT Blick auf das Beispielszenario Transformation „UML2ECORE“ eines UML- in ein Ecore-Klassendiagramm UML ist de-facto Standard Ecore zur Codegenerierung

Seite 30© WZL/Fraunhofer IPT Blick auf das Beispielszenario

Seite 31© WZL/Fraunhofer IPT Bekanntmachung der Metamodelle Ecore-Modelle haben ID über welche man sie innerhalb des Skripts referenzieren kann Ermöglicht Autovervollständigung Definition findet hier outline statt –Alternative ist die inline-Definition bei der das Metamodell innerhalb des Skriptes beschrieben wird modeltype UML uses uml(' modeltype ECORE uses ecore('

Seite 32© WZL/Fraunhofer IPT Einstieg in die Transformation Definiert Ein- und Ausgangsmodell der Transformation Aufruf der main() ist Einstieg in Transformation transformation UML2ECORE(in source : UML, out target : ECORE){ main() { -- Inhalt der Transformation }

Seite 33© WZL/Fraunhofer IPT Struktur der einzelnen Mappings Leeres Gerüst der mappings Definition eines Mappings braucht: –Ein Eingangselement (optional) –Ein Ausgangselement –Ein eindeutigen Name Durch inout lassen sich alte Elemente verändern mapping Model :: Model2EPackage() : EPackage { } mapping Property :: Property2EReferences() : EReference{ } mapping Property :: Property2EAttributes() : EAttribute { } mapping Class :: Class2EClassifier() : ECass { } mapping createGeneralizations(inout eClass : EClass) { } mapping createReferences(inout eClass : EClass) { }

Seite 34© WZL/Fraunhofer IPT Einblick in ein ausgewähltes Mapping Einfache Attribute bekommen direkt den Wert aus der „Model“-Klasse –Name –nsPrefix –nsURI eClassifiers bekommt neue Elemente vom Typ Eclassifier zugewiesen, die über ein Mapping erzeugt werden mapping Model :: Model2EPackage() : EPackage { --Setzen der Werte des neuen EPackage name := self.name; nsPrefix := self.name; nsURI := ' + self.name + '/1.0'; eClassifiers += self.packagedElement -> select(a | a.oclIsKindOf(Class))[Class] -> map Class2EClassifier(); /* … */ }

Seite 35© WZL/Fraunhofer IPT Präsentation einer Beispieltransformation

Seite 36© WZL/Fraunhofer IPT Auswertung der Erkenntnisse6 Betrachtung einer Transformation5 Integration in Eclipse4 Einblick in die Object Constraint Language3 Struktur der QVTo-Skripte2 Einführung in die Thematik1 Agenda

Seite 37© WZL/Fraunhofer IPT Zusammenfassung Fazit Abschluss Auswertung der Erkenntnisse6

Seite 38© WZL/Fraunhofer IPT Zusammenfassung Modellgetriebene Entwicklung, Sicherung von Konsistenz und Kommunikation sind die Hauptmotivationen von Modelltransformationen Grundlegende Elemente von QVT und OCL wurden vorgestellt Die Schritte zur Integration der Technologie in Eclipse wurden gezeigt Eine Beispieltransformation zur Demonstration der Syntax und zum Erläutern der Systematik mit der man Transformationen erstellt wurde dargestellt Ergebnis war eine Transformation zur Umwandlung eines UML- Klassendiagramms in ein Ecore-Diagramm

Seite 39© WZL/Fraunhofer IPT Fazit Die Integration in Eclipse ist sehr einfach Hohe Qualität der gelieferten Editoren vereinfachen den Entwicklungsprozess einer Transformation –Syntaxverstöße werden angezeigt –Verfügbare Elemente werden durch Autovervollständigung angezeigt Die Analyse der benötigten Schritte verlangt gutes Verständnis der beteiligten Modelle – grafische Darstellung und vorgestellte Systematik unterstützen den Benutzer hier

Seite 40© WZL/Fraunhofer IPT Fazit Die Verwendung von QVT – Operational Mappings innerhalb der Eclipse – Plattform stellt bei entsprechendem Verständnis der Konzepte der modellgetriebenen Entwicklung und der eingesetzten Technologien eine komfortable Lösung zur Modelltransformation dar.

Seite 41© WZL/Fraunhofer IPT Fragen …

Seite 42© WZL/Fraunhofer IPT Backup