Sie sind auf Seite 1von 91

Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MDA
Model Driven Architecture

Christian Ranz

15. Juli 2008

1 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Inhaltsverzeichnis
1 Einführung
Motivation
Visionen und Ziele
2 MDA genauer Betrachtet
Modelle und Metamodelle
Grundlegende Konzepte
Transformationen
MDA Entwicklungsprozess
3 unterschiedliche Interpretationen
Grad der Automatisierung
Elaborationist vs Translationist
4 Fazit

2 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Einführung

The Architecture of Choice for a Changing World

3 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Einführung

Model Driven Architecture


spezifiziert durch die OMG

4 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Einführung

Model Driven Architecture


spezifiziert durch die OMG
Interpretation des MDD

4 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Einführung

Model Driven Architecture


spezifiziert durch die OMG
Interpretation des MDD
Framework zur Softwareentwicklung

4 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Einführung

Model Driven Architecture


spezifiziert durch die OMG
Interpretation des MDD
Framework zur Softwareentwicklung
weiterer Abstraktionsschritt

4 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MDA als ein weiterer Abstraktionsschritt

5 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MDA als ein weiterer Abstraktionsschritt

5 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MDA als ein weiterer Abstraktionsschritt

5 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Motivation

Probleme bei der Entwicklung moderner Softwaresysteme


immer größer und komplexer

6 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Motivation

Probleme bei der Entwicklung moderner Softwaresysteme


immer größer und komplexer
dadurch schwer zu überschauen und zu planen

6 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Motivation

Probleme bei der Entwicklung moderner Softwaresysteme


immer größer und komplexer
dadurch schwer zu überschauen und zu planen
kaum Automatisierung

6 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Motivation

Probleme bei der Entwicklung moderner Softwaresysteme


immer größer und komplexer
dadurch schwer zu überschauen und zu planen
kaum Automatisierung
geringe Produktivität

6 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Motivation

Probleme bei der Entwicklung moderner Softwaresysteme


immer größer und komplexer
dadurch schwer zu überschauen und zu planen
kaum Automatisierung
geringe Produktivität
hohe Entwicklungskosten

6 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Gründe dafür

Programmcode liegt auf einer zu niedrigen Abstraktionsebene

7 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Gründe dafür

Programmcode liegt auf einer zu niedrigen Abstraktionsebene


Programmspezifikationen sind sehr stark mit der Infrastruktur
verbunden

7 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Gründe dafür

Programmcode liegt auf einer zu niedrigen Abstraktionsebene


Programmspezifikationen sind sehr stark mit der Infrastruktur
verbunden
Das “Business to Software Mapping“ wird nicht archiviert

7 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

zu geringe Abstraktionsebene
class Umdrehungsmesser {
private int umdrehungen ;
public Umdrehungsmesser () {}
public void startZaehlen () {}
public int stoppZaehlen () {}
}
class Tempomat {
private Umdrehungsmesser umdrehungsmesser ;
private float u md r e hu n g en P r oM e t er ;
private float s ol l G es c h wi n d ig k e it ;
private double umdrehungen ;
private static Tempomat tempomat ;
private Tempomat () {}
public static Tempomat Instance () {}
public bool s e t S o l l G e s c h w i n d i g k e i t () {}
public void startKalibrieren () {}
public void stoppKalibrieren () {}
}

8 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

zu niedrige Abstraktionsebene

9 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

starke Verknüpfung mit der Infrastruktur

10 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Visionen und Ziele der MDA

Effizienzsteigerung

11 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Visionen und Ziele der MDA

Effizienzsteigerung
Steigerung der Softwarequalität

11 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Visionen und Ziele der MDA

Effizienzsteigerung
Steigerung der Softwarequalität
bessere Wiederverwendbarkeit

11 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Visionen und Ziele der MDA

Effizienzsteigerung
Steigerung der Softwarequalität
bessere Wiederverwendbarkeit
besserer Umgang mit einem Technologiewechsel

11 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Der Begriff MDA

Model Driven Architecture

12 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Modele und Metamodelle

Modelle ...
sind ”menschenfreundlich“

