00-Modellierungswerkzeuge im Vergleich

 

Modellierungswerkzeuge auf Basis der Unified Modeling Language etablieren sich am Markt. Wichtiges Verkaufs­argument: Mit der UML gibt es endlich einen Standard für die Notation von Modellen. Wir haben uns die interessantesten Modellierungswerkzeuge näher angesehen.

...page...
Jahr für Jahr wächst die Nachfrage nach hochwertigen Softwaresyste­men. Aber trotz neuer Softwaretechno­logien ist es in der Informationsverar­beitung und Datenbankentwicklung nicht gelungen, diese Systeme schnell und ausreichend preiswert zu entwik­keln. Seit Mitte der 60er Jahre ist daher von einer Softwarekrise die Rede, weil:

• in aller Regel die Softwareprodukte nicht rechtzeitig fertiggestellt werden,

• der Etat der geschätzten und bewil­ligten Entwicklungsmittel überschrit­ten wird,

• die Wartungskosten höher als ge­schätzt sind und

• die Gesamtqualität der Softwarepro­dukte mangelhaft ist.

Die Softwarekrise hat sich in den letzten Jahren verschärft. Die Ursache der Mi­sere liegt auf der Hand: Die Software­produkte werden von Jahr zu Jahr kom­plexer (viele Anwendungen bestehen inzwischen aus mehreren Millionen Programmcodezeilen), und die Anwen­dungsgebiete in der Informationstech­nik differenzieren sich immer mehr. Was läßt sich tun, um den oben genann­ten Defiziten etwas Wirksames entge­genzusetzen? Es bietet sich an, CASE­-Tools bei der Softwareentwicklung zu benutzen. Viele moderne Applikationen werden basierend auf objektorientierten Prinzipien (beispielsweise Klassen, Me­thoden und Vererbung) entwickelt.

...page...
Ob­jektorientierte CASE-Tools stellen ob­jektorientierte Modellierungsnotationen und -methoden zur Verfügung und ge­nerieren sogar Teile objektorientierter Applikationen. Solche CASE-Tools bieten dem Ent­wickler vor allem dann Vorteile, wenn es sich um mittlere bis größere Projekte handelt. Hohe Ansprüche der Anwen­der an den Komfort und den Funktions­umfang führen zu bisher ungeahnten Dimensionen der Komplexität der An­wendung. Je größer das Projekt, desto wichtiger ist die lückenlose Benutzung von CASE-Tools über alle Ebenen der Entwicklung hinweg. Trotz der bekann­ten Vorzüge konnten sich CASE-Tools bis heute nicht bei den Entwicklern durchsetzen und wurden schnell als zeitaufwendig und überflüssig abgetan. Zur Zeit vollzieht sich allerdings in die­ser Hinsicht ein Wandel in der Softwa­reindustrie: In Zeiten, in denen Softwa­re nach bestimmten Normen entwickelt wird und dem Auftraggeber die Pro­jektphasen transparent zu machen sind, erscheinen Modellierungs- und CASE­Tools mehr als hilfreich. Auch spielen die verkürzten Entwicklungszyklen eine große Rolle: Sie erschweren es, eine ausreichende Softwarequalität zu erzie­len. Um Kosten und Nutzen zu opti­mieren, üben die oberen Unterneh­mensetagen enormen Druck auf die Entwicklungsabteilungen aus. Die Entwicklungsprozesse müssen nachvollziehbar sein. Und dies nicht nur, um das Projektende realistisch ein­planen zu können.
...page...
00-Modellierungs ­Tools beziehungsweise 00-CASE-Tools (der Unterschied geht gegen Null) sol­len aus dieser Misere helfen. Wenn ge­plant ist, 00-Modellierungs-Tools ein­zusetzen, sollten sie folgende Grund­merkmale aufweisen:

• Sie bieten die gängigsten Diagramm­typen,

• unterstützen die gängigen Pro­grammiersprachen und alle wichti­gen Engineerung-Methoden,

