Diplomarbeit. Entwicklung eines MDD-Tools für eine Virtuelle Ausstellung. Julia Damerow

Größe: px
Ab Seite anzeigen:

Download "Diplomarbeit. Entwicklung eines MDD-Tools für eine Virtuelle Ausstellung. Julia Damerow"

Transkript

1 Diplomarbeit Entwicklung eines MDD-Tools für eine Virtuelle Ausstellung Julia Damerow 20. Mai 2008

2

3 Inhaltsverzeichnis 1 Einleitung 1 2 Ausgangssituation 2 3 Mögliche Alternativumsetzungen 4 4 Modellgetriebene Softwareentwicklung Model Driven Development Modell Domäne Domänenspezifische Sprachen Metamodell Abstrakte und konkrete Syntax Metametamodell Statische und dynamische Semantik Modellierung Modellvalidierung Domänenspezifische Sprachen Transformation Codegenerierung Modell-zu-Modell-Transformation Re-Generierung Model Driven Architecture Umsetzungmöglichkeiten Metamodellierung Domänenspezifische Sprachen/Modellierung Generator Eigener Ansatz 23 7 Anwendertests 24 I

4 INHALTSVERZEICHNIS 8 Ergebnisse 25 Literaturverzeichnis 26 Glossar 28 Abkürzungsverzeichnis 29 II

5 Kapitel 1 Einleitung - mentale Modell? 1

6 Kapitel 2 Ausgangssituation Vom 16. Mai bis 30. September 2005 präsentierte die Max-Planck-Gesellschaft im Berliner Kronprinzenpalais die Ausstellung Albert Einstein - Ingenieur des Universums. Konzipiert wurde die Ausstellung vom Max-Planck-Institut für Wissenschaftsgeschichte (MPIWG). Anlass war das Einsteinjahr Parallel zur physischen Ausstellung wurde eine virtuelle Ausstellung konzipiert. Dazu wurden alle Ausstellungsräume und Ausstellungsinhalte über das Internet zugänglich gemacht. Diese virtuelle Ausstellung ist auch nach Beendigung der Ausstellung im Kronprinzenpalais und damit auch zum Zeitpunkt der Anfertigung dieser Diplomarbeit weiterhin verfügbar. Wichtiger Bestandteil der Konzeption der Ausstellung Albert Einstein - Ingenieur des Universums waren Medienstationen in Form von über alle Ausstellungsräume verteilten Touch-Screens. Über diese Medienstationen konnten die Besucher Informationen zu den Ausstellungsobjekten sowie allgemeines Hintergrundwissen erlangen. Das Konzept der Medienstationen wurde auch in die Virtuelle Einsteinausstellung übernommen und ist ihr wichtigster Bestandteil. Neben den Fotos der Ausstellungsobjekte, die sich der Nutzer in beliebiger Vergrößerung anschauen kann, Abbildung 2.1: Medienstation in der Einstein Ausstellung stellen die für die Medienstationen aufbereiteten und kommentierten Materialien die Hauptinhalte in der virtuellen Ausstellung dar. Die Medienstationen bilden die Informationsknotenpunkte der Virtuellen Einsteinausstel- 2

7 Kapitel 2. Ausgangssituation Diplomarbeit lung und dienen der Vermittlung und Veranschaulichung von Wissen und Informationen. Ergänzungen: Projektion der Medienstationen an die Wand, Gestaltung der Medienstationen über Webbrowser 3

8 Kapitel 3 Mögliche Alternativumsetzungen CMS... resultiert in MDD Argumentation: Transformation in unterschiedliche Medien (pdf, static HTML, interactiv html) 4

9 Kapitel 4 Modellgetriebene Softwareentwicklung Thema dieser Diplomarbeit ist die modellgetriebenen Softwareentwicklung. Bei der modellgetriebenen Softwareentwicklung wird aus Modellen automatisch Software erzeugt. Ein Modell ist «ein vereinfachtes Abbild» ([BBD + 03], S. 588) einer Software. Unter einer Software wird hier ein Computerprogramm verstanden. Ein Computerprogramm ist «eine nach den Regeln einer Programmiersprache zusammengestellte Abfolge von Anweisungen, die zur Erledigung einer oder mehrerer Aufgaben dient.» ([BBD + 03], S. 729) Abbildung 4.1: Modellgetriebene Softwareentwicklung Ziele der modellgetriebenen Softwareentwicklung sind die Steigerung der Softwarequalität und die Steigerung der Effizienz bei der Entwicklung von Software. Ein wichtiges Konzept ist dabei die Programmierung auf einer höheren Abstraktionsebene, als es bei der Programmierung mit einer höheren Programmiersprach möglich ist. [SVEH07, Kap. 2.2] Unter einer höheren Programmiersprache wird hier... (Hochsprache) [BBD + 03] verstanden. Bei der Programmierung mit der Hochsprache Java beispielsweise wird von dem konkreten Betriebsystem abstrahiert. Der Quelltext wird durch den Java Compiler in Java Bytecode kompiliert. Dieser Bytecode wird bei der 5

10 KAPITEL 4. MODELLGETRIEBENE SOFTWAREENTWICKLUNG Ausführung des Programms durch die Java Virtual Machine betriebssystemabhängig interpretiert. Das selbe Java-Programm kann somit auf verschiedenen Betriebssystemen ausgeführt werden. Java ermöglich dadurch die Programmierung auf einer höheren Abstraktionsebene als Maschinencode, bei dem für jedes Betriebssystem und jeden Prozessor das Programm neu geschrieben werden muss. Cite wen? Bei der modellgetriebenen Softwareentwicklung wird durch das Modell von der konkreten Programmiersprache abstrahiert. Im Modell werden alle implemenierungsspezifischen Details weggelassen. Der Entwickler konzentriert sich auf die Funktionalität der zu entwickelnden Anwendung [AK03]. Dadurch wird zum einen erreicht, dass die Software plattformunabhängig entwickelt werden kann. Plattformunabhängig bedeutet in diesem Zusammenhang, dass die Anwendungslogik weder auf eine bestimmte Programmiersprache, noch auf ein bestimmtes Betriebssystem festgelegt ist. Zum anderen werden Routinearbeiten bei der Implementierung dem Entwickler abgenommen und automatisch ausgeführt. Dies kann zu einer Zeitersparnis gegebenüber der Softwareentwicklung ohne modellgetriebenen Ansatz führen. Darüber hinaus werden dadurch Fehler minimiert, da nur getesteter und dokumentierter Quellcode automatisch erzeugt wird [SVEH07, Kap. 2.2]. In diesem Kapitel wird zunächst der Begriff modellgetriebene Softwareentwicklung definiert. Im Anschluss daran werden relevante Begriffe und Konzepte der modellgetriebenen Softwareentwicklung erläutert. Zuletzt wird auf Model Driven Architecture (MDA), eine spezielle Ausprägung von modellgetriebener Softwareentwicklung eingegangen. 4.1 Model Driven Development Modellgetriebene Softwareentwicklung wird als Model Driven Development (MDD) oder Model Driven Software Development (MDSD) bezeichnet. [TPB + 07, S. 12] «Modellgetriebene Softwareentwicklung (Model Driven Software Development, MDSD) ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen.» ([SVEH07], S. 11) Zunächst muss für das Verständnis dieser Definition geklärt werden was ein Modell ist und wie es erstellt wird (Modellierung). Im Anschluss daran wird erläutert, wie aus einem Modell lauffähige Software erzeugt wird (Generierung). 6

