Modellgetriebene Softwareentwicklung

Ähnliche Dokumente
WIRTSCHAFTSINFORMATIK

Klassifikation von Modelltransformationen

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

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

Herausforderung: Entwicklungsmethodik und technisches Umfeld

Michael Piechotta - CASE Tools. openarchitecture Ware

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

Model Driven Development im Überblick

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

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

Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015

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

Model Driven Software Development

Metamodellierung am Beispiel der E-Government-Domäne Meldewesen und Eclipse GMF

Experiences with Model Driven Software Development Creating the Palladio Tool Chain Eclipse Application Developer Day 7.

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber

Seminar: Software Engineering verteilter Systeme

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

Kiwi. Modellkonsistenz. Themenbereich Modellmanagement und Qualität

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi

Software Engineering verteilter Systeme. Hauptseminar im WS 2011 / 2012

openarchitectureware Was mit dem Open Source MDSDWerkzeug möglich ist

Agile Modellierung mit UML Lab

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

Software Engineering II

Modellierung & Domänen Spezifische Sprachen (DSL)

Seminar: Software Engineering verteilter Systeme

NoSQL mit Postgres 15. Juni 2015

Model Driven Architecture Praxisbeispiel

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

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

.NET. René Leupold. User Group Bern. Follow dnugbe on twitter

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Der EMF-generierte Code. 7. November 2012

Domain Specific Languages. Elmar Jürgens, Martin Feilkas Perlen

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

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

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

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

Group and Session Management for Collaborative Applications

Projektseminar Softwaresysteme

Prof. Dr. Gabriele Taentzer, Dr. Thorsten Arendt

Modellierung statischer Domänenmodelle mit Xtext

Java Einführung Abstrakte Klassen und Interfaces

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

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

DSLs mit Xtext entwerfen , A. Arnold

EMF-GMF-Tutorial: Petrinet

WebPoint. Ein Framework zur Erstellung von webbasierten Verkaufsanwendungen. Maria C. Raabe Daniel Woithe Vorlage: Torsten Walter. 16.

Gliederung. Modellbildung in der Entwicklung mit Schwerpunkt Architekturen. Domain Specific Languages. Sprachen. Programmiersprachen

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

Modellgetriebene Softwareentwicklung

Java Web Services Metadata JSR-181

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

openarchitectureware 4.0 Endpräsentation

F A C H H O C H S C H U L E W E D E L. Modellgetriebene Softwareentwicklung mit openarchitectureware

Keynote Der offene Ansatz: Open Source basiertes ALM ganz praktisch

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Einführung. Arbeitsgruppe. Proseminar Corporate Semantic Web. Prof. Dr. Adrian Paschke

Christian Kurz SWT Projekt WS 07/08

Projektseminar Modellbasierte Softwareentwicklung SoSe2014

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle

Stratego/XT. Lars Hamann Regelbasierte Systeme & Werkzeuge WS 06/07

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

Funktionales Programmieren in Python

Isabel Arnold CICS Technical Sales Germany z/os Explorer IBM Corporation

Klassische Themen der Computerwissenschaft Constraint Programming: Exercises. Gruppe: 100. Inhaltsverzeichnis

EJB 3 modellgetrieben ein Praxisbericht

Software Engineering I

Einführung in die Modellierung

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Model-Driven Integration Engineering in der E-Government-Domäne Meldewesen

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

Microsoft Office SharePoint 2007

Software Engineering II

Lean Modeling - Datenmodelle und Geschäftsregeln einfach und präzise mit natürlicher Sprache spezifizieren

Business Process- und Workflow- Metamodelle. Konzepte und konkrete Implementierungen

Evolution in objektorientierten Systemen. Dr. Thorsten Arendt Marburg, 28. Januar 2016

Forschungsprojekt SS 2009

Generatives Programmieren

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Erweiterung eines MDSD-Systems zur Unterstützung von Produktlinien duch Feature-Modelle

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

ELBA2 ILIAS TOOLS AS SINGLE APPLICATIONS

Di 7.3. MDSD und SOA und BPM - wie passt das zusammen? Peter Friese Thomas Stahl

Modellgetriebene Entwicklung mit Graphtransformationen

Mit 'Babysteps' in die XTEXT-XTEND Welt

Sprachen, Modelle, Fabriken

Codegeneratoren mit Xtend , A. Arnold

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

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Algorithms for graph visualization

Agenda. (1) Einleitung (2) neo4j. (3) Beispiel + Demo

Modellgetriebene Codegenerierung auf Basis von UML Klassendiagrammen und dem Austauschformat XMI

Visuelle DSLs Trends in der Softwaretechnik: Domänenspezifische Sprachen (Seminar WS 2010/11) Thorsten Arendt

