Thema 5 Domain Specific Languages

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

Einführung in das Eclipse Modeling Framework (EMF)

Eclipse Modeling Framework

Einführung in das Eclipse Modeling Framework (EMF)

Thema 3 Das UML- Metamodell

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

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Einführung in das Eclipse Modeling Framework (EMF)

Software Engineering in der Projektpraxis

Model-Driven Software Engineering (HS 2011)

Software Engineering II

Generischer Modellvergleich mit EMF Compare

Definition von domänenspezifischen Sprachen mit Xtext: Einführung

Modellbasierte Softwareentwicklung mit EMF

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

Model Driven Development im Überblick

Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks

Model Driven Architecture Praxisbeispiel

Datenhaltung für Android Model First Christian Ingenhaag, Frederik Götz, Carl Steeg

EMF-GMF-Tutorial: Petrinet

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

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

DSLs mit Xtext entwerfen , A. Arnold

Programmieren mit Edipse 3

Andreas Lux Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse

Graphischer Editor für die technologieunabhängige User Interface Modellierung

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

Modell-Editoren für Eclipse entwickeln mit GMF

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

Definition von visuellen Alphabeten basierend auf Meta Object Facilities (MOF) 23. Oktober 2012

Grundlagen von MOF. Alexander Gepting 1

Comparing Software Factories and Software Product Lines

Einführung in Generatives Programmieren. Bastian Molkenthin

"Modellieren geht über Codieren": Willkommen zu SE-Vertiefung! (c) schmiedecke 14 SE3-1-Einführung 1

Michael Piechotta - CASE Tools. openarchitecture Ware

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

Jochen Bauer

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo)

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Einführung in das Eclipse Modeling Framework. Dr. Thorsten Arendt Marburg, 22. Oktober 2015

CSS Frameworks. Seminar Weiterführende Themen zu Internet- und WWW-Technologien. 9. Mai Johannes Schirrmeister

Einführung in das Eclipse Modeling Framework. 5. November 2014

Templatebasierter CDA-Generator mit ART-DECOR. Vortrag im Rahmen der HL7 Austria Jahrestagung 2017, Wien Dipl.-Inform. Med.

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

Rechnernetze Projekt SS 2015

Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess

Problemseminar ModelDrivenSoftwareDevelopment

Web Modeler W3L AG Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur

MDA-Praktikum, Einführung

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

Die Erkenntnis von gestern muss heute mit einem neuen TEAM - Ihr Partner für IT 2

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

Software Engineering II

MDSD in der Praxis. Dr. Shota Okujava.

GMF (Graphical Modeling Framework) Urs Frei

Code Generieren mit UML2

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

Übersicht Eclipse Modeling Project EMP. Zoltan Horvath

Thema 2 Acceleo-MTL- Sprachmittel

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

Methode zur Entwicklung sicherheitskritischer eingebetteter Systeme mittels deterministischer UML-Modelle

SAP -Schnelleinstieg: ABAP-Entwicklung in Eclipse. Christoph Lordieck

1 Einführung 1. 2 Einrichten der Arbeitsumgebung 9. 3 Schnelleinstieg in Xcode und Objective-C 25

Model Driven Software Development

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

Potentiale modellgetriebener Softwareentwicklung

Einführung in das Eclipse Modeling Framework. 31. Oktober 2012

Herausforderung: Entwicklungsmethodik und technisches Umfeld

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

Graphical Modeling Framework

Eclipse Neue Trends in der Eclipse-Technologie (Seminar WS 2012/13) Gabriele Taentzer, Thorsten Arendt

Spring IDE. Christian Dupuis - Spring 2.0 Release Party

Thema 7 Einstieg in die Semesterarbeit

Eclipse Modeling Framework (EMF) und das Graphical Editing Framework (GEF)

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

UML-DSLs effizient eingesetzt. Insight 07, Klaus Weber

Eclipse Neue Trends in der Eclipse-Technologie (Seminar WS 2013/14)

Business UI in Enterprise Anwendungen

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

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

ESE Conference 2011, Zürich. Generative Konzepte für den Plattform-Zoo - am Beispiel Mobile-Apps. Rüdiger Schilling Delta Software Technology GmbH

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

Prof. Dr. Gabriele Taentzer, Dr. Thorsten Arendt

Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans)

Inhaltsverzeichnis. jetzt lerne ich. Ein Wort vorab 15

Systemmodellierung mit SysML - Stereotypen und Profile

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

Eclipse und EclipseLink

Überblick. Allgemeines, Geschichtliches. Architektur. Oberfläche. Plugins und deren Einsatz

Adobe Flex & Grails RIA, REST und XML

Ein Design Tool für objektorientierte portable Programmierschnittstellen

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine

Modellierung und Programmierung 1

Prof. Dr. Gabriele Taentzer, Dr. Thorsten Arendt

Transkript:

SE Vertiefung Beuth-Hochschule Berlin Thema 5 Domain Specific Languages

MOF-Schichten (c) schmiedecke 11 SE3-5-metamodellierung 2

Was ist eine DSL? Domain Specific Language: Sprache zur Beschreibung (Modellierung) eines spezifischen Fachzusammenhangs Universalsprache enthält im Fachzusammenhang redundante Information (z.b. Richtung der Diode) verbirgt evtl. spezifisch wichtige Details muss fehlende Ausdrucksmittel prozedural implementieren. DSL kann fachliche Standardwerte voraussetzen (z.b. XMI-Header) kann wichtige Aspekte und Strukturen hervorheben stellt alle erforderlichen Ausdrucksmittel direkt zur Verfügung (c) schmiedecke 11 SE3-5-metamodellierung 3