• realisieren automatische Dokumenta­tionserstellung in möglichst vielen Formaten,

• lassen sich auf möglichst sielen Platt­formen einsetzen,garantieren gute Team-Unterstützung für große Projekte,

• besitzen eine offene Architektur für beliebige Erweiterbarkeit,

• ermöglichen zentrale Verwaltung al­ler Werkzeuginformationen.

Der folgende Text geht der Frage nach, welche Disziplinen in welcher Qualität von den untersuchten Produkte unter­stützt werden. Bei der Auswahl und Bewertung der Produkte ist in erster Linie darauf Wert gelegt worden, in­wiefern sie den genannten Kriterien entsprechen.

...page...

OWIS OTW 2.0
Zur Projektrealisierung verfährt OTW2 streng nach dem inkrementellen Verfah­ren. Jede Projektphase baut auf der vor­herigen auf und führt in acht Projekt­stufen vom Problem zur Lösung. Das Werkzeug bietet Techniken für die Ana­lyse, das Design und die Implementie­rung. Dabei verwendet das Tool ein speziell auf die UML zugeschnittenes objektorientiertes Vorgehensmodell, das sogenannte SEPP/OT-Modell. Das Vor­gehen wird an dieser Stelle näher be­schrieben, da es für alle anderen Pro­dukte ähnlich funktioniert. Jedes Projekt beginnt mit der Analy­sephase, in der sich mit Hilfe des End­kunden die Anforderungen an das Soft­waresystem festhalten lassen. Anhand dieser Informationen werden die ver­schiedenen Anwendungsfälle in das Use-Case-Diagramm von OTW2 einge­tragen. Die einzelnen Notationselemen­te werden dabei in der Toolbar selek­tiert und frei auf das Diagrammfenster plaziert. Da jeder Anwendungsfall mit einem konkreten Objekt (dem Aktor) verbunden ist, gibt es die tieferliegende Diagrammart „Objekt-Prozeß" (siehe Bild 1). Bei der Analyse wird das Gesamtsy­stem aus Kundensicht gesehen und ent­sprechend modelliert. Erst in der De­signphase findet man die Entwickler­sicht vor. Hier wird mit Hi1fe von Sequenzdiagrammen die Konkretisie­rung der Geschäftsfälle angestrebt, denn im Case werden die Fälle nur glo­bal beschrieben. Danach werden mit dem Zustandsdiagramm die dynami­schen Aspekte zur Laufzeit der Appli­kation modelliert.
Nun lassen sich mit Hilfe des Klas­senstrukturdiagramms die Klassenhier­archien für das Gesamtsystem festlegen. Bis dahin wird die physische Architek­tur überhaupt nicht beschrieben. Erst durch die Informationen im Kompo­nentendiagramm weiß das 00-Werk­zeug, wo die bereits erstellten Klassen physisch abgelegt werden.

...page...

