Technische
Universität München, Institut für Informatik |
|
SEP oder Bachelorarbeit:
Realisierung einer Java-Komponente zur Inspektion von Objetktransformationsregeln
Thematische Einordnung:
Durch die immer stärkere Integration verschiedenster Anwendungen im Internet,
nicht zuletzt im Bereich des B2B wird es notwendig Daten zwischen Systemen
auszutauschen die ursprünglich nicht für den gemeinsamen Einsatz konzipiert waren. Neben der rein
technischen Integration, die in diesem Umfeld zumeist durch Technologien wie
HTTP, SOAP und XML gewährleistet wird ist es auf konzeptioneller Ebene notwendig
die Anwendungsdaten der Systeme zu integrieren. In objekt-orientierten Systeme
liegen diese Daten in der Regel in Form von Objektgeflechten vor, für die
jeweils unterschiedliche Metamodelle, bzw. Klassenstrukturen existieren.Mit
der Bidirectional Object-oriented Transformation Language (BOTL) existiert eine
auf einem Formalismus basierende Sprache zur
Transformation von Objektmodellen. Mit Hilfe von BOTL ist es sehr leicht
möglich die Transformation von Objektgeflechten mit Hilfe einer graphischen, an
die UML angelehnten Sprache zu definieren. So lassen sich
graphisch eine Reihe von Regeln definieren in denen festgelegt wird, wie
einzelne Auschnitte von Objektmodellen zu transformiert sind. Auf Basis dieser
Regeln und dem Ursprungs- und Zielmetamodell lassen sich bereits Aussagen
für beliebige Ursprungsmodelle machen: Ist eine Transformation von Modellen mit
dem gegebenen Regelsatz generell möglich? Erzeugt die Transformation immer
Modelle die konform zum Zielmetamodell sind? Lassen sich mit einem Regelsatz
Modelle bijektiv ineinander überführen? Erweist sich ein Regelsatz als
anwendbar, so lässt sich hieraus der Code für einen passenden
Modelltransformator generieren.
Konkrete Themenstellung:
Im Rahmen dieser Arbeit soll eine Java-Komponente zur Überprüfung von
BOTL-Transformationsregeln auf verschiedene Eigenschaften erstellt werden. Diese
Eigenschaften, welche bereits formal gefasst sind, sind im Einzelnen:
- Anwendbarkeit: Eine anwendbare Regel stellt sicher, dass bei der durch sie
festgelegten Transformation keine Konfliktfälle auftreten. Beispielsweise darf
keinem Attribut zweimal ein verschiedener Wert zugeordnet werden.
- Metamodellkonformität: Ein metamodellkonformes Regelwerk garantiert, dass
bei bei der durch sie festgelegten Transformation ein bzgl. des
Zielmetamodells korrektes Zielmodell entsteht. Andernfalls wäre es z.B.
denkbar, dass Multiplizitätsobergrenzen von Assoziationen im Zielmodell
überschritten werden.
- Bijektivität: Ein bijektives Regelwerk erlaubt die Generierung eines
Transformators und des zugehörigen Rücktransformators. D.h. mit einem solchen
Regelwerk werden Abbildungen zwischen Modellen von einer Darstellungsform in
die andere und zugleich umgekehrt definiert.
Ziel der Arbeit ist die Erstellung eine Komponente, welche BOTL-Regelwerke in
Form von XML-Dateien einlesen kann und diese Regelwerke auf die oben genannten
Eigenschaften hin untersuchen kann. Sollten einzelne Kriterien nicht erfüllt
sein, so ist der Benutzer über die Art und Stelle der Verletzung der Eigenschaft
zu informieren. Hierzu ist eine graphische Benutzeroberfläche zu realisieren.
Das Werkzeug zur Generierung der XML-Dokumente mit den BOTL-Regelwerken und
der Codegenerator für die Modelltransformatoren werden parallel in einem SEP und
einer DA entwickelt.
Vorgehensweise:
-
Einarbeitung in grundlegende Technologien (XML, XMI, Java-APIs, ...) und die
BOTL-Transformationen
-
Evaluierung möglicher UML-Werkzeuge
-
Design-Konzept für die Werkzeugerweiterung
-
Realisierung der Zusatzfunktionalität
-
Evaluierung des Werkzeugs anhand von Beispielszenarios
Voraussetzungen:
-
Gute Java-Kenntnisse
-
Grundlegende UML-Kenntnisse (Klassen- und Objektdiagramme)
-
XML-Kenntnisse (nicht notwendig)
-
Freude am Teamwork
Betreuer:
Peter Braun, TU München
Frank Marschall, TU München
Aufgabensteller:
Prof. Dr. Manfred
Broy
Peter Braun, Frank Marschall, Juli 2002