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

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

Model Driven Development im Überblick

Model Driven Architecture (MDA)

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

Vortrag von: Ilias Agorakis & Robert Roginer

Model Driven Architecture Praxisbeispiel

Jochen Bauer

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

Michael Piechotta - CASE Tools. openarchitecture Ware

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

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

Model Driven Software Development

Inhalt. Motivation Techniken des MDE. Fallbeispiele

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

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

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

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Model Driven Architecture

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Ein hierarchischer, modellgetriebener Ansatz zur Codegenerierung. R. Gitzel, M. Schwind

Model Driven Architecture

Einführung in Generatives Programmieren. Bastian Molkenthin

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

DSLs mit Xtext entwerfen , A. Arnold

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

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

UML-DSLs effizient eingesetzt. Insight 07, Klaus Weber

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine

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

DSL Entwicklung und Modellierung

Herausforderung: Entwicklungsmethodik und technisches Umfeld

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

Comparing Software Factories and Software Product Lines

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

Modellgetriebene Service-Entwicklung

MDA-Praktikum, Einführung

Systemdenken und Gestaltungsmethodik System-Modellierung

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

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

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

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

WIRTSCHAFTSINFORMATIK

A Domain Specific Language for Project Execution Models

SOA und modellgetriebene Software- Entwicklung in der Umsetzung von Busines-IT-Alignment-Aktivitäten

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

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

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo)

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

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

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

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Software-Engineering im Sommersemester 2014

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

Klassifikation von Modelltransformationen

Seminar: Software Engineering verteilter Systeme

Referenzarchitekturen und MDA 1

Generatives Programmieren

Model-Driven Software Engineering (HS 2011)

MDSD Einführung und Überblick

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

Kapitel 2: Der Software-Entwicklungsprozess

Grundlagen von MOF. Alexander Gepting 1

Seminarausarbeitung. Hauke Wittern. Modellgetriebene Entwicklung von Pervasive Games Entwicklung einer domänenspezifischen Sprache

Eclipse Modeling Framework

Use Cases. Use Cases

Thema 2 Acceleo-MTL- Sprachmittel

Graphische Modellanalyse am Beispiel von Geschäftsprozessmodellen unter Verwendung der Graph Markup Language (GraphML)

Modellbasierte Softwareentwicklung mit EMF

Seminar: Software Engineering verteilter Systeme

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

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

Model Driven Architecture

Modellgetriebene Softwareentwicklung und deren Auswirkung auf die Entwicklungsmethodologie von Standardsoftware

Einführung in das Eclipse Modeling Framework (EMF)

SEA. Modellgetriebene Softwareentwicklung in der BA

Forschungsprojekt SS 2009

Software Engineering II

Übersetzung von UML-Software-Spezifikationen in Simulationsmodelle

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

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

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

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

EMF-GMF-Tutorial: Petrinet

Software Engineering in der Projektpraxis

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

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

Product Line Engineering (PLE)

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 Metamodellbasierte Codegenerierung in Java

Innovator Anbindung an openarchitectureware. Connect. Klaus Weber.

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

MDA auf der Grundlage der OMG Konzepte

Modellbasierte Softwareentwicklung

WhiteStarUML Tutorial

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

Transkript:

Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2011/12 Überblick I Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung: Modellgetriebene Softwareentwicklung Modellgetriebene Softwareentwicklung Modellgetriebene Entwicklung Modelle Metamodelle Syntax und Semantik von Modellen Standards Domänenspezifische Sprachen (DSL) Werkzeuge für DSLs Modelltransformationen Modell-zu-Text-Transformationen Zusammenfassung 3 / 44 Modellgetriebene Softwareentwicklung: Diese Folien basieren in großen Teilen auf einem Vortrag von Stefan Gudenkauf, OFFIS Institut für Informatik. 4 / 44

