OMG Model Driven Architecture - Grundlagen der MDA

Die Seite wird erstellt Harald Lehmann
 
WEITER LESEN
Westfälische Wilhelms-Universität Münster

                                  Seminararbeit

               OMG Model Driven Architecture -
                         Grundlagen der MDA

                             Im Rahmen des Seminars
 “Ausgewählte Kapitel des Software Engineering insbesondere Formale Spezifikation“

                               Markus Pepping

Themensteller: Prof. Dr. Herbert Kuchen
Betreuer: Dipl.-Wirt. Inform. Christoph Lembeck
Institut für Wirtschaftsinformatik
Praktische Informatik in der Wirtschaft
Inhaltsverzeichnis

Inhaltsverzeichnis

1 Einführung in die Modell Driven Architecture............................................................ 1
2 Theoretische Konzepte und Implementierungsbeispiele der MDA ............................. 2
  2.1 Architektur und konstituierende Grundprinzipien ................................................ 2
      2.1.1 Modelle in der MDA ................................................................................... 7
      2.1.2 Elementare Modelltypen.............................................................................. 8
      2.1.3 Metamodelle .............................................................................................. 11
  2.2 Transformationen ................................................................................................ 13
      2.2.1 Grundlegende Transformationsmöglichkeiten .......................................... 14
      2.2.2 Modelltansformationsansätze .................................................................... 16
3 Kritische Beurteilung der MDA................................................................................. 18
4 Fazit und Ausblick ..................................................................................................... 20
Literaturverzeichnis ........................................................................................................ 21
Kapitel 1: Einführung in die Modell Driven Architecture

1        Einführung in die Modell Driven Architecture

Mehr als zuvor ist die Entwicklung von Software eine diffizile und problematische
Herausforderung geworden. Eines der wichtigsten Faktoren ist die zunehmende Größe
und gewachsene Komplexität von Softwareprodukten. Dieser wird versucht durch
ausgewählte Problemlösungsstrategien, wie beispielsweise durch Abstraktion oder
Isolierung von Teilproblemen, im Streben nach Überschaubarkeit entgegenzuwirken.
Besonders der Gebrauch von Softwaremodellen ist ein klassischer Weg, um diese
Prinzipien effizient zu nutzen [Se03a, S. 1].

Der modellgetriebene Ansatz zur Softwareentwicklung besitzt großes Potential, die
Qualität und Produktivität der Softwareentwicklung zu steigern, indem die wichtigsten
Aspekte in der Lösung in einer menschlich lesbaren Form beschrieben
werden [Se03b, S. 1]. Um diesen Ansatz zu standardisieren, ist die OMG ins Leben
gerufen worden. Dieses offene Konsortium führender Softwareentwickler haben sich
zur Aufgabe gemacht, vereinheitlichte Regeln im Rahmen der industriellen
Softwareentwicklung vorzugeben. Dieser Standardisierungsprozess hat zur Zeit den
Status einer konzeptionellen Vorschrift. Ziel der MDA ist eine einheitliche und
modellgetriebene Softwareentwicklung, die eine konsistente und aufeinander
aufbauende Entwicklung einzelner Softwareentwicklungsphasen unterstützt [OMG05d].

Hierzu gibt Kapitel 2 einen Überblick über die konzeptionellen Grundlagen und
Zusammenhänge der MDA. Es werden Schrittweise die wichtigsten Aspekte der MDA
eingehend beschrieben und an passenden Stellen ein einheitliches Beispiel zur
Illustration aufgezeigt. Da die MDA viele Technologien vereint, werden aufgrund des
begrenzten Rahmens der Seminararbeit ihre Ziele und Grundlagen dargelegt und für ein
eingehendes Studium wird auf weitere Quellen verwiesen.

Kapitel 3 setzt sich kritisch mit dem Nutzen und den Kosten der MDA auseinander.
Hier werden die wichtigsten Vor- und Nachteile modellgetriebener Architekturen
dargestellt und auf Basis dessen beispielhafte Abgrenzungskriterien aufgezeigt, die
einen Einsatz rechtfertigen oder eine Anwendung der MDA ausschließen.

Anschließend wird in Kapitel 4 ein kleiner Ausblick auf zukünftige Fortentwicklungen
der MDA gegeben.

                                                                                   1
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

2       Theoretische Konzepte und Implementierungsbeispiele der
        MDA

Eines der Ziele der OMG (Object Management Group) ist die Erstellung von
herstellerneutralen Spezifikationen zur Verbesserung der Interoperabilität und
Portabilität zwischen verschiedenen Softwaresystemen [OMG05c]. Seit ihrer Gründung
im April 1989 ist das Konsortium von elf auf etwa 800 Mitglieder
angewachsen [Pf04, S. 1]. Primäres Ziel ist die Sicherstellung der „reusability,
portability and interoperability of object-based software in distributed, heterogeneous
environments“ [OMG02a]. Dafür werden von der OMG objektorientierte
Industriestandards erstellt, verabschiedet und gepflegt [Ko01, S. 32]. Dies geschieht in
einem klar definierten Verfahren, dem so genannten „Open Process“, an dem sich jedes
Mitglied der OMG beteiligen kann. In diesem Verfahren werden Vorschläge für
Spezifikationen eingebracht, verhandelt und schließlich als Standards verabschiedet. Als
Rahmen für diese Spezifikationen wurde von der OMG die Model Driven Architecture
(MDA) verabschiedet. Zu den bekanntesten Spezifikationen der OMG zählen CORBA,
UML, XMI oder MOF. Die direkte Beziehung von erstellten Modellen zu dem
eigentlichen Softwaresystem stellt ein Schlüsselkonzept der MDA dar. Das formale
Modell (meist in UML) eines Softwaresystems tritt weiter in den Vordergrund der
Entwicklung - die eigentliche Programmierung in den Hintergrund [Ge04, S. 12].

2.1     Architektur und konstituierende Grundprinzipien

„OMG’s Model Driven Architecture ® (MDA ®) provides an open, vendor-neutral
approach to the challenge of business and technology change [OMG05].“ MDA
definiert die Trennung der Spezifikation der Funktionalität einer Softwarelösung von
der Realisierung dieser Spezifikation auf der Grundlage einer bestimmten Plattform.
Das Ziel von MDA ist es, die momentane Lücke zwischen Modellen und Quellcode zu
schließen. Der Schwerpunkt bei MDA liegt auf der konzeptionellen Ebene. Es geht in
erster Linie darum, Entwurfsentscheidungen für ein System zu treffen, auf deren
Grundlage dann zwangsläufig der Coderahmen bzw. die Implementierung generiert
wird. Hierzu hat die OMG eine Architektur Vorschlag unterbreitet, der sprachen-,
kunden- und middlewareneutral ist (Abb. 1). Dieser kann grob in vier Bereiche
eingeteilt werden [OMG05b, S. 2].

Der innerste Kreis umfasst die wichtigsten Technologien für die Modellierung von
Softwaresystemen. Diese sind Unified Modeling Language (UML) [OMG03a], Meta
Object Facility (MOF) [OMG03c], Common Warehouse Model (CWM) [OMG01c].

                                                                                      2
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Abb. 1:       OMG’s Model Driven Architecture [OMG05]