Verteilungen visualisieren
In Zeiten von Multitier-Applikationen ist es sehr wichtig, genau zu planen, auf welchem Rechner welche Komponente residiert und wie diese vom Clientrech­ner angesprochen werden kann. Hier setzt das Verteilungsdiagramm an, das die Verteilungen in heterogenen Rech­nerlandschaften visualisiert. Das er­zeugte Gesamtmodell kann schließlich über einen Check-Mechanismus über­prüft werden, um die Softwarequalität zu sichern und zugleich robuste, wie­derverwertbare Softwarebausteine zu realisieren. Im Gegensatz zu eher grafisch orientierten CASE-Tools arbeitet OTW2 vorwiegend mit Dialogfenstern und kontextsensitiven Popup-Menüs. Eine mehr visuelle Bedienung wäre auf je­den Fall ergonomischer gewesen. Die Einarbeitung in OTW2 fällt leicht, da das Handbuch ein umfangreiches und anschauliches Beispiel beschreibt. Als weitere Einstiegshilfen werden ver­schiedene Beispielprojekte mitgeliefert. Außerdem sind ein Dokumentationsge­nerator und ein Quellcodegenerator in­tegriert, der aber manuell gestartet wer­den muß, damit er aktiv wird. Die Konsistenz zwischen Code und Modell nach dem Roundtrip-Enginee­ring-Konzept wird jedoch nicht erhal­ten. Das Tool arbeitet mehr modell­orientiert und nicht codeorientiert. Erst beim Projektende findet die Umsetzung statt und das Endergebnis liegt als Quelltext und als Projektdokumenta­tion vor. Es werden lediglich Reverse­Engineering und Forward-EngineerWg geboten. Dies liegt daran, daß Code und Modell in der Werkzeugarchitektur nicht synchron arbeiten. Dabei werden die Quelltexte von anderen Entwick­lungsumgebungen eingelesen und in ein objektorientiertes Modell konver­tiert. Die so erzeugten Modelle sind ausgereift und praxistauglich. OTW2 arbeitet mit einem proprietä­ren Repository, in dem die Modellobjek­te abgelegt sind. Leider verfügt OTW nicht über Multi-User-Fähigkeiten. So­mit sucht man vergeblich eine Check­out- und Check-in-Funktion. Auch von Versionsverwathmg fehlt jede Spur. Hinsichtlich der Projektdokumenta­tion setzt OTW2 voll auf Microsoft Word, das bereits installiert sein muß.

...page...

Der Dokumentengenerator erzeugt aus den Informationen im Repository eine gewöhnliche Textdatei. Anschließend wird ein Word-Makro gestartet, das die Dokumentation professio­nell formatiert und als Word-Datei sichert. Es besteht jedoch auch die Möglichkeit, sich einzelne Modelle dokumentieren zu lassen.
Eine 30-Tage-Testversion steht zum Herunterladen vom Server der Firma Owis (www.owis.de) bereit.

Fazit:
Insgesamt macht OTW2 den Eindruck eines guten, robusten Produkts. Leider enthält es nicht alle Funktionen, die man heute von einem Modellierungswerkzeug erwarten kann: Hierzu zählt, daß das Roundtrip-Engineering nicht möglich ist und die Integration in andere Werkzeuge :unzureichend' erfolgt. Lediglich über einen Dialog läßt sich die bevorzugte Entwicklungsumgebung auswählen, Wer jedoch ein schnell zu erlernendes Werkzeug sucht und sich auf gute Modelle beschränken kann, sollte sich das Tool auf jeden Fall näher anschauen.

...page...

