Hoffnungsträger Model Driven Architecture

Wege aus der Plattformabhängigkeit

01.02.2002
Mit der Model Driven Architecture (MDA) bewirbt das Konsortium Object Management Group (OMG) eine Initiative, die Anwendungsentwicklern mehr Freiheiten beim Entwurf und der Portierung von objektorientierten Anwendungen verschaffen soll. Im Mittelpunkt steht ein plattformunabhängiges Metamodell, mit dem sich Implementierungen erzeugen und migrieren lassen. Von Gerhard Versteegen*

Die heutige Softwareentwicklung zeichnet sich dadurch aus, dass der Anwender während der Anforderungsanalyse und der Modellierung von Geschäftsprozessen noch unabhängig von der Zielplattform arbeitet. Dabei entsteht ein Platform Independent Model (PIM), das die formale Spezifikation der Struktur und des Verhaltens eines Systems abbildet und von den technischen Details abstrahiert. Doch bei der Implementierung des Modells beginnen die Probleme: Der Anwender muss sich beispielsweise für einen bestimmten Applikations-Server entscheiden und kann zunächst nur dort sein Programm laufen lassen. Wird eine Änderung der Zielplattform im Lauf der Zeit nötig, ist der dafür zu veranschlagende Zeit- und Kostenaufwand erheblich.

Modelle verfeinernMDA verspricht hier einen intelligenten und innovativen Mechanismus: Anforderungen, Modelle und Prozesse werden zunächst in einem abstrakten und plattformunabhängigen Modell erfasst. Dieses wird dann im folgenden Schritt zu einem plattformspezifischen Modell (PSM = Platform Specific Model) für eine konkrete Implementierungsplattform verfeinert. Letztere kann beispielsweise ein J2EE-Applikations-Server oder ein Corba-Server sein. Auf Basis dieses detaillierteren Modells werden dann ausführbare Anwendungen generiert. Dabei liegt die Betonung auf "generiert", damit bei einem Wechsel der Plattform der entsprechende Code nicht neu implementiert werden muss.

Ein wesentliches Ziel von MDA ist es Technologien wie Corba, J2EE, XML und .NET zu integrieren, um so die Portabilität von Software auf unterschiedlichen Plattformen unterstützen zu können. Grundvoraussetzung dafür ist ein modellgetriebener Ansatz. Unter einem Modell wird in diesem Kontext die Repräsentation eines Teils einer Funktion, einer Struktur oder des Verhaltens eines Systems verstanden.

Klare VerhältnisseMDA beschreibt die Modelle mit Hilfe der Unified Modeling Language (UML) und unterteilt sie in PlMs und PSMs. Zusätzlich werden in MDA konsistente Beziehungen zwischen diesen Modellen definiert. Die PIMs enthalten formale Spezifikationen der Strukturen und Funktionalitäten des Systems, die von technischen Details abstrahieren. Ein "Component View" beschreibt Komponenten und ihre Interaktionen in einer plattformunabhängigen Art und Weise. Das PSM wird aus dem PIM anhand vorgegebener Transformationsschritte abgeleitet. Ein weiteres zentrales Element von MDA ist das Mappen zwischen Modellen (siehe Grafik).

MDA wird bereits heute von einigen Werkzeugherstellern unterstützt (siehe Tabelle), die den OMG-Standard allerdings sehr unterschiedlich implementiert haben. Hierbei lassen sich drei Produktklassen unterschieden: Eine davon bilden reine grafische Werkzeuge für UML-Diagramme wie etwa "Aris E-Business Workbench" von IDS Scheer oder "Visio" von Microsoft. Dazu kommen die herkömmlichen Case-Werkzeuge, die plattformspezifischen Code generieren. Beispiele wären hier "Rational Rose" von Rational Software oder "Innovator" von MID. Eine dritte Gruppe schließlich setzt meist auf Case-Werkzeugen auf und unterstützt sowohl plattformspezifische als auch plattformunabhängige Modelle, aus denen sich optimierter Code für einen bestimmten Server generieren lässt.

