Konzeption eines generativen und modellgetriebenen Ansatzes für komponentenbasierte Architekturen der Business-Tier

Modellgetriebene Business-Tier Architektur

Dokumentinformationen

Autor

Markus Kopf

Fachrichtung Medieninformatik
Unternehmen

Softlab GmbH

Dokumenttyp Diplomarbeit
Sprache German
Format | PDF
Größe 1.85 MB

Zusammenfassung

I.Ausgangssituation Aufgabenstellung Modellgetriebene Architektur bei BMW

Die Diplomarbeit befasst sich mit der Verbesserung der modellgetriebenen Architektur (MDA) bei BMW. Konkret wird die bestehende Component Architecture 2.0 (CA2.0), die konzernweit für die Entwicklung von Geschäftsanwendungen eingesetzt wird, optimiert. Der Fokus liegt auf der Vereinfachung des Codegenerierungsprozesses mittels des openArchitectureWare (oAW) Frameworks. Das Projekt PEP-PDM (Produkt Entstehungsprozess und Produkt Datenmanagement) dient als Anwendungsfall. BMW strebt bis 2008 die Entwicklung zahlreicher neuer Modelle an, was die Effizienzsteigerung der Softwareentwicklung notwendig macht. Die CA2.0 basiert auf dem generativen Entwicklungsweg der MDA mit den Architekturschichten PIM (Platform Independent Model) und PSM (Platform Specific Model) und verwendet J2EE als Zielplattform. Die Aufgabenstellung besteht darin, die Anzahl der Generierungsschritte zu reduzieren und die Modellvalidierung zu verbessern.

1. Ausgangssituation BMWs Component Architecture 2.0

Die Diplomarbeit basiert auf der bei BMW konzernweit eingesetzten "Component Architecture 2.0" (CA2.0), einer komponentenbasierten Architektur zur Erstellung der Geschäftslogik von Anwendungen. Die CA2.0 definiert Geschäftsobjekte, strukturiert in Komponenten, welche Daten, Logik und Regeln zusammenfassen. Sie folgt dem generativen Ansatz der Model Driven Architecture (MDA) mit den drei Architekturschichten: Platform Independent Model (PIM), Platform Specific Model (PSM) und Implementierungsrahmen. Die Designsprache der CA2.0, basierend auf UML, formuliert das plattformunabhängige Modell (PIM) unter Berücksichtigung komponentenbasierter Entwicklung und allgemeiner Architekturprinzipien. Ein Modelltransformator bildet das PIM auf ein J2EE-konformes PSM und anschließend auf Code ab. Häufig benötigte Basisfunktionalitäten der J2EE-Architektur sind in einem mitgelieferten Framework (ca20_framework) gekapselt. Das Projekt PEP-PDM (Produkt Entstehungsprozess und Produkt Datenmanagement) dient als Grundlage für die Diplomarbeit. Dieses Projekt zielt darauf ab, die zunehmende Datenmenge und Komplexität im Produktentstehungsprozess bei BMW bis 2008, wo zahlreiche neue Modelle auf den Markt kommen sollen, zu bewältigen. PEP-PDM sammelt das gesamte Fahrzeugwissen zentral und stellt es allen Beteiligten zur Verfügung. Die bestehende Architektur mit ihrem dreistufigen Generierungsprozess (PIM zu PSM, XDoclet-Lauf für EJB-Interfaces und Deployment-Deskriptoren) soll im Rahmen dieser Arbeit optimiert werden.

2. Aufgabenstellung und Ziele Optimierung der Codegenerierung

