openarchitectureware



Ähnliche Dokumente
WIRTSCHAFTSINFORMATIK

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Model-Driven Software Engineering (HS 2011)

MDSD Einführung und Überblick

Herausforderung: Entwicklungsmethodik und technisches Umfeld

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

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

Modellierung & Domänen Spezifische Sprachen (DSL)

Model Driven Development im Überblick

Software-Engineering im Sommersemester 2014

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

Michael Piechotta - CASE Tools. openarchitecture Ware

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

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

Integration von openarchitectureware in Innovator am Beispiel eines WSDL/XSD Generators für SOA- Plattformen. Nürnberg,

Übersicht Eclipse Modeling Project EMP. Zoltan Horvath

Software Engineering II

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

openarchitectureware 4.0 Endpräsentation

DSLs mit Xtext entwerfen , A. Arnold

Editor für eine DSLs anhand der Spring Validierungssprache. Praktikum MDSD SS008 Uni Augsburg

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

Software Engineering II

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

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

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

Modellierung statischer Domänenmodelle mit Xtext

Modell-Editoren für Eclipse entwickeln mit GMF

Software Engineering II

Model Driven Architecture

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

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

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

Seminararbeit Modellgetriebene Softwareentwicklung anhand des oaw-frameworks

COPE COuPled Evolution of metamodels and models

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Generischer Modellvergleich mit EMF Compare

Problemseminar ModelDrivenSoftwareDevelopment

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 Variantenmanagement im Kontext von MDSD

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

Object Constraint Language. 30. Oktober 2012

Definition von domänenspezifischen Sprachen mit Xtext: Der abstrakte Syntaxbaum in EMF

<Insert Picture Here> Generierung von ADF-Applikationen aus Metadaten des Oracle Designer

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

Dynamisches EMF und Codegenerierung mit JET. 14. November 2012

Mit 'Babysteps' in die XTEXT-XTEND Welt

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Handbuch für die Erweiterbarkeit

Galileo! Eclipse. Plus CD! Im Gespräch DSLs mit Xtext >> 67 Domänenspezifische Sprachen selbst gemacht. My Mylyn >> 46

EJB 3 modellgetrieben ein Praxisbericht

Einführung in das Graphical Modeling Framework. 13. November 2012

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

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

openarchitectureware Was mit dem Open Source MDSDWerkzeug möglich ist

Thema 3 Das UML- Metamodell

Innovator Anbindung an openarchitectureware. Connect. Klaus Weber.

Einführung in das Eclipse Modeling Framework (EMF)

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

openarchitectureware

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

MDA-Praktikum, Einführung

Seminararbeit Anwendungen 1. Dennis Dedaj Game Engineering

Markus Völter, Lars Corneliussen. DSL Entwicklung mit Eclipse Xtext Carpe Diem

MDRE die nächste Generation des Requirements Engineerings

Bridging Microsoft Oslo and Eclipse EMF

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA)

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

Wenn Architektur zur Ware wird

Editor für eine DSL anhand der Spring Validierungssprache. Praktikum MDSD SS008 Uni Augsburg

Thema 5 Domain Specific Languages

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

Teilautomatisierte Migration von Forms- Anwendungen mit Hilfe des Oracle Forms Migration Framework. itemis AG 2010 Alle Rechte vorbehalten

Werkzeuge einer MDSD Entwicklungsumgebung für große Softwareproduktlinien Teil 2: Realisierung. itemis AG 2010 All rights reserved

Codegenerierung mit Xtend. 21. Januar 2015

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Codegeneratoren mit Xtend , A. Arnold

Model Driven Software Development

WiederverwendbareGeneratorkomponenten in heterogenen Projektumfeldern

Werkzeuge zur Erstellung und Verarbeitung von DSLs

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

Modellgetriebene Entwicklung von Webapplikationen. Ulrich Wolffgang

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

Softwarevarianten im Griff mit textuellen DSLs

Einführung Compilergenerierung Bewertung Referenzen. SableCC. Benjamin Daeumlich

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

Modellgetriebene Softwareentwicklung

EJB 3 modellgetrieben ein Praxisbericht

Wer ich bin Christoph Knauf

XML Extensible Markup Language

Übungsaufgabe Transaktion als Middleware

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Softwaretechnik Model Driven Architecture Metamodellierung

Objektorientierte Programmierung Studiengang Medieninformatik

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

Einführung in das Eclipse Modeling Framework (EMF)

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Transkript:

openarchitectureware Enrico Schnepel EAS, FHTW-Berlin 07.06.2007 2007 (CC by-nc-sa 2.0 Germany) Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 1 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 2 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 3 / 26