11 Kapitel 4. Modellgetriebene Softwareentwicklung Diplomarbeit 4.2 Modell «Ein Modell stellt ein Abbild eines realen oder abstrakten Systems dar [... ].» ([PM06], S. 42) In der modellgetriebenen Softwareentwicklung ist dieses System eine Software. Modelle gibt es in unterschiedlichen Ausprägungen. Ein Modell kann beispielsweise eine Skizze sein, ein UML-Diagramm oder es kann in textueller Form vorliegen. Es kann menschen- und/oder maschinenlesbar sein. [PM06, Kap. 2.2] Für die modellgetriebene Softwareentwicklung muss ein Modell formal sein. Formal bedeutet, dass sich das Modell an ein Regelwerk hält, «das mathematisch exakt, widerspruchsfrei und vollständig definiert» ([PM06], S. 42) ist. Ein formales Modell beschreibt einen Teil einer Software vollständig. Dieser Teil kann technisch oder fachlich sein. Ein technischer Teil wäre beispielsweise die Architektur der Software. Ein fachlicher Teil ist zum Beispiel die Fachlogik der Anwendung. [SVEH07, Kap. 2.1] Zweck eines Modells ist nicht nur die Dokumentation und Beschreibung der Software. Aus einem Modell wird auch automatisch die ausführbare Anwendung erzeugt [TPB + 07, Kap. 1.3]. Darüber hinaus ist das Ziel bei der Erstellung eines Modells, die Komplexität des Modells gegenüber der Komplexität der Software zu reduzieren, um die Entwicklung der Software zu vereinfachen. Eigenschaften, die nicht zum durch das Modell abgebildeten Teil der Software gehören, werden dafür weggelassen [PM06, Kap. 2.2]. Im Zusammenhang mit dem Modellbegriff stehen weitere Begriffe, die in Abbildung 4.2 dargestellt sind. Im Folgenden werden diese Begriffe erläuert Domäne Eine Domäne ist ein begrenztes Wissens- oder Interessengebiet. Sie kann technisch oder fachlich sein. Eine technische Domäne bezieht sich auf den technischen Teil einer Software. Eine fachliche Domäne bezieht sich auf den fachlichen Teil einer Software. Eine Domäne kann aus Subdomänen bestehen. Eine Subdomäne ist eine Teilmenge der Domäne. Subdomänen sind beispielsweise sinnvoll für den Umgang mit sehr komplexen Domänen, um die Überschaubarkeit der Domäne zu gewährleisten. [SVEH07, Kap. 3.1] 7

12 KAPITEL 4. MODELLGETRIEBENE SOFTWAREENTWICKLUNG Abbildung 4.2: Begriffe der MDD, Quelle: [SVEH07, S. 28] Domänenspezifische Sprachen Eine domänenspezifische Sprache wird als Domain Specific Language (DSL) bezeichnet. Sie ist eine speziell auf eine Domäne abgestimmte Sprache [CM07]. Die Sprachelemente der DSL werden von Mensch und Maschine verstanden. Mittels der DSL wird ein formales Modell erstellt. Der Mensch kann so den Sachverhalt einer Domäne maschinenverständlich abbilden [TPB + 07, Kap. 3.6]. Im Wesentlichen umfasst eine DSL ein Metamodell und eine konkrete Syntax Metamodell Ein Metamodell macht Aussagen über die mögliche Struktur eines Modells. Es ist die formale Beschreibung einer Domäne [SVEH07, Kap. 3.1]. Die Vorsilbe meta bedeutet hier soviel wie über oder übergeordnet. Die einzelnen Elemente eines Modells sind Instanzen der Modellelemente des Metamodells. Das heißt, das Metamodell steht auf einer höheren Ebene als das Modell [PM06, Kap. 2.2]. Zur Veranschaulichung der Beziehung zwischen Domäne, Modell und Metamodell siehe Abbildung Abstrakte und konkrete Syntax Eine DSL hat zwei Syntaxen. Die abstrakte Syntax und die konkrete Syntax. Die abstrakte Syntax beschreibt die Metamodellelemente und ihre Beziehungen untereinander [SVEH07, Kap. 3.1]. Allgemeiner ausgedrückt definiert die abstrakte Syntax die syntaktischen Elemente (z. B. Buchstaben) und legt fest wie daraus Konstrukte (z. B. Wörter) gebildet werden. Ein Konstrukt ist eine Kombination von syntaktischen Elementen. [PM06, Kap. 1.3]. Die abstrakte Syntax 8

13 Kapitel 4. Modellgetriebene Softwareentwicklung Diplomarbeit Abbildung 4.3: (Meta-)Modellebenen, Quelle: Angelehnt an [SVEH07, S. 60] und [PM06, S. 49] der Programmiersprache Java beispielsweise legt fest, dass es Klassen gibt, die einen Namen haben, die Methoden haben können, etc. [SVEH07, Kap. 3.1]. Die konkrete Syntax hingegen legt fest wie ein Modell oder allgemein gesagt ein Konstrukt konkret beschrieben wird. Sie legt die «Ausdrucksmittel (Darstellungsform, Notation)» ([PM06], S. 19) der DSL fest. Für die Programmiersprache Java legt die konkrete Syntax fest, dass eine Klasse mit dem Schlüsselwort class beginnt, dass wenn eine Klasse ein Interface implementiert, dies mit dem Schlüsselwort implements notiert wird, etc. Weiterhin kann gesagt werden, dass eine konkrete Syntax graphisch oder textuell sein kann. Ein Beispiel für eine graphische konkrete Syntax ist die UML-Notation. Eine textuelle konkrete Syntax ist die Notation in XML [SVEH07, Kap. 3.1]. Ein Modell und das zugehörige Metamodell haben immer eine unterschiedliche abstrakte Syntax. Hingegen können sie die gleiche konkrete Syntax haben [PM06, S. 50] Metametamodell Ein Metametamodell ist das Metamodell eines Metamodells. Die Modellelemente des Metamodells sind also Instanzen der Modellelemente des Metametamodells. In der Theorie kann es beliebig viele Meta-Ebenen eines Modells geben. In der Praxis sind drei Ebenen in den meisten Fällen ausreichend (Modell, Metamodell und Metametamodell). Das Metametamodell beschreibt sich dabei meist selbst. Ein weitverbreitetes Metametamodell ist die Meta Object Facility (MOF), ein Standard der Object Management Group (OMG). Die MOF ist un- 9

14 KAPITEL 4. MODELLGETRIEBENE SOFTWAREENTWICKLUNG ter anderem das Metamodell der Unified Modeling Language (UML). [SVEH07, Kap. 3.1] Statische und dynamische Semantik Die statische Semantik legt die Bedingungen fest, die ein Modell erfüllen muss um wohlgeformt (valide) zu sein. Diese Bedingungen werden Constraints genannt [SVEH07, Kap. 3.1]. Allgemein gesagt, legt die statische Semantik fest wie ein Konstrukt mit einem anderen verbunden ist, um eine Bedeutung zu erhalten. Die statische Semantik der booleschen Algebra beispielsweise legt fest, dass ein boolescher Ausdruck der Form boolescher Wert, boolescher Operator, boolescher Wert einen booleschen Wert zurückliefert [PM06, Kap. 1.3]. Bei statisch getypten Programmiersprachen sind die Bedingungen, die vom Compiler geprüft werden, die statische Semantik. Diese legen beispielsweise fest, dass Variablen deklariert sein müssen [SVEH07, Kap. 3.1]. Die dynamische Semantik legt die erlaubten Ausführungen des durch die statische Semantik definierten Konstrukts fest. Nur wenn ein Konstrukt wohlgeformt ist, definiert die dynamische Semantik eine Bedeutung. Die dynamische Semantik legt beispielsweise fest, dass ein boolescher Ausdruck der Form boolescher Wert, boolescher Operator, boolescher Wert bezogen auf den UND-Operator nur dann zu true evaluiert, wenn beide booleschen Werte true sind, sonst evaluiert er zu false [PM06, Kap. 1.3]. Wird bei der Programmierung gegen die dynamische Semantik verstoßen, wird dies erst zur Laufzeit erkannt. Das folgende Beispiel verdeutlicht dies. 1 int i = x; 2 i = i - 1; 3 i = 1/ i; Die potentielle Division durch Null wird erst zur Laufzeit erkannt. Da eine Division durch Null gegen die dynamische Semantik verstößt, kommt es für den Fall, dass x den Wert 1 hat zu einem Fehler. [Sch96] 4.3 Modellierung Modelle sind das zentrales Konzept bei MDD. Ihre Erstellung wird als Modellierung bezeichnet. Die Elemente eines Modells sind Instanzen der Elemente eines Metamodells. Die modellgetriebene Entwicklung muss daher mit der Definition des Metamodells beginnen. Die Schwierigkeit hierbei ist, das Metamodell vollständig zu definieren. Zu diesem Zweck sollten mehrere konkrete Szenarien 10