Die zentrale Aufgabenstellung der Diplomarbeit ist die Verringerung der Generierungsschritte bis zum Implementierungsrahmen. Der aktuelle Prozess, bestehend aus drei Schritten (PIM zu PSM, XDoclet-Lauf), soll durch den Einsatz von openArchitectureWare (oAW) als Umsetzung des MDA-Konzeptes optimiert werden. Ziel ist eine erhebliche Steigerung der Entwicklungsgeschwindigkeit durch die Formalisierung der Applikation in Modellen und die automatische Codegenerierung aus formal eindeutigen Modellen. Durch den Einsatz von Generatoren soll die Softwarequalität verbessert werden, da Generatoren keine Flüchtigkeitsfehler machen. Fehler lassen sich somit leichter lokalisieren – im Modell oder in der Transformation – anstatt im Sourcecode. Die gleichbleibende Qualität des generierten Codes führt zu einem höheren Grad an Wiederverwendung. Ein weiterer wichtiger Aspekt ist die Verbesserung der Modellvalidierung, um Fehler frühzeitig im Entwicklungsprozess zu erkennen und zu korrigieren. Die Arbeit untersucht, wie die Modellvalidierung effektiv in den Generierungsprozess integriert werden kann, um die Wahrscheinlichkeit von Fehlern im Modell zu reduzieren und somit die Qualität des generierten Codes zu erhöhen. Das Ziel ist ein effizienterer und fehlerfreier Entwicklungsprozess durch den Einsatz von Modellgetriebener Architektur (MDA).

II. MDSD der MDA Ansatz

Die Arbeit vergleicht MDA mit MDSD (Model Driven Software Development) und erläutert den MDA-Ansatz der OMG. Im Gegensatz zu MDSD konzentriert sich MDA auf UML-basierte Modellierungssprachen und zielt auf Interoperabilität und Standardisierung ab. Ein zentraler Aspekt ist die Verwendung von UML-Profilen, um die Eindeutigkeit der Modellierungssprache und die automatische Transformation von PIM zu PSM und Code zu gewährleisten. Die Arbeit betont, dass Modelle nicht nur zur Dokumentation, sondern als Code betrachtet werden sollten, um die Entwicklungsgeschwindigkeit und -qualität zu steigern. Die Verwendung von Generatoren minimiert Flüchtigkeitsfehler und erhöht die Wiederverwendbarkeit des Codes.

1. Vergleich MDA und MDSD

Die Arbeit vergleicht die Model Driven Architecture (MDA) mit Model Driven Software Development (MDSD). Während beide Ansätze ähnliche Ziele verfolgen, unterscheiden sie sich in einigen zentralen Punkten. MDA konzentriert sich primär auf UML-basierte Modellierungssprachen und zielt auf Interoperabilität zwischen verschiedenen Werkzeugen sowie die langfristige Standardisierung von Modellen für verbreitete Anwendungsbereiche ab. MDSD hingegen setzt weniger Restriktionen auf die Modellierungssprachen und Werkzeuge und konzentriert sich auf die Bereitstellung von praktisch einsetzbaren Elementen für die Softwareentwicklung. Ein wichtiger Unterschied liegt in der Sichtweise auf den Zwischenschritt über das Platform Specific Model (PSM): MDSD sieht darin keine gravierenden Vorteile, im Gegenteil, die Versionierung des PSM wird als erschwerender Faktor in großen Projekten angesehen, da Änderungen am PSM zusätzliche Versionierungs- und Konsistenzprüfungsaufgaben verursachen. Die Arbeit argumentiert, dass dieser zusätzliche Aufwand in großen Projekten nicht zu unterschätzen ist und die Vorteile von MDA aufzeigt, die durch eine striktere Fokussierung auf UML und Standardisierung entstehen.

2. Der MDA Ansatz der OMG

Der MDA-Ansatz der Object Management Group (OMG) wird detailliert erläutert. Fachliche Spezifikationen werden in plattformunabhängigen Modellen (PIMs) definiert, wobei eine formal eindeutige Modellierungssprache (Designsprache) verwendet wird. Diese Designsprache basiert in der Regel auf einer mittels Profile erweiterten UML-Notation. Die so erreichte Fachlichkeit ist unabhängig von der späteren Zielplattform. Die Eindeutigkeit, die durch das Profil erreicht wird, ist entscheidend und unterscheidet ein MDA-Modell von einem gewöhnlichen UML-Diagramm. Erst durch das Profiling kann das Anwendungsdesign in einem späteren Generierungsschritt in einen Implementierungsrahmen überführt werden. Der Unterschied zwischen MDA-Modellen und UML-Diagrammen liegt in der formal definierten Bedeutung (Semantik), die durch die eindeutige Modellierungssprache sichergestellt wird. Ein Generator transformiert das Modell (PIM) eindeutig in ein spezielleres Modell (PSM) oder direkt in Sourcecode. Die Arbeit verdeutlicht, dass die Verwendung von UML-Profilen essentiell ist, um die automatische Modelltransformation und die Generierung von plattformspezifischem Code zu ermöglichen. Diese eindeutige Transformation ist ein Kernmerkmal des MDA-Ansatzes.