13 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Modele und Metamodelle

Modelle ...
sind ”menschenfreundlich“
ermöglichen einen hohen Abstraktionsgrad

13 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Modele und Metamodelle

Modelle ...
sind ”menschenfreundlich“
ermöglichen einen hohen Abstraktionsgrad
helfen Systeme zu verstehen

13 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Modele und Metamodelle

Modelle ...
sind ”menschenfreundlich“
ermöglichen einen hohen Abstraktionsgrad
helfen Systeme zu verstehen
erleichtern das Finden von Fehlern

13 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Modele und Metamodelle

Modelle ...
sind ”menschenfreundlich“
ermöglichen einen hohen Abstraktionsgrad
helfen Systeme zu verstehen
erleichtern das Finden von Fehlern
dokumentieren ein System

13 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Metamodelle

14 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Anforderungen an Modelle

sie müssen zu jeder Zeit das Zielsystem beschreiben

15 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Anforderungen an Modelle

sie müssen zu jeder Zeit das Zielsystem beschreiben


Modelle in unterschiedlichen Abstraktionsebenen müssen
konsistent sein

15 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Anforderungen an Modelle

sie müssen zu jeder Zeit das Zielsystem beschreiben


Modelle in unterschiedlichen Abstraktionsebenen müssen
konsistent sein
sie werden in einer wohldefinierten Sprache definiert (z.B.
UML)

15 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Die Rolle der UML in der MDA

Die UML ...


beschreibt grundlegende Modelle im MDA
Entwicklungsprozess (PIM, PSM)

16 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Die Rolle der UML in der MDA

Die UML ...


beschreibt grundlegende Modelle im MDA
Entwicklungsprozess (PIM, PSM)
reicht nicht aus, um alle nötigen Details abzubilden

16 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Die Rolle der UML in der MDA

Die UML ...


beschreibt grundlegende Modelle im MDA
Entwicklungsprozess (PIM, PSM)
reicht nicht aus, um alle nötigen Details abzubilden
muss erweitert werden

16 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

UML Profile

Erweiterung nur mit den bereits in der UML vorgesehenen


Möglichkeiten

17 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

UML Profile

Erweiterung nur mit den bereits in der UML vorgesehenen


Möglichkeiten
Erweiterungsmöglichkeiten
Stereotype
Tagged Values
Constraints

17 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

UML Profile

Erweiterung nur mit den bereits in der UML vorgesehenen


Möglichkeiten
Erweiterungsmöglichkeiten
Stereotype
Tagged Values
Constraints
kein Ausblenden bereits in der UML vorhandener Elemente und
Konzepte möglich

17 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Beispiel UML Profil

18 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF

Metamodellierungsansatz der OMG.

19 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF

Metamodellierungsansatz der OMG.


die UML ist in MOF definiert

19 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF

Metamodellierungsansatz der OMG.


die UML ist in MOF definiert
die UML wird nicht erweitert sondern neu definiert

19 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF

Metamodellierungsansatz der OMG.


die UML ist in MOF definiert
die UML wird nicht erweitert sondern neu definiert
MOF ist selbstbeschreibend und dadurch auf 4 Metastufen
beschränkt.

19 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF Metastufen
MOF besteht aus 4 Metastufen

20 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF Metastufen
MOF besteht aus 4 Metastufen
M0
Die M0 Ebene beinhaltet konkrete Objekte und stellt das laufende
System dar.

20 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF Metastufen
MOF besteht aus 4 Metastufen
M0
Die M0 Ebene beinhaltet konkrete Objekte und stellt das laufende
System dar.

M1
Das Systemmodell, UML Modell mit Klassen, Operationen und
Attributen ...

20 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF Metastufen
MOF besteht aus 4 Metastufen
M0
Die M0 Ebene beinhaltet konkrete Objekte und stellt das laufende
System dar.

M1
Das Systemmodell, UML Modell mit Klassen, Operationen und
Attributen ...

M2
Definition der in der M1 Ebene verwendeten Konzepte wie Klasse
und Attribut