Web-Anwendungsentwicklung mit dem Delivery Server

Ontologie-Management

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

Transkript:

Modellgetriebene Softwareentwicklung Vorbereitung der Zwischenpräsentationen, Grundlagen Modelltransformationen Dipl.-Inf. Stefan Kühne Betriebliche Informationssysteme Institut für Informatik Universität Leipzig kuehne@informatik.uni-leipzig.de ik i i i

Vorbereitung der Zwischenpräsentationen 2

Agenda Intension Inhalte Anforderungen Termine Fragen 3

Intension Zwischenergebnisse präsentieren Anregungen sammeln Üben zu Präsentieren sich an Zeitvorgaben zu halten auf Rückfragen zu reagieren sich an eine Vorlage zu halten Synchronsation/Vergleich mit anderen Studenten Arbeitsstand einschätzen 4

Inhalte Thema Gegenstand Problemstellung Motivation Zielsetzung Gliederung Arbeitsstand Zeitplan 5

Anforderungen Präsentation der Inhalte Auf ca. 5 Folien Unter Einhaltung der Vorlage In max. 10min Folien zur Verfügung stellen An Betreuer Per E-Mail 1 Tag vor Präsentation 6

Termine 04.12.2009 1. Jörg Hartmann: Adaption domänenspezifischer Modellierungswerkzeuge am Beispiel bflow* Toolbox 2. Ziad Sehili: Definition von textuellen und graphischen Modellierungswerkzeugen 3. Markus Hütter: Vergleich Microsoft DSL Tools vs. Eclipse GMF 4. Diep Phan: Modellbasierte Werkzeugintegration 5. Stefan Mertins: Synchronisierungsstrategien 11.12.2009 1. Stanley Hillner: Bridging Microsoft Oslo und Eclipse EMF 2. Christian Böhme: Evaluation des Bridging Musters 3. Michael Siebauer: Vergleich von Modell-Repositories 4. Torsten Grigull: Berechnung domänenspezifischer Modelldifferenzen 5. Nico Korn: Mergingstrategien g g zwischen Modellen 7

8

Grundlagen Modelltransformationen

Vorkenntnisse Modell Modellierungssprache Abstrakte Syntax Konkrete Syntax Metamodell Metametamodell Metamodellierungssprache Technikraum 10

Agenda Beispiele Definition Eigenschaften Klassifikation Werkzeuge 11

Anwendungsbeispiele 12

Beispiel 1 entity Customer { public class Customer name = String; implements Serializable { address = Address; } protected String name; protected Address address; entity Address { street = String; public String getname() { zip = String; return name; city = String; } } publicvoidsetname(string n) { this.name = name; } public Address getaddress() { return address; } 13

Beispiel 2 14

Beispiel 3 15

Beispiel 4 16

Definition 17

Modell-zu-Modelltransformation A transformation function, or transformation for short, is a function in the mathematical sense of the term, that is a set of pairs with the constraint that a value [...] in the domain maps to at most one value in the range. To be more precise a transformation (function) is a set of transformation instances. [Favre u. Nguyen 2005, S. 68] 18

Modell-zu-Modelltransformation bezieht Transformations- bezieht Metamodell 1 Metamodell sich auf definition sich auf 2 ist konform zu führt aus ist konform zu Modell 1 Transformationswerkzeug liest schreibt Modell 2 19

Transformationsbeispiele 20

XSLT <xsl:for-each select="//*[name()='elements'][@xmi:type='epc:event']"> <xsl:variable name="emptydefref"> <xsl:value-of select="@defref"/> </xsl:variable> <definition> <xsl:if test="$emptydefref=''"> <xsl:attribute name="defid"> <xsl:value-of select="$anzahldefid"/> </xsl:attribute> <saxon:assign name="anzahldefid" select="$anzahldefid+1"/> </xsl:if> <xsl:if test="$emptydefref!=''"> e <xsl:attribute name="defid"> <xsl:value-of select="$emptydefref"/> </xsl:attribute> </xsl:if> </definition> </xsl:for-each> 21

XTend List[aris::MT_EEPC] eepcmodels(aris::group group): group.eallcontents.typeselect(aris::mt_eepc); create epc::epc createepcmodel(aris::mt_eepc model, String relativeworkflowpath): elements.addall(model.containsymbols.createelement(relativeworkflowpath)) createelement(relativeworkflowpath)) -> connections.addall(model.lines(relativeworkflowpath)) -> connections.typeselect(informationarc).adjuststarteventmessageflow(); create epc::event createelement(aris::st_ev element, String relativeworkflowpath): this.setname(element.object.name); setname(element name); create epc::xor createelement(aris::st_opr_xor_1 element, String relativeworkflowpath): this.setname(element.object.name.norm()); 22