III.UML UML Profile der BMW Transformator

Die Arbeit beschreibt die Rolle der Unified Modeling Language (UML) und von UML-Profilen im Kontext von MDA. UML-Profile erweitern die UML um domänenspezifische Aspekte und ermöglichen die eindeutige Definition von Modelltransformationen. Der bestehende BMW-Transformator wird als Ausgangspunkt der Optimierung analysiert. Dieser Transformator basiert auf der CA2.0 und generiert J2EE-Artefakte über mehrere Schritte. Die Arbeit zeigt die Schwächen des BMW-Transformators auf, insbesondere das Fehlen einer effektiven Modellvalidierung.

1. Unified Modeling Language UML als Grundlage

Die Unified Modeling Language (UML) bildet die Grundlage für die Modellierung in der Diplomarbeit. Sie dient als Standard-Modellierungssprache zur grafischen Beschreibung von Softwaresystemen und wird in der Arbeit im Kontext der Model Driven Architecture (MDA) verwendet. Die UML, spezifiziert von der OMG, bietet eine einheitliche Notation für verschiedene Anwendungsbereiche, von Datenbank- bis hin zu Echtzeitsystemen und komponentenbasierten Anwendungen. Sie besteht aus verschiedenen Diagrammen mit eindeutigen grafischen Artefakten und einer klar definierten Semantik. Die Arbeit betont die Bedeutung der eindeutigen Semantik der UML-Artefakte für die automatisierte Codegenerierung im MDA-Prozess. Die Verwendung der UML als Modellierungssprache ermöglicht eine abstrakte Beschreibung von Softwaresystemen, unabhängig von der zugrundeliegenden Technologie. Der Fokus liegt dabei auf der Möglichkeit, UML-Modelle durch Transformation in ausführbaren Code umzuwandeln, was den Kern des modellgetriebenen Entwicklungsansatzes darstellt. Die Arbeit verwendet die UML zur Modellierung des Platform Independent Model (PIM) innerhalb der BMW Component Architecture 2.0.

2. UML Profile für die Modelltransformation

UML-Profile werden als Standardmechanismus zur Erweiterung des Sprachumfangs der UML beschrieben, um sie an spezifische Einsatzbedingungen anzupassen. Innerhalb des MDA-Kontexts bilden sie die Grundlage für die automatische Modelltransformation. Mit Hilfe von UML-Profilen (und entsprechenden Transformationsregeln) wird die Abbildung eines Modells auf eine gegebene Plattform eindeutig definiert. So kann beispielsweise ein PIM in ein für eine definierte Zielplattform geeignetes PSM umgewandelt werden (Modell-zu-Modell-Transformation). Die eindeutige Abbildung ist entscheidend für die automatische Codegenerierung. Die Arbeit unterstreicht die Rolle von UML-Profilen als Schlüsselkomponente zur Gewährleistung der eindeutigen und automatisierten Transformation von Modellen, was die Grundlage für die effiziente Codegenerierung im MDA-Ansatz bildet. Die Fähigkeit, ein PIM durch UML-Profile eindeutig auf ein PSM abzubilden, ist ein wesentlicher Bestandteil der in der Diplomarbeit untersuchten Architektur und des Transformationsprozesses.

3. Der BMW Transformator Ausgangspunkt und Herausforderungen