Cayenne ObjectTeam 7.1
Die Modellierung unter ObjectTeam erfolgt nach dem Phasen­konzept und erlaubt die schrittweise Verfeinerung der Model­le in allen Entwicklungsstadien. Die Bedienungsfreundlichkeit läßt allerdings zu wünschen übrig. Dies liegt daran, daß die Funktionen, die das Werkzeug normalerweise automatisch ausführen müßte, dem Anwender aufgebürdet werden. So muß die Codeübersetzung oder die Kompilierung mit einem internen Tool manuell angestoßen werden, was den ßedie­nungsfluß ungemein hemmt.
`Object"Team ist prädestiniert für den Multi-User-Einsatz und die objektorientierte Applikationsentwicklung in großen I'rojekten. Als Notation unterstützt das Tool die OMT und die UML. Im Praxisalltag ist ObjectTeam gut im Real-Time-Be­reich und für die Geschäftsmodellierung einzusetzen. Es er­laubt, Modellierungskomponenten für Analyse, Design und implementierung anzulegen und zu verwalten. Damit lassen sich Teile eines Modells oder Systems wiederverwenden und von verschiedenen Abteilungen gleichzeitig nutzen. Richtig genutzt, erschließt diese Technik enorme Einsparungspoten­tiale. Der Codegenerator fungiert als Bindeglied zwischen dem Modell und der lmplementierung. Der Generator extra­hiert die benötigten Modellinformationen aus dem Repository und führt die Übertragung in die ausgewählte Zielsprache durch. Für eine Klasse ergeben sich dann der Rahmencode mit Vererbungsbeziehungen, die Definition der Instanzvaria­blen und der Methodenskelette, die anschließend vom Ent­wickler mit Anweisungen zu füllen sind.
Da sich die Modelle in beliebige Sprachen übersetzen las­sen, steht der Verteilung von Softwarebausteinen auf hetero­gene Rechnersysteme nichts entgegen. Daher ist es das ideale Werkzeug, um mehrschichtige Applikationen zu entwerfen. Schnell lassen sich dann spezielle Komponenten für die Prä­sentationsschicht, Businesschicht und der Datenbankschicht erstellen, die in Folgeprojekten Wiederverwendung finden können.

...page...

Der verwendete Codegenerator ist in Tcl entwickelt und ist durch den End­benutzer jederzeit an bestimmte Anfor­derungen anpaßbar. Darüber hinaus können in ObjectTeam die gängigsten Tools für das Konfigurationsmanage­ment eingesetzt werden. Standard­mäßig unterstützt ObjectTeam die Hochsprachen C++, Java, Delphi, Visu­alBasic, PowerBuilder und Smalltalk. Ebenso ist es für kleinere Aufgaben ge­eignet, beispielsweise für SQL-Schema­ta und CORBA-IDL. ObjectTeam unterstützt als einziges Werkzeug die bereits verabschiedete UML-1.1-Konvention; so sind auch Collaboration- und State-Transition­Diagramme verwendbar. Auch ein OMT-Support ist vorhanden. Unver­zichtbar für große Entwicklerteams ist die Eigenschaft, daß ObjectTeam in he­terogenen Client/Server-Netz,werkum­gebunp;en einsetzbar ist. Dabei kann der Datenabgleich des „Common Workspace" über eine Einwählverbin­dung vorgenommen werden. Über das Online-Repository verwenden alle Teammitglieder automatisch die letzten Projektinformationen. Ein Object-Lock­Mechanismus erlaubt die Modifizie­rung einzelner Modellteile, ohne direkt das ganze Subsystem zu sperren. Bei je­der Änderung wird vollautomatisch eine Versionsnummer mitgeschrieben, um den Projektstand zu protokollieren. Über Zugriffsrechte wird jedem Teammitglied der Arbeitsbereich explizit zugeordnet. Die standardmäßige Dokumentierung wird mit DocExpress abgewickelt, während anforderugsspezifische Dokumente mit DocIt generiert werden.

Fazit:
Wer größere Projekte im Unternehmen mit den unterschiedlichsten Sprachen realisiert und auf ein ausgereiftes Team-Management angewiesen ist, muß sich mit diesem Werkzeug auseinandersetzen. Bei der Entwicklung von mehrschichtigen Applikationen bietet ObjectTeam eine gute Hilfe. Ein enormer Einarbeitsaufwand ist not­wendig, um das Werkzeug vollständig zu beherrschen. Viele Funktiönalitäten sind schwer zu erreichen.

...page...

Rational Rose
Um alle Fähigkeiten von Rose nutzen zu können, muß bei der Installation Mi­crosofts Visual Studio vorinstalliert sein. Nach dem Programmstart setzt Rose das etablierte Wizard-Konzept ein. So lassen sich neue oder existierende Mo­dell-Frameworks schnell öffnen. Etliche solcher Prämeworks sind bereits vor­handen, zum Beispiel für die Entwick­lung einer Bankeninfrastruktur, für Ad­ministrationssysteme oder Three-Tier­-Applikationen - diese lassen sich sehr gut als Vorlage verwenden. Rose ist Multi-User-fähig und für große Entwickhmgsgruppen geeignet. Zu diesem Zweck legt Rose private Ar­beitsbereiche für jeden Entwickler an und bietet individuelle Sichten auf das Gesamtmodell. Die eigentliche Model­lierung erfolgt nicht immer rein visuell, sondern geht oft noch den Umweg über die Dialogfenster. Als Notation werden Booch, OMT und die UML angeboten. Um unterschiedliche Sprachen zu un­terstützen, wählt Rose das bewährte Add-in-Prinzip, mit dem das Werkzeug beliebig erweiterbar ist. Das aktuell ver­wendete Add-in wird über einen Add­in-Manager eingestellt. Bei der Online-Hilfe fehlt oft eine durchgängige Bedienbarkeit; deshalb muß häufig umständlich vor bezie­hungsweise zurückgesprungen werden. Auch fällt die Online-Hilfe an manchen Stellen nicht gerade umfangreich aus. Via COM ist Rose in der Lage, andere Applikationen wie VB oder WinWord anzusteuern. Das Produkt enthält auch eine Scriptsprache samt Entwicklungs­umgebung, mit der sich die Modellie­rungsfunktionen und sogar die Code­Erzeugung von Rose beeinflussen oder für Spezialfälle eigene Funktionen ein­bauen lassen.
Von Haus aus unterstützt Rose die Sprachen C++, Java, Smalltalk, Ada, Vi­sual Basic, PowerBuilder, die iDL für CORBA und DDL für Datenbankappli­kationen. Wurde eine Sprache ausge­wählt, paßt sich die Werkzeugumge­bung an die speziellen Fähigkeiten die­ser Sprache an und wird „on the fly" generiert. Rose bietet von der Analyse bis zur Designphase Unterstützung. Aber auch der Rückwärtsgang vom Design zur Analyse ist gewährleistet: Mit Reverse-Engineering werden be­reits vollendete Implementierungen wieder in Modelle verwandelt. Somit sind alle Phasen des Projektlebenszy­klus abgesichert.

Außerdem ist Rose Multi-User-fähig und für große Entwicklungsgruppen geeignet. Hierfür legt Rose private Ar­beitsbereiche für jeden Entwickler an und bietet individuelle Sichten auf das Gesamtmodell an. Sobald ein Entwickler die Arbeit an einem Teilmodell been­det hat, kann es durch ein Konfigura­tionsmanagement und Versionskon­trollsystem wieder eingecheckt werden. Rose bietet hier die Wahl zwischen Ra­tionals C1earCase und Microsofts Sour­ceSafe. Da Rose über eine offene Archi­tektur verfügt, können auch andere Sy­steme zum Einsatz kommen. Dem Kommunikations- und Informations­weg verteilter Projekte über Inter- und Intranet trägt das Produkt ebenfalls Rechnung. Rose erzeugt automatisch komplexe Hypertextdokumente im HTML-Format, die allen Projektbeteilig­ten über Intra- oder Internet zur Verfü­gung gestellt werden können.

...page...

Fazit:
Vom Konzept her verfolgt Rose ein­deutig den Komponentenansatz bei der Modellierung, um so abgeschlos­sene Bausteine für ein System zu schaffen. Leider bringen größere Pro­jekte noch immense Performanceein­bußen mit sich, da die Konvertierung zum Modell entsprechend lange dau­ert. Die Bedienbarkeit ist nicht gerade intuitiv, da die Dialoge oft zu tief ver­schachtelt sind. Da Modellierungspro­fis bei der Produkterstellung beteiligt waren, ist unverständlich, wieso das Produkt den aktuellen UML-Standard hinterherhinkt, obwohl - andere Pro­dukte schon längst gleichgezogen ha­ben. Wegen der nicht gerade intuiti­ven Bedienung müssen Anfänger eine hohe Einarbeitungszeit in Kauf neh­men, um akzeptable Modelle zu reali­sieren.

...page...

Microtool ObjectiF 4.0
Das Produkt ObjectiF ist ein reines ob­jektorientiertes CASE-Tool, das metho­disch komplett die UML unterstützt. Es begleitet den Entwickler vom Softwa­reentwurf bis zur Implementierung. Folgende Diagrammtypen sind mög­lich:

• Anwendungsfalldiagramm,
• Sequenzdiagramm,
• Klassendiagramm,
• Zustandsdiagramm und
• Aktivitätsdiagramm.

ObjectiF hebt sich von den anderen Pro­dukten ab: Es hält für die Anwendungs­fälle differenzierte Beschreibungsmu­ster bereit, die eine einheitliche und vollständige Dokumentation der System­anforderungen ermöglichen. Aus den Beschreibungen lassen sich durch Mar­kierung einzelner Wörter und Click auf die rechte Maustaste direkt neue Klas­sen generieren. Alle Diagramme wer­den während der Arbeit konsistent ge­halten. Eine Änderung an einem Dia­gramm aktualisiert automatisch alle anderen relevanten Stellen. Eine Erwei­terung der Methodensignaturen einer Klasse innerhalb eines Sequenzdia­gramms zieht automatisch die Über­nahme aller betroffenen Methoden in das Klassendiagramm nach sich. Dies erspart eine Menge Arbeit in der Praxis. Weiterhin fallen die umfangreichen Na­vigationsmöglichkeiten auf. Aus Dia­grammen heraus lassen sich andere Diagramme anlegen und zuordnen so­wie bereits zugeordnete Diagramme öffnen. Nach dem Package-Konzept werden Klassendiagramme zu größeren Modelleinheiten zusammengefaßt. Bei ObjectiF besteht ein Package aus Klas­sen desselben fachlichen und technolo­gischen Gebiets und aus solchen, die ei­nen intensiven Nachrichtenaustausch betreiben. Alle Klassen, die als öffent­lich deklariert sind, können von ande­ren t'ackages verwendet werden. Diese
stellt somit die Schnittstelle des Packa­ges dar. Die Packages können dann spä­ter in weiteren Projekten Wiederver­wendung finden.

...page...

Bereits während der Modellierung generiert ObjectiF Code und sorgt für die Konsistenz zwischen Modell und Code. Diese Codegenerierung erfolgt bei ObjectiF mittels Skripten. Es wer­den hierbei die Zielsprachen C++ und Java unterstützt. ObjectiF läßt sich jedoch auch für andere Sprachen konfi­gurieren. Während der Codierung wird man vom Code-Editor durch Syntax und Kontextmenüs unterstützt. Ist die Syntax dabei fehlerhaft, wird dies formell hervorgehoben. Die Codegene­rierung wird bei Klassen angestoßen. Da die Architektur vom ObjectiF auf COM basiert, kann der Funktionsum­fang bedarfsspezifisch jederzeit erwei­tert werden.
Bei Erweiterungen ist der Add-In­Manager hilfreich, indem er die Funk­tionen ins Menü integriert. Eine Reihe von Add-Ins bringt ObjectiF in Form von Visual-C++-Anbindung, JBuilder­Anbindung, Java Bytecode Engineering und dem Web Publisher mit. Sehr wert­voll ist, daß sich Anwendungsfälle di­rekt mit Ansichten assoziieren lassen. Gerade für Einsteiger wird das Gesamt­modell somit wesentlich transparenter. Andere Tools bieten dies nicht, da dort die Sicht durch Ersatzklassen repräsen­tiert wird. Gelungen sind auch die Mul­timedia-Tutorials, die schnellen Einstieg in das Tool und die UML ermöglichen. Aber die Fensterflut trübt das Gesamt­bild ein wenig.

...page...

Mit ObjectiF bekommt der Käufer ein ausgereiftes, zuverlässiges Produkt. Es läßt sich beliebig erweitern und arbei­tet auch gut mit externen Werkzeugen zusammen. Es ist für größere Projekte geeignet. Ein Absturz während des Tests kam nicht vor. Besonders gefal­len kann das Reverse Engineering aus Visual-C++-Projekten. Dabei wird al­les protokolliert, so daß bei auftreten­den Problemen die Fehleranalyse und -beseitigung einfacher sind. Die er­stellten Pf6chtenhefte basieren auf der ANSI-Norm. Eine Testversion kann vom Server der Firma Microtool her­untergeladen werden.

...page...

Object International TogetherJ 3.0
Zur Ausführung von TogetherJ ist die virtuelle Maschine (VM) von Microsoft oder Sun notwendig. Da TogetherJ plattformtmabhängig entwickelt wurde, verfügt das Produkt auf verschiedenen Plattformen über das gleiche hook-and­
rr~ artda-KmnmunNalfurrxvrischen­ieF- ic rrunde>d-emgeben~
Feel. Dies verringert die Einarbeitungs­zeit in Unternehmen mit heterogenen Systemen enorm. Wegen der 100°/>­java-Codierung läßt die Performance aller­dings zu wünschen übrig. Ob sich das durch die Hotspot-Technik ändern wird, bleibt abzuwarten. Ein 200-MIiz­

Pentium mit 128 MByte RAM ist äußer­stes Minimum, um das Tool sinnvoll einsetzen zu können. Die Oberfläche von TogethcrJ ist sehr intuitiv zu bedie­nen, da sich Klassen und deren Attribu­te und Methoden via Mausclick anle­gen, ändern oder löschen lassen. Mit Drag-and-Drop können zusammenge­hörige Klassen visuell miteinander ver­bunden werden.
Bei der Modellierung unterstützt To­getherJ den Entwickler mit diversen Browsern für die verschiedenen Sich­ten. Es unterstützt die gängigsten Dia­gramme der UML wie Klassen-, Se­quenz-, UseCase, ObjectModell, Kom­ponenten- und Verteilungsdiagramme. Diagramme lassen sich in allen Model­lierungsschritten miteinander verbin­den. So ist etwa eine Verbindung von Klassen mit einem Zustandsdiagramm möglich, um ein umfassendes Gesamt­modell zu erhalten. Besonders praktisch ist, daß der generierte Code und das zu­grundeliegende Modell synchron arbei­ten und Änderungen sofort aktualisiert werden.

...page...

So zieht eine Änderung im Codefen­ster eine Aktualisierung im Diagramm­fenster nach sich und umgekehrt. Dies erledigt der Fuzzy-1'arser automatisch und ermöglicht so das Roundtrip-Engi­neering am besten. Der Fuzzy-Parser hilft Zeit zu sparen, da nur Änderungen berücksichtigt werden müssen. Das Tool verwendet die Single-Source-Tech­nik, das heißt, alle Informationen, die das Modellierungs-Tool benötigt, stehen im Quellcode. Damit gehört die redun­
dante Datenhaltung der Vergangenheit an. Alle anderen Tools im Testfeld, die 12epository-orientiert arbeiten, können die Synchronität zwischen Modell um.- _~ode nicht bieten. TogetherJ eignet sich besonders für große Projekte ab 1000 Klassen. Die erzeugten Diagram­me lassen sich in der Coad-, der OMT­und der UML-Notation anschauen. Al­lerdings geht die Konvertierung zwi­schen den Notationen nicht gerade schnell vonstatten.
Laut Portfolio von Object Internatio­nal unterstützt TogetherJ die Sprachen Java, C++ und Object COBOL. Bald sol­len jedoch auch Visual Basic und Small­talk das Angebot bereichern. Der Funk­tionsumfang des Werkzeugs läßt sich durch die offene Architektur komforta­bel erweitern. Braucht ein Unternehmen eine neue Tool-Funktion, wird diese im Menü von TogetherJ integriert. Der F ' 1-In-Manager stellt sicher, das Toget­h..j ein Werkzeug aus einem Guß bleibt. Die Hilfe erläutert, wie einfach sich das Werkzeug in die 1DEs der Ent­wicklungssysteme von Borland oder Microsoft integrieren läßt. TögetherJ verfügt jetzt endlich über eine Versions­kontrolle. So können sich mehrere Ent­wickler am Projekt beteiligen und ihre privaten Stände aus- beziehungsweise einchecken. Auch mit inneren Klassen kann TogetherJ jetzt umgehen. Sobald man eine Klasse auf eine andere zieht, wird diese als innere Klasse angelegt. Wurde beim Entwicklungprozeß falsch vorgegangen, läßt sich dies jetzt belie­big rückgängig (UNDO/KEDO) ma­chen. Die Dokumentation für ein Pro­jekt wird über den Menüpunkt Tools/ GenerateDocumentation angelegt. Je­
doch zeigt der TemplateDesigner jetzt das endgültige Erscheinungsbild und läßt sich so überprüfen. Legt man jetzt eine RTF-Dokumentation an, wird diese selbsttätig in Word hineingeladen. Ein externer Editor läßt sich schnell über das Kontextmenü aufrufen. Nach­dem der Anwender im Editor etwas editiert hat und nach TogetherJ zurück­gekehrt ist, erfolgt eine automatische Aktualisierung. Auch Fehler von Com­pilern oder Debuggern berücksichtigt TogetherJ und zeigt diese im Nachrich­tenfenster an. Der Import von Rose-Mo­dellen oder der Export nach Rose ver­läuft jetzt endlich ohne Probleme. Für CORBA basierte Projekte ist ein IDL-Ge­nerator integriert, und auch das neue Web-Format XML kann TogetherJ im­portieren oder exportieren. Aus dem In­ternet läßt sich eine Testversion des Pro­dukts herunterladen. Sie berücksichtigt jedoch nur drei Diagrammtypen.

...page...

Fazit:
Pluspunkte von TogetherJ sind die gute Bedienbarkeit und die vorbildli­che Integration in das bevorzugte Ent­wicklungssystem. Es bietet zwar nicht alle Diagramme der ITML-Notation; da die Collaboration- und State-Tran­sition-Diagramme fehlen, aber für den kompletten Entwicklungsprozeß rei­chen die gebotenen allemal aus: Der mitgelieferte „Started Guide° gestattet schnellen Einstieg in das Tool. Einzi­ges Handikap ist die schlechte Perfor­mance: Wer Projekte ab 1000 Klassen modellieren will, könnte mit diesem Produkt richtig liegen. Somit ist das Produkt prädestiniert für Unterneh­men, die sich mit größeren Projekten befassen.

...page...

Zusammenfassung
jedes der getesteten Werkzeuge weist spezielle Stärken auf. Bei der Auswahl geht es nur noch darum, sich über die Bedürfnisse und Zielvorstellungen im Unternehmen klar zu werden - ein pas­sendes Produkt findet man dann im­mer. Rose wird Freunde unter den Mo­dellierungsprofis finden, die an um­fangreichem UML-Support besonders interessiert sind.
Wer jedoch mehr Wert auf gute Be­dienbarkeit und schnelle Ergebnisse legt, dürfte eher mit TogetherJ glücklich werden. Sind umfangreiche Projekte im Unternehmen zu realisieren, ist Object Team die richtige Wahl - es ist prädesti­niert für den Einsatz in heterogenen Unternehmenslandschaften. Für Ein­steiger, die nicht im Team arbeiten, eig­net sich OWIS OTW2. Aber auch Objec­tiP ist für Newcomer eine gute Entschei­dung.
Das Ende der Fahnenstange bei den 00-CASE-Tools ist noch nicht erreicht. Es bedarf noch einer Menge praktischer Erfahrungen, um leistungsfähigere Werkzeuge zu schaffen. Auch die UML wird sich sicherlich noch weiterentwik­keln. Vom Gesamteindruck her ist kei­nes der Produkte derzeit schon völlig ausgereift - alle leiden unter kleineren oder größeren Mängeln. Aber schon heute sind sie eine große Hilfe bei der Entwicklung komplexer Software-Sy­steme.