2.Model Driven Development

Werbung
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>
Herunterladen