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
Transformationen Hat man Transformationen für das Metamodell, dann kann auf jede Instanz des Metamodells die Transformation angewendet werden. OMG spricht hierbei von TrasformationRepositories
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
MDD Framework
MDD Entwicklungsumgebung
MDD Tools Andromeda openarchitecture Ware
Model Driven Development openarchitecture Ware
Features Modulares MDA/MDD Generator Framework in JAVA für Eclipse bel. Importe, Metamodelle und Ausgaben durch Converter Ecore Metamodel, EMF (Eclipse Modeling Framework)
Komponenten von oaw Metamodel/Model Editor Workflow Engine Expression Framework: Xpand Language Extend Language Check Validation Language (Xtext) Recipe Framework DSL mittels GMF
(Metamodel Editor
Modell Editor
Workflow Engine a declarative configurative generator engine XML basiert definiert workflow components, die sequentiell in einer einzigen JVM ausgeführt werden
Beispiel (Workflow Engine)
Expression Framework besteht aus den Sprachen Check, Xtend und Xpand Sprachen für Transformationen und Überprüfungen
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
Xpand Wird in den Templates für die Code-Ausgabe benutzt Bsp.:
Beispiel Xpand
Beispiel (Code Generierung)
Extend Sprache, mit der Erweiterungen eingefügt werden können, die von den anderen Sprachen benutzt werden können. Sprache für die Transformationen
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
Recipe Framework
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
oaw Features File decorations Editoren (Check, Xpand und Extend) syntax coloring code completition Problem markers DSL mittels GMF (graphical modeling framework)
openarchitecture Ware Zusammenfassung oaw
Bewertung Vorteile: kostenlos (Open Source) in Eclipse integriert (bekannt) erweiterbar/anpassbar Nachteile: dynamische Aspekte fehlen bugs Dokumenation Übersicht (Fortschritt)
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/
Übung Siehe Übungsblatt!