Einleitung Große Softwaresysteme: oft schwer zu verwalten hohe Komplexität mit normalen IDEs oft nicht mehr verwaltbar Einsatz von Modellen: Konzentration auf die wesentlichen Merkmale einer funktionalen Komponente (z.b EJB) Verwendung spezialisierter Editoren erhebliche Reduktion der Gesamtkomplexität eines Systems Metamodell: Domänenspezifische Sprache (Domain-Specific Language, DSL) formale Beschreibung des Modells Generatoren: Generierung großer Teile von komplexen Softwaresystemen architekturzentrierter Ansatz, MDA der OMG, MDSD Infrastrukturcode Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 4 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 5 / 26

Analogien - wie aus dem Leben gegriffen (1/2) Übertragene Bedeutung auf einen Bauunternehmer: Modell Bauzeichnung eines Hauses Technische Zeichnungen von Türen, Fenstern, etc. Metamodell Beschreibung zur Anfertigung von Bauzeichnungen für Häuser bzw. von technischen Zeichnungen DIN- bzw. ISO-Normen Generator Wertschaffende Berufe (Maurer, Dachdecker, Maler, Tischler) Baumaterialien (Beton, Holz, Außenwandmalfarbe) entsprechende Geräte (Betonmischer, Kran, Leiter) Plattform und Frameworks Fundament - Es muss bereits vorhanden sein Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 6 / 26

Analogien - wie aus dem Leben gegriffen (2/2) Metamodelle Haus (DIN ISO 128) Fenster und Tür (DIN ISO 128) Fenstergriff und Türgriff (DIN ISO 128) Fussbodenbelag (Bendienungsanleitung des Fotoaparates) Wandfarbe (Farbtabelle) Referenzen Haus Fenster Fenstergriff Tür Türgriff Teppich Wandfarbe Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 7 / 26

Generatoren Möglichkeiten der Nutzung von Generatoren in der Bauwirtschaft: Erzeugung von beliebig vielen Häusern der gleichen Bauart Einbau neuer Fenster, ohne den Innenausbau anzufassen bzw. die Hausfassade neu zu streichen. Anbau eines neuen Seitenflügels an das bestehende Haus mit bereits gestrichenen Wänden bereits verlegtem Teppichbelag ohne Inneneinrichtung eine mit Graffiti beschmierte Wand, marode Bausubstanz oder auch der inzwischen durchgelaufene Teppichbelag wird einfach neu generiert. Die Inneneinrichtung wird nicht verändert. Nachteil: Weltweit steigende Arbeitslosenzahlen Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 8 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 9 / 26

Was ist openarchitectureware? openarchitectureware (kurz: oaw ): Framework zum Verarbeiten von strukturierten Informationen Validierung von Modellen mit dem Check-Framework Erzeugung von beliebigen Ausgabe-Dateien (Java, XML) mit dem XPand-Framework (der eigentliche Generator) Modell-zu-Modell-Transformationen mit dem Extend-Framework Modellerstellung durch Parsen von Text-Dateien mit dem XText-Framework oaw ist in verschiedenen Umgebungen lauffähig: direkt aus Eclipse heraus als Ant-Task direkt aus Java als eigenständiges Programm (Shell) Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 10 / 26