15 Kapitel 4. Modellgetriebene Softwareentwicklung Diplomarbeit vor und während der Erstellung des Metamodells durchdacht werden. [SVEH07, Kap. 5.5] Für die Modellierung wird eine konkrete Syntax benötigt. Die konkrete Syntax ist die Schnittstelle zum Modellierer. Ihre Qualität ist entscheidend für die Lesbarkeit des Modells. Es durchaus möglich, dass es mehrere konkrete Syntaxen für ein Modell gibt, z. B. eine graphische und eine textuelle. [SVEH07, Kap. 5.1] Modellvalidierung Bei der Modellierung besonders von komplexen Modellen kommt es oft zu Modellierungsfehlern. Modellierungsfehler sind Verstöße gegen die durch die statische Semantik festgelegten Constraints. Je später diese Verstöße erkannt werden, desto höher ist meistens der Aufwand sie zu beheben [TPB + 07, Kap. 3.7]. Teil der modellgetriebenen Softwareentwicklung ist daher die Modellvalidierung (Validierung). Bei der Modellvalidierung wird geprüft ob alle Constraints vom Modell eingehalten werden [SVEH07, Kap. 5.1]. Das Zusammenspiel von Modellierung und Validierung ist ein iterativer Prozess. Durch die Validierung entdeckte Fehler werden durch erneute Modellierung behoben. Abbildung 4.4 verdeutlicht den Modellierungs- und Validierungs- Prozess [TPB + 07, Kap. 3.7]. Bei der Generierung wird meistens vorausgesetzt, Abbildung 4.4: Modellierung und Validierung, Quelle: [TPB + 07, S. 67] dass das Modell valide ist. Ist das Modell nicht valide, kann es zur Generierung von fehlerhaftem Quelltext kommen. Die Modellvalidierung ist daher direkt vor der Generierung notwendig. Der frühestmögliche Zeitpunkt für die Validierung ist während der Eingabe des Modells. Die Validierung wird dabei durch den Editor durchgeführt. Diese Technik der Validierung während der Eingabe ist weit- 11

16 KAPITEL 4. MODELLGETRIEBENE SOFTWAREENTWICKLUNG verbreitet und in den meisten modernen Entwicklungsumgebungen umgesetzt. Bei der Validierung im Editor und bei der Validierung direkt vor der Codegenerierung sollte auf die gleiche Implementierung der Constraints zurückgegriffen werden, um die Konsistenz in der Validierung zu gewährleisten. [SVEH07, Kap. 5.1] Domänenspezifische Sprachen Domänenspezifische Sprachen (DSLs) können auf verschiedene Weise kategorisiert werden. Sie können in interne und externe DSLs einteilt werden oder in graphische und textuelle DSLs. Die Wahl der DSL und damit der konkreten Syntax ist von Bedeutung, da an ihr unter anderem die Wahl des Modellierungswerkzeugs und die Lesbarkeit des Modells hängt. [SVEH07, Kap. 6] Martin Fowler hat die Begriffe der internen DSL (auch embedded DSL) und externen DSL geprägt [Fow05]. Eine interne DSL ist eine DSL, die in eine andere Sprache, die sogenannte Hostsprache, eingebettet ist (daher der Begriff der embedded DSL). Die Hostsprache ist meist eine dynamisch getypte Sprache wie beispielsweise Ruby. Eine externe DSL wird dagegen von Grund auf neu erstellt. Für sie wird ein extra Parser benötigt, der die Information der DSL einliest und zur Generierung oder Interpretation bereitstellt. Eine interne DSL hat verschiedene Nachteile. Zum einen kann eine interne DSL immer nur eine textuelle konkrete Syntax haben. Des Weiteren fehlt die Möglichkeit spezielle Modellierungswerkzeuge für die DSL zu entwickeln. Eine interne DSL kann erst zur Laufzeit validiert werden. Vorher ist sie nur durch die Hostsprache begrenzt. Dadurch werden Modellierungsfehler erst spät oder eventuell gar nicht erkannt [SVEH07, Kap. 6.1]. Ein weiterer Nachteil ist, dass ein Entwickler, der mit der DSL ein Modell erstellen möchte, die Hostsprache jedoch nicht beherrscht, verwirrt werden kann, da ihm mehr Möglichkeiten zur Verfügung stehen als für die Modellierung gebraucht werden. Vorteil einer internen DSL ist, dass ein Entwickler, der die Hostsprache dagegen gut kennt, die volle Mächtigkeit der Hostsprache ausnutzen kann. Nachteil externer DSLs ist, dass der Editor und Parser für die DSL zusätzlich zur DSL entwickelt werden muss. Der Vorteil liegt darin, dass ein graphischer Editor entwickelt werden kann, der im Gegensatz zur internen DSL nur die Funktionalität, die zur Erstellung des Modells benötigt wird, bereitstellt [Fow05]. Eine weitere Kategorisierung, die vorgenommen werden kann, ist die Unterteilung von DSLs in graphische und textuelle DSLs. Modelle mit einer graphische DSL geben meist einen guten Überblick über die Struktur des dargestellten Mo- 12

17 Kapitel 4. Modellgetriebene Softwareentwicklung Diplomarbeit dells und sind als Diskussionsgrundlage geeignet. Dabei muss jedoch beachtet werden, nicht zu viele Elemente oder Konzepte darzustellen, um die Übersichtlichkeit beizubehalten. Textuelle DSLs sind in der Regel weniger übersichtlich. Dies kann durch entsprechende Hilfsmittel des benutzten Editors (z. B. Code Folding, Syntax Highlighting, etc.) verbessert werden. Als Diskussionsgrundlage sind sie meistens ungeeignet. [SVEH07, Kap. 6.1] 4.4 Transformation Bei einer Transformation wird aus einem formalen Modell etwas anderes erzeugt. Durch die Transformation kann Text erzeugt werden wie z. B. Quelltext oder Dokumentationsdateien oder es kann ein weiteres Modell erzeugt werden [SVEH07, Kap. 3.1]. Was erzeugt wird und wie es erzeugt wird, wird durch Regeln festgelegt, die zuvor definiert werden müssen [TPB + 07, Kap. 3.8]. Wird Quelltext erzeugt spricht man im Allgemeinen von Modell-zu-Code- Transformation (abgekürzt M2C) oder auch Codegenerierung bzw. Generierung. Die Codegenerierung wird ausführlich in Abschnitt besprochen. Wird ein weiteres Modell erzeugt, wird dies Modell-zu-Modell-Transformation (abgekürzt M2M) genannt. Die Modell-zu-Modell-Transformation wird in Abschnitt behandelt [SVEH07, Kap. 3.1] Codegenerierung Einer der Hauptbestandteile der modellgetriebenen Softwareentwicklung ist, wie bereits in Abschnitt 4.1 erwähnt, die automatisierte Erzeugung von Quelltexten und anderen Artefakten, die Codegenerierung. Sie wird auch als Modell-zu- Code-Transformation bezeichnet [SVEH07, Kap. 3.1] [PM06, Kap. 3]. Bei der Codegenerierung muss zwischen zwei Arten von Informationen unterschieden werden. Die variablen Informationen und die statischen Informationen. Variable Informationen werden durch das Modell festgelegt und sind je nach Modell verschieden. Statische Informationen werden für die gesamte Codegenerierung vorgegeben. Dies sind die sogenannte Generatorvorschriften. Sie sind für die Modellierung irrelevant und werden erst bei der Generierung hinzugezogen. Für die Codegenerierung gibt es verschiedene Techniken, die im Folgenden beispielhaft betrachtet werden. Zuvor werden jedoch erst einmal die wichtigsten Merkmale eines Codegenerators bei MDD angeführt, wie sie von Stahl et al. definiert werden. [SVEH07, Kap. 8] Ein MDD-Codegenerator sollte die folgenden Merkmale haben, um effizient eingesetzt werden zu können (siehe hierzu [SVEH07, S. 145]). 13

18 KAPITEL 4. MODELLGETRIEBENE SOFTWAREENTWICKLUNG Die variablen Informationen (das Modell) sind von den statischen Informationen (die Generatorvorschriften) getrennt. Die Generatorvorschriften basieren auf dem Metamodell. Aus einem Modell können die Artefakte beliebig oft erzeugt werden. Ein Generator kann für beliebig viele Modelle verwendet werden. Einzige Bedingung ist, dass die Modelle dem Metamodell entsprechen. Handgeschriebener Code und generierter Code sollten getrennt werden. Die Zusammenführung des handgeschriebenen Quelltextes und des generierten Quelltextes sollte soweit möglich mit den Mitteln der Zielsprache geschehen, z. B. durch Vererbung. Sehr viel grundlegender gesagt, muss ein Codegenerator die folgenden drei Funktionen unterstützen. Zunächst sollte er das Schreiben von Text in Dateien erlauben. Des Weiteren sollte die Abfrage von Werten aus einem eingegebenen Modell möglich sein. Zuletzt sollte die Konkatenation von statischem Text (d. h. statischen Informationen) und Informationen aus dem Modell unterstützt werden. Die verschiedenen Technologien zur Codegenerierung setzen unterschiedliche Schwerpunkte was diese Funktionen angeht. Bei der Wahl des Codegenerators sollte dies daher bedacht werden. Im Folgenden werden zwei mögliche Techniken der Codegenerierung vorgestellt. Zunächst wird die Codegenerierung mit Hilfe von Templates erläutert. Im Anschluss wird die Codegenerierung mittels einer Programmiersprache dagegengestellt. [SVEH07, Kap. 8] Die Codegenerierung mittels Templates ist sinnvoll, wenn viel statischer Text generiert werden soll. Dabei werden die Artefakte von dem Generator anhand von Vorlagen (sogenannten Templates) erstellt. Ein Template besteht aus beliebigem Text, der Tags beinhaltet. Ein Tag ist ein Platzhalter in einer speziellen Notation, der während des Generierungsprozesses von dem Generator durch einen entsprechenden Wert ersetzt wird. Die Notation der Tags wird durch die Template-Sprache spezifiziert. Die Template-Sprache legt fest, wie ein Template aufgebaut ist, wie ein Tag notiert wird, etc. Ein Tag enthält einen Ausdruck, der durch den Generator mittels der Informationen des Modells evaluiert wird. Das Ergebnis wird an die Stelle des Tags gesetzt. Die Form des Ausdrucks ist ebenso wie die Notation der Tags von der Template-Sprache abhängig. Die Technik der Codegenerierung mittels Templates ist spezialisiert auf die Konkatenation von statischem Text und Modellinformationen. Beispiele hierfür sind Template- Sprachen wie JSP, PHP oder aus dem XML-Umfeld XSLT. [SVEH07, Kap ] 14