Die Diplomarbeit analysiert den bei BMW eingesetzten Transformator für die Component Architecture 2.0 (CA2.0). Dieser Transformator ist Teil einer komponentenbasierten Architektur, die konzernweit bei BMW Anwendung findet. Er dient der Generierung von Geschäftslogik in Anwendungen und basiert auf dem generativen Entwicklungsweg der MDA. Der BMW-Transformator beinhaltet einen mehrstufigen Prozess, der das Modellierungsprofil auf ein J2EE-konformes plattformspezifisches Modell abbildet und anschließend in Code überführt. Ein bedeutender Nachteil des BMW-Ansatzes ist das Fehlen einer Modellvalidierung. Dies ermöglicht das Modellieren beliebiger Strukturen innerhalb der Grenzen der Unified Modeling Language (UML) und des Modellierungstools Together. Die Arbeit identifiziert die Notwendigkeit einer verbesserten Modellvalidierung und einer Optimierung des mehrstufigen Generierungsprozesses, um die Effizienz und Zuverlässigkeit der Softwareentwicklung zu verbessern. Der BMW-Transformator dient als Ausgangspunkt, um die Vorteile eines optimierten Prozesses mit dem openArchitectureWare Framework aufzuzeigen. Die fehlende Modellvalidierung wird als eine zentrale Schwachstelle im BMW-Ansatz identifiziert, welche durch die Einführung neuer Verfahren verbessert werden soll.

IV.openArchitectureWare oAW Framework dessen Vorteile

Das openArchitectureWare (oAW) Framework wird als Alternative zum BMW-Transformator vorgestellt. oAW bietet eine verbesserte Codegenerierung mit der Xpand Templatesprache, vereinfacht den Generierungsprozess, und integriert eine effiziente Modellvalidierung über Check-Dateien. Dies ermöglicht eine sauberere Trennung von Generierungslogik und Metamodell. Die Arbeit beschreibt die Verwendung von XMI als Austauschformat und die Vorteile der oAW-basierten Generierung, wie z.B. die verbesserte Transparenz und die Möglichkeit zur Anpassung an verschiedene Technologien (z.B. J2EE, .NET) durch das Anpassen von Templates. Die Modellvalidierung in oAW findet vor der Transformation statt und ermöglicht das frühzeitige Erkennen von Fehlern. Die Arbeit hebt die Vorteile von oAW gegenüber dem BMW-Transformator hervor, insbesondere in Bezug auf die Modellvalidierung und die Flexibilität des Generierungsprozesses.

1. openArchitectureWare oAW als MDA Lösung

Die Diplomarbeit evaluiert das openArchitectureWare (oAW) Framework als Lösung für die modellgetriebene Architektur (MDA). oAW wird als Alternative zum bestehenden BMW-Transformator vorgestellt, um den Codegenerierungsprozess zu optimieren und zu vereinfachen. Im Gegensatz zum BMW-Transformator bietet oAW eine verbesserte Interpretation des MDA-Konzeptes und ermöglicht eine effizientere Generierung von Code aus Modellen. Die Arbeit beschreibt oAW als ein Generator-Framework, das den viel diskutierten MDA-Ansatz der OMG umsetzt. Ein wichtiger Vorteil von oAW ist seine Flexibilität und Unabhängigkeit von spezifischen Modellierungssprachen und Tools. Die einzige Voraussetzung ist, dass die Modelle im XMI-Format (XML Metadata Interchange) vorliegen. oAW unterstützt verschiedene Modellierungstools wie Together, MagicDraw und Poseidon und vereinfacht so den Workflow der modellgetriebenen Softwareentwicklung. Das Framework wird zur Instanziierung des Anwendungsdesigns (PIM) verwendet. Der Generierungsprozess wird durch XML Mapping-Dateien gesteuert, die je nach verwendetem Modellierungstool angepasst werden müssen. Die Einbindung in die Eclipse-Entwicklungsumgebung wird positiv hervorgehoben, was eine effizientere und angenehmere Entwicklung ermöglicht.

2. Xpand Die Templatesprache von oAW