Diese Technologien stellen bereits existierende OMG-Standards dar. UML wird für die
Modellierung von Struktur und Verhalten von Systemen eingesetzt und bietet dafür
unterschiedliche Diagrammarten wie Klassen-, Aktivitäts- und Sequenzdiagramme. Sie
eignet sich besonders für diese Architektur, da es eine Modellierungssprache ist, die
zum einen ausreichende Sprachmechanismen besitzt, um von plattformspezifischen
Details zu abstrahieren, zum anderen über einen Detailierungsgrad verfügt, der
allgemein benötigte Konzepte zur Spezifikation von Softwaresystemen zur Verfügung
stellt.

Ein weiterer wesentlicher Aspekt ist, dass UML anhand eines MOF kompatiblen
Metamodells eindeutig beschrieben ist, wodurch die Möglichkeit besteht, mittels MOF
Query/View/Transformation (QVT) UML Modelle in andere MOF kompatible
Modellierungssprachen abzubilden, speziell im Kontext der Transformation von
Platform Independent Models (PIM) nach Platform Specific Modells (PSM) [QVT03b].

Für den Bereich Data Warehouse wurde von der OMG ein eigenes Metamodell namens
CWM entwickelt. Dieses unterstützt den gesamten Lebenszyklus vom Entwurf über die
Entwicklung bis zur Wartung der Data Warehouse-Applikationen.

In dem Architekturvorschlag werden die fundamentalen Technologien der OMG
angegeben, die im Laufe der stetigen Fortentwicklung ergänzt worden sind, um das
mögliche Potential der MDA weiter auszuschöpfen. Zu diesen Technologien zählen
Object Constraint Language (OCL) und UML-Profiles. Der Einsatz von OCL
ermöglicht die textuelle Spezifikation von Einschränkungen, die durch grafische
Notationen nur unzureichend dargestellt werden können [OMG05c]. Der Ausdruck
“Constraint“ des Ausdruckes ist ein Überbleibsel aus der Zeit, als OCL in UML

                                                                                   3
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Modellen zur Einschränkung von Wertebereichen genutzt worden ist. Heute ist OCL
eine stark ausgeprägte Suchsprache, die mit der Structured Query Language (SQL)
vergleichbar ist. In Kombination mit UML bietet sie eine qualitativ hochwertige
Möglichkeit, konsistente und genaue PIM Modelle zu generieren [Kl03, S. 56].

UML-Profile sind im Allgemeinen domänen-, fach-, projekt- oder vorgangsspezifische
Erweiterungen des UML-Metamodells. Mit UML-Profilen ist es möglich, spezifische
Sprachkonstrukte, wie z. B. EJB DataClass, WebAction oder BusinessMethod in einem
UML-Diagramm darzustellen und darüber hinaus die Standardisierung und
Interoperabilität von UML sicherzustellen [OMG02]. Der große Nutzen der sich durch
Anwendung bereichspezifischer Profile ergibt, ist die Standardisierung von allgemein
gültigen Problemstellungen. Die OMG schlägt mit diesen eine standardisierte Lösung
vor, die von vielen großen Herstellern mitentwickelt worden ist, und somit eine hohe
Akzeptanz bei ihrem Anwenderkreis hat [Kl03, S. 56].

Die Trennung von der Problemstellung und der plattformspezifischen Implementierung
wird auch im Logo der MDA angedeutet. Rund um die Modellierungstechnologien
werden aktuell genutzte Technologien aufgelistet, die Zielplattformen für die
Modelltransformationen darstellen. Die wichtigsten Softwareplattformen sind Common
Object Request Broker Architecture (CORBA), J2EE und .NET. Für den Modellexport
bzw. für die Modellspeicherung wird XML Metadata Interchange (XMI) als Plattform
verwendet [OMG01b].

Durch XMI können XML Schemata und DTDs aus MOF-basierenden Metamodellen
abgeleitet werden und Instanzen als XML-Dokumente exportiert bzw. gespeichert
werden. Die dargestellten Plattformen spezifizieren keine abgeschlossene Menge von
Zieltechnologien der MDA, sondern zeigen häufig genutzte Technologien mit
Beispielcharakter. Daher liegen ältere Technologien, wie z.B. COBOL oder
FORTRAN, gleichermaßen im Fokus der modellgetriebenen Entwicklung wie neu
entstehende Technologien. Der äußere Ring beinhaltet so genannte unterstützende
Services (Pervasive Services). Diese Services sind allgemeine grundlegende Dienste,
die unabhängig von der zu implementierenden Plattform benötigt werden und durch
Transformationen in beliebige Implementierungen realisiert werden. Für verteilte
Systeme sind vor allem unterstützende Services in den Bereichen Sicherheit,
Transaktionen und Persistenz relevant.

Die Vektoren am Rand geben einen Überblick über die verschiedenen Domänen, die
bereits in Form von OMG IDL standardisiert sind. Bei der OMG liegt ein großes
Augenmerk bei der Standardisierung von Services und günstigen Möglichkeiten in
spezifischen vertikalen Märkten durch die Domain Task Forces (DTFs) des Domain
Technical Committee (DTC) [Mi01, S. 21]. Mit Hilfe dieser werden für bestimmte
                                                                                  4
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Domänen Standards definiert, die Allgemeingültigkeit besitzen und den Anforderungen
des Bereichs genügen.

Nach Soley ist MDA ein Ansatz zur vollständigen Integration und Interoperabilität von
kompletten Unternehmenssystemen inklusive Software, Hardware, Menschen und
Geschäftspraktiken [So00, S. 23]. Der Ansatz stellt einen Rahmen zur Verfügung, um
ein System mit Hilfe von Methoden und Werkzeugen zu verstehen, zu entwerfen,
anzuwenden und weiterzuentwickeln [Ds01, S. 2]. Ein weiterer Grundgedanke der
MDA besteht darin, dass die Definition der Funktionalität des Systems von der
Definition der Implementierung dieser Funktionalität für eine bestimmte Plattform
getrennt wird [Pf04, S. 2].

Das Grundprinzip der MDA ist durch seinen schichtenhaften Aufbau gekennzeichnet
(siehe Abb. 2.2). Ausgangspunkt jeder Entwicklung ist immer die fachliche
Spezifikation, welche anhand eines plattformunabhängigen Modells (PIM) in UML
oder einer ähnlichen Technik spezifiziert wird. Die fachliche Spezifikation hat keinerlei
Bezug auf eine konkrete Technologie. Über verschiedene Transformationen (T1-T3)
wird das Fachkonzept auf die gewünschten Plattformen abgebildet. Dabei richtet sich
die Anzahl der notwendigen Transformationsschritte nach dem zu lösenden Problem.
Bei komplexeren Anwendungen empfiehlt es sich mehrere Transformationsschritte
durchzuführen, um Transparenz zwischen den Modellen zu schaffen. Es existieren
deshalb     innerhalb   den     plattformunabhängigen       Modellen      (PIM)      und
plattformspezifischen Modelle (PSM) mehrere Zwischenstufen.