19 Kapitel 4. Modellgetriebene Softwareentwicklung Diplomarbeit Bei der Codegenerierung mittels einer Programmiersprache wird der Generator mittels einer Programmiersprache wie beispielsweise Java oder C# entwickelt. Meistens werden dabei Klassen entwickelt, die bestimmte Konzepte der Zielsprache repräsentieren. Diese Klassen können dann im gesamten Generator wiederverwendet werden. Listing 4.1 zeigt beispielhaft wie die Implementierung einer solchen Klasse aussehen kann. 1 public class JavaClass { 2 public String packagename ; 3 public String name ; 4 public List < JavaMember > members ; 5 7 public String tostring () 8 { 9 String buff = " package " + packagename + ";\ n" + 10 "\n" + 11 " public class " + name + " {\ n"; 12 for ( Member m : members ) 13 buff += m; 14 buff += "}\ n"; 15 return buff ; 16 } 17 } Listing 4.1: Beispiel Klasse zur Erstellung von Java-Klassen, Quelle: [SVEH07], S. 150 Bei dieser Technik der Codegenerierung muss bedacht werden, dass die Eigenheiten der gewählten Programmiersprache in die Entwicklung des Generators miteinfließen, was u. U. zu Problemen oder zumindest zu Unhandlichkeiten führen kann. In dem angeführten Beispiel wird beispielsweise mit Strings in Java gearbeitet. Das bringt mehrere Nachteile mit sich. Es gibt z. B. in Java keine mehrzeiligen Strings (Zeilenumbrüche müssen mit Escape-Sequencen (z. B. \n ) beschrieben werden), Strings können im Quelltext nicht über mehrere Zeilen gehen, sie müssen mit + konkateniert werden, etc. Der Vorteil der Codegenerierung mittels einer Programmiersprache ist dagegen, dass die volle Unterstützung der meist sehr leistungsstarken Entwicklungsumgebungen für die Entwicklung des Generators genutzt werden kann. [SVEH07, Kap ] Modell-zu-Modell-Transformation In der klassischen modellgetriebenen Entwicklung folgt nach der Modellierung und Validierung des Modells die Codegenerierung. Das bedeutet, dass es zwei Abstraktionsebenen gibt. Die Ebene des Modells und die Ebene des Quelltextes. In den meisten Fällen ist dies ausreichend. Die Codegenerierung überbrückt 15

20 KAPITEL 4. MODELLGETRIEBENE SOFTWAREENTWICKLUNG in solchen Fällen die komplette Lücke zwischen Modell und Quelltext. Unter Umständen wird der Codegenerator bei diesem Ansatz jedoch sehr komplex. Ein weiteres Problem besteht darin, dass bei der Generierung dasselbe Metamodell wie bei der Modellierung verwendet wird. Dadurch wird das Metamodell möglicherweise zu sehr aufgebläht, da alle für die Generierung notwendigen Abstraktionen in das Metamodell mit aufgenommen werden. Es wird ein weiterer Schritt benötigt, der in der Regel zwischen der Modellierung bzw. Validierung und der Codegenerierung liegt, die Modell-zu-Modell-Transformation. In diesem Schritt wird das Modell für die Codegenerierung aufbereitet. Diese Aufbereitung ist eine Anreicherung des Modells mit zusätzlichen Informationen (die Modellmodifikation) oder die Überführung des Modells in ein anderes Modell (die Modelltransformation). [SVEH07, Kap. 10.1] Bei der Modellmodifikation wird das Ausgangsmodell modifiziert. Das Ausgangsmodell ist das Modell, auf welches die Transformation angewandt wird. Abbildung 4.5 verdeutlicht diese Art der Modell-zu-Modell-Transformation. Das Modell wird dabei mit Informationen angereichert. Hierfür werden basieren auf den Metamodellelementen Regeln definiert, wie die Modellelemente mit Informationen anzureichern sind [TPB + 07, Kap ]. Das so entstandene Modell hat weiterhin dasselbe Metamodell wie das Ausgangsmodell. In der Abbildung ist dies durch die gleiche geometrische Form der Modellelemente beider Modelle dargestellt. Es werden lediglich neue Instanzen der Metamodellelemente hinzugefügt und bestehende verändert. In der Abbildung ist dies verdeutlich durch eine andere Färbung [SVEH07, Kap. 10.2]. Abbildung 4.5: Modellmodifikation, Quelle: [SVEH07, S. 199] Als einen Spezialfall der Modellmodifikation führen Stahl et al. das sogenannte Modell-Weaving (Linking) an. Manchmal ist es notwendig, nicht alle Informationen in einem Modell zu speichern. Die Informationen sind dann auf mehrere Modelle aufgeteilt. In diesem Fall müssen die Modelle vor der Codegenerierung miteinander in Verbindung gebracht werden (verlinkt werden). Die 16

21 Kapitel 4. Modellgetriebene Softwareentwicklung Diplomarbeit Modellelemente des Ausgangsmodells werden mit den Verlinkungen zu den Modellelementen des anderen Modells angereichert. Die Modelle müssen dabei nicht dasselbe Metamodell haben. Abbildung 4.6 verdeutlicht das Modell-Weaving. Die Verlinkungen sind dabei durch die gepunkteten Linien dargestellt. [SVEH07, Kap. 10.2] Abbildung 4.6: Modell-Weaving, Quelle: [SVEH07, S. 200] Bei der Modelltransformation wird im Gegensatz zur Modellmodifikation das Ausgangsmodell nicht verändert. Es besteht außerdem die Möglichkeit mehrere Ausgangsmodelle zu einem Modell zusammenzuführen. Diese Form der Transformation wird beispielsweise angewandt, wenn das Ausgangsmodell ein anderes Metamodell hat, als das Modell in das es transformiert werden soll. Abbildung 4.7 zeigt diese Form der Modell-zu-Modell-Transformation. Die verschiedenen Metamodelle werden durch die unterschiedliche geometrischen Formen der Modellelemente der beiden Modelle dargestellt. [SVEH07, Kap. 10.2] Abbildung 4.7: Modelltransformation, Quelle: [SVEH07, S. 200] 17