20 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF Metastufen
MOF besteht aus 4 Metastufen
M0
Die M0 Ebene beinhaltet konkrete Objekte und stellt das laufende
System dar.

M1
Das Systemmodell, UML Modell mit Klassen, Operationen und
Attributen ...

M2
Definition der in der M1 Ebene verwendeten Konzepte wie Klasse
und Attribut

M3
MOF Class, selbstbeschreibend
20 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

MOF Metastufen

21 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Grundlegende Konzepte

Die Grundlegenden Konzepte in der MDA sind

22 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Grundlegende Konzepte

Die Grundlegenden Konzepte in der MDA sind


Computation Independent Model (CIM)

22 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Grundlegende Konzepte

Die Grundlegenden Konzepte in der MDA sind


Computation Independent Model (CIM)
Platform Independent Model (PIM)

22 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Grundlegende Konzepte

Die Grundlegenden Konzepte in der MDA sind


Computation Independent Model (CIM)
Platform Independent Model (PIM)
Platform Specific Model (PSM)

22 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Grundlegende Konzepte

Die Grundlegenden Konzepte in der MDA sind


Computation Independent Model (CIM)
Platform Independent Model (PIM)
Platform Specific Model (PSM)
Transformationen

22 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

plattformunabhängige Modelle

Computation Independent Model:

Platform Independent Model:

23 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

plattformunabhängige Modelle

Computation Independent Model:


erster Schritt im MDA Entwicklungsprozess
reines Domänenwissen
frei von technologischen Details
höchste Abstraktionsebene
Platform Independent Model:

23 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

plattformunabhängige Modelle

Computation Independent Model:


erster Schritt im MDA Entwicklungsprozess
reines Domänenwissen
frei von technologischen Details
höchste Abstraktionsebene
Platform Independent Model:
zweiter Schritt im MDA Entwicklungsprozess
beschreibt ein konkretes Softwaresystem
enthält abstrakte technologische Details

23 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

plattformabhängige Modelle

Platform Model:

Platform Specific Model:

24 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

plattformabhängige Modelle

Platform Model:
Beschreibung der Zieltechnologie
wird für die Transformation benötigt
Platform Specific Model:

24 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

plattformabhängige Modelle

Platform Model:
Beschreibung der Zieltechnologie
wird für die Transformation benötigt
Platform Specific Model:
beschreibt das System in einer konkreten Zieltechnologie
sollte im Idealfall automatisch erstellt werden
letztes Modell vor dem Programmcode

24 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Transformationen
Transformationen sind ein sehr wichtiger Bestandteil der
MDA, aber zugleich die das größte Problem.

25 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Transformationen
Transformationen sind ein sehr wichtiger Bestandteil der
MDA, aber zugleich die das größte Problem.
Umwandlung von Modell zu Modell oder von Modell zu Code

25 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Transformationen
Transformationen sind ein sehr wichtiger Bestandteil der
MDA, aber zugleich die das größte Problem.
Umwandlung von Modell zu Modell oder von Modell zu Code
Ergänzung der Modelle mit programmierspezifischen Details

25 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Transformationen
Transformationen sind ein sehr wichtiger Bestandteil der
MDA, aber zugleich die das größte Problem.
Umwandlung von Modell zu Modell oder von Modell zu Code
Ergänzung der Modelle mit programmierspezifischen Details
die Grundsemantik muss erhalten bleiben (Konsistenz)

25 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Transformationen
Transformationen sind ein sehr wichtiger Bestandteil der
MDA, aber zugleich die das größte Problem.
Umwandlung von Modell zu Modell oder von Modell zu Code
Ergänzung der Modelle mit programmierspezifischen Details
die Grundsemantik muss erhalten bleiben (Konsistenz)

Probleme
Modelle liegen auf unterschiedlichen Abstraktionsebenen
fehlende Informationen im Quellmodell (”String“ (PIM) -¿
”VARCHAR“ (PSM). Größe?? )

25 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Transformationen
Transformationen sind ein sehr wichtiger Bestandteil der
MDA, aber zugleich die das größte Problem.
Umwandlung von Modell zu Modell oder von Modell zu Code
Ergänzung der Modelle mit programmierspezifischen Details
die Grundsemantik muss erhalten bleiben (Konsistenz)