oAW beinhaltet die eigene Templatesprache Xpand, die zur Steuerung des Outputs (Generats) verwendet wird. Xpand-Templates sind Textdateien mit der Endung .xpt, die mit dem Eclipse-Editor von oAW verknüpft sind. Sie definieren die konkrete Abbildung des generischen Anwendungsdesigns (PIM) auf eine spezifische Technologie. Der Einsatz verschiedener technologieabhängiger Templates ermöglicht die Verwendung des gleichen PIM für unterschiedliche Plattformen (z.B. J2EE und .NET). Die Anpassung an verschiedene Technologien erfolgt durch Änderungen in den Templates, was dem Ansatz der OMG entspricht, Modelle nicht nur als visuelle Dokumentation, sondern als Code zu betrachten. Auch kleinere Änderungen an der Ausführungsplattform, wie der Wechsel des Applikationsservers, erfordern lediglich verhältnismäßig kleine Anpassungen in den Templates. Das zentrale Konzept von Xpand ist der Define-Block, der dynamisch zur Laufzeit an das instanziierte Anwendungsdesign gebunden werden kann. Extensions können mit oAW-Ausdrücken oder Verweisen auf Java-Methoden implementiert werden, um zusätzliche Funktionalität bereitzustellen. Dies ermöglicht eine flexible und anpassungsfähige Codegenerierung.

3. Modellvalidierung und Erweiterbarkeit von oAW

oAW unterstützt die Modellvalidierung, was im Vergleich zum BMW-Transformator einen deutlichen Vorteil darstellt. Frühere Versionen von oAW führten die Validierung durch Überschreiben der checkConstraint-Methode in den Metaklassen durch, was als unsauber angesehen wird. Version 4.0 und höher bietet eine verbesserte Lösung mit der Sprache "Check". Validierungsregeln (Constraints) werden in separaten Check-Dateien (.chk) definiert und über den Workflow in den Generierungsprozess eingebunden. Der Entwickler kann festlegen, ob ein Verstoß gegen einen Constraint die Generierung unterbricht oder nur eine Warnung ausgibt. Diese Auslagerung der Constraints ermöglicht eine saubere Trennung von der Designsprache und dem Metamodell, im Gegensatz zu früheren Versionen oder dem BMW-Ansatz. Durch die Erweiterung des Metamodells lassen sich zusätzliche Funktionen einbauen, jedoch verzichtet die Diplomarbeit darauf, um die Komplexität zu reduzieren. Stattdessen werden zusätzliche Funktionen über den Extensions-Mechanismus ausgelagert. Die Modellvalidierung, integriert im Generierungsprozess, überprüft den validen Zustand des Anwendungsdesigns vor der Transformation.

V.Bewertung Ausblick EMF und GMF

Die Arbeit bewertet die Vorteile des modellgetriebenen Ansatzes für die J2EE-Entwicklung und hebt die Effizienzsteigerung durch Codegenerierung hervor. Im Ausblick wird die zukünftige Integration der MDA-basierten Entwicklung in ein einziges Entwicklungstool wie Eclipse diskutiert. Dabei werden Eclipse Modeling Framework (EMF) und Graphical Modeling Framework (GMF) als vielversprechende Technologien genannt, um die Erstellung und Bearbeitung von Metamodellen und PIMs zu vereinfachen. Die Verwendung von EMF in der neuen CA3.0 Architektur bei BMW wird angesprochen, sowie der potenzielle Einsatz von GMF für eine benutzerfreundlichere grafische Modellierung. Die Herausforderungen bei der Implementierung von MDA werden ebenfalls angesprochen, einschließlich der Komplexität der Konzepte. Trotz der Vorteile von oAW konnte es im Projekt PEP-PDM nicht vollständig eingesetzt werden, da das Projekt zu weit fortgeschritten war.

1. Bewertung des modellgetriebenen Ansatzes