22 KAPITEL 4. MODELLGETRIEBENE SOFTWAREENTWICKLUNG Re-Generierung Wichtiger Bestandteil der modellgetriebenen Softwareentwicklung ist das Zusammenspiel von Modellierung/Validierung und Generierung. Ähnlich wie bei der Modellierung und Validierung ist dies ein iterativer Prozess. Das Modell nimmt bei MDD die Rolle des Quelltextes ein. Daher werden Änderungen immer am Modell vollzogen. Diese Änderungen können auch nach der ersten Generierung vorgenommen werden [SVEH07, Kap. 2.2]. Den vorgenommenen Änderungen folgt eine erneute Codegenerierung, die Re-Generierung. Meist ist die erste Generierung unproblematisch, es entstehen Quelltext-Dateien. Sehr häufig muss jedoch Code manuell hinzugefügt werden. Selten lässt sich eine Anwendung bei MDD zu 100% generieren. Bei einem erneuten Generatordurchlauf würde der manuell hinzugefügte Code überschrieben werden. Um dieses Problem zu handhaben, gibt es zwei Lösungsansätze: die Verwendung von Protected Regions und die Trennung von generierten und handgeschriebenen Code in verschiedene Dateien [PM06, Kap. 3.3]. Diese beiden Techniken werden im Folgenden erläutert. Protected Regions sind geschützte Bereiche im Quelltext. Diese geschützten Bereiche werden bei einer erneuten Codegenerierung nicht mit generiertem Code überschrieben. Anfang und Ende einer Protected Region werden mit entsprechenden Kommentaren ausgezeichnet. Der folgende Pseudocode zeigt das Schema einer Protected Region [TPB + 07, Kap. 5.4]. 1 public class Person { String name = null ; 4 5 // begin protected region 6 7 // hierhin kommt der manuell geschriebene Quelltext 8 9 // end protected region } Listing 4.2: Beispiel einer Protected Region, Quelle: [TPB + 07], S. 177f Diese Technik hat einige Nachteile. Zum einen gibt es keine klare Trennung zwischen generierten und manuell erstellten Artefakten, da sich generierter und handgeschriebener Code innerhalb einer Datei vermischen. Des Weiteren muss der Entwickler daran denken nur innerhalb einer Protected Region Änderungen am Code vorzunehmen. Er kann nicht wie bei manuell erstelltem Code, alle Code-Teile beliebig ändern [PM06, Kap. 3.3]. Ein weiteres Problem besteht darin, dass generierter Code, der manuell verändert wurde, unter Versionskontrolle 18

23 Kapitel 4. Modellgetriebene Softwareentwicklung Diplomarbeit gestellt werden muss. Generell sollte generierter Code jedoch nicht in einem Versionsverwaltungsystem erfasst werden. Da das Modell die Rolle der Quelltexte einnimmt, sind die generierten Quelltexte nur eine Art Zwischenprodukt, ähnlich den Class-Dateien bei Java [SVEH07, Kap. 2.2]. Weiterhin wird der Generator bei der Verwendung von Protected Regions unter Umständen sehr komplex, da er sich um die Verwaltung, Erkennung und Erhaltung der geschützten Bereiche kümmern muss. In der Praxis geht dabei oft Code verloren, da es nicht immer einfach ist Protected Regions zu erhalten. Zuletzt kommt noch hinzu, dass der Entwickler bei Protected Regions den generierte Code verstehen muss, was nicht immer einfach und manchmal auch nicht sinnvoll ist [SVEH07, Kap. 8.5]. Vorteil von Protected Regions ist, dass der Generator die volle Kontrolle über die generierten Dateien behält. Des Weiteren wird die vom Modell vorgegebene Architektur eingehalten [TPB + 07, Kap. 5.4]. Wird der generierte Code und der manuell erstellte Code in seperate Dateien getrennt, ergeben sich dagegen andere Probleme. Zunächst einmal muss hierbei abhängig vom Artefakttyp (Java-Klasse, Properties-Datei, XML-Datei, etc.) eine andere Strategie entwickelt werden, um generierten Code und handgeschriebenen Code zusammenzuführen. Bei objektorientierten Sprachen kann beispielsweise mit Vererbung oder Delegation gearbeitet werden. Bei nicht objektorientierten Sprachen kann man Includes benutzen. Unter Includes werden hier Anweisungen verstanden, die Code aus anderen Dateien ausführen [PM06, Kap. 3.3]. In jedem Fall hat der Generator nicht mehr die volle Kontrolle über alle Dateien. Bei strukturellen Änderungen beispielsweise, werden die generierten Dateien vom Generator angepasst. Die manuell erstellten Artefakte müssen jedoch per Hand nachgezogen werden. Der Vorteil dieser Technik generierten und manuell erstellten Quelltext zusammenzubringen ist, dass es eine klare Trennung von generiertem und handgeschriebenem Code gibt. Die generierten Artefakte müssen nicht in das Kontrollsystem gestellt werden. [TPB + 07, Kap. 5.4]. Um aus dem Modell lauffähige Software zu erzeugen, wird ein Generator oder Interpreter benötigt. Ein Generator ist eine Software, die aus einem Modell Quellcode erzeugt. Im Gegensatz dazu liest ein Interpreter das Modell zur Laufzeit ein und führt daraufhin durch das Modell festgelegte Aktionen aus. Für die obenstehende Definition bedeutet dies, dass mit Hilfe des Generators oder Interpreters aus dem Modell eine durch den Rechner ausführbare Software entsteht. Das Modell dient nicht als Vorlage für die manuelle Implementierung, sondern der Quellcode wird automatisch aus dem Modell erzeugt. Der Grundgedanke hierbei ist, dass Änderungen immer an dem Modell vollzogen werden und der 19

24 KAPITEL 4. MODELLGETRIEBENE SOFTWAREENTWICKLUNG erzeugte Code somit immer konsistent ist [SVEH07, Kap. 2.1]. Trompeter et al. formulieren die Zielsetzung noch etwas allgemeiner. In der modellgetriebenen Softwareentwicklung werden «möglichst viele Artefakte eines Softwaresystems [...] aus formalen Modellen abgeleitet» ([TPB + 07], S. 11). Diese Artefakte sind zum einen Quelltexte. Zum anderen sind es alle weiteren Dateien, die zur Ausführung der Anwendung nötig sind wie beispielsweise Konfigurationsdateien oder Datenbankskripte. Darüber hinaus können Artefakte auch für die Entwicklung notwendige Dokumente und sonstige Dateien sein wie Dokumentationsdateien oder Softwaretests. [TPB + 07] 4.5 Model Driven Architecture MDA ist ein Standard der Object Management Group (OMG). [SVEH07, Anhang A] - OMG * 1989 gegründet * offenes Konsortium aus etwa 800 Firmen weltweit * OMG erstellt herstellerunabhängige Spezifikationen zur Interoperabilität und Portabilität von Softwaresystemen. * Bekannte Spezifikationen sind beispielsweise CORBA (Common Object Request Broker Architecture) oder UML (Unified Modeling Language) * Die beiden primären Motivationen sind bei MDA dementsprechend Interoperabilität und Portabilität - MDA verwendet MOFals das einzige Metametamodell - MDA sieht vor das DSLs auf Basis der MOFformuliert werden - für die MOFwird XMI (XML Metadata Interchange) als XML-Mapping verwendet. Mit Hilfe von XMI werden mit der MOF erstellte Modelle unter den verschiedenen Tools ausgetauscht. - seit UML2.0 basiert UML komplett auf der Meta Object Facility (MOF), dadurch ist UML formal beschrieben und kann zur Konstruktion von Metamodellen herangezogen werden. - OMGsieht den Hauptzweck von MDA darin, die Anwendungslogik plattformunabhängig entwickeln zu können - plattformunabhängig bedeutet in diesem Zusammenhang, dass die Anwendungslogik weder auf eine bestimmte Programmiersprachen, noch auf ein bestimmtes Betriebssystem, etc. festgelegt ist. - dazu wird bei MDA die Anwendungslogik MOF-basiert modelliert. - mittels entsprechender Transformationen werden aus diesem Modell dann die plattformspezifischen Implementierungen generiert. - Zentrales Konzept bei MDA ist das PIM (Platform Independent Model). Das ist das Modell der Anwendungslogik völlig plattformunabhängig. - aus dem PIM wird durch eine geeignete Transformation ein PSM (Platform Specific Model) erstellt. Dies ist platformspezifisch z. B. spezifisch für Java EE oder.net - daraus können durch weitere Transformationen noch weitere, spezifischere Modelle erstellt werden bis letztendlich der Quellcode generiert wird. - weiteres Modell ist das PDM (Platform Description Model). Dies ist das Metamodell(?) der Zielplattform. Hier 20

25 Kapitel 4. Modellgetriebene Softwareentwicklung Diplomarbeit werden die Informationen zur Zielplattform gehalten. 21

26 Kapitel 5 Umsetzungmöglichkeiten Model-Driven Development in the enterprise -> tool vergleich 5.1 Metamodellierung - MOF - Ecore - Klassen - XML/XSD 5.2 Domänenspezifische Sprachen/Modellierung - UML - EMF - GMF + Editor - Xtext + Editor - GME + Editor 5.3 Generator - AndroMDA - JET/JMerge - oaw - (SmartQVT, Tefkat, Medini QVT) 22

27 Kapitel 6 Eigener Ansatz Vergleich der zuvor beschriebenen Tools und Auswahl. Objekte kurz beschreiben Trickies. 23

28 Kapitel 7 Anwendertests kurze Einführung Aufgaben (anlegen scene, modul,... ) Zeit messen 24

29 Kapitel 8 Ergebnisse Testauswertung kritische Betrachtung probleme mit delta pack 25

30 Literaturverzeichnis [AK03] Atkinson, Colin ; Kühne, Thomas: Model-driven development: a metamodeling foundation. In: IEEE Software 20 (2003), Nr. 5, S [BBD + 03] Barnert, Silvia ; Boeckh, Martin ; Delbrück, Dr. M. ; Greulich, Walter ; Heinisch, Carsten ; Karcher, Ruth ; Lienhart, Klaus ; Radons, Dr. G. ; Voets, Stephan ; Wallenwein, Klaus: Einführung in die Theoretische Informatik. Formale Sprachen und Automatentheorie. F. A. Brockhaus, ISBN [CM07] [Fow05] [MM03] Cuadrado, Jesús S. ; Molina, Jesús G.: Building Domain-Specific Languages for Model-Driven Development. In: IEEE Software 24 (2007), Nr. 5, S Fowler, Martin: Language Workbenches: The Killer-App for Domain Specific Languages? languageworkbench.html. Version: Letzte Änderung am 12. Jun. 2005, besucht am 13. Mai 2008 Miller, Joaquin (Hrsg.) ; Mukerji, Jishnu (Hrsg.): MDA Guide Version Version: Letzte Änderung am 12. Jun. 2003, besucht am 15. Mai 2008 [Obj07] Object Management Group: About the Object Management Group. gettingstartedindex.htm. Version: Letzte Änderung am 9. Nov. 2007, besucht am 9. Mai 2008 [PM06] Petrasch, Roland ; Meimberg, Oliver: Model Driven Architecture - Eine praxisorientierte Einführung in die MDA. 1. Auflage. dpunkt.verlag, ISBN

31 Literaturverzeichnis Diplomarbeit [Sch96] Schiedermeier, Prof. Dr. R.: Klassifikation von Fehlern. fh-muenchen.de/~schieder/programmieren-1-ws96-97/ fehlerarten.html#section_10_1_3. Version: Letzte Änderung am 10. Okt. 1996, besucht am 9. Mai 2008 [SVEH07] Stahl, Thomas ; Völter, Markus ; Efftinge, Sven ; Haase, Arno: Modellgetriebene Softwareentwicklung - Techniken, Engineering, Management. 2. Auflage. dpunkt.verlag, ISBN [TPB + 07] Trompeter, Jens (Hrsg.) ; Pietrek, Georg (Hrsg.) ; Beltran, Juan Carlos F. ; Holzer, Boris ; Kamann, Thorsten ; Kloss, Michael ; Mork, Steffen A. ; Niehues, Benedikt ; Thoms, Karsten: Modellgetriebene Softwareentwicklung - MDA und MDSD in der Praxis. entwickler.press,

32 Glossar Constraints Bedingungen, die erfüllt sein müssen, damit ein Modell wohlgeformt ist. 10 IDE Anwendungsprogramm zur Entwicklung von Software 11 Meta Object Facility Metametamodell der OMG 8, 28 Object Management Group Internationales Konsortium, das sich mit der Entwicklung von Technologie- Standards beschäftigt. Die OMG wurde 1989 gegründet.[obj07] 8, 28 Ruby Dynamisch getypte Programmiersprache, die ursprünglich von Yukihiro matz Matsumoto entwickelt wurde. 13 valide siehe wohlgeformt 10, 11 wohlgeformt Ein Ausdruck ist wohlgeformt, wenn alle Regeln, die die statische Semantik festlegt, erfällt sind

33 Abkürzungsverzeichnis DSL Domain Specific Language 8 MDA Model Driven Architecture 5, 20 MDD Model Driven Development 5, 11, 17 MDSD Model Driven Software Development 5 MOF Meta Object Facility 8 OMG Object Management Group 8, 20 UML Unified Modeling Language 8 29

34 Abbildungsverzeichnis 2.1 Medienstation in der Einstein Ausstellung Modellgetriebene Softwareentwicklung Begriffe der MDD, Quelle: [SVEH07, S. 28] (Meta-)Modellebenen, Quelle: Angelehnt an [SVEH07, S. 60] und [PM06, S. 49] Modellierung und Validierung, Quelle: [TPB + 07, S. 67] Modellmodifikation, Quelle: [SVEH07, S. 199] Modell-Weaving, Quelle: [SVEH07, S. 200] Modelltransformation, Quelle: [SVEH07, S. 200]

Entwicklung eines MDD-Tools für eine virtuelle Ausstellung

Entwicklung eines MDD-Tools für eine virtuelle Ausstellung Diplomarbeit Entwicklung eines MDD-Tools für eine virtuelle Ausstellung Julia Damerow Technische Fachhochschule Berlin University of Applied Sciences Max-Planck-Institut für Wissenschaftsgeschichte Eingereicht

Mehr

MDSD Einführung und Überblick

MDSD Einführung und Überblick Model Driven Software Development MDSD Einführung und Überblick Referent: Carsten Schädel Seite 2 / 33 Ziele Grundgedanke Glossar der wichtigsten Begriffe Seite 3 / 33 Glossar Seite 4 / 33 mögliche Definitionen:

Mehr

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

Model Driven Architecture

Model Driven Architecture Roland Petrasch Oliver Meimberg Model Driven Architecture Eine praxisorientierte Einführung in die MDA Mit Gastbeiträgen von Florian Fieber und Karsten Thoms dpunkt.verlag Inhaltsverzeichnis Vorwort 1

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Jens Trompeter (Hrsg.), Georg Pietrek (Hrsg.), Juan Carlos Flores Beitran, Boris Holzer, Thorsten Kamann, Michael Kloss, Steffen A. Mork, Benedikt Niehues, Karsten Thoms Modellgetriebene Softwareentwicklung

Mehr

Software-Engineering im Sommersemester 2014

Software-Engineering im Sommersemester 2014 Methodische Grundlagen des Software-Engineering SS 2014 Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl

Mehr

Grundlagen von MOF. Alexander Gepting 1

Grundlagen von MOF. Alexander Gepting 1 Grundlagen von MOF Alexander Gepting 1 Kurzfassung Meta-Object Facility (MOF) ist ein Standard der OMG der im Rahmen der Standardisierung von Modellierungstechniken für verteilte Architekturen und Softwaresysteme

Mehr

Potentiale modellgetriebener Softwareentwicklung

Potentiale modellgetriebener Softwareentwicklung Model Driven Software Development Potentiale modellgetriebener Softwareentwicklung Referent: Hartwig Tödter Seite 2 / 23 Inhaltsverzeichnis 1. Grundideen modellgetriebener Softwareentwicklung 2. Vorteile

Mehr

Software Factories WS 2017/18. Prof. Dr. Dirk Müller. 3 Modellgetriebene Softwareentwicklung

Software Factories WS 2017/18. 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

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 (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

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013 Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 7. Februar 2013 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion

Mehr

Modellgetriebene Entwicklung von Pervasive Games

Modellgetriebene Entwicklung von Pervasive Games AW1 Vortrag von Hauke Wittern Modellgetriebene Entwicklung von Pervasive Games Entwicklung einer domänenspezifischen Sprache 09.12.2008 Agenda Motivation Pervasive Games Modellgetriebene Softwareentwicklung

Mehr

MDA-Praktikum, Einführung

MDA-Praktikum, Einführung MDA-Praktikum, Einführung Prof. Dr. Peter Thiemann Universität Freiburg 02.11.2005 Was ist MDA? MDA = Model-Driven Architecture Initiative der OMG Object Management Group: CORBA, UML,... offenes Firmenkonsortium

Mehr

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

Definition von domänenspezifischen Sprachen mit Xtext: Einführung Definition von domänenspezifischen Sprachen mit Xtext: Einführung 28. November 2012 Taentzer Modellgetriebene Softwareentwicklung 246 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen

Mehr

Eclipse Modeling Framework

Eclipse Modeling Framework 1 / 14 Eclipse Modeling Framework Stefan Berlik Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universität Siegen 14. November 2007 Was ist das Eclipse Modeling Framework (EMF)?

Mehr

Definitionen/Vorarbeit zum Thema Java

Definitionen/Vorarbeit zum Thema Java Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript

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

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt Sören Bühler buso1011 36811 Julia Haßlinger haju1013 37141 Anja Heinzberger hean1017 36622 Agenda Allgemeines Historie

Mehr

Model Driven Architecture

Model Driven Architecture Model Driven Architecture Grundlagen, Spezifikationen und Standards Hauptseminar: Ausgewählte Themen des Softwareengineering Kevin Muschter, 29.05.2007 Traditionelle Softwareentwicklung Grundlagen der

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

Einführung in das Eclipse Modeling Framework (EMF)

Einführung in das Eclipse Modeling Framework (EMF) 1 / 14 Einführung in das Eclipse Modeling Framework (EMF) Timo Kehrer Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universität Siegen 04. November 2008 Was ist EMF? Eclipse Modeling

Mehr

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse Dr. Lothar Wendehals Softwarearchitekt Axel Terfloth Leiter Forschung und Entwicklung Software Engineering 2009 4. März 2009, Kaiserslautern

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

MDSD in der Praxis. Dr. Shota Okujava.

MDSD in der Praxis. Dr. Shota Okujava. MDSD in der Praxis Dr. Shota Okujava shota.okujava@isento.de www.isento.de Agenda Einführung/Begriffsdefinition Softwareentwicklungsprozess und MDSD Technologien und Werkzeuge Probleme und Herausforderungen

Mehr

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015 Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 11. Februar 2015 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion

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

Einführung in das Eclipse Modeling Framework (EMF)

Einführung in das Eclipse Modeling Framework (EMF) 1 / 14 Einführung in das Eclipse Modeling Framework (EMF) Maik Schmidt Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universität Siegen 21. April 2009 Was ist EMF? Eclipse Modeling

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

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis

Einfach generieren. Susanne Klar, Michael Klar. Generative Programmierung verständlich und praxisnah ISBN Inhaltsverzeichnis Einfach generieren Susanne Klar, Michael Klar Generative Programmierung verständlich und praxisnah ISBN 3-446-40448-1 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40448-1

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

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen Fachhochschule Köln Cologne University of Applied Sciences Fakultät für Informations-, Medien- und Elektrotechnik Institut für Automatisierungstechnik Labor für Informations- und Automatisierungstechnik

Mehr

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften Proseminarvortrag Werkzeugunterstützung für sichere Software Jens Knipper Fakultät für Informatik Technische Universität Dortmund 31.

Mehr

22. Januar Gruppe 2: TOPCASED

22. Januar Gruppe 2: TOPCASED 22. Januar 2008 Aufgabenstellung Modellgetriebene Softwareentwicklung auf Basis von am Beispiel eines Seminarverwaltungssystems Ziel Entwicklungsprozess Anforderungen & Codegenerierung Modellierung & Templates

Mehr

Thema 5 Domain Specific Languages

Thema 5 Domain Specific Languages SE Vertiefung Beuth-Hochschule Berlin Thema 5 Domain Specific Languages MOF-Schichten (c) schmiedecke 11 SE3-5-metamodellierung 2 Was ist eine DSL? Domain Specific Language: Sprache zur Beschreibung (Modellierung)

Mehr

Modellbasiertes Testen mit UTP

Modellbasiertes Testen mit UTP Modellbasiertes Testen mit UTP Daniel Löffelholz 16. Dezember 2008 Einführung Motivation Grundlagen Modellbasiertes Testen Einordnung Vorgehen Technologien UML Testing Profile Beispiel Ausblick Anwendungsbeispiel

Mehr

Einführung in das Eclipse Modeling Framework (EMF)

Einführung in das Eclipse Modeling Framework (EMF) Einführung in das Eclipse Modeling Framework (EMF) Timo Kehrer, Cristoph Berane Praktische Informatik November 2010 Überblik Ecore Was ist EMF? EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling

Mehr

Programme erstellen in Java

Programme erstellen in Java Programmieren mit Java Modul 0 Programme erstellen in Java Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Schreiben von Computerprogrammen 3 2.1 Computerprogramme bestehen aus Daten und Instruktionen.......

Mehr

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

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA) UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA) IBM Software Group, Rational Austria 2011 IBM Corporation Agenda Was ist MDA und welche Probleme