Abb. 2.2:     Grundprinzip der MDA [Bm03, S. 2]

                                                                                       5
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Grundsätzlich entstehen aus den PIM mehrere PSMs, die alle auf dem zuvor
spezifizierten Fachkonzept basieren. Weitere Transformationen (T4-T6) generieren den
spezifischen Code für die jeweilige Plattform.

An dieser Stelle soll darauf hingewiesen werden, dass von der OMG bisher nur das
Konzept der MDA vorgegeben wurde. Spezielle Teilaspekte, wie beispielsweise die
Durchführung einer Transformation, sind im Detail noch nicht festgelegt
worden [OMG03d, S. 3-6]. Dazu bestehen so genannte Requests, die Vorschläge zur
weiteren Implementierung darstellen. Diese werden im folgenden Kapitel näher
erläutert.

Ein weiterer Schlüsselbegriff ist die Abstraktion [OMG05b, S. 4]. Diese versteckt in
Modellen unnötige Details eines Systems, die zum Zeitpunkt des Entwurfs nicht
erforderlich sind. Daher gehört zu jeder Abstraktion eine Realisierung, die die Details
zur Ausführung der Systemfunktionen enthält. Bei komplexen Modellen kann es
mehrere Stufen der Abstraktion (Levels of Abstraction) in Abhängigkeit des
Blickwinkels geben. So hat beispielsweise ein Projektleiter einer Fachabteilung eine
andere Sicht auf ein Buchungssystem als der Systemarchitekt oder der
Applikationsprogrammierer. Der Projektleiter möchte die Anwendungsfälle und
fachlichen Objekte seiner Domäne sehen, die ihm das System zur Verfügung stellt,
während den Anwendungsprogrammierer vor allem die technischen Objekte und
Variablen interessieren. Die MDA gibt vor, dass zwischen den verschiedenen Modellen,
die eine Ebene der Abstraktion abbilden, Verfeinerungen erfolgen. Bei der praktischen
Umsetzung wird zunächst der zu modellierende Blickwinkel festgelegt. Anschließend
werden in einem oder mehreren Transformationsprozessen plattformspezifische Details
hinzugefügt.

Im Folgenden werden die Grundprinzipien der MDA anhand eines Beispiels illustriert,
in Anlehnung an „Rosa's Breakfast Service“ [Kl03]. Zugrunde liegt ein standardisierter
Bestellabwicklungservice, der auf einer Webschnittstelle und auf einem Drei-Schichten-
Modell fußt (Abb. 3). Die Anwendung umfasst zwei Schnittstellen, eine zum Kunden
und die andere für die Angestellten, die die Bestellungen aufnehmen. Dazu erklären sich
die Kunden bereit, dass ihr Name und ihre Anschrift in einer Datenbank gespeichert
werden, damit sie nach einer bestimmten Anzahl an Bestellungen einen Rabatt
bekommen. Als Funktionalität werden Bestellungen und Kunden in der Datenbank
gespeichert und gegebenenfalls angezeigt. Um das Beispiel auf der einen Seite
realistisch erscheinen zu lassen, werden alle drei Schichten exemplarisch mit Inhalt
gefüllt.

                                                                                     6
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Abb. 3:       Die drei Schichten der Modelle von „Rosa’s Breakfast Service“

In Abb. 3 wird dies durch die Datensicht (Relationales Datenbankschema),
Funktionssicht (EJB) und die Präsentationssicht (JSP) umgesetzt. Auf der anderen Seite
sind viele Details und notwendige Funktionalitäten weggelassen worden, um ein
besseres Verständnis für den Gesamtzusammenhang zu haben. .

2.1.1     Modelle in der MDA

„In the MDA, a model is a representation of a part of the function, structure and/or
behavior of a system [OMG01, S. 3].“ Für die Erstellung eines Modells wird von der
OMG die Modellierungssprache UML vorgeschlagen. Alternativ können auch
Schnittstellendefinitionen, Programmcode oder normaler Text eingesetzt werden. Ein
wichtiger Aspekt ist die Formalisierung der Modelle, damit sie eindeutig beschrieben
sind und mit Werkzeugen zum Teil automatisch verarbeitet werden können. Damit
Geschäftsmodelle nicht erneut erstellt werden müssen, sind für einige zentrale
Anwendungsbereiche wie beispielsweise „Anwendungen im Finanzwesen“
Kernmodelle definiert, die auf die spezifischen Anwendungssituationen angepasst sind.

MDA bietet dem Anwendungsentwickler die Möglichkeit Modelle zwischen den
verschiedenen Geschäftsbereichen oder zwischen den Modellebenen aufeinander
abzubilden (engl. mapping). Die Abbildung soll möglichst automatisiert ablaufen und
den Entwickler von dieser Arbeit entlasten. Darüber hinaus wird eine klare Trennung
                                                                                    7
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

zwischen Modellierer und Entwickler vollzogen. Ein Geschäftsprozessmodellierer kann
die Modelle auf einer plattformunabhängigen Ebene erstellen und mit Hilfe von
entsprechenden Werkzeugen werden automatisch plattformspezifische Modelle
generiert.

2.1.2   Elementare Modelltypen

In MDA wird hauptsächlich zwischen drei Typen von Modellen unterschieden: den
computerunabhängigen (CIM, Computation Independent Model), plattform-
unabhängigen (PIM, PlatformIndependent Model) und plattformspezifischen (PSM,
Platform Specific Model) Modellen. Darüber hinaus können weitere Modelle eingefügt
werden, um den zu modellierenden Anwendungsbereich weiter zu verfeinern.
Beispielsweise können unabhängig von einander gestaltete Geschäftsbereiche in
unterschiedliche Verfeinerungsstufen modelliert sein und somit einer unterschiedlichen
Bedeutsamkeit gerecht werden.

Computation Independent Model
Das CIM beschreibt ein System in seiner zukünftigen Einsatzumgebung, speziell die
Nutzung des Systems, seine Anforderungen an die Umgebung, sowie den Nutzen des
Systems für die Umgebung. Es liefert prinzipiell keine Beschreibung der internen
Struktur oder des internen Verhaltens des Systems, sondern beschränkt sich sehr stark
auf dessen externe Sicht. CIMs haben die Aufgabe ein System mit seiner Umgebung zu
beschreiben. Zudem sollen sie ein besseres Verständnis der Aufgaben des Systems
ermöglichen. Vorwiegend wird ein CIM auch als Domänenmodell oder
Geschäftsmodell bezeichnet, da es eine gemeinsame Grundstruktur des
Problembereiches definiert. Als Notationsmöglichkeiten können beliebige
Flussdiagramme – besonders geeignet sind UML2-Aktivitätsdiagramme – oder
Klassen- bzw. Anwendungsfalldiagramme eingesetzt werden. Bei dem Einsatz dieser
Modelle ist zu beachten, dass sie nicht genügend Strukturinformation besitzen und
daher für eine praktikable Transformation unbrauchbar sind. Trotzdem bieten sie dem
Modellierer eine solide Grundlage für die weiteren Modelle (PIM, PSM) im MDA
Entwicklungsprozess.