ETL rule A transform a : A to b:bextends C2D { } guard : true doit(); rule B transform a : A to b : B, c : C { } guard { return false; } 23

ATL rule Member2Female { from s : Families!Member (s.isfemale()) to t : Persons!Female ( fullname <- s.firstname + ' ' + s.familyname ) } 24

XPand «IMPORT "http://www.eclipse.org/gmf/2008/genmodel"» «IMPORT "http://www.eclipse.org/emf/2002/ecore org/emf/2002/ecore"» «IMPORT "http://www.eclipse.org/emf/2002/genmodel"» «EXTENSION xpt::diagram::parts::common» «EXTENSION xpt::diagram::helper» «DEFINE visualidconstant FOR gmfgen::gencommonbase-» «EXPAND xpt::common::generatedmembercomment» public static final int VISUAL_ID = «visualid»; «ENDDEFINE» «DEFINE modelidconstant FOR gmfgen::gendiagram-» «EXPAND xpt::common::generatedmembercomment» public static String MODEL_ID = "«editorgen.modelid»"; «EXPAND xpt::common::nonnls» «ENDDEFINE» 25

EGL [% for (i in Sequence{1..10}) { %] i is [%=i%] [% } %] 26

Eigenschaften 27

Modelltransformationen [CzHe06] 28

Transformationsregeln [CzHe06] 29

Muster in Transformationsregeln [CzHe06] 30

Logik von Transformationsregeln [CzHe06] 31

Ausführungsreihenfolge von Transformationsregeln [CzHe06] 32

Erfolgskriterien von Transformationen und Werkzeugen [MeGo05] Korrektheit Syntaktisch Konform Vollständig Semantisch Verhaltenseigenschaften Terminierung Konfluenz Anpassung, Wiederverwendung Test, Validierung Verarbeitung unvollständiger Modelle 33

Klassifikation 34

Abstraktionsgrad [Viss01] Horizontale Transformation vs. vertikale Transformationen Horizontale Transformationen Migration Umformulierung Analyse Vertikale Transformationen Abstraktion Verfeinerung 35

Ein- und Ausgabe Modell-zu-Modell vs. Modell-zu-Text Modell-zu-Modelltransformationen Bezug zum Ausgabe-Metamodell Modell-zu-Text-Transformationen Kein Bezug zum Ausgabe-Metamodell Erzeugung textueller Artefakte 36

Sprache Endogen vs. Exogen Endogene Transformation Sprache von Ein- und Ausgabemodellen ist identisch Exogene Transformationen Sprache von Ein- und Ausgabemodellen ist unterschiedlich 37

Technikraum Homogen vs. Heterogen Homogene Transformation Technikraum von Ein- und Ausgabemodellen ist identisch Heterogene Transformation Technikraum von Ein- und Ausgabemodellen ist unterschiedlich 38

Transformationswerkzeuge 39

Auswahl Imperativ vs. Deklarativ Deklarativ Template-basiert (z.b. EGL, XPand, XSLT) Frame-basiert [CzEi00] (z.b. XVCL, XFramer, ANGIE) Graphbasiert [MGVK05] Allgemeine: AGG, PROGRES Reengineering: Fujaba, Varlet Modelltransformation: GReAT, MOLA Modell-Checking: Viatra, Groove Relational (z.b. IBM MTF) Logische Programmierung (z.b. Prolog) Funktional (z.b. XTend) Hybrid ATL ETL 40

Model Management Frameworks openarchitectureware oaw-expression XTend XPand Check Epsilon EOL ETL EGL EVL EML 41

Literatur [CzEi00] Czarnecki, K. & Eisenecker, U. W.: Generative Programming : Methods, Tools, and Applications. Addison-Wesley, 2000 [CzHe06] Czarnecki, K. & Helsen, S.: Feature-based survey of model transformation approaches. IBM Systems Journal, 2006, 45, S. 621-645 [MeGo05] Mens, T. & van Gorp, P.: A Taxonomy of Model Transformation Proc. Int'l Workshop on Graph and Model Transformation (GraMoT), Institute of Cybernetics at Tallinn Technical University, 2005, S. 7-23 [MGVK05] Mens, T;vanGorp T.; Gorp, P;Varró P.; Varró, D. & Karsai, G:Applying G.: amodel Transformation Taxonomy to Graph Transformation Technology Institute of Cybernetics at Tallinn Technical University, 2005, 24-39 [Viss01] Visser, E.: A Survey of Rewriting Strategies in Program Transformation Systems. Electronic Notes in Theoretical Computer Science, 2001, 57 42

43