Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "© WZL/Fraunhofer IPT Seminararbeitsvortrag Betrachtung der Transformationssprache QVT operational innerhalb der Eclipse-Plattform."—  Präsentation transkript:

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

2 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

3 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

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

5 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

6 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

7 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

8 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]

9 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.

10 Seite 10© WZL/Fraunhofer IPT Meta Object Facilities

11 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

12 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

13 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

14 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

15 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

16 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

17 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

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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 Seite 30© WZL/Fraunhofer IPT Blick auf das Beispielszenario

31 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('http://www.eclipse.org/uml2/3.0.0/UML'); modeltype ECORE uses ecore('http://www.eclipse.org/emf/2002/Ecore');

32 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 }

33 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) { }

34 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 := 'http://' + self.name + '/1.0'; eClassifiers += self.packagedElement -> select(a | a.oclIsKindOf(Class))[Class] -> map Class2EClassifier(); /* … */ }

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

36 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

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

38 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

39 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

40 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.

41 Seite 41© WZL/Fraunhofer IPT Fragen …

42 Seite 42© WZL/Fraunhofer IPT Backup


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

Ähnliche Präsentationen


Google-Anzeigen