Reverse Engineering Tool

Zur Vorbereitung auf die Änderung der Architektur einer Lebensversicherung müssen bestehende Objektmodelle grafisch aufbereitet werden. Im Smalltalk Code ist sämtliche (Meta-)Information enthalten, kann aber vom UML Tool nicht interpretiert werden.

Umfeld

Eine Lebensversicherung hat eine Applikation mit Fat-Client Architektur zur Abwicklung ihrer Geschäftsprozesse in Produktion. Als Datenbank dient das relationale DB2. Die gesamte Geschäftslogik und das UI sind in der objektorientierten Programmiersprache Smalltalk realisiert. Das Mapping der Geschäftsobjekte auf die Datenbank ist an eine eigene Komponente ausgelagert. Die dafür notwendige Information stellen die Business Model Klassen als Meta Daten in ihren Klassenmethoden zur Verfügung.

Die unternehmensweit einheitliche Strategie heißt, sämtliche Applikationen auf eine webbasierte Lösung umzustellen.

Als Planungsgrundlage für den Lebensbereich benötigt man das Geschäftsmodel in UML Form als statisches Klassenmodel. Dieses ist die Ausgangsbasis der grafischen Aufbereitung mit einem UML Modellierungstool. Es ist auch angedacht, diverse Artefakte (Tabellen, Klassen, Mappings, XML Schemata, usw.) später einmal mit diesem Tool zu generieren.

Es sind semantisch praktisch alle notwendigen Informationen zur Darstellung in diesem Tool in den ursprünglichen Business Model Klassen vorhanden, aber das Tool kann die Informationen nicht daraus importieren.

Projekt Ziel

Die im Business Model enthaltene Meta Information ist in ein Format umzuwandeln, welches das UML Modellierungstool importieren kann.

Projekt Umfang

Es wird ein Parser implementiert, der die Metadaten aus dem Business Model extrahiert und im Anschluss dann in eine XML Datei umwandelt. Die XML Datei muss dabei einem bestimmten Schema (XSD) entsprechen, damit sie vom UML Modellierungstool importiert werden kann.

Mit diesem Ansatz stehen sämtliche Informationen über Klassen, Attribute, Beziehungen der Klassen zueinander inklusive Vererbung dem UML Modellierungstool zur Verfügung.