Modellgetriebene Softwareentwicklung: Modellgetriebene Entwicklung Definition Modellgetriebene Softwareentwicklung (Model-Driven Software Development (MDSD)) bezeichnet Softwareentwicklungsprozesse, bei denen Modelle im Mittelpunkt stehen und als eigenständige Entwicklungsartefakte genutzt werden. (Reussner und Hasselbring 2009) Modelle sind zentrale Entwicklungsartefakte: Kommunikation mit Fachexperten Analyse Generierung von Code Ziele: Reduktion der Komplexität durch Abstraktion (Reduktion auf das Wesentliche) Automatisierung 5 / 44 Handhabung von Komplexität Abstraktion zum Wesentlichen Einbindung von Fachexperten Trennung von Aufgaben und Belangen Steigerung der Entwicklungseffizienz Generierung von redundantem Programmcode Wiederverwendung Steigerung der Softwarequalität Wohldefinierte Regeln für Modelle Bewährte Transformationen Homogener Programmcode Interoperabilität und Portabilität

Modellgetriebene Softwareentwicklung: Modelle Merkmale eines Modells nach Stachowiak (1973) Abbildung Repräsentation eines betrachteten Gegenstands Übertragbarkeit bestimmter Beobachtungen am Modell auf modellierten Gegenstand Verkürzung Betrachtung der relevanten Attribute des betrachteten Systems im Modell für bestimmte Betrachter irrelevante Attribute werden nicht repräsentiert Pragmatismus das Modell ist einem bestimmten Zweck zugeordnet der Zweck bestimmt Verkürzung und Abbildung 7 / 44 Modellgetriebene Softwareentwicklung: Metamodelle Modell und Metamodell Definition Ein Metamodell ist das Modell einer Menge von Modellen. Favre (2004) Definition Ein Metametamodell ist das Modell einer Menge von Metamodellen. 8 / 44

Ein Modell ist selbst ein Betrachtungsgegenstand und kann modelliert werden.ein Metamodell ist selbst wieder ein Modell und wird durch ein Metamodell beschrieben: ein Metametamodell. Modellgetriebene Softwareentwicklung: Metamodelle 9 / 44

Modellgetriebene Softwareentwicklung: Syntax und Semantik von Modellen Syntax und Semantik von Modellen (Stahl u. a. 2007) Konkrete Syntax Definiert die konkrete Darstellung von Modellen Regeln für die Abbildung auf die abstrakte Syntax 10 / 44 Konkrete Syntax: Eine Klasse wird als Rechteck gezeichnet... Bildquelle: OCL Tutorial von Mazeiar Salehie http://www.stargroup.uwaterloo.ca/~ltahvild/courses/ ECE493-T5/tutorials/Tutorial-Feb16-OCL.pdf

Modellgetriebene Softwareentwicklung: Syntax und Semantik von Modellen Abstrakte Syntax Definiert den Aufbau korrekter Instanzen Elemente und ihre Beziehungen 11 / 44 Abstrakte Syntax: Eine Klasse enthält Attribute und Methoden

Modellgetriebene Softwareentwicklung: Syntax und Semantik von Modellen Abstrakte Syntax von UML-Klassendiagrammen (Ausschnitt) 12 / 44 Class leitet von Classifier ab.

Modellgetriebene Softwareentwicklung: Syntax und Semantik von Modellen Syntax und Semantik nach Stahl u. a. (2007) Statische Semantik Schränkt die abstrakte Syntax ein OCL-Beispiel: context Tournament inv: end - start <= Calendar.WEEK 13 / 44 Statische Semantik: Der Name einer Klasse muss eindeutig sein. Kann z.b. mit Object Constraint Language (OCL) ausgedrückt werden. Bildquelle und OCL-Beispiel: OCL Tutorial von Mazeiar Salehie http://www.stargroup.uwaterloo.ca/~ltahvild/courses/ ECE493-T5/tutorials/Tutorial-Feb16-OCL.pdf