Mehr

Wer ich bin Christoph Knauf

Wer ich bin Christoph Knauf Wer ich bin Christoph Knauf xing.com/profile/christoph_knauf2 @C_Knauf christoph.knauf@itemis.de Wer ist itemis? Wer ist itemis? Gegründet 2003 Wer ist itemis? Gegründet 2003 Gründergeführt Wer ist itemis?

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

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Dominik Kirsten Daniel Schäferbarthold Trier, 21.01.2008 1 Gliederung 1. Einführung 1.1 Anforderungen an

Mehr

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

Modellgetriebene Softwareentwicklung. Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg Modellgetriebene Softwareentwicklung Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter: Gabriele Taentzer, Daniel Strüber Kontakt:

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

Model-Driven Software Engineering (HS 2011)

Model-Driven Software Engineering (HS 2011) Model-Driven Software Engineering (HS 2011) Dr. J. Küster Übungsblatt I Abgabe: Am 15.11.2011 vor der Vorlesung Voraussetzungen: Installation von Eclipse und Eclipse Modeling Framework Installation der

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Ausarbeitung Referat zur MDA

Ausarbeitung Referat zur MDA Model Driven Architecture (MDA) Florian Betreuer: Marco Musconi Software Engeneering Project WS 2006/07 07. Februar 2007 SEPR WS 2006/07 Seite 1 Inhaltsverzeichnis Historie 3 CASE 3 Objektorientierung