Was ist openarchitectureware? Desweiteren ist oaw: ein Top-Level-Projekt im Rahmen von Eclipse (http://www.eclipse.org/gmt/oaw/), gut in Eclipse integriert und im Vergleich zu anderen Eclipse-basierten Templating-Engines (z.b. JET) einfach zu benutzen und trotzdem komplex ausbaufähig. Um oaw in Eclipse verwenden zu können werden verschiedene Plugins benötigt: oaw-plugins (ohne die geht es nicht) EMF (UML-ähnliche Notation von Metamodellen, DSL-Baumeditoren) GMF (für die Erstellung von grafischen DSL-Editoren) Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 11 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 12 / 26

- Metamodell Folgendes Metamodell bildet ein ERM ab: Root-Type Domain name (Type: String) entities (Type: List<Entity>, 1..many) references (Type: List<Reference>, 0..many) Entity name (Type: String) attributes (Type: List<Attribute>, 1..many) Attribute name (Type: String) type (Type: String) Reference from (Type: Entity) to (Type: Entity) many (Type: Boolean) Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 13 / 26

- Modell Domain (name = Kunde-Konto ) Entity (name = Kunde ) Attribute (name = KundenNr, type = Integer ) Attribute (name = Name, type = String ) Entity (name = Konto ) Attribute (name = KontoNr, type = Integer ) Attribute (name = Saldo, type = Decimal ) Reference (from = {Kunde}, to = {Konto}, many = true) Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 14 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 15 / 26

Workflow - Komponentenbasierte Modellverarbeitung Konfiguration der Verarbeitungsschritte für ein oder mehrere Modelle nach dem EVA-Prinzip Eingabe (XMIReader, EMFReader, XText) Verarbeitung (Check, Extend, Java) Ausgabe (XPand, XMIWriter, EMFWriter) Nutzung von Unter-Workflows (Komponenten) und Cartridges org.open architectureware.emf.xmireader Die Daten werden aus einer Modell-Datei gelesen und im Speicher unter dem Namen model abgelegt. org.openarchitectureware.xpand2.generator Aus dem im Speicher befindlichen Modell werden Dateien generiert. Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 16 / 26

Workflow - Komponentenbasierte Modellverarbeitung Konfiguration der Verarbeitungsschritte für ein oder mehrere Modelle nach dem EVA-Prinzip Eingabe (XMIReader, EMFReader, XText) Verarbeitung (Check, Extend, Java) Ausgabe (XPand, XMIWriter, EMFWriter) Nutzung von Unter-Workflows (Komponenten) und Cartridges <workflow> <property name= genpath value= src-gen /> <property name= model value= model/kunde-konto.xmi /> <component class= org.openarchitectureware.emf.xmireader > <modelfile value= $model /> <outputslot value="model"/> </component> <component class= org.openarchitectureware.xpand2.generator > <expand value="javadomain::javadomain FOR model"/> <genpath value= $genpath /> </component> </workflow> Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 16 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 17 / 26

XPand - eine Templatesprache Generierung von Text-Dateien aus beliebigen Modellen; z.b.: Quellcode-Dateien (z.b. Java), welche Grundfunktionalität zur Verfügung stellen XML-Konfigurationsdateien DEFINE JavaDomain FOR Domain EXPand JavaEntity FOREACH entities ENDDEFINE DEFINE JavaEntity FOR Entity FILE "mein/paket/fuer/entitaeten/" + this.name + ".java" package mein.paket.fuer.entitaeten; class this.name { EXPand JavaAttribute FOREACH attributes } ENDFILE ENDDEFINE DEFINE JavaAttribute FOR Attribute private this.type this.name ; ENDDEFINE Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 18 / 26

XPand - eine Templatesprache Generierung von Text-Dateien aus beliebigen Modellen; z.b.: Quellcode-Dateien (z.b. Java), welche Grundfunktionalität zur Verfügung stellen XML-Konfigurationsdateien Datei src-gen/mein/paket/fuer/entitaeten/kunde.java package mein.paket.fuer.entitaeten; class Kunde { private Integer KundenNr; private String Name; } Datei src-gen/mein/paket/fuer/entitaeten/konto.java package mein.paket.fuer.entitaeten; class Konto { private Integer KontoNr; private Decimal Saldo; } Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 18 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 19 / 26

Extend - Modell-Verarbeitung Modell-zu-Modell-Transformationen Informations- Anreicherung im Modell Erweiterbar mit Java-Klassen Hilfsfunktionen für die Verarbeitung von Daten mit dem XPand- oder Check-Framework String javaclassname(entity entity) : entity.name.tofirstupper() ; String javafilename(entity entity) : "mein/paket/fuer/entitaeten/"+javaclassname(entity)+".java" ; Anwendung FILE "mein/paket/fuer/entitaeten/" + this.name + ".java" class this.name { Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 20 / 26

Extend - Modell-Verarbeitung Modell-zu-Modell-Transformationen Informations- Anreicherung im Modell Erweiterbar mit Java-Klassen Hilfsfunktionen für die Verarbeitung von Daten mit dem XPand- oder Check-Framework String javaclassname(entity entity) : entity.name.tofirstupper() ; String javafilename(entity entity) : "mein/paket/fuer/entitaeten/"+javaclassname(entity)+".java" ; Anwendung FILE this.javafilename class this.javaclassname { Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 20 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 21 / 26

Check - Modellvalidierung Spezielle Constraints, die nicht durch das getypte Metamodell abgedeckt werden. Ähnlich der Object Constraint Language (OCL) context Entity ERROR an entity must have a name! : this.name!= null ; context Attribute ERROR an attribute of entity +econtainer.name+ must have a name! : this.name!= null ; context Entity ERROR the entity name + name + must be unique : ((Domain)eContainer).entities.name.collect(n n==name).size==1 ; Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 22 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 23 / 26

XText - Text-Verarbeitung Generierung von Modellen anhand einer textuellen Formatbeschreibung (Ähnlich EBNF) Import von beliebigen Datenquellen CSV-Daten Datenextraktion aus HTML Modellbeschreibung entity Kunde { Integer KundenNr; String Name; } entity Konto { Integer KontoNr; Decimal Saldo; } XText-Syntax Entity : "entity" name=id "{" (attributes+=attribute)+ "}" Attribute : type=id name=id ";" Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 24 / 26

Gliederung 1 Einleitung 2 Begriffsdefinitionen (Meta-)Modelle und Generatoren 3 openarchitectureware Was ist openarchitectureware? Workflow XPand Extend Check XText 4 Zusammenfassung Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 25 / 26

Zusammenfassung openarchitectureware ist: gut in Eclipse integriert erleichtert den Aufbau komplexer Softwaresysteme URL: http://www.eclipse.org/gmt/oaw/ Diese Präsentation wurde mit wiki2beamer erstellt und steht unter der CreativeCommons by-nc-sa 2.0 Germany Lizenz (http://creativecommons.org/licenses/by-nc-sa/2.0/de/deed.de). Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 26 / 26