Modellgetriebene Softwareentwicklung: Syntax und Semantik von Modellen Syntax und Semantik nach Stahl u. a. (2007) Dynamische Semantik Bedeutung bzw. Interpretation der abstrakten Syntax z.b. formalisiert als Abbildung der abstrakten Syntax auf ein mathematisches Modell (denotionale Semantik) z.b. formalisiert als Abbildung auf ausführbares Modell (z.b. Code) (operationale Semantik) 14 / 44 Dynamische Semantik: Jede Instanz der Klasse hat alle Attribute ihrer Klasse. Methoden der Klasse können diese lesen und schreiben.

Modellgetriebene Softwareentwicklung: Standards Standards der modellgetriebenen Entwicklung Model Driven Architecture (MDA) UML MOF 15 / 44 Modellgetriebene Softwareentwicklung: Standards Standard: Model Driven Architecture (MDA) MDA ist ein Ansatz der Object Management Group (OMG) zur modellgetriebenen Entwicklung mit den Zielen: Interoperabilität Portabilität Wiederverwendbarkeit Verbindet verschiedene OMG-Standards Meta Object Facility (MOF) Unified Modeling Language (UML) Common Warehouse Model (CWM) Query/Views/Transformations (QVT) XML Metadata Interchange (XMI) 16 / 44

Bildquelle: http://www.omg.org Modellgetriebene Softwareentwicklung: Standards Model-Driven Architecture 17 / 44

Computation Independent Model (CIM): Modell der Domäne Enthält die Anforderungen an das zu entwickelnde System Platform Independent Model (PIM) Modell der Implementierung unabhängig von der Zielplattform Grundlage für die Entwicklung eines Systems auf verschiedenen Zielplattformen Platform Specific Model (PSM) Ergänzt das PIM mit Details zu einer bestimmten Plattform Evtl. zusätzlich Platform Model zwischen PIM und PSM Code Ausführbarer Quellcode Modellgetriebene Softwareentwicklung: Standards Standard: UML 2.x UML-Infrastructure Grundlagen der abstrakten Syntax z. B. Klassen, Assoziationen, Multiplizitäten UML-Superstructure Erweiterungen der UML-Infrastructure um Elemente für spezielle Modellierungs-aufgaben z. B. Komponenten, Anwendungsfälle, Aktivitäten Object Constraint Language Beschreibung der statischen Semantik Invarianten, Vor- und Nachbedingungen etc. Diagram Interchange (XMI) Austausch der grafischen Modellrepräsentation z.t. uneinheitlich implementiert 18 / 44

Modellgetriebene Softwareentwicklung: Standards Standard: Meta Object Facility (MOF) MOF: Standard der Object Management Group zur Metamodellierung basiert auf UML-Klassendiagrammen Varianten: Complete MOF (CMOF): Gesamter Sprachumfang von MOF Essential MOF (EMOF): Minimale Untermenge von MOF um Metamodelle beschreiben zu können Weitestgehend kompatibel zu Ecore aus dem Eclipse Modeling Framework (EMF) 19 / 44 Bildquelle: http://www.omg.org/mof/

Modellgetriebene Softwareentwicklung: Standards EMOF 20 / 44 EMOF-Klassen http://www.omg.org/mof/

Modellgetriebene Softwareentwicklung: Domänenspezifische Sprachen (DSL) Domänenspezifische Sprache Definition Domänenspezifische Sprache (Domain-specific Language DSL): Sprachen, die auf eine spezielle Anwendungsdomäne zugeschnitten sind. Programmiersprache Universalität DSL Ausdrucksstärke 21 / 44 They offer substantial gains in expressiveness and ease of use compared with general-purpose programming languages in their domain of application. (Mernik u. a. 2005) DSLs tauschen Universalität (allgemeine Anwendbarkeit) gegen Ausdrucksstärke in einer begrenzten Domäne