Probleme
Modelle liegen auf unterschiedlichen Abstraktionsebenen
fehlende Informationen im Quellmodell (”String“ (PIM) -¿
”VARCHAR“ (PSM). Größe?? )

Lösungen
Marking
Model Transformation
Metamodel Transformation
25 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Entwicklungsprozess

26 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

unterschiedliche Interpretationen

Es wird von den OMG nicht spezifiziert wie viel im


Entwicklungsprozess automatisiert ablaufen soll.

27 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

unterschiedliche Interpretationen

Es wird von den OMG nicht spezifiziert wie viel im


Entwicklungsprozess automatisiert ablaufen soll.
sinnvoller Grad der Automatisierung

27 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

unterschiedliche Interpretationen

Es wird von den OMG nicht spezifiziert wie viel im


Entwicklungsprozess automatisiert ablaufen soll.
sinnvoller Grad der Automatisierung
zwischen 20 und 80 Prozent

27 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

unterschiedliche Interpretationen

Es wird von den OMG nicht spezifiziert wie viel im


Entwicklungsprozess automatisiert ablaufen soll.
sinnvoller Grad der Automatisierung
zwischen 20 und 80 Prozent
Dies führt zu völlig unterschiedlichen Interpretationsansätzen.

27 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

unterschiedliche Interpretationen

Es wird von den OMG nicht spezifiziert wie viel im


Entwicklungsprozess automatisiert ablaufen soll.
sinnvoller Grad der Automatisierung
zwischen 20 und 80 Prozent
Dies führt zu völlig unterschiedlichen Interpretationsansätzen.
Elaborationist

27 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

unterschiedliche Interpretationen

Es wird von den OMG nicht spezifiziert wie viel im


Entwicklungsprozess automatisiert ablaufen soll.
sinnvoller Grad der Automatisierung
zwischen 20 und 80 Prozent
Dies führt zu völlig unterschiedlichen Interpretationsansätzen.
Elaborationist
Translationist

27 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Elaborationist vs Translationist

28 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Fazit

weiterer Abstraktionsschritt

29 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Fazit

weiterer Abstraktionsschritt X

29 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Fazit

weiterer Abstraktionsschritt X
Einsatz in der Businesssoftware Industrie

29 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Fazit

weiterer Abstraktionsschritt X
Einsatz in der Businesssoftware Industrie noch nicht

29 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Fazit

weiterer Abstraktionsschritt X
Einsatz in der Businesssoftware Industrie noch nicht
Bereich der eingebetteten Systeme (CASE-Tools seit den
80ern)

29 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Fazit

weiterer Abstraktionsschritt X
Einsatz in der Businesssoftware Industrie noch nicht
Bereich der eingebetteten Systeme (CASE-Tools seit den
80ern) X

29 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Fazit

weiterer Abstraktionsschritt X
Einsatz in der Businesssoftware Industrie noch nicht
Bereich der eingebetteten Systeme (CASE-Tools seit den
80ern) X
Entwicklungsumgebungen für MDA

29 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Fazit

weiterer Abstraktionsschritt X
Einsatz in der Businesssoftware Industrie noch nicht
Bereich der eingebetteten Systeme (CASE-Tools seit den
80ern) X
Entwicklungsumgebungen für MDA X

29 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Fazit

weiterer Abstraktionsschritt X
Einsatz in der Businesssoftware Industrie noch nicht
Bereich der eingebetteten Systeme (CASE-Tools seit den
80ern) X
Entwicklungsumgebungen für MDA X

FAZIT:
Es ist vermutlich nur noch eine Frage der Zeit bis MDA die breite
Masse der Softwareindustrie erreicht. Bis dahin müssen allerdings
noch einige Hürden überwunden werden.

29 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

FRAGEN

30 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Vielen Dank!

31 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Marking

32 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Metamodel Transformation

33 / 34
Einführung MDA genauer Betrachtet unterschiedliche Interpretationen Fazit

Model Transformation

34 / 34

Das könnte Ihnen auch gefallen