Platform Independent Model
Neben den Transformationen bildet das PIM das Kernstück des MDA Ansatzes. Es
beschreibt die strukturellen und operationalen Aspekte eines Systems unabhängig von
den einzusetzenden Hardware- und Softwareplattformen [OMG03d, S. 3-1]. In Abb. 4
wird das weiter oben skizzierte Beispiel weiter detailliert. Ein Customer kann eine oder
mehrere BreakfastOrders aufgeben. Eine BreakfastOrder muss mindestes ein Breakfast
besitzen, da eine BreakfastOrder ohne Breakfast nicht sinnvoll ist. Jedes bestellte

                                                                                      8
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Breakfast besteht aus weiteren Bestandteilen, die durch die Angabe einer degenerierten
Assoziationsklasse weiter spezifiziert wird. Ein Breakfast kann auch ein
StandardBreakfast sein, das selbst aus weiteren Bestandteilen besteht. Bei der
Darstellung im UML Klassendiagramm werden auf dieser Ebene nur die Attribute und
wichtigsten Methoden der Klassen modelliert. Weitere Details wie beispielsweise get()-
und set()-Methoden werden erst in einem PSM spezifiziert.

                 BreakfastOrder
             deliveryAddress : Address                                      Customer
             deliveryDate : Date          +orders      +customer      accountNumber : Integer
             deliveryTime : Date
                                                                      address : Address
             discount : Real
                                       1..n                      1
             OrderDate : Date
                                                                      createOrder()
             calculatePrice()

               +order       1

          +breakfasts
                         1..n                                                      StandardBreakfast
                    Breakfast                                   +standard           name : String
                  number : Integer                                                  price : Real
                                     n                                      1       style : Style
                           n
                                                                                             n

                                                Comestible
                           +comestible     name : String
                                                                     +comestible
                                           minimalQuantity : Integer
                                           price : Real
                                     n                                1..n                                 Part
                                           transportForm : String
      Change                                                                                           quantity : Integer
   quantity : Integer

Abb. 4:            Vereinfachtes PIM von „Rosa’s Breakfast Service“

Im Unterschied zu CIM wird beim PIM auf Computer unterstützende Verarbeitung
zurückgegriffen. Zur Realisierung einer solchen Plattformunabhängigkeit bieten sich
klassische Verfahren, wie die Spezifikation auf Basis einer virtuellen Maschine oder die
Nutzung einer generischen Plattform an. Hierbei können standardisierte Dienste und
Elemente wie „Pervasive Services“, die mit Hilfe von UML-Profiles spezifiziert sind,
ebenfalls Verwendung finden (Abb. 1).

Dadurch begründet, dass in PIMs Business Logik, Domänenwissen als auch
Problemlösungen erfasst werden, dienen sie als ”Know-How Speicher“ für IT-
Entwicklungsunternehmen. Plattformunabhängige Modelle sind aus folgenden Gründen
vorteilhaft: erstens ist es einfacher die Korrektheit zu prüfen, wenn die Semantik des
Modells zwischen den Bereichen getrennt ist und zweitens wird die Implementierung
auf verschiedenen Plattformen einfacher, da die Integration und Interoperabilität über
Systemgrenzen hinweg klarer definiert ist. Ein weiterer Nutzen liegt bei dieser
Problemlösung in der Trennung von plattformspezifischen Details, wodurch für die

                                                                                                                    9
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Realisierung notwendige Informationen verschiedenen Plattformen zur Verfügung
stehen und bei einem Technologiewechsel ihre Gültigkeit beibehalten [Bo03]. Zur
Darstellung von PIM’s wird von der OMG vorgeschlagen, alle in UML verfügbaren
Modell- und Diagrammformen zu verwenden [OMG03d, S. 1-4].

Platform Specific Model
In einem plattformspezifischen Modell wird ein PIM anhand konkreter Details über die
Hard- und Softwareplattform, die anhand eines PM spezifiziert ist, ergänzt und in ein
PSM überführt [OMG03d, S. 3-8].

                      BreakfastOrder                          Customer

                        Comestible                         StandardBreakfast

Abb. 5:         Erstes grobes EJB Modell

In einer ersten Transformation wird das abstrakte PIM in ein sehr groben EJB PSM
übersetzt (Abb. 5). Mit Hilfe von Stereotypen werden weitere Informationen zum
Modell hinzugefügt, die für die darauf aufbauenden Transformationen von Bedeutung
sind.

                standardBreakfast

                  StandardBreakfast                                       StandardBreakfastKey
                standardBreakfastID : int   
                name : String
                price : float                    standardBreakfast        
                style : Style                                              StandardBreakfastUpper
                                            1

       +standardBrealfast     1

                                                                                  PartKey
                                                                            standardBreakfastID : int
                                                                            comestibleID : int

                  +Part     0..n
                 
                                                   comestible              
                        Part
                                                                            ComestibleKey
                   quantity : int
                                                                      1

Abb. 6:         PSM von Rosa’s Breakfast Service in Form von EJB

                                                                                                        10
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Um die Interaktionshäufigkeit in einer verteilten Umgebung zwischen den
Komponenten zu minimieren, werden in dem Beispiel alle Attribute eines Objektes bei
einem Aufruf übertragen, anstatt jedes Attribut einzeln zu senden (Abb. 6). Das zu
übertragende Objekt ist in der Regel komplexer und beinhaltet eine relativ große Menge
an Daten, jedoch reduziert diese Vorgehensweise die Belastung des Netzwerkes
erheblich. Daher wurde Rosa’s Breakfast Service im ersten Schritt in ein grob
granuliertes EJB Komponenten Modell transformiert (Abb. 5). Nach dem zweiten
Transformationsschritt wird bei dem erstellten Modell zwischen einem EJB Daten
Schema und EJB Daten Klassen unterschieden. Während erstere einer Zusammen-
stellung von Klassen, Attributen und Assoziationen entspricht, ist eine EJB Daten
Klasse ein Teil eines EJB Daten Schemas. Zur Unterscheidung bzw. zur Transformation
der beiden Typen wird die Eigenschaft Komposition verwendet. Beispielsweise ist die
Klasse Breakfast als Bestandteil der BreakfastOrder definiert und daher wird nur das
EJB Data Schema BreakfastOrder erstellt und keine extra Komponente Breakfast. Eine
weitere Detaillierung hat in Form der getter()- und setter()-Methoden stattgefunden.
Diese plattformspezifischen syntaktischen Konventionen werden eingehalten, die sich
in den Diagrammen widerspiegeln (Abb. 6).

Einerseits kann ein PSM alle Details enthalten, die zur Implementierung des Systems
notwendig sind. Andererseits besteht die Möglichkeit, dass ein PSM von einer Reihe
von Implementierungsdetails abstrahiert und Ausgangspunkt für weitere
Transformationen ist (z.B. ein Modell, welches plattformspezifische Details bzgl. der
J2EE Plattform enthält, kann als PIM gegenüber einem Modell betrachtet werden,
welches zusätzlich herstellerspezifische Informationen über einen konkreten J2EE
Application Server spezifiziert, auf welchem das System implementiert werden soll).
Daher sind PIM und PSM immer als relativ zu betrachten [OMG01a, S. 7].

2.1.3   Metamodelle

