WIRTSCHAFTSINFORMATIK

Größe: px
Ab Seite anzeigen:

Download "WIRTSCHAFTSINFORMATIK"

Transkript

1 Westfälische Wilhelms-Universität Münster A platform for professional model-driven software development. Präsentation im Rahmen des Seminars Software Engineering WS 08/09 Jan Schürmeier

2 2 Gliederung Einführung Grundlagen der modellgetriebenen Softwareentwicklung Motivation und Ziele MDSD vs MDA MDA-Standard der Object Management Group Das openarchitectureware Generator Framework Allgemeine Funktionsweise Komponenten Anwendungsbeispiel

3 3 Gliederung Einführung Grundlagen der modellgetriebenen Softwareentwicklung Motivation und Ziele MDSD vs MDA MDA-Standard der Object Management Group Das openarchitectureware Generator Framework Allgemeine Funktionsweise Komponenten Anwendungsbeispiel

4 4 Einführung Modellgetriebene Softwareentwicklung als logisch nächster Schritt in der Evolution der Softwareentwicklung Grundgedanke des modellgetriebenen Vorgehens: Stärkere Gewichtung der Modelle im Entwicklungsprozess Vollständige Abbildung der Anwendung im Modell Automatische Codegenerierung openarchitectureware Framework zur Ermöglichung und Unterstützung modellgetriebener Softwareentwicklung Ursprung: b+m Informatik AG Später: Open-Source Projekt

5 5 Gliederung Einführung Grundlagen der modellgetriebenen Softwareentwicklung Motivation und Ziele MDSD vs MDA MDA-Standard der Object Management Group Das openarchitectureware Generator Framework Allgemeine Funktionsweise Komponenten Anwendungsbeispiel

6 6 Motivation und Ziele Automatisierung des Entwicklungsprozesses Höhere Effizienz Trennung von fachlichen Anforderungen und technischen Details Wiederverwendbarkeit Verbesserung der Softwarequalität Einfachere Migration

7 7 MDSD vs. MDA Model Driven Software Development (MDSD) Ziel: Bereitstellung von praktisch einsetzbaren Bausteinen für Softwareentwicklungsprozesse Model Driven Architecture (MDA) Einschränkungen (z.b. Fokussierung auf UML-basierte Modellierungssprachen) Ziele: Interoperabilität zwischen MDA-Werkzeugen Standardisierung von Modellen Standardisierungsinitiative der OMG zum Thema MDSD

8 8 MDA-Standard der Object Management Group

9 9 Meta Object Facility

10 10 Metamodellierung

11 11 Gliederung Einführung Grundlagen der modellgetriebenen Softwareentwicklung Motivation und Ziele MDSD vs MDA MDA-Standard der Object Management Group Das openarchitectureware Generator Framework Allgemeine Funktionsweise Komponenten Anwendungsbeispiel

12 openarchitectureware - Details Teil der Eclipse Foundation Integration in Eclipse Entwicklungsumgebung über Plug-Ins tool for building MDSD/MDA tools Funktionen: Modellprüfungen, Transformationen, Generierung von Quellcode Verarbeitung verschiedenster Modellformate: EMF XMI Dialekte Eclipse UML2 XMI XML 12

13 13 openarchitectureware Allg. Funktionsweise UML-Modell export *.XMI laden Workflow-Datei XMI-Instantiator Hauptspeicher Modell Templates ausführen Template-Engine anwenden Start-Template generieren Generierter Quellcode

14 14 openarchitectureware - Komponenten Kernmodule: Workflow Xpand Xtend Check Weitere: Xtext Recipe Basis: Expression Language (EL) und XML Erweiterbarkeit durch Implementierung von Java- Methoden

15 15 openarchitectureware - Workflow Herzstück von oaw Ablaufsteuerung Speicherung in workflow.oaw, workflow.properties Beispiel: <workflow> <!--- read model --> <component class="oaw.emf.xmireader"> <modelfile value ="${uml2modelfile" /> <outputslot value="model" /> </component> <!--- generate code --> <component id="generator" class="oaw.xpand2.generator" skiponerrors="true"> <expand value="templates::root::root FOR model" /> </component> </workflow>