Ein Beispiel für die letzte Gruppe ist das Tool "Arcstyler" der Interactive Objects Software in Freiburg. Laut Hersteller ist es das erste Produkt seiner Art, mit dem sich J2EE-Systeme gemäß den Konzepten der MDA entwickeln lassen. Das Tool erlaube, sofort ausführbare Anwendungen zu erzeugen inklusive Konfiguration, Hot Deployment sowie Test und Debugging-Unterstützung für die jeweilige Zielplattform. Alle für die Erzeugung ausführbaren Codes notwendigen Informationen werden im Modell gehalten - dabei werden die Technologie- und Server-spezifischen Attribute der Annotation gespeichert. Soll der Code für einen weiteren Applikations-Server generiert werden, könnten laut Hersteller die technologiespezifischen Einstellungen übernommen werden. Der generierte Code sei auf die jeweilige Plattform individuell abgestimmt. Dadurch werde eine Umsetzung von Geschäftsmodellen auf neue Technologien ermöglicht, ohne bei einem Technologiewechsel wieder von vorne anfangen zu müssen (siehe Kasten "Arcstyler").

MDA verspricht KosteneinsparungenMDA verspricht einen Standard, der sich mit den diversen, auch künftig vorhandenen Middleware und Objekttechnologien verwenden ließe. Bei der Anwendungsentwicklung könnten laut der OMG ohne großen Aufwand neue Standards integriert oder aktuelle Server-Versionen verwendet werden. Dazu müssten nicht mehr wie bisher große Teile des Codes neu geschrieben werden. Selbst ein Wechsel der Infrastruktur zu einem anderen Hersteller oder sogar der Objekttechnologie wäre nun nicht mehr undenkbar.

Ebenfalls für MDA spricht laut seinen Verfechtern, dass die plattformübergreifende Codegenerierung ein gewaltiges Sparpotenzial birgt. So werden bei einem Technologiewechsel die Kosten deutlich reduziert. Nicht die Software wird geändert oder gar neu erstellt, sondern alle erforderlichen Änderungen werden im Modell vorgenommen und die neue Technologie generiert. Laut OMG ließen sich so die Kosten bei einem Technologiewechsel in einem deutlich zweistelligen Prozentbereich reduzieren. Dabei werde gleichzeitig die Qualität erhöht, da die Software generiert wird und somit "menschliche Programmierfehler" weitgehend ausgeschlossen werden können. (as)

*Gerhard Versteegen ist Inhaber von High Level Marketing Consulting in München.

ModellierungswerkzeugeHersteller / Werkzeug

Adaptive / Adaptive Framework

Codagen-Technology / Gen-it Architect

Ebulit / Codigo Xpress

Headway Software / Headway Review

Interactive Objects / Arcstyler

Kabira Technologies / Objectswitch, Kabira Business

Kennedy Cater / IUML, iCCG

Ontos / Objectspark

Project Technology / Bridge Point, Design point

Secant Technologies / Modellmethods

Quelle: OMG

ArcstylerZunächst werden mit dem "Business Object Modeller" die fachlichen Anforderungen unabhängig von der Plattform erfasst. Dazu werden "CRC Cards" benutzt. Im zweiten Schritt wird mit einem "Pattern Refinement Assistant" das Fachmodell interaktiv in ein Basis-UML-Modell überführt. Die dabei getroffenen Design-Entscheidungen werden im Modell annotiert und können in folgenden Iterationen wiederverwendet werden.

Im dritten Schritt wird das UML-Modell mit Hilfe des integrierten Case-Tools "Rational Rose" verfeinert. Dabei lässt sich in Arcstyler dank "Cartridges" der Code für den jeweiligen Applikation-Server optimieren und dann generieren. Abschließend kommt die Java-Entwicklungsumgebung "Jbuilder" von Borland zum Einsatz, und es werden zusätzlich zu den erzeugten Enterprise-Javabeans-Komponenten auch die notwendigen Projektdateien und Konfiguration für Entwicklungsumgebungen erzeugt. Wer andere Entwicklungsumgebungen bevorzugt, kann diese laut Hersteller über den Standard "Ant Build Process" integrieren. Sogar Skripte für das Erstellen des Schemas der Datenbank können zudem generiert werden.

LinksInformationen, Whitepapers, Spezifikationen zu MDA finden sich unter:

www.omg.org/mda

www.io-software.com/mda

Abb: Das MDA-Metamodell

Mit Hilfe von Regeln und Techniken lassen sich dabei bestehende Modelle in neue umwandeln. Möglich sind Abbildungen von PIM zu PIM zwischen verschiedenen "Business Viewpoints" und PIM zu PSM für die Verfeinerung des Modells bis zur lauffähigen Anwendung. Das Mappen von PSM zu PSM dient für weitere Verfeinerungsschritte oder Zielplattformen, und PSM zu PIM ermöglicht die Abstraktion von Modellen aus bestehenden, plattformspezifischen Implementierungen zu plattformunabhängigen Modellen. Das Metamodell selbst kann in Sprachen wie UML oder MOF (Meta Object Facility) erfasst werden. Quelle: OMG