Mit dem 4-Schichtenmodell der OMG wird eine Modellhierarchie beschrieben, welche
sukzessive die verschiedenen Modellebenen definiert [OMG03d]. Normalerweise
modellieren UML-Anwender vorwiegend auf der Modell-Schicht M1 und erstellen
unter Hinzunahme eines geeigneten UML-Metamodells oder UML-Profils ein
UML-Modell.

Die 4-Schichtenarchitektur der MOF setzt sich aus folgenden Ebenen zusammen:
M0 Objekte: Objekte sind Instanzen des Modells und beschreiben die Ausprägungen
einer bestimmten Domäne bzw. repräsentieren reale Entitäten oder ihre entsprechenden
Abbildungen in der Software (Abb. 7). Dies entspricht dem Beispiel bei einer konkreten
Bestellung        (BreakfastOrder:          deliveryAdress=“Geiststrasse          23“,

                                                                                   11
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

deliveryDate=“01.12.2005“) eines                                         Kunden           (Customer:              accountNumber=“012“,
address=“Steinfurterstr. 70“).

M1 Modell: Modelle sind Instanzen von Metamodellen. Zu ihnen gehören die
bekannten UML-Modelle, wie z. B. Klassendiagramme. Auf dieser Ebene befinden sich
Modelle von Softwaresystemen. Die Konzepte auf der M1-Ebene stellen
Kategorisierungen von Instanzen der M0-Ebene dar. Ein Element der M0-Ebene wird
durch ein Element der M1-Ebene repräsentiert. Dies entspricht den Klassen „Customer“
und „BreakfastOrder“ mit den Attributen deliveryAdress, deliveryDate, accountNumber
und address.

                                                                                                                       M3: Meta-Metamodell
                                                           MOF Class
                                                       name: String
                                                                                                                               MOF-Modell

                                   Instance of             Instance of      Instance of

                                                                                                                                M2: Metamodell
            UML Class                                      Association                        UML Attribute                    UML-Metamodell
           name: String                                                                       name: String

            Instance of            Instance of
                                             Instance of
                                                                           Instance of

             Customer                                 BreakfastOrder                                                           M1: UML-Modell
     accountNumber: Integer                     deliveryAddress: Address
     address: Address                           deliveryDate: Date
                                                deliveryTime: Date
                                                discount: Real
                                                orderDate: Date
            Instance of                Instance of
                                                                               Instance of

             Customer                                      Customer                                BreakfastOrder
                                                                                                                                  M0: Objekte/
    accountNumber: 012                           accountNumber: 013                       deliveryAddress: „Geiststrasse 23"     Ausprägungen
    address: „Steinfurterstr.70"                 address: „Geiststrasse 23"               deliveryDate: „01.12.2005"
                                                                                          deliveryTime: „23:23"
                                                                                          discount: „4%“
                                                                                          orderDate: „01.12.2005“

Abb. 7:               Gesamtübersicht des 4-Schichtenmodells der OMG

M2 UML-Metamodell: Metamodelle sind Instanzen von Meta-Metamodellen und
definieren die Sprachelemente für Modelle. Auf dieser Ebene befinden sich
beispielsweise die Sprachdefinitionen für UML. Darüber hinaus liegen hier die
sprachspezifischen UML-Profile vor, da sie spezifische Erweiterungen bezüglich der
Metamodelle darstellen. Die Elemente der M1 Ebene sind Instanzen von Elementen der
M2 Ebene. Mit Hilfe von Ebenen werden Elemente und deren Aufgaben voneinander
getrennt, um dadurch M2-Elemente und M1-Elemente kategorisieren können. Auf M1
müssen nur die Konzepte definiert werden, welche für Instanzen der M0-Ebene relevant
sind. Ebene M2 beinhaltet wiederum nur Konzepte (z.B. Klassen und Attribute), die auf

                                                                                                                                                 12
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

M1 verwendet werden. Die M2-Ebene wird auch Metamodellebene genannt, da auf
dieser Ebene die Modellierungssprachen der OMG definiert werden.

M3 Meta-Metamodell: Auf der Ebene M3 ist die gemeinsame Basis für alle weiteren
Metamodelle angesiedelt. Die Elemente der M2-Ebene können als Instanzen der
übergeordneten M3-Ebene angesehen werden. Dabei stellen Elemente auf M3
Kategorisierungen von Elementen der Ebene M2 dar. M3 soll allgemein als Grundlage
für die Erstellung von Metamodellen (Modellierungssprachen) dienen. Deshalb wird
diese Ebene auch Metametamodellebene genannt. Die OMG setzt die M3-Ebene mit
MOF gleich und dadurch sind alle OMG-Sprachtechnologien Instanzen von MOF.
Durch die MOF werden auf dieser Schicht die Sprachelemente zur Spezifikation von
Metamodellen spezifiziert (z. B. ModelElement, Namespace, Classifier, etc.).

Theoretisch können weitere Ebenen über M3 bzw. MOF eingeführt werden. Diese
unendliche Problemverschiebung ist mit der Einführung der reflexiven M3-Ebene
vermieden worden. Darüber hinaus erbringt eine weitere Ebene keinen
Abstraktionsgewinn bzw. Nutzen für die praktische Modellierung.

2.2         Transformationen

                                                              PIM Abbildungs-
                                                basiert auf      techniken
      UML

                    modelliert mit
                                                                                              Abbildung PIM - PIM
                                               1..n                                 PIM
      MOF                              Metamodell                                                    1..n
                                                              beschrieben mit
                                                                                                       unabhängig von
                 modelliert mit

                                        basiert auf
                                                1..n
                                                                        Abbildung               Abbildung
                    modelliert mit                                      PIM - PSM               PSM - PIM
andere Sprache
                                                              beschrieben mit

                                                                                    PSM                             Infrastruktur
                                     PSM Abbildungs-                                                 hängt ab
                                       techniken

                                                                                       1..n

                                                                                    Abbildung PSM - PSM

Abb. 8:          MDA Metamodell-Beschreibung

Neben den eingesetzten Techniken nimmt die Transformation die wichtigste Rolle ein.
Sie ist das „Herzstück“ jeder MDA Umsetzung und bestimmt den Erfolg der
eingesetzten Methoden (Abb. 8). Mit ihnen steht und fällt eine auf Basis der MDA
erstellte   Softwareentwicklung.   Daher     wird     intensiv    an     möglichen
                                                                                                                                    13
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Transformationssprachen geforscht. Nach den Visionen der OMG sollen alle erstellten
Sprachen wieder durch ein geeignetes Metamodell beschrieben werden. Auch hier sollte
es eine gemeinsame Sprache geben, die von der OMG beispielhaft mit der MOF (Meta
Object Facilies) angegeben wird. Auf diese sollen sich alle Sprachen stützen.

2.2.1   Grundlegende Transformationsmöglichkeiten

Grundsätzlich können auf abstrakter Ebene folgende Typen von Transformationen
unterschieden werden (Abb. 8) [QVT03b]:

1. PIM zu PIM: Diese Transformation wird benutzt, wenn die Modelle während des
   Entwicklungsprozesses erweitert, gefiltert oder verfeinert werden ohne plattform-
   abhängige Informationen zu nutzen. Oft spricht man in diesem Zusammenhang auch
   von Modellverfeinerung. Es ist eine Möglichkeit ein Geschäftsmodell aus
   verschiedenen Gesichtspunkten aufzuzeichnen.

2. PIM zu PSM: Die Transformation von plattformunabhängigen Modellen an die
   speziellen Gegebenheiten einer technologieabhängigen Plattform. Es erleichtert bei
   der Entwicklung das Modell auf unterschiedliche Komponenten im System
   abzubilden. Komponenten werden dabei in Abhängigkeit der gewählten Plattform
   unterschiedlich definiert. Zusätzlich kann durch die PSM-PSM-Transformation ein
   bestehendes Modell weiter verfeinert werden.

3. PSM zu PSM: Die PSM-Modelle können auch bei Bedarf weiter verfeinert werden,
   um die fehlende Implementierungsdetails zu ergänzen, oder auch um sie in eine
   andere Zielplattform zu transformieren.

4. PSM zu PIM: Diese Transformation wird meistens bei bestehenden Systemen
   eingesetzt, um aus dem PSM-Modell ein PIM-Modell zu erzeugen. Die
   Transformation von PSM ins PIM ermöglicht die Abstraktion von Modellen der
   existierenden, plattformspezifischen Implementierungen zu plattformunabhängigen
   Modellen. Der Transformationsprozess ist allerdings recht schwierig, da die
   Informationen über Metamodelle fehlen. Diese Transformation kann man als
   Refactoring bezeichnen.

5. PSM zu Code: Ein Hauptziel der MDA ist die automatische Generierung von Code
   aus Modellen. Dabei sollte nicht nur Programmcode erzeugt werden, sondern auch
   alle für die erfolgreiche Inbetriebnahme der Software notwendigen Dateien wie
   beispielsweise XML-Dateien wie Deployment Descriptors sowie SQL-Skripte.

                                                                                  14
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Aufgrund der Annahme, dass von einem sehr abstrakten und wenig detaillierten Modell
(PIM) in ein konkretes und detaillierteres Modell (PSM) transformiert wird, ist es
mitunter sinnvoll mehrere Transformationsschritte und temporäre Zwischenmodelle
einzuführen. Somit können die Aufgabenbereiche der Transformationen besser getrennt
und die Komplexität der einzelnen Transformationen verringert werden. Trotzdem ist
hierbei zu beachten, dass zusätzlich eingefügte Transformationsstufen zur Erhöhung der
Komplexität des Gesamtzusammenhanges führen.
                              BreakfastOrder
                                                      Breakfast
 Customer                     orderID
                              customerID (FK)         breakfastID
  customerID                                          orderID (FK)
                              deliveryAddress         customerID (FK)
  accountNumber               deliveryDate
  address                                             standardBreakfastID (FK)
                              deliveryTime
                              discount                number
                              OrderDate
                                                                                  StandardBreakfast
                                                                                      standardBreakfastID
                                                                                      name
                                                                                      style
                                                                                      price
Change                              Comestible
comestibleID (FK)                   comestibleID
breakfastID (FK)                                          Part
orderID (FK)                        name                   standardBreakfastID (FK)
customerID (FK)                     minimalQuantity        comestibleID (FK)
standardBreakfastID (FK)            price
                                    transportform          comestible
comstibleID                                                quantity
quantity

Abb. 9:            Überblick Transformationen oder MDA Projekt

Ein überschaubares Beispiel einer Transformation ist in Abb. 9 beschrieben. Hier wird
ein UML Diagramm in ein relationales Datenbank Modell überführt. Die meisten der
notwendigen Regeln und Vorschriften sind bereits Gegenstand einiger
wissenschaftlichen Arbeiten gewesen [Bl98]. Änderung in einem PIM kann eine große
Variation in einem relationalen Modell zur Folge haben, wenn beispielsweise aus einem
primitiven Datentyp eine Klasse wird. Diese wird als Fremdschlüssel in der
entsprechenden Tabelle geführt. Für einen einfachen Datentyp wird eine Spalte in der
dazugehörigen Tabelle eingefügt während für den Datentyp Klasse auch eine Spalte
angelegt wird, die jedoch einen Verweis auf eine andere Tabelle enthält. So wird
beispielsweise aus einem UML String ein SQL VARCHAR(40). Auf diese Art und Weise
können automatisch komplette SQL Skripte generiert werden, die unabhängig von einer
konkreten Datenbank wie beispielsweise Oracle oder MySQL genutzt werden können.
Änderungen auf einer Seite einer Transformation können direkt auf die andere Seite
abgebildet werden.

                                                                                                      15
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

2.2.2   Modelltansformationsansätze

Modelltransformationen werden in der OMG-Spezifikation sehr allgemein beschrieben
und stehen derzeit in Bearbeitung. In der aktuellen Version wird der Ansatz der
QVT-Partner (Query/Views/Transformations) als Lösung vorgeschlagen [QVT03b]. Es
gibt einige Möglichkeiten, Modelltransformationen durchzuführen, wobei an dieser
Stelle nur die gebräuchlichsten vorgestellt werden. Die beschriebenen Transformations-
ansätze sind nicht klar voneinander abgrenzbar. Es ist durchaus möglich und es wird
gefordert eine Kombination der Ansätze zu verwenden.

Modelltransformation mit Markierungen
Modelltransformationen mit Markierungen bzw. instanzbasierte Abbildungen stellen
eine Möglichkeit dar, Modelle abzubilden. Dazu werden Modellelemente im
Quellmodell auf Modellebene ausgewählt, die auf zielplattformspezifische Konzepte
abgebildet werden. Um individuelle Transformationen durchführen zu können, müssen
die Elemente im Quellmodell mit einer besonderen Syntax markiert
werden [OMG3d, S. 3-8]. Eine Markierung repräsentiert ein plattformspezifisches
Konzept und wird zu den Elementen im Quellmodell annotiert, um die daraus
abgeleiteten Transformationsregeln eindeutig zuordnen zu können. Markierungen
beinhalten somit plattformspezifische Details, die von denen in plattformunabhängigen
Modellen abstrahiert werden. Daher werden Markierungen nicht direkt im Modell
eingetragen, sondern in einer „transparenten“ Schicht über dem plattformunabhängigen
Modell annotiert. Diese Vorgehensweise hat den Vorteil, dass diese Schicht unabhängig
vom Modell existiert und damit eine flexiblere Portierbarkeit beim Tool-Import möglich
ist.

Abb. 10:      Modelltransformation mit Markierungen

                                                                                   16
Kapitel 2: Theoretische Konzepte und Implementierungsbeispiele der MDA

Metamodelltransformation
Eine Metamodelltransformation bzw. typbasierte Abbildung definiert Abbildungsregeln
für die Metamodellelemente des Quell- und Zielmodells. Eine Regel spezifiziert wie
Metamodellelemente bzw. ein bestimmter Typ des Quellmodells auf einen Typ oder
mehrere Typen des Zielmodells abgebildet werden. Metamodellabbildungen sind eine
spezielle Form von typbasierten Abbildungen, wobei die Typen der Modellelemente
durch das MOF-Modell spezifiziert werden sollten. Somit reicht es aus die
Transformationsregeln auf Metamodellebene zu definieren. Die Modelle auf M1-Ebene
brauchen in die Transformationsdefinition nicht einzufließen, da die Regeln auf die
Typen der Elemente der Modelle angewendet werden [OMG03d, S. 3-9].