Modellgetriebene Softwareentwicklung: Domänenspezifische Sprachen (DSL) Arten von DSLs Interne DSLs (Language Exploitation) Bauen auf bestehende Sprachen auf Nutzung bestehender Werkzeuge Teilweise Nutzung einer existierenden Wirtssprache (Piggyback) Spezialisierung der Wirtssprache, z.b. UML-Profile als Spezialisierung Erweiterung der Wirtssprache Externe DSLs (Language Invention) Benötigen eigene Werkzeuge Grammatik (abstrakte Syntax, Metamodell) Notation (konkrete Syntax, grafisch oder textuell) 22 / 44 Modellgetriebene Softwareentwicklung: Werkzeuge für DSLs Eclipse Modeling Framework (EMF) 23 / 44

Eclipse-Projekt für die Metamodellierung http://www.eclipse.org/modeling/emf/ als Teil des Eclipse Modeling Project http://www.eclipse.org/modeling/ Ecore Kern von EMF Implementierung von OMGs Essential MOF (EMOF) EClass : represents a class, with zero or more attributes and zero or more references. EAttribute : represents an attribute which has a name and a type. EReference : represents one end of an association between two classes. It has flag to indicate if it represent a containment and a reference class to which it points. EDataType : represents the type of an attribute, e.g. int, float or java.util.date Bildquelle: http://eclipsesource.com/blogs/2011/03/22/ what-every-eclipse-developer-should-know-about-emf-part-1/ Modellgetriebene Softwareentwicklung: Werkzeuge für DSLs Eclipse Modeling Framework (EMF) 24 / 44

Modellgetriebene Softwareentwicklung: Werkzeuge für DSLs Eclipse Modeling Framework (EMF) 25 / 44 Werkzeuge in EMF Generierung von Java-Code aus Ecore-Metamodelle Generierung von Java-Code zur Bearbeitung von Metamodellen Serialisierung von Metamodellen in XMI (basiert auf XML) Baumeditor zur direkten Modellierung von Metamodellen und Modellen UML-Klassendiagrammartiger grafischer Editor

Modellgetriebene Softwareentwicklung: Werkzeuge für DSLs Repräsentation von DSLs Grafische Notation (Rendering) Hohe Informationsdichte Mehrdimensionalität (Kleppe 2008) Häufig graphorientiert (Knoten & Kanten) Bei größeren Projekten abwägen: Aufwand Layout > Aufwand Modellierung? Textuelle Notation (Serialisierung) Schnell editierbar, breite Werkzeugunterstützung Häufig sehr kompakt und formal Häufig blockstrukturiert (Textabschnitte bilden Blöcke) Darstellung von Beziehungen zwischen Entitäten schwierig (z. B. Verweise) 26 / 44 Modellgetriebene Softwareentwicklung: Werkzeuge für DSLs Graphical Modeling Framework (GMF) Eclipse-Projekt zur modellgetriebenen Erstellung grafischer Editoren für Ecore-Modelle Teil des Eclipse Modeling Project Editorbau mit GMF Beschreibung von Modellen für verschiedene Aspekte des Editors Besonders geeignet für die schnelle Erstellung einfacher grafischer Editoren Fortgeschrittene Editoren erfordern Änderungen am Quellcode und an GMF-Templates 27 / 44

http://www.eclipse.org/modeling/ Modellgetriebene Softwareentwicklung: Werkzeuge für DSLs Textuelle Modellierung mit Xtext Xtext Language Development Framework Eclipse-Projekt zur Entwicklung externer textueller DSLs basierend auf EMF Teil des Eclipse Modeling Project Definition von EBNF-artigen Grammatiken, die abstrakte und konkrete Syntax gleichzeitig darstellen Verwendung von Xpand-Templates zur Code-Generierung grammar with org. example. domainmodel. Domainmodel org. e c l i p s e. x t e x t. common. T e r m i n a l s g e n e r a t e domainmodel h t t p : / /www. example. org / domainmodel / Domainmodel Model : g r e e t i n g s+=g r e e t i n g ; G r e e t i n g : H e l l o name=id! ; 28 / 44