DSL Eine DSL drückt fachspezifische Zusammenhänge einfacher präziser konziser strukturierter aus als eine Universalsprache. (c) schmiedecke 11 SE3-5-metamodellierung 4

DSL-Anlässe Hierarchische Datenstrukturen Organigramme Technische Pläne Befehlsketten Werkzeugketten Entscheidungsstrukturen, Regelwerke grafische Oberflächen, Webseiten Validierungszusammenhänge Reports Software-Architekturen und Plattformen Variable Abläufe Regieskripte. (c) schmiedecke 11 SE3-5-metamodellierung 5

DSL-Anforderungen Formal, überprüfbar im Fachkontext verständlich editierbar! automatisch verarbeitbar (c) schmiedecke 11 SE3-5-metamodellierung 6

Praktische Beispiele RDB: Metamodell umfasst Tabelle, Spalte, Fremdschlüssel, View Modell wäre ein konkretes DB-Schema Instanz wäre DB "in Betrieb" mit konkreten Datensätzen Webpage Metamodell umfasst statische Seiten, aktive Seiten, Templates, Links, Navigation, Servermodell Modell wäre ein typischer Webshop Instanz wäre ein konkreter Webshop mit konkretem Logo, Auswahl an Shopelementen und Eigenschaften, Css (c) schmiedecke 11 SE3-5-metamodellierung 7

DSL vs. UML-Profile Die UML ist ein sehr nützliches Metamodell aber nicht immer geeignet UML-Erweiterung mit Profilen einfach Art, das Metamodell anzupassen eigene DSL (z.b. in Ecore) Beschränkung auf die erforderlichen Sprachelemente sicher Wohlgeformtheit der Modelle (c) schmiedecke 11 SE3-5-metamodellierung 8

Fertige Metamodelle (DSLs) in Eclipse EMF bietet fertige Editoren ("Model Creation Wizards") für eine Reihe von Metamodellen: (c) schmiedecke 11 SE3-5-metamodellierung 9

Beispiel RDB-Editor (c) schmiedecke 11 SE3-5-metamodellierung 10

Beispiel Security (c) schmiedecke 11 SE3-5-metamodellierung 11

Einfaches Beispiel Vektorgrafik Metamodell wäre eine Menge von vordefinierten Shapes und ein zusammenfassendes Element Modell wäre eine Zeichnung (c) schmiedecke 11 SE3-5-metamodellierung 12

Arbeiten mit Metamodellen 1. Metamodell definieren d.h. Modellierungssprache festlegen Metamodell-Plugin 2. Generator erstellen / anpassen 3. Modell mit Plugin-Editor erstellen Generator 4. Code Generieren 13

EMF Eclipse Modeling Framework Basiert auf Ecore-Modellen Ermöglicht es, aus einem Ecore-Modell einen Editor zur Erzeugung von Instanzen zu generieren. Die technischen Details kommen später (c) schmiedecke 11 SE3-5-metamodellierung 14

DSL-Motivation der Uni Leipzig (c) schmiedecke 11 SE3-5-metamodellierung 15 Quelle: http://ebus.informatik.uni-leipzig.de/www/media/publications/se05-mdatutorial-agilemda.pdf

EMF-Werkzeugsicht Ecore UML* XMI Metamodell importieren Reflective Java Model Editor programmatisch Modelle erzeugen, abfragen, manipulieren, als XMI serialisieren EMF- Metamodell (genmodel) Java Metamodell (plugin) Java Model Editor (plugin) Graphical Model Editor Metamodell im EMF-Kontext verwenden, z.b. für M2T-Generatoren grafisch Modelle erzeugen, abfragen, manipulieren, als XMI serialisieren (c) schmiedecke 11 SE3-5-metamodellierung 16

Schritte der EMF-Anwendung (über eine M-Stufe) 1. Modell in Ecore definieren 2. EMF-Generator-Modell daraus erzeugen (.genmodel) 3. Aus dem Generator-Modell (Wurzelpaket) Java-Modell erzeugen Edit- und Editor-Projekt erzeugen ggf. Testcode erzeugen 4. Editor als Plugin oder RCP-Anwendung ausführen: Eclipse mit Plugin aus der plugin.xml des Editors starten darin neues leeres Projekt anlegen unter den Example EMF Generator Wizards den eigenen auswählen Baumeditor öffnet sich 5. Neue Instanz im Editor erstellen (c) schmiedecke 11 SE3-5-metamodellierung 17

Metamodell definieren (Ecore) und Generatormodell erzeugen (c) schmiedecke 11 SE3-5-metamodellierung 18

Java-Modell erzeugen und Klassen ansehen! (c) schmiedecke 11 SE3-5-metamodellierung 19

Editorprojekt generieren (2 Projekte: Edit und Editor) hieraus Eclipse- Applikation starten! (c) schmiedecke 11 SE3-5-metamodellierung 20

Editor und Edit Editor benutzt Edit (c) schmiedecke 11 SE3-5-metamodellierung 21

"Eigenen" Editor starten RCP eigenes Metamodell (c) schmiedecke 11 SE3-5-metamodellierung 22

Im Editor Modell erzeugen (c) schmiedecke 11 SE3-5-metamodellierung 23

Generator schreiben Im Acceleo-Projekt eigenes Metamodell referenzieren SVG- Metamodell (c) schmiedecke 11 SE3-5-metamodellierung 24

So sieht man es an der Uni Leipzig: (c) schmiedecke 11 SE3-5-metamodellierung 25 Quelle: http://ebus.informatik.uni-leipzig.de/www/media/publications/se05-mdatutorial-agilemda.pdf

So weit zum Thema DSL Nächstes schauen wir uns M2M-Transformatoren an.