Abb. 11:      Metamodelltransformation

In der Praxis wird eine Kombination aus typbasierten und instanzbasierten Abbildungen
für den erfolgreichen Einsatz von Transformationen verfolgt. Eine typbasierte
Abbildung stellt einen Typ des Quellmodells in einem Typ oder in mehreren Typen des
Zielmodells dar. Besteht keine Möglichkeit Markierungen an das Quellmodell zu
setzen, werden nur Informationen der Metamodelle des Quell- und Zielmodells für die
Generierung des Zielmodells verwendet. Ein Quellmodell erfordert in vielen Fällen
Markierungen, damit das Zielmodell die geforderten funktionalen und nicht
funktionalen Eigenschaften erfüllt, die jedoch aus dem Quellmodell nicht direkt
abgeleitet werden können. Viele der heute erhältlichen MDA-Entwicklungswerkzeuge
setzen eine Kombination aus typbasierten und instanzbasierten Abbildungen ein [Co05].
Diese Werkzeuge ziehen für typbasierte Abbildungen Stereotypen und UML
Metaklassen und für instanzbasierte Abbildungen Schlüsselwort/Wert-Paare heran.

                                                                                  17
Kapitel 3: Kritische Beurteilung der MDA

3        Kritische Beurteilung der MDA

Die Anwendungsmöglichkeiten der MDA sind vielseitig, wobei sich die Idee an die
Entwicklung von großen und komplexen Anwendungen richtet [Kl01]. Besonders
vorteilhaft ist dieser Ansatz für Unternehmen, die aufgrund ihrer Größe oder bisherigen
Tätigkeit auf heterogenen Plattformen gearbeitet haben [Li03, S. 6]. Aufgrund des
hohen Komplexitätsgrades der MDA und der damit verbundenen Notwendigkeit neue
Standards zu definieren ergeben sich, neben den aufgeführten Beispielen, einige
Vorteile [Mi01]:

-   Einfachere Validierung eines von plattformspezifischen Details befreiten Modells

-   Konformere Implementierungen eines einheitlich definierten Modells auf
    heterogenen Plattformen

-   Gesteigerte Entwicklungsgeschwindigkeit bei der Softwareherstellung durch
    Wiederverwendung von Modellen bzw. Komponenten

-   Bessere Handhabbarkeit und Kontrolle der Software, infolge des höheren
    Abstraktionslevels

-   Garantie für Interoperabilität und Portabilität von Softwarekomponenten

-   Schließung der momentanen Lücke zwischen Modellen und Quellcode auf der
    konzeptionellen Ebene

-   Weiterreichende Unterstützung des Softwareentwicklers, indem Änderungen auf
    einem hohen Abstraktionslevel auf alle anderen Level auswirken
-   Weitgehend Automatisierung der Codegenerierung, Dokumentierung und Wartung

Neben Vorteilen, die sich aus der Architektur ergeben, liegen der MDA Nachteile
zugrunde:

-   Trotz vollständiger Beschreibung des theoretischen Konzeptes fehlen praktische
    Mittel zur Umsetzung

-   Technische Beschränkung des Modellierers in seinen Möglichkeiten auf bestehende
    Komponenten

-   Unvollständige Beschreibung von UML2.0, welche die Grundlage für UML-Profile
    darstellt

-   Unzureichende MDA-Entwicklungswerkzeuge, die einen spezifischen Bereich der
    UML bzw. MDA unterstützen

                                                                                       18
Kapitel 3: Kritische Beurteilung der MDA

Neben den oben genannten Vor- und Nachteilen ergeben sich darüber hinaus eine Reihe
organisatorischer Fragen bezüglich der MDA. Ein erster Punkt ist die Daten- und
Anwendungsmigration. Das Problem besteht in der Existenz bereits vorhandenen
großen Mengen an Daten und Anwendungen, die in das neue System übernommen
werden müssen. Bestehende UML-Diagramme müssen um entsprechende Stereotypen
ergänzt werden oder an den neuen UML2.0 Standard angepasst werden. Ein weiterer
Punkt ist die Softwarewartung, bei der die Erzeugung von Releases, Patches oder
Updates ein oftmals wichtiger Bestandteil der laufenden Wartung von Anwendungen
ist. Bei dem MDA-Prozess ist eine komplette Neuinstallation bzw. ein komplett neues
Deployment notwendig, welches auf die fehlende Versionierungsmöglichkeit
zurückzuführen ist. Darüber hinaus stellt sich die Kostenfrage bei der Entwicklung mit
MDA, ab wann ein Projekt, auf der Grundlage von MDA, zu entwickeln ist. Dieses
wird auch in der Fachsprache als Return-on-Investment (ROI) bezeichnet. Es stellt sich
die Frage, ob das einzusetzende Framework gekauft oder selbst entwickelt werden
muss.

                                                                                   19
Kapitel 4: Fazit und Ausblick

4        Fazit und Ausblick

Die Entwicklung heutiger betrieblicher Anwendungssysteme ist durch eine zunehmende
Komplexität und Heterogenität der technischen Plattformen und die Anforderung der
Integration voneinander unabhängiger Softwarekomponenten gekennzeichnet. Mit der
gleichzeitig steigenden Bedeutung der Informationstechnologie für die strategische
Entwicklung eines Unternehmens, erhöhen die Anforderungen an die Qualität und
Langlebigkeit von Anwendungssystemen unter der Berücksichtigung der bei der
Entwicklung       auftretenden     Kosten    den     Druck,      wiederverwendbare
Softwarekomponenten zu generieren.

Das von der Object Management Group (OMG) entwickelte Konzept der Model Driven
Architecture (MDA) ist ein viel versprechender Ansatz, einen einheitlichen Standard
zur Anwendung modellzentrierter Softwareentwicklung zu etablieren und durch
Formalisierung der abzubildenden Geschäftslogik eine Automatisierung der
Softwareentwicklung zu ermöglichen. Durch die Verwendung modellzentrierter
Softwareentwicklung kann die Produktivität der Softwareerstellung durch kürzere
Entwicklungszeiten erhöht werden. Gleichzeitig soll durch Trennung unterschiedlicher
konzeptioneller Modellebenen eine Entkopplung des Softwareentwurfs von der
zugrunde liegenden Technologieplattform erfolgen. Hierdurch werden die
Möglichkeiten wie Portabilität und Wiederverwendbarkeit von Software begünstigt.