http://www.eclipse.org/xtext/ Modellgetriebene Softwareentwicklung: Modelltransformationen Modelltransformationen Definition Modelltransformationen: Abbildung einer Menge von Modellen auf eine andere Menge von Modellen Varianten: Modell-zu-Modell-Transformationen (M2M, Mappings) Modell-zu-Text-Transformationen (M2T, Templates) Modelltransformationen werden in der Regel auf Metamodellen beschrieben und auf Modellinstanzen angewendet 29 / 44

Modellgetriebene Softwareentwicklung: Modelltransformationen Arten von Modelltransformationen Reussner und Hasselbring (2009) 30 / 44 Modellgetriebene Softwareentwicklung: Modelltransformationen Modell-zu-Modell-Transformationen Erstellung von Modellen eines anderen Blickwinkels Überführen von Modellen höherer Abstraktionsebene in niedere Abstraktionsebenen Verfeinerung von Modellen M2M-Transformationssprachen Query View Transformation (QVT) Operational Mapping Query View Transformation (QVT) Relations Atlas Transformation Language (ATL) Xtend aus dem (Eclipse) Xtext Language Development Framework 31 / 44

Modellgetriebene Softwareentwicklung: Modelltransformationen ATL-Beispiel: Metamodell für Quelle 32 / 44 ATL-Tutorial: http: //www.slideshare.net/wpiers/model-refactoring-with-atl Beispiele für ATL-Transformationen: http://www.eclipse.org/m2m/atl/atltransformations/

Modellgetriebene Softwareentwicklung: Modelltransformationen ATL-Beispiel: Metamodell für Ziel 33 / 44 Modellgetriebene Softwareentwicklung: Modelltransformationen ATL-Beispiel: Transformation (Header) module C l a s s 2 R e l a t i o n a l ; c r e a t e OUT : R e l a t i o n a l from IN : C l a s s ; u s e s s t r i n g s ; i n h e r i t a n c e i s not s u p p o r t e d y e t h e l p e r d e f : o b j e c t I d T y p e : R e l a t i o n a l! Type = C l a s s! DataType. a l l I n s t a n c e s ( ) >s e l e c t ( e e. name = I n t e g e r ) > f i r s t ( ) ; 34 / 44

Modellgetriebene Softwareentwicklung: Modelltransformationen ATL-Beispiel: Transformation r u l e DataType2Type { from dt : C l a s s! DataType to out : R e l a t i o n a l! Type ( name < dt. name ) } 35 / 44 For each DataType instance, a Type instance has to be created. Their names have to correspond.

Modellgetriebene Softwareentwicklung: Modelltransformationen ATL-Beispiel: Transformation r u l e C l a s s 2 T a b l e { from c : C l a s s! C l a s s to out : R e l a t i o n a l! Table ( name < c. name, Columns a r e g e n e r a t e d from A t t r i b u t e s i n a n o t h e r r u l e not e x p l i c i t l y c a l l e d h e r e! } c o l < Sequence { key} > union ( c. a t t r >s e l e c t ( e not e. m u l t i V a l u e d ) ), key < Set { key } ), key : R e l a t i o n a l! Column ( name < o b j e c t I d, t y p e < t h i s M o d u l e. o b j e c t I d T y p e ) 36 / 44 For each Class instance, a Table instance has to be created. Their names have to correspond. The col reference set has to contain all Columns that have been created for single- valued attributes and also the key described in the following. The key reference set has to contain a pointer to the key described in the following. An Attribute instance has to be created as key Its name has to be set to objectid Its type reference has to reference a Type with the name Integer which - if not yet existing - has to be created.