16 openarchitectureware - Xpand Generierung von Ausgaben auf Basis von Vorlagen (Templates) Speicherung in *.xpt Dateien Beispiel: «EXTENSION Xtend» «DEFINE javaclass FOR uml::class» «FILE filename()» package «javapackage()»; public class «name» { «FOREACH attribute AS a» «a.type.fqn()» «a.name» «ENDFOREACH» «ENDFILE» «ENDDEFINE» 16

17 openarchitectureware - Xtend Funktion: Beschreibung von Transformationen und Metamodellierung Speicherung in *.ext Datei Syntax: private cached ReturnType extensionname(paramtype1 paramname1,...) : expression-using-params; Beispiel: String uppername(uml::namedelement ne): me.name.touppercase(); private boolean hasname(uml::namedelement ne): ne.name!= null; 17

18 openarchitectureware - Check Definition von Modellprüfungen zur Modellvalidierung Speicherung in *.chk Dateien Syntax: context TypeName [if guard-predicate] (ERROR WARNING) msg-expression: predicate; Beispiel: context JavaClass ERROR 'A javaclass must not have more than one superclass.': superclass.size <=1; 18

19 19 openarchitectureware Recipe & Xtext Recipe Framework Prüfung auf Vollständigkeit der Implementierung Prinzip: abstrakte Klassen Übersicht mittels spezieller Eclipse-View Xtext Möglichkeit der Konstruktion eigener Metamodelle Grammatik: ähnlich zu EBNF Ziel: Beschleunigung der Entwicklung und Wartung von Metamodellen

20 20 Gliederung Einführung Grundlagen der modellgetriebenen Softwareentwicklung Motivation und Ziele MDSD vs MDA MDA-Standard der Object Management Group Das openarchitectureware Generator Framework Allgemeine Funktionsweise Komponenten Anwendungsbeispiel

21 21 Vorbereitung Modellierung des UML-Diagramms (z.b. mittels ext. UML- Tool)

22 22 Definition der Metaklassen Entity.java package oaw4.demo.classic.uml.meta; public class Entity extends org.openarchitectureware.meta.uml.classifier.class { //nothing to do in the simplest case Key.java package oaw4.demo.classic.uml.meta; public class Key extends org.openarchitectureware.meta.uml.classifier.attribute { Metamappings.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE MetaMap SYSTEM "http://www.openarchitectureware.org/dtds/metamap.dtd"> <MetaMap> <Mapping> <Map>Entity</Map> <To>oaw4.demo.classic.uml.meta.Entity</To> </Mapping> <Mapping> <Map>Key</Map> <To>oaw4.demo.classic.uml.meta.Key</To> </Mapping> </MetaMap>

23 Definition des Workflows Workflow.oaw <?xml version="1.0" encoding="utf-8"?> <workflow> <property file="workflow.properties"/> <cartridge file="org/openarchitectureware/workflow/oawclassic/classicstart.oaw"> <metaenvironmentslot value="me"/> <instantiatorenvironmentslot value="ie"/> </cartridge> <component class="org.openarchitectureware.core.frontends.xmi.workflow.xmiinstantiator"> <instantiatorenvironmentslot value="ie"/> <modelfile value="${model.xmi"/> <xmlmapfile value="${toolmappingfile"/> <metamapfile value="${metamapfile"/> <tooladapterclassname value="${tooladapterclassname"/> <modulefile value="${modulefile"/> <outputslot value ="model" /> </component> <cartridge file="org/openarchitectureware/workflow/oawclassic/classicinit.oaw"> <metaenvironmentslot value="me"/> </cartridge> <component class="org.openarchitectureware.check.checkcomponent"> <metamodel class="org.openarchitectureware.type.impl.java.javametamodel"> <typestrategy class="org.openarchitectureware.type.impl.oawclassic.oawclassicstrategy" convertpropertiestolowercase="false"/> </metamodel> <checkfile value="java::associationchecks"/> <expression value="me.getelements('modelelement')"/> <abortonerror value="true"/> </component> <component id="dircleaner class="org.openarchitectureware.workflow.common.directorycleaner" skiponerrors="true"> <directories value="${srcgenpath"/> </component> <component id="generator" class="org.openarchitectureware.xpand2.generator" skiponerrors="true"> <metamodel class="org.openarchitectureware.type.impl.java.javametamodel"> <typestrategy class="org.openarchitectureware.type.impl.oawclassic.oawclassicstrategy" convertpropertiestolowercase="false"/> </metamodel> <fileencoding value="iso "/> <expand value="root::root FOREACH me.getelements('model')"/> <genpath value="${srcgenpath/"/> <srcpath value="${srcgenpath/"/> <beautifier class="org.openarchitectureware.xpand2.output.javabeautifier"/> <beautifier class="org.openarchitectureware.xpand2.output.xmlbeautifier"/> </component> <cartridge file="org/openarchitectureware/workflow/oawclassic/classicfinish.oaw"> <instantiatorenvironmentslot value="ie"/> <dumpfile value="${dumpfile"/> </cartridge> </workflow> 23

24 Definition des Workflows Workflow.oaw <?xml version="1.0" encoding="utf-8"?> <workflow> <property file="workflow.properties"/> <cartridge file="org/openarchitectureware/workflow/oawclassic/classicstart.oaw"> <metaenvironmentslot value="me"/> <instantiatorenvironmentslot value="ie"/> </cartridge> <component class="org.openarchitectureware.core.frontends.xmi.workflow.xmiinstantiator"> <instantiatorenvironmentslot value="ie"/> <modelfile value="${model.xmi"/> <xmlmapfile value="${toolmappingfile"/> <metamapfile value="${metamapfile"/> <tooladapterclassname value="${tooladapterclassname"/> <modulefile value="${modulefile"/> <outputslot value ="model" /> </component> <cartridge file="org/openarchitectureware/workflow/oawclassic/classicinit.oaw"> <metaenvironmentslot value="me"/> </cartridge> <component class="org.openarchitectureware.check.checkcomponent"> <metamodel class="org.openarchitectureware.type.impl.java.javametamodel"> <typestrategy class="org.openarchitectureware.type.impl.oawclassic.oawclassicstrategy" convertpropertiestolowercase="false"/> </metamodel> <checkfile value="java::associationchecks"/> <expression value="me.getelements('modelelement')"/> <abortonerror value="true"/> </component> <component id="dircleaner class="org.openarchitectureware.workflow.common.directorycleaner" skiponerrors="true"> <directories value="${srcgenpath"/> </component> <component id="generator" class="org.openarchitectureware.xpand2.generator" skiponerrors="true"> <metamodel class="org.openarchitectureware.type.impl.java.javametamodel"> <typestrategy class="org.openarchitectureware.type.impl.oawclassic.oawclassicstrategy" convertpropertiestolowercase="false"/> </metamodel> <fileencoding value="iso "/> <expand value="root::root FOREACH me.getelements('model')"/> <genpath value="${srcgenpath/"/> <srcpath value="${srcgenpath/"/> <beautifier class="org.openarchitectureware.xpand2.output.javabeautifier"/> <beautifier class="org.openarchitectureware.xpand2.output.xmlbeautifier"/> </component> <cartridge file="org/openarchitectureware/workflow/oawclassic/classicfinish.oaw"> <instantiatorenvironmentslot value="ie"/> <dumpfile value="${dumpfile"/> </cartridge> </workflow> 24

25 25 Definition des Workflows Workflow.properties # Note: all paths must be found in the classpath! # the metamappings file metamapfile = metamappings.xml # model.xmi: name of the XMI export # toolmappingfile: tool mapping file to use # tooladapterclassname: tool adapter implementation # modulefile: profile files model.xmi = Bibliothek.mdzip toolmappingfile = magicdraw_xmi21_all.xml tooladapterclassname = org.openarchitectureware.core.frontends.xmi.toolsupport.uml.magicdraw.magicdrawadapter21 modulefile = magicdraw/md11/uml_standard_profile.xml # path to create the generated output to srcgenpath = src-gen # path where the dump file is created dumpfile = bin/dump

26 Definition des Workflows Workflow.oaw <?xml version="1.0" encoding="utf-8"?> <workflow> <property file="workflow.properties"/> <cartridge file="org/openarchitectureware/workflow/oawclassic/classicstart.oaw"> <metaenvironmentslot value="me"/> <instantiatorenvironmentslot value="ie"/> </cartridge> <component class="org.openarchitectureware.core.frontends.xmi.workflow.xmiinstantiator"> <instantiatorenvironmentslot value="ie"/> <modelfile value="${model.xmi"/> <xmlmapfile value="${toolmappingfile"/> <metamapfile value="${metamapfile"/> <tooladapterclassname value="${tooladapterclassname"/> <modulefile value="${modulefile"/> <outputslot value ="model" /> </component> <cartridge file="org/openarchitectureware/workflow/oawclassic/classicinit.oaw"> <metaenvironmentslot value="me"/> </cartridge> <component class="org.openarchitectureware.check.checkcomponent"> <metamodel class="org.openarchitectureware.type.impl.java.javametamodel"> <typestrategy class="org.openarchitectureware.type.impl.oawclassic.oawclassicstrategy" convertpropertiestolowercase="false"/> </metamodel> <checkfile value="java::associationchecks"/> <expression value="me.getelements('modelelement')"/> <abortonerror value="true"/> </component> <component id="dircleaner class="org.openarchitectureware.workflow.common.directorycleaner" skiponerrors="true"> <directories value="${srcgenpath"/> </component> <component id="generator" class="org.openarchitectureware.xpand2.generator" skiponerrors="true"> <metamodel class="org.openarchitectureware.type.impl.java.javametamodel"> <typestrategy class="org.openarchitectureware.type.impl.oawclassic.oawclassicstrategy" convertpropertiestolowercase="false"/> </metamodel> <fileencoding value="iso "/> <expand value="root::root FOREACH me.getelements('model')"/> <genpath value="${srcgenpath/"/> <srcpath value="${srcgenpath/"/> <beautifier class="org.openarchitectureware.xpand2.output.javabeautifier"/> <beautifier class="org.openarchitectureware.xpand2.output.xmlbeautifier"/> </component> <cartridge file="org/openarchitectureware/workflow/oawclassic/classicfinish.oaw"> <instantiatorenvironmentslot value="ie"/> <dumpfile value="${dumpfile"/> </cartridge> </workflow> 26

27 27 Definition der Templates Root.xpt «IMPORT org::openarchitectureware::core::meta::core» «IMPORT org::openarchitectureware::meta::uml::classifier» «IMPORT oaw4::demo::classic::uml::meta» «DEFINE Root FOR Model» «EXPAND Root FOREACH OwnedElement» «ENDDEFINE» «DEFINE Root FOR Package» «EXPAND Root FOREACH OwnedElement» «ENDDEFINE» «DEFINE Root FOR Entity» «EXPAND java::javabean::beanclass» «ENDDEFINE» «DEFINE Root FOR Object»«ENDDEFINE»

28 28 Definition der Templates JavaBean.xpt «IMPORT org::openarchitectureware::meta::uml::classifier» «EXTENSION java::namingconventions» «DEFINE BeanClass FOR Class» «FILE packagepath()+"/"+names+".java"» package «packagename()»; public class «Name» «IF hassuperclass» extends «SuperClass.fqn()» «ENDIF» implements java.io.serializable { «EXPAND Attribute::PropertyDeclaration FOREACH Attribute» «EXPAND Attribute::Getter FOREACH Attribute» «EXPAND Attribute::Setter FOREACH Attribute» «EXPAND Association::ReferenceVariables» «EXPAND Association::AccessorMethods» «ENDFILE» «ENDDEFINE»

29 29 Definition der Templates Attribute.xpt «IMPORT org::openarchitectureware::meta::uml::classifier» «EXTENSION java::namingconventions» «DEFINE PropertyDeclaration FOR Attribute» private «Type.NameS» «asinstancevar()»; «ENDDEFINE» «DEFINE Getter FOR Attribute» public «Type.NameS» «asgetter()» () { return this.«asinstancevar()»; «ENDDEFINE» «DEFINE Setter FOR Attribute» public void «assetter()» («Type.NameS» «asparameter()») { this.«asinstancevar()» = «asparameter()»; «ENDDEFINE»

30 30 Definition von Extensions NamingConventions.ext import org::openarchitectureware::meta::uml; import org::openarchitectureware::meta::uml::classifier; String asparameter (ModelElement elem) : "p"+elem.names.tofirstupper(); String assetter (ModelElement elem) : "set"+elem.names.tofirstupper(); String asgetter (ModelElement elem) : "get"+elem.names.tofirstupper(); String asinstancevar (ModelElement elem) : elem.names.tofirstlower(); String packagename (Class cls) : JAVA oaw4.demo.classic.uml.extend.classutil.getpackagename(org.openarchitectureware.meta.uml.classifier.class); String packagepath (Class cls) : packagename(cls).replaceall("\\.", "/"); String fqn (Class cls) : packagename(cls).length>0? packagename(cls)+"."+cls.names : cls.names;

31 31 Definition von Extensions ClassUtil.java package oaw4.demo.classic.uml.extend; import org.openarchitectureware.meta.uml.classifier.class; import org.openarchitectureware.meta.uml.classifier.package; public class ClassUtil { public static String getpackagename (Class cls) { string result = ""; for (Package pck=cls.package(); pck!=null; pck=pck.superpackage()) { result = pck.names() + (result.length()>0? "."+result : ""); return result;

32 Generierter Quellcode Autor.java package oaw4.demo.classic.uml.entity; public class Autor implements java.io.serializable { private int id; private String name; public int getid() { return this.id; public String getname() { return this.name; public void setid(int pid) { this.id = pid; public void setname(string pname) { this.name = pname; private java.util.collection<oaw4.demo.classic.uml.entity.buch> verfasstesbuch; public void addverfasstesbuch( oaw4.demo.classic.uml.entity.buch pverfasstesbuch) { this.verfasstesbuch.add(pverfasstesbuch); public void removeverfasstesbuch( oaw4.demo.classic.uml.entity.buch pverfasstesbuch) { this.verfasstesbuch.remove(pverfasstesbuch); public java.util.iterator<oaw4.demo.classic.uml.entity.buch> getverfasstesbuch() { return this.verfasstesbuch.iterator(); 32

33 33 Generierter Quellcode Bibliothek.java package oaw4.demo.classic.uml.entity; public class Bibliothek implements java.io.serializable { private int id; private String name; public int getid() { return this.id; public String getname() { return this.name; public void setid(int pid) { this.id = pid; public void setname(string pname) { this.name = pname; private java.util.collection<oaw4.demo.classic.uml.entity.exemplar> eigenesbuch; public void addeigenesbuch( oaw4.demo.classic.uml.entity.exemplar peigenesbuch) { this.eigenesbuch.add(peigenesbuch); public void removeeigenesbuch( oaw4.demo.classic.uml.entity.exemplar peigenesbuch) { this.eigenesbuch.remove(peigenesbuch); public java.util.iterator<oaw4.demo.classic.uml.entity.exemplar> geteigenesbuch() { return this.eigenesbuch.iterator();

34 Generierter Quellcode Buch.java package oaw4.demo.classic.uml.entity; public class Buch implements java.io.serializable { private int id; private String titel; public int getid() { return this.id; public String gettitel() { return this.titel; public void setid(int pid) { this.id = pid; public void settitel(string ptitel) { this.titel = ptitel; private java.util.collection<oaw4.demo.classic.uml.entity.autor> autor; public void addautor(oaw4.demo.classic.uml.entity.autor pautor) { this.autor.add(pautor); public void removeautor(oaw4.demo.classic.uml.entity.autor pautor) { this.autor.remove(pautor); public java.util.iterator<oaw4.demo.classic.uml.entity.autor> getautor() { return this.autor.iterator(); 34

35 Generierter Quellcode Exemplar.java package oaw4.demo.classic.uml.entity; public class Buch implements java.io.serializable { private int id; private String titel; public int getid() { return this.id; public String gettitel() { return this.titel; public void setid(int pid) { this.id = pid; public void settitel(string ptitel) { this.titel = ptitel; private java.util.collection<oaw4.demo.classic.uml.entity.autor> autor; public void addautor(oaw4.demo.classic.uml.entity.autor pautor) { this.autor.add(pautor); public void removeautor(oaw4.demo.classic.uml.entity.autor pautor) { this.autor.remove(pautor); public java.util.iterator<oaw4.demo.classic.uml.entity.autor> getautor() { return this.autor.iterator(); 35

36 36 Generierter Quellcode Exemplar.java package oaw4.demo.classic.uml.entity; public class Exemplar implements java.io.serializable { private int inventarnr; private String standort; public int getinventarnr() { return this.inventarnr; public String getstandort() { return this.standort; public void setinventarnr(int pinventarnr) { this.inventarnr = pinventarnr; public void setstandort(string pstandort) { this.standort = pstandort; private oaw4.demo.classic.uml.entity.bibliothek eigentuemer; private oaw4.demo.classic.uml.entity.buch buch; public void seteigentuemer( oaw4.demo.classic.uml.entity.bibliothek peigentuemer) { this.eigentuemer = peigentuemer; public oaw4.demo.classic.uml.entity.bibliothek geteigentuemer() { return this.eigentuemer; public void setbuch(oaw4.demo.classic.uml.entity.buch pbuch) { this.buch = pbuch; public oaw4.demo.classic.uml.entity.buch getbuch() { return this.buch;

37 37 Evaluation Vorteile: gute Dokumentation Einbettung in Eclipse Verwendung beliebiger Metamodelle hohe Individualisierbarkeit Nachteile: umständliche Bedienbarkeit unausgreifte Fehlertoleranz

38 38 Fazit Aufgrund der offenen Struktur gut geeignet für die Entwicklung von MDSD/MDA-Projekten Insbesondere bei großen Projekten leistungsstark Zu empfehlen bei Lösungen mit hohem Anspruch an Individualität

39 39 Berücksichtigung von Assoziationen Association.xpt «IMPORT org::openarchitectureware::meta::uml::classifier» «EXTENSION java::namingconventions» «EXTENSION java::associations» «DEFINE ReferenceVariables FOR Class» «FOREACH AssociationEnd.Opposite.select(ae ae.isnavigable) AS ae» private «ae.fqn()» «ae.asinstancevar()»; «ENDFOREACH» «ENDDEFINE» «DEFINE AccessorMethods FOR Class» «EXPAND ToOneAccessorMethods FOREACH AssociationEnd.Opposite.select(ae!ae.isMultiple && ae.isnavigable)» «EXPAND ToManyAccessorMethods FOREACH AssociationEnd.Opposite.select(ae ae.ismultiple && ae.isnavigable)» «ENDDEFINE» «DEFINE ToOneAccessorMethods FOR AssociationEnd» public void «assetter()» («Class.fqn()» «asparameter()») { this.«asinstancevar()» = «asparameter()»; «ENDDEFINE» public «Class.fqn()» «asgetter()» () { return this.«asinstancevar()»; «DEFINE ToManyAccessorMethods FOR AssociationEnd» public void add«names.tofirstupper()» («Class.fqn()» «asparameter()») { this.«asinstancevar()».add(«asparameter()»); public void remove«names.tofirstupper()» («Class.fqn()» «asparameter()») { this.«asinstancevar()».remove(«asparameter()»); «ENDDEFINE» public «iterator()» «asgetter()» () { return this.«asinstancevar()».iterator();

40 40 Berücksichtigung von Assoziationen Association.xpt «IMPORT org::openarchitectureware::meta::uml::classifier» «EXTENSION java::namingconventions» «EXTENSION java::associations» «DEFINE ReferenceVariables FOR Class» «FOREACH AssociationEnd.Opposite.select(ae ae.isnavigable) AS ae» private «ae.fqn()» «ae.asinstancevar()»; «ENDFOREACH» «ENDDEFINE» «DEFINE AccessorMethods FOR Class» «EXPAND ToOneAccessorMethods FOREACH AssociationEnd.Opposite.select(ae!ae.isMultiple && ae.isnavigable)» «EXPAND ToManyAccessorMethods FOREACH AssociationEnd.Opposite.select(ae ae.ismultiple && ae.isnavigable)» «ENDDEFINE» «DEFINE ToOneAccessorMethods FOR AssociationEnd» public void «assetter()» («Class.fqn()» «asparameter()») { this.«asinstancevar()» = «asparameter()»; «ENDDEFINE» public «Class.fqn()» «asgetter()» () { return this.«asinstancevar()»; «DEFINE ToManyAccessorMethods FOR AssociationEnd» public void add«names.tofirstupper()» («Class.fqn()» «asparameter()») { this.«asinstancevar()».add(«asparameter()»); public void remove«names.tofirstupper()» («Class.fqn()» «asparameter()») { this.«asinstancevar()».remove(«asparameter()»); «ENDDEFINE» public «iterator()» «asgetter()» () { return this.«asinstancevar()».iterator();

41 41 Berücksichtigung von Assoziationen Association.ext import org::openarchitectureware::meta::uml::classifier; extension java::namingconventions; String fqn (AssociationEnd ae) :!ae.ismultiple? ae.class.fqn() : "java.util.collection<"+ae.class.fqn()+">"; String iterator (AssociationEnd ae) : "java.util.iterator<"+ae.class.fqn()+">";

42 42 Berücksichtigung von Assoziationen Association.xpt «IMPORT org::openarchitectureware::meta::uml::classifier» «EXTENSION java::namingconventions» «EXTENSION java::associations» «DEFINE ReferenceVariables FOR Class» «FOREACH AssociationEnd.Opposite.select(ae ae.isnavigable) AS ae» private «ae.fqn()» «ae.asinstancevar()»; «ENDFOREACH» «ENDDEFINE» «DEFINE AccessorMethods FOR Class» «EXPAND ToOneAccessorMethods FOREACH AssociationEnd.Opposite.select(ae!ae.isMultiple && ae.isnavigable)» «EXPAND ToManyAccessorMethods FOREACH AssociationEnd.Opposite.select(ae ae.ismultiple && ae.isnavigable)» «ENDDEFINE» «DEFINE ToOneAccessorMethods FOR AssociationEnd» public void «assetter()» («Class.fqn()» «asparameter()») { this.«asinstancevar()» = «asparameter()»; «ENDDEFINE» public «Class.fqn()» «asgetter()» () { return this.«asinstancevar()»; «DEFINE ToManyAccessorMethods FOR AssociationEnd» public void add«names.tofirstupper()» («Class.fqn()» «asparameter()») { this.«asinstancevar()».add(«asparameter()»); public void remove«names.tofirstupper()» («Class.fqn()» «asparameter()») { this.«asinstancevar()».remove(«asparameter()»); «ENDDEFINE» public «iterator()» «asgetter()» () { return this.«asinstancevar()».iterator();

Model Driven Development im Überblick

Model Driven Development im Überblick Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05 Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy,

Mehr

openarchitectureware

openarchitectureware 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

Mehr

Michael Piechotta - CASE Tools. openarchitecture Ware

Michael Piechotta - CASE Tools. openarchitecture Ware Model Driven Development Michael Piechotta - CASE Tools openarchitecture Ware Gliederung 1.Einleitung - Was ist MDD? - Wozu MDD? 2.Model Driven Development - OMG Konzepte: Modelle,Transformationen Meta-Modellierung

Mehr

Herausforderung: Entwicklungsmethodik und technisches Umfeld

Herausforderung: Entwicklungsmethodik und technisches Umfeld Model Driven Software Development Herausforderung: Entwicklungsmethodik und technisches Umfeld Referent: Christoph Schmidt-Casdorff Seite 2 / 42 Inhaltsverzeichnis 1. Werkzeuglandschaft 1.1 Language Workbench

Mehr

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools MOF Meta Object Facility Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools Überblick Object Management Group (OMG) Model Driven Architecture (MDA) Exkurs: Modelle, Metamodelle MOF Architektur

Mehr

Model Driven Architecture Praxisbeispiel

Model Driven Architecture Praxisbeispiel 1 EJOSA OpenUSS CampusSource Model Driven Architecture Praxisbeispiel 2 Situation von CampusSource-Plattformen Ähnliche Funktionen (Verwaltung von Studenten und Dozenten, Diskussionsforen,...), jedoch

Mehr

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

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 Metamodellbasierte Codegenerierung in Java Codegenerierung Markus Völter, voelter@acm.org, www.voelter.de Codegenerierung bezeichnet die automatische Erstellung von Quelltext aus üblicherweise abstraktereren,

Mehr

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

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

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

Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009 Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009 1 Agenda (1) Fornax-Plattform, Cartridges (2) Referenzimplementierung, Referenzmodell

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon

Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon Generisch entwickelte Software-Werkzeuge anpassbar wie ein Chamäleon Ringvorlesung Softwareentwicklung in der industriellen Praxis TU Dresden 14. Dezember 2011 Die i.s.x. Software GmbH & Co. KG Junges,

Mehr

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

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk Workshop Java Webentwicklung Einführung in Hibernate Ulrich Stärk Ablauf Montag bis Donnerstag 09:00 Uhr s.t. Beginn, bis ca. 17:00 Uhr 1 Stunde Mittagspause Donnerstag Experiment Aufzeichnung der Programmiertätigkeit

Mehr

Model Driven Architecture (MDA)

Model Driven Architecture (MDA) Model Driven Architecture (MDA) Vortrag im Fach Software Engineering II BA Mannheim / Fachrichtung Angewandte Informatik Torsten Hopp Gliederung Einleitung Motivation Grundzüge der MDA Ziele & Potenziale

Mehr

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

Software Factories SS 2016. Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung Software Factories 3 Modellgetriebene Softwareentwicklung Prof. Dr. Dirk Müller Übersicht Einordnung im Lebenszyklus Ziele Hebung des Abstraktionsniveaus Model Driven Architecture (MDA) Domänenspezifische

Mehr

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

Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks AKWI 2015 Luzern Marco Richter (marco.richter@mnd.thm.de) Melanie Vanderpuye (melanie.vanderpuye@zdh.thm.de)

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

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

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool

Mehr

Modellierung statischer Domänenmodelle mit Xtext

Modellierung statischer Domänenmodelle mit Xtext Frank Schwarz Java User Group Saxony Modellierung statischer Domänenmodelle mit Xtext buschmais GbR Inhaber Torsten Busch, Frank Schwarz, Dirk Mahler und Tobias Israel frank.schwarz@buschmais.de http://www.buschmais.de/author/frank

Mehr

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

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1 Faktor-IPS Modellgetriebene Softwareentwicklung mit Faktor-IPS Seite 1 Faktor-IPS Faktor-IPS ist ein Werkzeug zur modellgetriebenen Entwicklung versicherungsfachlicher Systeme Bestandssysteme Außendienstsysteme

Mehr

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

Themen. Software Design and Quality Group Institute for Program Structures and Data Organization Themen 2 28.04.2010 MODELLGETRIEBENE SOFTWARE-ENTWICKLUNG Grundlagen 3 28.04.2010 Meta-Modell: Lego Meta-Modell Bauvorschriften Building Block * connected with Modell Lego Reale Welt Haus Bilder: (c) designritter

Mehr

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

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Soll ich Modellieren oder Programmieren? sowohl als auch!!! Produktivitäts-Steigerung

Mehr

Model Driven Architecture

Model Driven Architecture Model Driven Architecture Wilhelm Stephan Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Seminar Softwareentwicklung in der Wissenschaft Betreuer: Julian Kunkel SommerSemester

Mehr

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

WebPoint. Ein Framework zur Erstellung von webbasierten Verkaufsanwendungen. Maria C. Raabe Daniel Woithe Vorlage: Torsten Walter. 16. Ein Framework zur Erstellung von webbasierten Verkaufsanwendungen Maria C. Raabe Daniel Woithe Vorlage: Torsten Walter 16. Oktober 2006 Gliederung Datenverwaltung 1 Datenverwaltung 2 Problemstellung Java

Mehr

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

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen Tom Krauß Agenda Begriffsdefinition Verfahren Praktische Beispiele Vergleich und Bewertung Begriffsklärung

Mehr

Der EMF-generierte Code. 7. November 2012

Der EMF-generierte Code. 7. November 2012 Der EMF-generierte Code 7. November 2012 Überblick Wie sieht der aus einem EMF-Modell generierte Code aus? Wie ist die Beziehung zwischen Modell und Code? Wie kann generierter Code durch handgeschriebenen

Mehr

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold Codegeneratoren mit Xtend2 11.04.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was ist Xtend2? 2. Xtend2 Konzepte 3. Hands On! 3 4 8 20 2 Was ist Xtend2? Funktionale, objektorientierte Sprache

Mehr

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine gerrit.beine@sapat.de

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine gerrit.beine@sapat.de Programmieren ohne Programmierer Das GeneSEZ Generator Framework Gerrit Beine gerrit.beine@sapat.de Vogelperspektive Theorie: Model driven software development Praxis: Konzepte von GeneSEZ Lösungen für

Mehr

Agile Modellierung mit UML Lab

Agile Modellierung mit UML Lab Agile Modellierung mit UML Lab Produktisierung und Vertrieb eines MDSE Tools in der Praxis Dipl.-Inf. Manuel Bork Yatta Solutions GmbH t e +49 (0)561 5743277-21 bork@yatta.de @ManuelBork UNSER GESCHÄFT

Mehr

Innovator 2007. Anbindung an openarchitectureware. Connect. Klaus Weber. www.mid.de

Innovator 2007. Anbindung an openarchitectureware. Connect. Klaus Weber. www.mid.de Innovator 2007 Anbindung an openarchitectureware Klaus Weber Connect www.mid.de Anbindung an openarchitectureware (oaw) Wozu dient die Anbindung an openarchitectureware? Für Innovator Object excellence

Mehr

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

Graphischer Editor für die technologieunabhängige User Interface Modellierung Universität Augsburg Lehrstuhl für Softwaretechnik und Programmiersprachen Prof. Dr. Bernhard Bauer Praktikum Modellgetriebene Softwareentwicklung SS 2008 Graphischer Editor für die technologieunabhängige

Mehr

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

Datenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Datenhaltung für Android Model First 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Agenda Datenhaltung in Android Motivation / Projektziele Projekt Umsetzung Stand der Entwicklung Fazit 2 Datenhaltung

Mehr

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann Vorgetragen von Sanaz Mostowfi Anna Polovets Mandy Neumann Gliederung Was ist DSL? Welche Arten von DSL gibt es? Vor und Nachteile Werkzeuge zur Erstellung von DSLs XText Definition: DSL (Domain Specific

Mehr

Mit 'Babysteps' in die XTEXT-XTEND Welt

Mit 'Babysteps' in die XTEXT-XTEND Welt mit 'Babysteps' in die XTEXT-XTEND Welt T7 Codesamples.doc Seite 1, Druckdatum: 18.08.2014, 11:08 Uhr Mit 'Babysteps' in die XTEXT-XTEND Welt Teil 7: LUECKEN(X)TEXT, eine DSL mit dynamischer Anbindung

Mehr

Ich liebe Java && Ich liebe C# Rolf Borst

Ich liebe Java && Ich liebe C# Rolf Borst Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String

Mehr

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

Experiences with Model Driven Software Development Creating the Palladio Tool Chain Eclipse Application Developer Day 7. Experiences with Model Driven Software Development Creating the Palladio Tool Chain Eclipse Application Developer Day 7. July, 2009 WIR FORSCHEN FÜR SIE Dr.-Ing. Steffen Becker sbecker@fzi.de Abteilungsleiter

Mehr

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

Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014 Modellgetriebene Softwareentwicklung (Model Driven Software Development - MDSD) SS 2014 Wahlpflichtfach (2 SWS) für Bachelor Andreas Schmidt Einführung/Organisation 1/19 Ziele der Vorlesung Vorstellung

Mehr

Christian Kurz SWT Projekt WS 07/08

Christian Kurz SWT Projekt WS 07/08 Christian Kurz SWT Projekt WS 07/08 1. Allgemeine Aspekte der generativen GUI- Entwicklung 2. Entwicklung mit Hilfe von GUI-Designern 3. Entwicklung mit Hilfe deklarativer GUI- Sprachen 4. Modellgetriebene

Mehr

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

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code. Current Workflow Rules T1 Rules Extensions XMLfile DOM processing with Meta API-calls Model 1 T2 Model 2 Code Generation (Smarty) Source code PP formatted sourcecode DTD V1 Rules XMI 1/21 Anbindung eines

Mehr

Model Driven SOA. < J Springer. Anwendungsorientierte Methodik und Vorgehen in der Praxis. Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann

Model Driven SOA. < J Springer. Anwendungsorientierte Methodik und Vorgehen in der Praxis. Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann Model Driven SOA Anwendungsorientierte Methodik und Vorgehen in der Praxis Mit Illustrationen von Martin Starzmann < J Springer Inhaltsverzeichnis

Mehr

Software Engineering II

Software Engineering II Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Installation der MWE Plugins Von der Juno Update Site installieren (falls noch nicht vorhanden): MWE SDK Xpand SDK 2 TFD Projekt

Mehr

Inhalt. Motivation Techniken des MDE. Fallbeispiele

Inhalt. Motivation Techniken des MDE. Fallbeispiele ISE-Seminar 2012 Inhalt Motivation Techniken des MDE Computer Aided Software Engineering (CASE) Domain-Specific-Languages (DSL) Model Driven Architecture (MDA) Fallbeispiele Motivation Automatische Codegenerierung

Mehr

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012 Einführung in modellgetriebene Softwareentwicklung 24. Oktober 2012 Überblick Was sind die Grundprinzipien der modellgetriebenen Softwareentwicklung? Entwicklung einer MDD-Infrastruktur Modellgetriebene

Mehr

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

Andreas Lux 16.03.2010. Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Andreas Lux 16.03.2010 Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Warum unterschiedliche Sprachen? Nicht alle Probleme eignen sich, um mit Standardsprachen beschrieben

Mehr

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

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

Mehr

Model Driven Software Development

Model Driven Software Development Model Driven Software Development Vergleich von Metametamodellen Marcel Hoyer 1von 19 Themenvorstellung Vergleich von Metametamodellen Was sind überhaupt Metametamodelle? Analyse und Vergleich existierender

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN Mathias Slawik, WI (M), 3. FS Aktuelle Themen der Wirtschaftsinformatik, HTW Berlin, WS 10/11 Gliederung 2 Methode

Mehr

10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

Model Driven Software Development

Model Driven Software Development Model Driven Software Development Key Note DGLR Workshop, TUM Garching, 4. Oktober 2011 Dr. Björn Pötter Leiter SoftwareFactory (FCS & UAV Software), Cassidian (EADS) Trends in der Softwareentwicklung

Mehr

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme

Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme Telling TestStories Modellbasiertes Akzeptanz Testen Serviceorientierter Systeme Michael Felderer Workshop Requirements Engineering meets Testing Bad Honnef, 5. Juni 2008 1 Überblick Grundbegriffe Motivation

Mehr

Problemseminar ModelDrivenSoftwareDevelopment

Problemseminar ModelDrivenSoftwareDevelopment Problemseminar ModelDrivenSoftwareDevelopment Metamodellierungswerkzeuge Björn Dassow Aufbau Definition Beschreibung Metamodellierung Kurzer Überblick über EMF, GME, MetaEdit+ Interoperabilitätsbetrachtung

Mehr

MODELLGETRIEBENE SOFTWAREENTWICKLUNG: ALLES UML, ODER?

MODELLGETRIEBENE SOFTWAREENTWICKLUNG: ALLES UML, ODER? 1 2 MODELLGETRIEBENE SOFTWAREENTWICKLUNG: ALLES UML, ODER? Bei modellgetriebener Softwareentwicklung werden aus kompakten Modellbeschreibungen lauffähige Softwareprogramme generiert. Solche Modellbeschreibungen

Mehr

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

XMI & Java. von Stefan Ocke so3@inf.tu-dresden.de 5.Juli 2001 XMI & Java von Stefan Ocke so3@inf.tu-dresden.de 5.Juli 2001 1. XMI XML Metadata Interchange - Ziele und Historie - Metamodellarchitektur der OMG und MOF - XMI Dokumente und XMI DTD Ziele und Historie

Mehr

Angewandte Softwareentwicklung Serialisierung

Angewandte Softwareentwicklung Serialisierung Angewandte Softwareentwicklung Serialisierung WS 2014/2015 Markus Berg Hochschule Wismar Fakultät für Ingenieurwissenschaften Bereich Elektrotechnik und Informatik markus.berg@hs-wismar.de http://mmberg.net

Mehr

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

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

Mehr

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Copyright 2014 Delta Software Technology GmbH. All Rights reserved. Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Modellgetriebene Softwareentwicklung 30.10.2008 Dr. Georg Pietrek, itemis AG Inhalt Wer ist itemis? Modellgetriebene Entwicklung Ein Praxis-Beispiel Fazit 2 Vorstellung IT-Dienstleister Software-Entwicklung

Mehr

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

iks Gesellschaft für Informations- und Kommunikationssysteme mbh Sponsor der iks Gesellschaft für Informations- und Kommunikationssysteme mbh Sponsor der 13.03.2008 Seite 2 / 77 iks - Daten und Fakten Gründung 1989 Sitz Hilden Geschäftsleitung Dipl.-Inf. Monika Stoll Dipl.-Ing.

Mehr

openarchitectureware Was mit dem Open Source MDSDWerkzeug möglich ist

openarchitectureware Was mit dem Open Source MDSDWerkzeug möglich ist openarchitectureware Was mit dem Open Source MDSDWerkzeug möglich ist Dipl.-Inf. (FH) Karsten Thoms Telefon Mobile E-Mail + 49 231 9860 213 + 49 163 4979708 karsten.thoms@itemis.de https://www.xing.com/profile/karsten_thoms

Mehr

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

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi Das Metamodell der UML und in FUJABA Vortrag von Alexander Geburzi Gliederung Metamodellierung Metamodell der UML Metamodell in FUJABA Metamodellierung - Metamodell der UML - Metamodell in FUJABA 2/20

Mehr

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

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014 Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung

Mehr

Best Practices für RM/RE in einem Prozess Framework Thomas Schröder

Best Practices für RM/RE in einem Prozess Framework Thomas Schröder Best Practices für RM/RE in einem Prozess Framework Thomas Schröder 1 Die Herausforderung bewährte Praktiken effektiv zu nutzen Unterschiedliche Quellen in unterschiedlichen Formaten Schwierig anzupassen

Mehr

Systemdenken und Gestaltungsmethodik System-Modellierung

Systemdenken und Gestaltungsmethodik System-Modellierung Systemdenken und Gestaltungsmethodik System-Modellierung Prof. Dr.-Ing. Stefan Brunthaler TFH Wildau 2008ff Master Telematik Ausgangsbasis Es liegt ein kosten-nutzen-optimales Lösungskonzept vor. Die Architektur

Mehr

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modellgetriebene Softwareentwicklung bei der IBYKUS AG Modellgetriebene Softwareentwicklung bei der IBYKUS AG Theorie Teil 7: Modelltransformationen Dr. Steffen Skatulla IBYKUS AG 1 Inhalt Teil 7: Modelltransformationen Wozu Modelltransformationen? Konzepte

Mehr

Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren. Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren. Design und Implementierung von Codegeneratoren Am Beispiel der MDA-Suite XCoder Dipl.-Inf. Constantin

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Java Metadata Interface. Thorsten Pivl

Java Metadata Interface. Thorsten Pivl Java Metadata Interface Thorsten Pivl Einleitung Was sind Metadaten? Das Wort Meta stammt aus dem griechischen und bedeutet über Meta-Daten: Daten über Daten Beschreibung von Daten 2 Einleitung Warum Metadaten?

Mehr

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

Modellgetriebene Softwareentwicklung und Modelltransformationen in der Praxis. Vorstellung Gruppe Softwaretechnik für Verteilte Systeme Modellgetriebene Softwareentwicklung und Modelltransformationen in der Praxis Prof. Dr. Jens Grabowski M.Sc. Benjamin Zeiss Inhalt Vorstellung Gruppe Softwaretechnik für Verteilte Systeme Grundlagen Modellierung

Mehr

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

Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess Eine Fallstudie mit einem 3D-Tracking-System Dipl.-Inform. Christian Ammann Fachhochschule Osnabrück

Mehr

b+m Informatik AG Langlebige und zukunftsfähige modellgetriebene Softwaresysteme? Thomas Stahl b+m Informatik AG 13.06.

b+m Informatik AG Langlebige und zukunftsfähige modellgetriebene Softwaresysteme? Thomas Stahl b+m Informatik AG 13.06. Langlebige und zukunftsfähige modellgetriebene Softwaresysteme? Thomas Stahl 13.06.2012, KoSSE-Tag 1 1 b+m Business IT Management Geschäftsfelder Banken & Sparkassen Versicherungen Engineering Solutions

Mehr

Software-Architektur. Spektrum k_/takademischht VERLAG

Software-Architektur. Spektrum k_/takademischht VERLAG Oliver Vogel / Ingo Arnold /Arif Chughtai / Edmund Ihler/Uwe Mehlig/Thomas Neumann/ Markus Völter/Uwe Zdun Software-Architektur Grundlagen - Konzepte - Praxis ELSEVIER SPEKTRUM AKADEMISCHER VERLAG Spektrum

Mehr

SEA. Modellgetriebene Softwareentwicklung in der BA

SEA. Modellgetriebene Softwareentwicklung in der BA SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA

Mehr

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber Konsequent agile Entwicklung mit funk4onaler Programmierung Michael Sperber Individualso4ware branchenunabhängig Scala, Clojure, Erlang, Haskell, F# Schulungen, Coaching www.acave- group.de funkaonale-

Mehr

Model Driven Architecture

Model Driven Architecture { AKTUELLES SCHLAGWORT* / MODEL DRIVEN ARCHITECTURE Model Driven Architecture Martin Kempa Zoltán Ádám Mann Bei der Model Driven Architecture (MDA) bilden Modelle die zentralen Elemente des Softwareentwicklungsprozesses.

Mehr

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava shota.okujava@isento.de www.isento.de

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava shota.okujava@isento.de www.isento.de Beispielhaft MDSD in der Praxis Dr. Shota Okujava shota.okujava@isento.de www.isento.de Agenda Einführung Softwareentwicklungsprozess und MDSD Technologien und Werkzeuge Demo Entwicklung der Metamodelle

Mehr

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

Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle Konzeption und Realisierung eines logikbasierten Anfragewerkzeugs für UML-Modelle Doktoranden-, Diplomandenseminar, Institut für Informatik, TU Clausthal 23. Juni 2009 Motivation: Modelle werden in der

Mehr

Generischer Modellvergleich mit EMF Compare

Generischer Modellvergleich mit EMF Compare Fakultät Informatik Hauptseminar Technische Informationssysteme SS2010 Generischer Modellvergleich mit EMF Betreuer: Dipl.-Inf. Uwe Ryssel Dresden, 16.07.2010 Gliederung 1. Motivation 2. Eclipse Modeling

Mehr

Es wird das Struts Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Es wird das Struts <html:options> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht. Struts Code Peaces Element Es wird das Struts Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht. Allgemeines Autor: Sascha Wolski Sebastian Hennebrüder

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Datum: 10. Juli 2009 Themendossier Modellgetriebene Softwareentwicklung Seite 1 Einführung in das Thema Die Disziplin des Software Engineerings befasst sich bereits seit vielen Jahren mit der Frage, wie

Mehr

Software-Entwurfsmuster

Software-Entwurfsmuster Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm

Mehr

Modellbasierte Softwareentwicklung

Modellbasierte Softwareentwicklung CD OCL OD Statechart SD Modellbasierte Softwareentwicklung 7. Evolutionäre Methodik 7.1. Vorgehensmodell Vorlesungsnavigator: Prof. Dr. Bernhard Rumpe Sprache Codegen. http://www.se-rwth.de/ Testen Evolution

Mehr

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modellgetriebene Softwareentwicklung bei der IBYKUS AG Modellgetriebene Softwareentwicklung bei der IBYKUS AG Theorie Teil 4: Domänenspezifische Sprachen Dr. Steffen Skatulla IBYKUS AG 1 Inhalt Teil 4: Domänenspezifische Sprachen Nutzung vorhandener Sprachen

Mehr

Der EMF-generierte Code. 10. Dezember 2014

Der EMF-generierte Code. 10. Dezember 2014 Der EMF-generierte Code 10. Dezember 2014 Überblick Wie sieht der aus einem EMF-Modell generierte Code aus? Wie ist die Beziehung zwischen Modell und Code? Wie kann generierter Code durch handgeschriebenen

Mehr

Seminar Aktuelle Themen der Informatik

Seminar Aktuelle Themen der Informatik Fachhochschule Furtwangen Studiengang (Computer Networking) Seminar Aktuelle Themen der Informatik Thema: Model Driven Architecture Sommersemester 2006 am: 10.04.2006 vorgelegt von: Daniel Wehrle Oskar-Bier-Str.

Mehr

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung Matthias Bethke bethke@linguistik.uni-erlangen.de Linguistische Informatik Universität Erlangen-Nürnberg Sommersemester

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Quelltextähnlichkeit

Quelltextähnlichkeit Quelltextähnlichkeit String autor = Tobias Jamin ; String projekt = Arte-Fakt ; String seminar = Transformationen ; Date termin = new Date(3, // Tag 2, // Monat 2006); Presentation praesentation = new

Mehr

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 JUnit - Test Driven Development Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 Gliederung 1.Einleitung 1.1 Geschichte 1.2 Was sind Unit-Tests? 1.3 Failures/Errors 1.4 Ziele und Nutzen

Mehr

Thema 4 Acceleo- Sprachmittel und Generatorstruktur

Thema 4 Acceleo- Sprachmittel und Generatorstruktur SE Vertiefung Beuth-Hochschule Berlin Thema 4 Acceleo- Sprachmittel und Generatorstruktur 1. ACCELEO-PRAXIS (c) schmiedecke 14 SE3 2 Abgeguckt bei Obeo UmlToJava Es gibt zwei Generatorprojekte UmltoJava

Mehr

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

Mehr

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

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 Markus Völter, voelter@acm.org, www.voelter.de Modellgetriebene Entwicklung (MDSD 1 ) und MDA sind in aller Munde. Dieser Artikel stellt MDSD-Kernkonzepte vor und zeigt,

Mehr

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

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring?

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring? oliver@code-project.org 7. Februar 2006 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2

Mehr

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

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014 Modell/Metamodell Model Generator Generated Source Code Andreas Schmidt Modellierung 1/18 Modell Modell beschreibt die zu generierende Anwendung Modell ist... abstrakt kompakt formal Modell kann in unterschiedlichen

Mehr

Software Engineering in der Projektpraxis

Software Engineering in der Projektpraxis Software Engineering in der Projektpraxis Praktische Übungen Josef Adersberger Dirk Wischermann Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg 15. Mai 2008 Inhalt

Mehr

Modellierung & Domänen Spezifische Sprachen (DSL)

Modellierung & Domänen Spezifische Sprachen (DSL) Modellierung & Domänen Spezifische Sprachen (DSL) Uni Jena, 2013-04-08 Fachgebiet der zu modellierenden Anwendung Aufteilung in Subdomänen möglich, evtl. spezialisierte Modelle/DSLs nötig Neben fachlichen

Mehr

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

Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook. 14. Januar 2015 Codegenerierung am Beispiel des PIMAR-Projekts PhoneBook 14. Januar 2015 Überblick Modell- und Codegenerierung (M2C, C2M) Modellinterpretation vs. Modellübersetzung PIMAR Code-Generierung am Beispiel des

Mehr

Modellgetriebene Service-Entwicklung

Modellgetriebene Service-Entwicklung Modellgetriebene Service-Entwicklung Service-orientierte Architekturen (SOA), Prof. Dr. M. Jäger Johannes Tietje 24. Juni 2010 1 / 13 Motivation konkrete Teile eines Dienstes Rahmenimplementierung der

Mehr