In der vorliegenden Arbeit werden die theoretischen Basiskonzepte und Ziele der Model
Driven Architecture (MDA) erläutert. Der Modellzentrierung wird durch die
konsequente Darstellung eines einheitlichen Beispiels im Rahmen der MDA Rechnung
getragen. An den dargestellten Beispielen wird deutlich, welchen neuen
Herausforderungen ein Modellierer zu bewältigen hat. Im Mittelpunkt steht nicht mehr
allein    die    Codierung     des     zunächst    erstellten  Fachkonzepts      bzw.
Geschäftsprozessmodells, sondern die saubere Modellierung der fachlichen Inhalte, an
die sich die Transformation der Modelle anschließt. Konzeptionell liegen Lösungen für
die Transformationssprachen vor, doch unterstützen heutige Werkzeughersteller nur
einen kleinen Teil des gesamten Potentials. Trotz der innovativen Visionen der MDA
gibt es immer noch keine formalen Kriterien, die einen Einsatz der MDA rechtfertigen
bzw. bestimmen. Es bedarf viel Erfahrung und Know-How der Verantwortlichen einen
durch MDA unterstütztes Projekt zum Erfolg zu führen.

                                                                                  20
Kapitel 4: Fazit und Ausblick

Literaturverzeichnis

[bm03]      b+m: Grundlegende Konzepte und Einordnung der Model Driven Architecture,
            http://www.architectureware.de/download/MDA_JavaMagazin_09_03.pdf,
            Abrufdatum 02-11-2005, 2003.

[Bl98]      M. Blaha: Object-Oriented Modeling and Design for Database Applications,
            Prentice Hall, 1998.

[Ds01]      D. Dsouza: Model-Driven Architecture and Integration – Opportunities and
            Challenges Version 1.1, ftp://ftp.omg.org/pub/docs/ab/01-03-02.pdf, Abrufdatum
            02-11-2005, 2001.

[Ge04]      R. Geiger: Evaluierung von Produktivitätspotenzialen im Software-
            Entwicklungsprozess für Web-Anwendungen,
            http://www.stz-ida.de/download/forschung/da/da_geiger.pdf, Abrufdatum 03-11-
            2005, 2004.

[Kl03]      A. Kleppe, J. Warmer, W. Blast: MDA Explained - The Model Driven
            Architecture: Practice and Promise, Addison-Wesley, 2003.

[Ko01]      A. Korthaus: Komponentenbasierte Entwicklung computergestützter
            betrieblicher Informationssysteme, 2001.

[Li03]      Y. Liu: Metamodellierung und MDR. Seminar: Grundlagen der modellbasierten
            Softwareentwicklung,
            http://www.uni-pade-born.de/cs/ag-engels/ag_dt/People/Heckel/DO/GmbS/pdf/Ya
            nAusarbeitung.pdf, Abrufdatum 04-11-2005, 2003.

[Mi01]      J. Miller, J. Mukerji: Model Driven Architecture (MDA),
            http://www.omg.org/mda/mda_files/MDA_Briefing_Mukerji.pdf. Abrufdatum 02-
            11-2005, 2001.

[OMG01] OMG: Architecture Board MDA Drafting Team: Model Driven Architecture – A
        Technical Perspective, http://www.omg.org/cgi-bin/apps/doc?ormsc/01-07-01.pdf.
        Abrufdatum 04-11-2005, 2001.

[OMG01] OMG: Model Driven Architecture (MDA), http://www.omg.org/mda/, 2001.

[OMG01a] OMG: Developing in OMG’s Model-Driven Architecture,
         ftp://ftp.omg.org/pub/docs/omg/01-12-01.pdf, Abrufdatum 17-11-2005, 2001.

[OMG01b] OMG: MOF 2.0/XMI Mapping Specification, v2.1,
         http://www.omg.org/cgi-bin/apps/doc?formal/05-09-01.pdf, Abrufdatum
         16-11-2005, 2001.

                                                                                   21
Kapitel 4: Fazit und Ausblick

[OMG01c] OMG: CWM Specification, http://www.omg.org/cgi-bin/doc?ad/2001-02-01.
         Abrufdatum 17-11-2005, 2001.

[OMG02] OMG: UML Profile for CORBA Specification,
        http://www.omg.org/cgi-bin/apps/doc?formal/02-04-01.pdf,
        Abrufdatum 17-11-2005, 2002.

[OMG02a] OMG: Meta Object Facility (MOF) Specification, http://www.omg.org/cgi-
         bin/doc?formal/2002-04-03, 2002.

[OMG03a] OMG: UML, http://www.uml.org/, Abrufdatum 07-11-2005, 2003.

[OMG03b] OMG: MDA Spezifikation, http://www.omg.org/mda/Profiles, Abrufdatum
         07-11-2005, 2003.

[OMG03c] OMG: MOF Spezifikation,
         http://www.omg.org/cgi-bin/apps/doc?formal/02-04-03.pdf,
         Abrufdatum 17-11-2005, 2003.

[OMG03d] OMG: MDA MDA Guide Version 1.0.1,
         http://www.omg.org/cgi-bin/apps/doc?omg/03-06-01.pdf, Abrufdatum
         17-11-2005, 2003.

[OMG05] OMG: MDA, http://www.omg.org/mda/, 2005.

[OMG05a] OMG: MDA Spezifikation UML Profiles,
         http://www.omg.org/mda/specs.htm#Profiles, Abrufdatum 20-10-2005, 2005.

[OMG05b] OMG: Model Driven Architecture, ftp://ftp.omg.org/pub/docs/omg/00-11-05.pdf
         Abrufdatum 02-11-2005, 2005.

[OMG05c] OMG: OCL 2.0 Specification. 2005.
         http://www.omg.org/cgi-bin/apps/doc?ptc/05-06-06.pdf. Abrufdatum 2005-16-11.

[OMG05d] OMG: About The Object Management Group,
         http://www.omg.org/gettingstarted/gettingstartedindex.htm, 2005.

[Co05]      Compureware: OptimalJ, http://www.compuware.de/products/optimalj, 2005.

[Pf04]      M. Pflug, D. Unger: MDA - Model Driven Architecture Einführung und Beispiel
            an einer praktischen Anwendung, http://www.uni-
            paderborn.de/cs/ag-engels/ag_dt/People/Heckel/DO/GmbS/pdf/MDAUnger-
            Pflug.pdf, Abrufdatum 10-11-2005, 2004.

[QVT03a] QVT Partners: QVT Initial Submission, http://qvtp.org, 2003.

                                                                                22
Kapitel 4: Fazit und Ausblick

[QVT03b] QVT Partners: Revised submission for MOF 2.0 Query / Views / Transformations
         RFP, http://qvtp.org/downloads/1.1/qvtpartners1.1.pdf, Abrufdatum 10-11-2005,
         2003.

[Se03a]     S. Sendall, G. Perrouin, N. Guelfi, O. Biberstein: Supporting Model-to-Model
            Transformations: The VMT Approach. In: IC TECHNICAL REPORT, 51,
            http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200351.pdf,
            Abrufdatum 03-11-2005, 2003.

[Se03b]     S. Sendall, W. Kozaczynski,: Model Transformation – the Heart and Soul of
            Model-Driven Software Development. In: IC TECHNICAL REPORT, 52,
            http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200352.pdf,
            Abrufdatum 03-11-2005, 2003.

[So00]      Soley R. : Model Driven Architecture,
            http://qvtp.org/downloads/talks/orlando20030302.pdf, Abrufdatum 10-11-2005,
            2000.

                                                                                    23
Sie können auch lesen