Die Arbeit bewertet den Einsatz eines modellgetriebenen Ansatzes im Kontext der J2EE-Technologie und der Generierung von Business-Tier-Artefakten. Es wird festgestellt, dass dieser Ansatz einige Vorteile bietet, insbesondere die Möglichkeit, aus einem Anwendungsdesign auf Basis einer domänenspezifischen Sprache einen Architekturrahmen zu generieren. Der Mehrwert der Generierung wird anhand der Anzahl der in der EJB-Technologie benötigten Artefakte deutlich. Die automatische Generierung reduziert den manuellen Aufwand (Copy-and-Paste) und somit die Wahrscheinlichkeit von Fehlern bei der Implementierung. Die Arbeit hebt hervor, dass durch den Einsatz modellgetriebener Methoden ein effizienterer und zuverlässigerer Entwicklungsprozess erreicht werden kann. Die Reduktion von manuellen Schritten und die verbesserte Fehlervermeidung durch den Einsatz von Generatoren werden als wesentliche Vorteile hervorgehoben. Die Arbeit verdeutlicht den Nutzen der modellgetriebenen Entwicklung, insbesondere im Hinblick auf die Effizienzsteigerung und die Verbesserung der Softwarequalität.

2. Ausblick EMF und GMF für zukünftige Entwicklungen

Der Ausblick der Diplomarbeit konzentriert sich auf zukünftige Entwicklungsschritte im Kontext generativer Architekturen. Es wird der Trend zur vollständigen Integration der Entwicklung in ein einziges Entwicklungstool (im Gegensatz zu Toolchains) hervorgehoben. Konkret werden das Eclipse Modeling Framework (EMF) und das Graphical Modeling Framework (GMF) als vielversprechende Technologien genannt. Mit EMF soll die Erstellung der domänenspezifischen Sprache (Metamodell), das Anwendungsdesign (PIM), die Transformation und Implementierung alles innerhalb eines Entwicklungstools (Eclipse) möglich sein. Die Arbeit erwähnt die Herausforderung der Anwenderfreundlichkeit beim Erstellen von Metamodellen mit dem baumbasierten Editor von EMF und schlägt den Einsatz von GMF vor, um dies zu verbessern. Der Einsatz des UML2Ecore-Moduls von openArchitectureWare wird als Möglichkeit genannt, um das Anwendungsdesign in einem komfortablen Designtool wie MagicDraw zu erstellen. Die Arbeit diskutiert auch die Komplexität modellgetriebener Ansätze und betont die Notwendigkeit, die Konzepte (Metamodell, PIM, PSM, UML usw.) zu verstehen, bevor man effektiv damit arbeiten kann. Die Integration in ein einzelnes Entwicklungstool wird als ein wichtiger Schritt hin zu einer effizienteren und benutzerfreundlicheren modellgetriebenen Softwareentwicklung angesehen.

3. Zusammenfassung der Ergebnisse und Ausblick auf zukünftige Projekte

Abschließend wird die erfolgreiche Technologieersetzung des BMW-Transformators mit dem openArchitectureWare Framework hervorgehoben, die Verbesserungen in der Modellvalidierung und erweiterte Möglichkeiten brachte. Die verbesserte Transparenz des Generierungsprozesses wird als Vorteil für neue Teammitglieder genannt. Allerdings konnte der BMW-Generator im Projekt PEP-PDM nicht vollständig ersetzt werden, da das Projekt zu weit fortgeschritten war und der openArchitectureWare Generator die Protected Regions des BMW-Generators nicht berücksichtigt. Dies führte zum Verlust fachspezifischen Codes bei Iterationen. Die Arbeit schlussfolgert, dass die entwickelte generative Architektur aber für neue Projekte basierend auf der Component Architecture sofort einsetzbar ist. Die Arbeit zeigt, dass ein modellgetriebener Ansatz, insbesondere mit dem openArchitectureWare Framework, erhebliche Vorteile gegenüber traditionellen Ansätzen bietet, jedoch die Komplexität der Konzepte zu berücksichtigen ist. Die Integration von EMF und GMF wird als vielversprechender Schritt für die Zukunft der modellgetriebenen Architektur bei BMW gesehen.

Dokumentreferenz

  • Apache Ant Homepage
  • openArchitectureWare Eclipse Page
  • Eclipse Modeling Framework Dokumentation