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 MDD Entwicklungsumgebung 3.oAW – openArchitecture Ware - Features - Komponenten - Zusammenfassung 4.Referenzen 5.Übung 2 Was ist MDD? ● MDD ist ein Vorgehensmodell (Prozeß) für Softwareentwicklung ● MDD ist durch die OMG definiert ● Zentrale Elemente sind Modelle: – PIM (Platform Independet Model) – PSM (Platform Specific Model) – Code – Transformationen zwischen Modellen 3 Wozu MDD? ● ● ● heutige Systeme sind komplex Bewältigung der Komplexität mittels: - Abstraktion - Modellierung - Automatisierung Modell getriebene Entwicklung: – allg. Lösung des Problems Platform unabhängig – mittels Transformationen Umwandlung in Platform abhängigere Modelle 4 Wozo MDD? Gute Software wird wiederverwendet ● ● Schlechte stribt aus Anforderungen ändern sich ● 5 Wozu MDD? Komplexität Modellierung Bsp.: UML (MDD) höhere Progr.sprachen Abstraktion Assembler bin. Code Zeit ● Aus Erfahrung weiß man, Erhöhen des Abstraktionslevels hilft Komplexität zu bewältigen 6 Model Driven Development 7 Definition MDD nach OMG ● MOF – meta object facility ● UML – unified modeling language ● OCL – object constraint language ● XMI – XML meta interchange ● MDD -> Model Driven Architecture (Entsteht aus dem8Prozeß) Model Driven Development ● ● ● Es werden Modelle von Systemen erstellt Modelle werden durch Transformationen in andere Modelle übertragen Platformen und Systeme werden durch Modelle abstrahiert/gekappselt und mittels Transformationen ineinader 9 überführt Model Driven Development ● Bsp.: – Modell M: ● ● – Modell J: ● – ● ● platformunabhängig in UML Java Modell Transformation T (M->J) Bei Änderung der Zielplatform, muss Modell M nicht verändert werden Transformation T 10 wird geändert Model Driven Development ● MDD verbessert im Software-Prozess: – Produktivität ● – Portabilität ● – PIM sind platformunabhängig PIM Interoperabilität ● – Hauptziel PIM T bridges (Transitivität) PSM (SQL) T bridges Pflege und Dokumentation 11 ● Kaskade zwischen Modellen und Code PSM (JAVA) Konzepte ● System ● Views ● Modell ● Platform ● Transformationen 12 Konzepte ● System: – Das zu modellierende System – (Das zu erstellende Software-System) 13 Konzepte Views: ● ● ● computation independent viewpoint ● domain model od. Vokabular ● Business-Modell platform independent viewpoint ● beschr. System, ohne Details der Platform zu zeigen platform specific viewpoint ● beachtet Platformeigenschaften 14 Views ● verschiedene Ansichten auf ein System 15 Konzepte Platform: A platform is a set of subsystem and technologies that provide a coherent set of functionality through interfaces and specified usage patterns, which any application supported by that platform can use without concern for the details of how the functionality provided by the platform is implemented. 16 Konzepte Modell: A Model of a system is a description or specification of that system and its environment for some certain purpose. A model is often presented as a combination of drawings and text. The Text may be in a modelling language or in a structural language. 17 Konzepte ● Bsp.: PIM ● Bsp.: PSM Tabelle MS­SQL MY­SQL Oracle http://www.enic.fr/people/Van wormhoudt/siteEMFOCL/tutorie l/images/libuml.gif 18 Datei Konzepte ● ● Ein Modell ist in wolldefinierten Sprache geschrieben. wolldefiniert bedeutet, dass der Computer die Sprache verarbeiten kann – für automatische Transformationen 19 Transformation ● ● transformation definition beschreibt wie ein Modell verändert werden soll transformation definitions werden zwischen Sprachen definiert 20 Transformationen ● Eigenschaften, die Transformationen erfüllen müssen: – Traceability ● – Incremental Consistency ● – Änderungen sollten dokumentiert werden manuelle Änderungen am Code sollten durch Transformationen nicht überschrieben werden (Bidirectionality) 21 Meta-Modellierung ● Wie definiert man wolldefinierte Sprachen, die Modelle beschreiben? – BNF – Metamodeling ● Ein Metamodel definiert ein Modell ● Modell ist eine Instanz eines Meta-Modells ● Bsp.: UML ist eine Instanz von MOF 22 Metamodellierung ● ● Jedes Modell hat ein Metamodell, dass eindeutig ist: Nur Elemente, die im Metamodell erklärt werden, dürfen im Modell benutzt werden Validierung eines Modells gegen ein 23 Metamodell möglich Meta-Modellierung nach OMG M3 Meta­Metamodell describes M2 instance of Metamodell describes instance of Modell M1 describes M0 instance of Instanzen 24 Meta-Modellierung nach OMG MOF Meta­Metamodell describes UML instance of Metamodell describes UML­Modell instance of Modell describes Code instance of Instanzen 25 Beispiel 26 Beispiel <Nummer> Transformationen ● ● Hat man Transformationen für das Metamodell, dann kann auf jede Instanz des Metamodells die Transformation angewendet werden. OMG spricht hierbei von TrasformationRepositories <Nummer> Transformationen ● ● ● Woher und wie bekommt die Transformationen? Schwer... Es gibt Leute, die das Problem lösen und welche, die sich um die Transformationen kümmern <Nummer> MDD Framework <Nummer> MDD Entwicklungsumgebung <Nummer> MDD Tools ● Andromeda ● openArchitecture Ware <Nummer> Model Driven Development openArchitecture Ware <Nummer> Features ● ● ● ● Modulares MDA/MDD Generator Framework in JAVA für Eclipse bel. Importe, Metamodelle und Ausgaben durch Converter Ecore Metamodel, EMF (Eclipse Modeling <Nummer> Framework) Komponenten von oAW ● Metamodel/Model Editor ● Workflow Engine ● Expression Framework: ● – Xpand Language – Extend Language – Check – Validation Language – (Xtext) Recipe Framework <Nummer> ● DSL mittels GMF (Metamodel Editor <Nummer> Modell Editor <Nummer> Workflow Engine ● ● ● a declarative configurative generator engine XML basiert definiert workflow components, die sequentiell in einer einzigen JVM ausgeführt werden <Nummer> Beispiel (Workflow Engine) <Nummer> Expression Framework ● ● besteht aus den Sprachen Check, Xtend und Xpand Sprachen für Transformationen und Überprüfungen <Nummer> Check ● ● ● Check ist eine domänenspezifische Sprache, die auf die Prüfung von Modellen spezialisiert ist Syntax: Jedes Element vom Typ TypeName wird auf guard-predicate überprüft <Nummer> Xpand ● ● Wird in den Templates für die Code-Ausgabe benutzt Bsp.: <Nummer> Beispiel Xpand <Nummer> Beispiel (Code Generierung) <Nummer> Extend ● ● Sprache, mit der Erweiterungen eingefügt werden können, die von den anderen Sprachen benutzt werden können. Sprache für die Transformationen <Nummer> Recipe Framework ● ● ● definiert Regeln für Artefakte, die außerhalb des Generators definiert worden sind (Ableiten von Basisklassen) Eclipse validiert den Code gegen diese Regeln Konsistenz zwischen Modell und Code <Nummer> Recipe Framework <Nummer> DSL ● ● ● ● ● mittels GMF erstellt den Editor mit den Modellierungselementen eindeutige Sprache, es wird mit den Problemenelementen argumentiert Ecore ist das Meta-Metamodel (EMF) oAW hat Converter, die bel. Modell (z.B.: UML) in Ecore umwandeln <Nummer> oAW Features ● File decorations ● Editoren (Check, Xpand und Extend) ● ● – syntax coloring – code completition Problem markers DSL mittels GMF (graphical modeling framework) <Nummer> openArchitecture Ware Zusammenfassung oAW <Nummer> <Nummer> Bewertung ● ● Vorteile: ● kostenlos (Open Source) ● in Eclipse integriert (bekannt) ● erweiterbar/anpassbar Nachteile: ● dynamische Aspekte fehlen ● bugs ● Dokumenation ● Übersicht (Fortschritt) <Nummer> Referenzen ● ● ● ● MDA Guide Version 1.01 http://www.omg.org/cgi-bin/doc?omg/03-06-01 MDA Explained Anneke Kleppe, Jos Warmer, Wim Bast Model Driven Architecture Applying MDA to Enterprise Computing David S. Frankel OpenArchitectureWare 4.1 Expression Framework Reference EMF Recipe Framework Reference Check – Validation Language Workflow Engine Reference Xpand Language Reference http://www.eclipse.org/gmt/oaw/doc/ <Nummer> Übung ● Siehe Übungsblatt! <Nummer>