Round Trip Engineering mit Developer Studio

Über Objectif zu COM-Komponenten

24.08.2001
MÜNCHEN (CW) - Mit dem aktualisierten "Visual C++-Connector" bietet die Berliner Microtool GmbH ein Werkzeug, das ein Roundtrip-Engineering zwischen dem eigenen Modellierungswerkzeug "Objectif" und Microsofts Entwicklungsumgebung "Developer Studio" ermöglicht.

Die komponentenbasierte Softwareentwicklung stellt an die eingesetzten Werkzeuge besondere Anforderungen. Dazu zählen insbesondere die maschinelle Unterstützung von Entwurf und Implementierung einer Komponentenarchitektur, das Reverse- und Roundtrip-Engineering von Komponenten sowie die Codegenerierung für die gewählte Architektur. Diese Anforderungen, so die auf die Unified Modeling Language (UML) spezialisierte Firma Microtool, erfüllt das hauseigene UML-Tool Objectif jetzt auch im Hinblick auf die Entwicklung von COM-Komponenten mit Microsofts Active Template Library (ATL). Per Mausklick in Objectif sollen sich so genannte Co-Classes und ATL-Implementierungsklassen anlegen und aktualisieren lassen.

Bei ATL handelt es sich um eine Sammlung Template-basierter C++-Klassen, mit denen man relativ einfach COM-Objekte erzeugen kann, weshalb die Technik in der Microsoft-Welt inzwischen auch weit verbreitet ist. In den Co-Class-Definitionen legen Entwickler fest, welche Interfaces ein Komponentenobjekt zur Verfügung stellt ("Interface-Package"). Aus diesen Spezifikationen lassen sich mit Hilfe eines Objectif-Wizards zwei Klassen generieren: eine ATL-Implementierungsklasse ("Implementation-Package") und eine fachliche Implementierungsklasse ("Functional-Implementation-Package"). Erstere übernimmt die Schnittstelle zum COM-Laufzeitsystem und delegiert alle Requests direkt an die fachliche Implementierungsklasse (siehe Grafik). Die Package-Struktur muss der Entwickler nicht manuell nachvollziehen - diese Aufgabe übernimmt ein "Aktions-Skript".

Wer eine Verbindung des UML-Tools zu Microsofts "Developer Studio" herstellen will, dem steht jetzt der aktualisierte "Visual C++-Connector" zur Verfügung. Soll etwa ein vorhandenes oder neues Developer-Studio-Projekt mit den Mitteln der UML weiterentwickelt werden, lässt es sich über den Connector und das Kontextmenü eines Package in Objectif importieren, die Package-Struktur wird dann automatisch generiert. Der Connector prüft, ob bereits ein Package beziehungsweise eine Library mit der Bezeichnung ATL existiert. Ist dies nicht der Fall, werden auch die benötigten Klassenbibliotheken in Objectif importiert.

Umgekehrt kann über das Package-Kontextmenü beziehungsweise den Objectif-Wizard auch direkt ein neues Visual-C++-Projekt im Developer Studio angelegt werden. Der von Objectif maschinell erzeugte Code steht dann in Form von Dateien zum Kompilieren, Testen oder Ändern bereit. Somit ist es laut Anbieter möglich, die Daten zwischen Modellierungs- und Entwicklungsumgebung jederzeit im Sinne des Roundtrip-Engineering konsistent zu halten. Auch die Anforderungen des Reverse-Engineering beziehungsweise Relinking seien durch die Möglichkeit, bereits vorhandene Projekte in Objectif einzulesen, erfüllt, heißt es seitens Microtools (www.microtool.de).

Abb: COM-Komponente und ihre Klassen

Objectif bildet die Architektur einer COM-Komponente und ihrer Klassen mit Hilfe von drei Subpackages ab: Co-Classes werden im Interface-Package angelegt, die erzeugten ATL-Implementierungsklassen werden automatisch dem COM-Integration-Package zugeordnet, und die fachlichen Implementierungsklassen finden sich im Functional-Implementation-Package wieder. Quelle: Microtool