Modellgetriebene Softwareentwicklung: Modelltransformationen ATL-Beispiel: Transformation r u l e S i n g l e V a l u e d D a t a T y p e A t t r i b u t e 2 C o l u m n { from a : C l a s s! A t t r i b u t e ( a. t y p e. o c l I s K i n d O f ( C l a s s! DataType ) and not a. m u l t i V a l u e d ) to out : R e l a t i o n a l! Column ( name < a. name, t y p e < a. t y p e ) } 37 / 44 For each single-valued Attribute of the type Class, a new Column has to be created. Its name has to be set to the attribute s name concatenated with id. Its type reference has to reference a Type with the name Integer which - if not yet existing - has to be created. Nicht gezeigt: Regeln für multivariate Attribute. Siehe http://www.eclipse.org/m2m/atl/atltransformations/ Class2Relational/ExampleClass2Relational%5Bv00.01%5D.pdf

Modellgetriebene Softwareentwicklung: Modell-zu-Text-Transformationen Modell-zu-Text-Transformationen Arten generierten Texts aus Quellmodellen: Programmcode Konfigurationsdateien Dokumentation wie z.b. Javadoc Varianten von Modell-zu-Text-Transformationen: Visitor-basiert Template-basiert Template-basierte Werkzeuge: Xpand aus dem (Eclipse) Xtext Language Modeling Framework AndroMDA Java Emitter Templates (JET) 38 / 44 Modellgetriebene Softwareentwicklung: Modell-zu-Text-Transformationen Xpand (Xtext-Grammatik) 39 / 44

Bildquelle: http://www.openarchitectureware.org/pub/ documentation/4.3.1/html/contents/xtext_tutorial.html Modellgetriebene Softwareentwicklung: Modell-zu-Text-Transformationen Xpand (Template) 40 / 44

Xpand-Tutorial: http://www.peterfriese.de/ getting-started-with-code-generation-with-xpand/ Bildquelle: http://www.openarchitectureware.org/pub/ documentation/4.3.1/html/contents/xtext_tutorial.html Modellgetriebene Softwareentwicklung: Zusammenfassung Vor- und Nachteile von DSLs Code-Generierung aus Modellen + Arbeitsersparnis bei regulären und wohl verstandenen Domänen wenigstens eine Referenzimplementierung notwendig generierter Code muss mit handgeschriebenem integriert werden generierter Code sollte readonly sein Code-Generatoren müssen erstellt und gewartet werden Analysefähigkeit + abstraktere Darstellung der Generator ist die Spezifikation eigene Analysewerkzeuge notwendig eigene Debugging-Werkzeuge notwendig 41 / 44

Modellgetriebene Softwareentwicklung: Zusammenfassung 1 Favre 2004 Favre, J. M.: Foundations of Meta-Pyramids: Languages vs. Metamodels - Episode II: Story of Thotus the Baboon. In: Bézivin, J. (Hrsg.) ; Heckel, R. (Hrsg.): Language Engineering for Model-Driven Software Development Internationales Begegnungs- und Forschungszentrum für Informatik (IBFI), Schloss Dagstuhl, Germany (Veranst.), 2004 2 Kleppe 2008 Kleppe, A: Software Language Engineering: Creating Domain-Specific Languages Using Metamodels. Addison-Wesley, Pearson Education Inc., 2008 3 Mernik u. a. 2005 Mernik, M. ; Heering, J. ; Sloane, A. M.: When and how to develop domain-specific languages. In: ACM Computing Surveys 37 (2005), Nr. 4, S. 316 344 4 Reussner und Hasselbring 2009 Reussner, R. (Hrsg.) ; Hasselbring, W (Hrsg.): Handbuch der Software-Architektur. zweite Ausgabe. dpunkt.verlag, 2009 5 Stachowiak 1973 Stachowiak, H: Allgemeine Modelltheorie. Springer, 1973 43 / 44 Modellgetriebene Softwareentwicklung: Zusammenfassung 6 Stahl u. a. 2007 Stahl, Thomas ; Völter, Markus ; Efftinge, Sven ; Haase, Arno: Modellgetriebene Softwareentwicklung Techniken, Engineering, Management. zweite Auflage. dpunkt.verlag, 2007 44 / 44