Mehr

Objektorientierte Programmierung II

Objektorientierte Programmierung II Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem

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

Sommersemester Implementierung I: Struktur

Sommersemester Implementierung I: Struktur Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.

Mehr

Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen

Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen 1 / 30 Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen Zwischenvortrag zur Diplomarbeit Steffen Conrad (235183) Research Group Software Construction RWTH Aachen

Mehr

Vorlesung Programmieren

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

Mehr

MDRE die nächste Generation des Requirements Engineerings

MDRE die nächste Generation des Requirements Engineerings MDRE die nächste Generation des Requirements Engineerings Tom Krauß, GEBIT Solutions GmbH Copyright 2007 GEBIT Solutions Agenda Requirements Engineering heute eine Bestandsaufnahme Modell-Driven Requirements

Mehr

Poseidon for UML. Einführung. Andreas Blunk

Poseidon for UML. Einführung. Andreas Blunk Poseidon for UML Einführung Andreas Blunk Gliederung 1) Editionen/Lizenzen 2) Die Programmoberfläche 3) Modelle speichern 4) Einführung am lebenden Objekt 5) Generierung (Doc & Code) 6) Funktionsumfang

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Sinn der Übung: Vertiefung des Vorlesungsstoffes Vorbereitung zum Lösen der Übungsaufgaben Besprechung der Lösungen nach Abgabe Materialien: https://www.informatik.uni-leipzig.de/~stjaenicke/mup1/ Einschreibung

Mehr

Einführung in die Modellgetriebene Software-Entwicklung (Stichworte)

