Einsatz von MetaMeta-Modellen zur Transformationen von
Meta-Modellen (Projektbeispiel)
Der Einsatz modellbasierter Technologien ermöglicht weitreichende Optimierungsprotentiale.
Zwischenzeitlich haben modellbasierte System unr Metatechnologien Einzug in die IT-Welt gehalten und UML als Beschreibungssprache hat sich zwischenzeitlich zu einem Standard
entwickelt.
Dass die Potentiale modellbasierter Entwicklungen bei weitem noch nicht ausgeschöpft werden sollder nachfolgende Artikel aufzeigen.
Die konsequente Weiterentwicklung in diesem Umfeld sind sicherlich MetaMeta-Modelle. Nur was ist das eigentlich?
Zugegebenermassen ist dies ein Kunstwort, aber prinzipiell sind MetaMeta-Modell einfach eine weitere Abstraktionsebene die auf Meta-Modellen aufsetzen.
Einfacher gesagt ... ein MetaMeta-Modell ist das abstrakte Modell eines Metamodelles. Es stellt sich dabei natürlich die Frage was die Einsatzbereiche solcher MetaMeta-Modelle sind.
Ein Beispiel sagt meist mehr als 1000 Worte und ein reales Beispiel um so mehr. Ich möchte Ihnen hier ein interessantes Projekt vorstellen, bei dem durch einen innovativen Ansatz und dem
Einsatz von MetaMeta-Modellierung die Projektrisiken fast vollständig vermieden werden konnten und gleichzeitig die Aufwendungen um mehr als 80% reduziert werden konnten.
Das Projekt
Gegeben (IST)
Eine große Gesellschaft im Finanzbereich erstellte ihre Softwarekomponenten auf Basis eines Metamodelles (UML) in Paradigm Plus.
Der Aufwand für die Entwicklung der Business-Modelle betrug bereits mehrere zig-Mannjahre und auch die
aus den Modellen generierten Java-Codes hatten einen Umfang von weit mehr als 100MB.
Hinweis: Paradigm Plus war zu diesem Zeitpunkt quasi das defacto Standard Modellierungswerkzeug mit bis zu 80% Weltmarktanteil.
Anforderung
Aus strategischen Gründen sollte zukünftig Rational Rose statt Paradigm Plus eingesetzt werden. D.h. die komplette Entwicklungsplattform sollte gewechselt werden, wobei selbstverständlich
die bereits durchgeführten Entwicklung (Modelle, Quellcodes, ...) übernommen und weiter gepflegt bzw. erweitert werden sollten.
Erster geplanter Lösungsansatz
Die Umsetzung sollte nach den gängigen Verfahren (Remodellierung auf dem Zielsystem, Anpassung der Java-Quellcodes, Testing) erfolgen.
Um die Konsistenz der Programme zu sichern sollten sämtliche UML-Modelle aus Paradigm Plus nach Rational Rose konvertiert werden. Die aus den Modellen generierten Java-Quellcodes
mussten funktional mit den ursprünglichen Programmen übereinstimmen.
Die Aufwände für die Transformation und Migration wurde mit mindestens 2 Mannjahren angesetzt, wobei der Testaufwand nahezu unkalkulierbar gewesen wäre.
Zudem wäre die Entwicklungsabteilung während der Migration für mind. 2 Wochen blockiert gewesen.
Neuer Lösungsansatz, u.a. mit MetaMeta-Modellen
Nach einer vorläufigen Analyse wurde ein alternativer Lösungsweg vorgeschlagen, welcher geringere Projektrisiken,
effizienter Umsetzung und maximaler Qualität ermöglichte.
- Automatische Transformation der Modelle von Paradigm Plus nach Rational Rose
- Minimieren der Testaufwendungen dadurch, dass die generierten Quellcodes bei beiden Entwicklungssytsmen identisch sind
- Reduzierung der Blockierungen des laufenden Entwicklungsbetriebes auf ein Minimum
Problematik
-
Paradigm Plus verfügte in der Version nicht über eine vollständige Objektschnittstelle.
-
Die UML-Modelle von Paradigm Plus unterscheiden sich in Teilen zu denen von RationalRose.
-
Nicht abgefangene Inkonsistenzen zwischen grafischem und logischem Modell in Paradigm Plus
-
Die generierten Java-Codes differierten hinsichtlich Namensgebung, Formatierung und funktionaler Umsetzung auch bei gleicehn Modellen in beiden Systemen
Erweiterte Anforderungen
Um die Konsistenz der Programme zu sichern mussten sämtliche UML-Modelle aus Paradigm Plus nach Rational so
konvertiert werden, dass der aus den Modellen generierte Java-Quellcode 100% kompatibel
zu dem Paradigm Plus Java-Quellcode sein musste. Dies schloss sowohl generierte Kommentare als
auch Quellcodeformatierungen ein.
Erwartete Ergebnisse
-
Durch eine automatische Transformation wären Modellierungsfehler auf dem Zielsystem quasi ausgeschlossen
-
Die Validierung der generierten Java-Quellcodes reduziert sich auf einen einfachen Datei-/Verzeichnisvergleich
-
Durch die vollautomatische Transformation und den einfachen Test könnte die Blockierung der Entwicklungsabteilung während der Migration vollständig vermieden werden
Realisierung
-
Um die Modellunterschiede zu beschreiben wurden zuerst die Metamodelle von
Paradigm und von Rational extrahiert. In Paradigm konnte hierzu die interne
Scriptsprache verwendet werden. In RationalRose konnte die Objektschnittstelle
zumindest rudimentär verwendet werden.
-
Mit Hilfe des ausgelesenen Metamodelles konnte die Daten aus Paradigm extrahiert und in einer
Datenbank abgelegt werden.
-
Es wäre jetzt möglich gewesen, anhand der generierten Datenbanken Funktionen zu
implementieren, welches aus der Datenbank die RationalRose-Modelle generiert (Aufwand mehrere Wochen/Monate).
Um die Aufwendungen zu reduzieren wurden jetzt die MetaMeta-Modellierungstechnologie genutzt.
-
Mit Hilfe Hilfe eines MetaMeta-Modellierungswerkzeug Namens MissingLink war es möglich, die Metamodelle
von Pardigm Plus und RationalRose in einem MetaMeta-Modell zu modellieren.
-
Danach wurde die Transformationsmechanismen modelliert, welche Paradigm-UML-Modelle
in RationalRose-UML-Modelle transformieren.
-
Sowohl Metamodelle, Graphen und Daten konnten direkt in RationalRose-Modelle migriert werden.
Um die 100% Quellcode Konformität zu erreichen wurden die Java-Generatoren von Rational Rose so angepasst, dass diese sowoh bei der Namensvergabe (Klassen, Funktionen, Variablen, ...)
als auch bei der Kommentierung und den Java-Formatierungen (z.B. Tabs) genau dem des Generators entsprach.
Ergebnisse
-
Die Beschreibung der Transformation konnte auf einer MetaMeta-Ebene erfolgen, wodurch sowohl die Aufwände für die
Transformationen, als auch die Fehlermöglichkeiten auf ein Minimum reduziert werden konnte.
-
Quasi als Nebenprodukt fiel ein allgemeiner Konverter für UML-Modelle von Paradigm
Plus nach Rational Rose ab.
-
Die Modellierung, Erstellung der Verfahren, Werkzeuge und Testumgebungen, konnte innerhalb
von 12 Wochen (etwa 20 Mannwochen) anstatt in 2 Jahren abgeschlossen werden.
-
Die automatische Konvertierung aller Modelle nahm etwa 10 Minuten in Anspruch.
-
Die Forderung nach Sourcecode-Kompatiblität wurde zu 100% erfüllt.
-
Der Aufwand für Funktions- und Abnahmetests betrug weniger als 4 Stunden (einfacher Verzeichnisvergleich)
-
Die Migration konnte in weniger als 30 Minuten durchgeführt werden.
-
Die im ersten Entwurf geplante 2 wöchige Blockierung der Entwicklungsabteilung (mit ca. 10-15 Entwicklern) konnte vollständig vermieden werden.
Wirtschaftlichkeit
-
Reduzierung des Migrationsaufwandes um mindestens 80%
-
Vermeidung der Blockierung der Entwicklungsabteilung
Somit Effizienzgewinn: 100-150 Manntage
-
Projektlaufzeit: 12 Wochen
-
Qualitätsstandard: 100%, Projektrisiko minimal (nahezu 0)
Schlussbemerkung
Falls Sie auch ein Interesse daran haben wie sie ihre Projekte möglicherweise sehr viel effizienter Umsetzen könnten,
dann setzen Sie sich einfach mit mir in Verbindung.
Roland Graber (Ingenieurbüro Graber)
Neudorfstr. 57a
76316 Malsch
Tel.: 07246-4125
eMail: info@graber.de
Url: www.graber.de