Einführung in die Modellgetriebene Software-Entwicklung (Stichworte) Einführung in die Modellgetriebene Software-Entwicklung (Stichworte) Udo Kelter 02.07.2007 Zusammenfassung dieses Lehrmoduls Die modellgetriebene Software-Entwicklung (model driven software development,

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

Einführung in die Modelltransformation mit Xtend

Einführung in die Modelltransformation mit Xtend Einführung in die Modelltransformation mit Xtend 12. Dezember 2012 Taentzer Modellgetriebene Softwareentwicklung 297 Überblick Xtend: Eine statisch getypte Sprache, die zur Modellzu-Text-Transformation

Mehr

COPE COuPled Evolution of metamodels and models

COPE COuPled Evolution of metamodels and models COPE COuPled Evolution of metamodels and models Diplomarbeit in Zusammenarbeit mit der BMW Car IT (Betreuer: Elmar Jürgens, Sebastian Benz) Markus Herrmannsdörfer 7. November 2007 Perlen der Informatik

Mehr

Automatisierte Architekturanalyse unter Einsatz von UML 2.0 Modellen

Automatisierte Architekturanalyse unter Einsatz von UML 2.0 Modellen Automatisierte Architekturanalyse unter Einsatz von UML 2.0 Modellen Vorstellung: Thorben Pergande Bisheriges Studium: B.Sc. Angewandte Informatik an der HAW Professoren an dieser Ausarbeitung beteiligt:

Mehr

Programmiersprache. Emily & rica

Programmiersprache. Emily & rica Programmiersprache Emily & rica inhaltsangabe Programmiersprache Def inition/funktion Arten Gängige Algorithmus/Syntax Compiler, Interpreter Def inition Unterscheidung Vor- und Nachteile Compiler/ Interpreter

Mehr

Codegenerierung mit Xtend. 21. Januar 2015

Codegenerierung mit Xtend. 21. Januar 2015 Codegenerierung mit Xtend 21. Januar 2015 Überblick Xtend bietet einen Template-basierten Ansatz zur Codegenerierung Xtend enthält eine spezielle Template-Sprache. Das Modell kann beliebig benutzt werden,

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

Zusammenfassung der Diplomarbeit Entwicklung eines MDD-Tools für eine virtuelle Ausstellung

Zusammenfassung der Diplomarbeit Entwicklung eines MDD-Tools für eine virtuelle Ausstellung Zusammenfassung der Diplomarbeit Entwicklung eines MDD-Tools für eine virtuelle Ausstellung Julia Damerow Eingereicht an der Technischen Fachhochschule Berlin am Fachbereicht VI Informatik und Medien Studiengang

Mehr

Stratego/XT und ASF+SDF Meta-Environment. Paul Weder Seminar Transformationen Datum:

Stratego/XT und ASF+SDF Meta-Environment. Paul Weder Seminar Transformationen Datum: Stratego/XT und ASF+SDF Meta-Environment Paul Weder Seminar Transformationen Datum: 20.01.2006 Gliederung Allgemeines ASF+SDF Meta-Environment Stratego/XT Zusammenfassung/Vergleich SDF (Syntax Definition

Mehr

Vorlesung Software Engineering

Vorlesung Software Engineering Vorlesung Software Engineering 6 Unified Modeling Language: Einführung Prof. Dr. Dirk Müller Übersicht Einführung Software-Entwicklungsprozesse Anforderungsanalyse Prozessanalyse und -modellierung Objekt-orientierte

Mehr

Softwaremodellierung innerhalb eines SAP ABAP Projekts im agilen Umfeld

Softwaremodellierung innerhalb eines SAP ABAP Projekts im agilen Umfeld Softwaremodellierung innerhalb eines SAP ABAP Projekts im agilen Umfeld 1. Die Kosten der Softwareentwicklung Warum es manchmal sinnvoll ist, am Anfang mehr zu tun, als nötig ist. Modellgetrieben Software-Entwicklung

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

Bridging Microsoft Oslo and Eclipse EMF

Bridging Microsoft Oslo and Eclipse EMF Bridging Microsoft Oslo and Eclipse EMF Seminar Modellgetriebene Softwareentwicklung Abschlusspräsentation Stanley Hillner Microsoft Codename Oslo Microsofts neuestes Werkzeug für MDSD Heißt jetzt MS SQL

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

Mehr

Grundlagen der modellgetriebenen Softwareentwicklung. Teil 2: Modellierung

Grundlagen der modellgetriebenen Softwareentwicklung. Teil 2: Modellierung Grundlagen der modellgetriebenen Softwareentwicklung Teil 2: ierung Prof. Dr. H. Drachenfels Version 8.0 16.9.2016 Allgemeiner begriff nach Stachowiak [1973] (sinngemäß entnommen http://de.wikipedia.org/wiki/)

Mehr

2.1 Motivation modellgetriebener Ansätze Die Geschichte der Softwareentwicklung ein historischer

2.1 Motivation modellgetriebener Ansätze Die Geschichte der Softwareentwicklung ein historischer 1 EINLEITUNG...1 1.1 An wen wendet sich dieses Buch...1 1.1.1 Entscheider/Manager/Projektleiter...1 1.1.2 Berater...2 1.1.3 Architekten und Entwickler...2 1.2 Ziele des Buches...2 1.2.1 Wie lässt sich

Mehr

Werkzeugunabhängigkeit bei der Modellierung Schwierigkeiten und mögliche Lösungsansätze

Werkzeugunabhängigkeit bei der Modellierung Schwierigkeiten und mögliche Lösungsansätze Werkzeugunabhängigkeit bei der Modellierung Schwierigkeiten und mögliche Lösungsansätze Oliver Hofrichter (hofrichter@tzi.de) Lars Hamann (lhamann@tzi.de) Überblick Motivation Kontext Warum Werkzeugunabhängigkeit

Mehr

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

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Modellierung CORBA-basierter Anwendungssysteme mit der UML

Modellierung CORBA-basierter Anwendungssysteme mit der UML Verteidigung der Diplomarbeit über das Thema: Modellierung CORBA-basierter Anwendungssysteme mit der UML Andreas Mucha Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl

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

Waitomo. Compilerbaupraktikum Wintersemester 2006/2007. Stefan Wehr. 24. Oktober 2006

Waitomo. Compilerbaupraktikum Wintersemester 2006/2007. Stefan Wehr. 24. Oktober 2006 Waitomo Compilerbaupraktikum Wintersemester 2006/2007 Stefan Wehr 24. Oktober 2006 1 Einleitung Quellsprache für das Compilerbaupraktikum ist Waitomo, ein Java-ähnliche Sprache mit Unterstützung für Typklassen

Mehr

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

Einführung in das Graphical Modeling Framework. 13. November 2012 Einführung in das Graphical Modeling Framework 13. November 2012 100 Überblick Was ist der Unterschied zwischen abstrakter Syntax und konkreter Syntax? Welche Arten von graphischen Editoren gibt es? Freihandeditoren

Mehr

Dynamisches EMF und Codegenerierung mit JET. 14. November 2012

Dynamisches EMF und Codegenerierung mit JET. 14. November 2012 Dynamisches EMF und Codegenerierung mit JET 14. November 2012 Überblick Wie kann eine Modell-zu-Text-Transformation entwickelt werden? Referenzanwendung(en) möglichst generell schreiben und analysieren

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

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

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform

Mehr

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

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr. Language Workbench Vortrag von:! Aktuelle Themen der Softwaretechnologie Arthur Rehm Steven Cardoso Betreut von: Prof. Dr. Reichenbach [1] !2 Index Kontext Domain Specific Language (DSL) Language Workbench

Mehr

Werkzeugunterstützung für UML Profiles. Verteidigung des Großen Belegs Andreas Pleuß

Werkzeugunterstützung für UML Profiles. Verteidigung des Großen Belegs Andreas Pleuß Werkzeugunterstützung für UML Profiles Verteidigung des Großen Belegs Andreas Pleuß Aufgabenstellung Sammlung der Anforderungen an UML Profiles Untersuchung bestehender UML-CASE-Tool Unterstützung Untersuchung

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

Notationen zur Prozessmodellierung

Notationen zur Prozessmodellierung Notationen zur Prozessmodellierung August 2014 Inhalt (erweiterte) ereignisgesteuerte Prozesskette (eepk) 3 Wertschöpfungskettendiagramm (WKD) 5 Business Process Model and Notation (BPMN) 7 Unified Modeling

Mehr

Unified Modeling Language 2

Unified Modeling Language 2 Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was

Mehr

Thema 3 Das UML- Metamodell

Thema 3 Das UML- Metamodell SE Vertiefung Beuth-Hochschule Berlin Thema 3 Das UML- Metamodell Ecore passte auf eine Seite (c) schmiedecke 11 SE3-3-UML-Superstructure 2 http://download.eclipse.org/modeling/emf/emf/javadoc/2.7.0/org/eclipse/emf/ecorel

Mehr

MODELLGETRIEBENE SOFTWAREENTWICKLUNG AM BEISPIEL EINER BAUSTATIK-SOFTWAREPLATTFORM

MODELLGETRIEBENE SOFTWAREENTWICKLUNG AM BEISPIEL EINER BAUSTATIK-SOFTWAREPLATTFORM MODELLGETRIEBENE SOFTWAREENTWICKLUNG AM BEISPIEL EINER BAUSTATIK-SOFTWAREPLATTFORM Sebastian Fuchs Institut für Bauinformatik, Technische Universität Dresden TragWerk Software sf@tragwerk-software.de Kurzfassung:

Mehr

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

Software Factories SS Prof. Dr. Dirk Müller. 6 Eclipse Modeling Framework Software Factories 6 Eclipse Modeling Framework SS 2017 Prof. Dr. Dirk Müller Übersicht EMF-Einführung Technologien Codegenerierung Metamodell Konsistenz von EMF-Modellen Erstellung eines Editors für Bibliotheksinstanzen

Mehr

Dialogentwicklung mit Hilfe des Model Driven Architecture Ansatzes

Dialogentwicklung mit Hilfe des Model Driven Architecture Ansatzes 18.04.2007 Dialogentwicklung mit Hilfe des Model Driven Architecture Ansatzes Peter Mössinger, LRP Landesbank Rheinland-Pfalz Der MDA-Ansatz liefert vollständig neue Möglichkeiten im Bereich der Softwareentwicklung.

Mehr

Jochen Bauer 08.01.2010

Jochen Bauer 08.01.2010 08.01.2010 Um was geht s und wie läuft s ab? Eclipse-EMP-MDT: Standards unter einem Dach! Gliederung 1. der Model (MDT) 2. Model-Driven- (MDD) und MDT 3. Interne Domain-Specific-Languages (DSL) 4. 5. 6.,

Mehr

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung Thomas Stahl Markus Völter Sven Efftinge Arno Haase Modellgetriebene Softwareentwicklung Techniken, Engineering, Management Mit Beiträgen von Jörn Bettin, Simon Helsen und Michael Kunz 2., aktualisierte

Mehr

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert Motivation UML 2.0 nicht als ADL im Sinne von Taylor/Medvidovic entworfen. Warum UML als ADL? weit

Mehr

WIRTSCHAFTSINFORMATIK

WIRTSCHAFTSINFORMATIK 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 Jan.Schuermeier@gmx.de

Mehr