230 likes | 345 Views
Visual Age und Rational Rose. Daniel Faensen. Übersicht. Integration Rational Rose und VisualAge (Forward / Reverse Engineering) Team-Unterstützung in VisualAge EJB-Entwicklung mit VisualAge und der WebSphere Testumgebung. Integration Rose/VAJ. Problem: Konsistenz von Modell und Code
E N D
Visual Age und Rational Rose Daniel Faensen
Übersicht • Integration Rational Rose und VisualAge(Forward / Reverse Engineering) • Team-Unterstützung in VisualAge • EJB-Entwicklung mit VisualAge und der WebSphere Testumgebung
Integration Rose/VAJ • Problem: Konsistenz von Modell und Code • Abgrenzung: Nur statisches Strukturmodell (Klassendiagramm) • Lösung I: “Low Level” CASE-Tool • Lösung II: Forward und Reverse EngineeringDrei Alternativen für Rose und VAJ: • Klassische Variante • Rose Link • XMI Toolkit • Frage: Wie oft synchronisieren? - Eher selten!
Integration Rose/VAJ I Klassische Variante • Voraussetzungen (auch für Rose Link): • Default language muss Java sein • Referenzierte Klassen müssen im Rose-Classpath stehen
Integration Rose/VAJ I Klassische Variante • Forward Engineering = Code Generation • Tools -> Java -> Generate Java oder Kontextmenü -> Java -> Gerenate Java • Viel Freude beim Suchen des generierten Codes! • VAJ starten • Java-Dateien importieren File -> Import -> Directory • Code bearbeiten
Integration Rose/VAJ I Klassische Variante • Reverse Engineering • VAJ starten • Java-Dateien exportierenFile -> Export -> Directory • Rose starten, Modell laden • Tools -> Java -> Reverse Engineer Java oder Kontextmenü • Klassen auswählen und Import starten • Modell bearbeiten
Integration Rose/VAJ II Rose Link • Rationals Tool zur Integration von Rose und VAJ • Frei zum Download (bzw. ~faensen/rose/RoseVAJava.exe) • Rose und VAJ müssen aktiv sein • Als JVM muss IBM gewählt sein • In VAJ RoseLink startenFile -> QuickStart -> Basic -> Rose Link Plugin • In Rose Code generieren • Projekt wählen • Code wird generiert und automatisch in VAJ importiert
Integration Rose/VAJ II Rose Link • In Rose Reverse Engineering • Projekt wählen • Rose initiiert Export aus VAJ • Rose bietet exportierte Klassen zum Import an • Achtung! Speicherplatzprobleme
Integration Rose/VAJ Problembehebung • Probleme beim Import: • Vor dem Export aus VAJ alle Java-Dateien löschen(Backup!) • Modell nach dem Reverse Engineering aufräumen • Assoziationen in Attribute umwandeln(~faensen/rose/CleanAssociationsAfterImport.ebs + ~faensen/rose/roseImportConversions.txt) • Für überfüllte Klassen:“Show All {Attributes,Operations}” abstellen,“Select Compartment Items”
Integration Rose/VAJ III XMI Toolkit XMI Toolkit • IBMs Tool zur Integration von Rose und VAJ • Mitgeliefert mit VAJ EE • Liest Rose .mdl-Datei -> Rose wird nicht benötigt • Austausch über XMI (XML Interchange (?)) • Problem: Arbeitsspeicher! • ~faensen/hermes/docs/software/visualage/xmi.pdf Forward Engineering Rose-Modell UML-XMI Java-XMI Java Reverse Engineering
Integration Rose/VAJ EJB Spezielle Enterprise Java Beans Unterstützung • XMI Toolkit + XMI Bridge (~faensen/lehre/xmibridge.dat) • Modelliere in Rose • Markiere Primärschlüsselattribute mit dem Stereotyp <<OID>> • In VAJ:EJB -> Add -> Import from Rose or XMI
VAJ Team-Unterstützung • VAJ Enterprise Edition hat Team-Unterstützung • Benutzer, Rollen, Rechte, Team-Server, Shared Repository VAJ Clients goliath emsvr lehre.dat Team Repository
VAJ Team-Unterstützung • Client-Konfiguration:Eintrag in Datei C:\Programme\Ibm\Visual Age for Java\ide\program\ide.ini...[JavaDevelopment]ServerAddress=goliathDefaultName=lehre.datOpenReadOnly=false...
VAJ Team-Unterstützung • Repository • Benutzerverwaltung • Speicherung der Objekte (Projekte, Packages, Klassen) • Versionsverwaltung (Source Control Management, SCM) • Workspace • Jeweils eine Version/Edition aus dem Repository • Workspace Owner • Auf der lokalen Platte des Clients • Problem: Synchronisation
VAJ Team-Unterstützung Jeder darf jede Klasse ändern/bearbeiten!
VAJ Team-Unterstützung Zustände eines Typs (Klasse, Interface)
VAJ Team-Unterstützung Zustände eines Typs (Klasse, Interface) • Open Edition: „Work in progress“Im Repository können viele Open Editions vorliegen • Versioned Edition: Kann nicht geändert werden.Zweck: Checkpoint, Freigabe, neue Baseline • Released: Freigegeben fürTeam-Mitglieder • Scratch Edition: Privat, zum Experimentieren
VAJ Team-Unterstützung Baselines Baseline • Editionen im Workspace synchronisieren • Baseline update:
VAJ Team-Unterstützung Baselines • Synchronisieren • Projekt bzw. Package in den Workspace laden oder • Replace with -> Released contentsLädt die zuletzt freigegebenen Klassen-Editionen dieser Edition • Erfolglos, wenn es eine neue Version gibt! • Hilfreich: Management Query
VAJ Team-Unterstützung Offline arbeiten • Repositories sind (VAJ-)versionsunabhängig • Vorgehen: • Versioniere Packages • Exportiere in lokales Repository (home.dat) • Kopiere home.dat auf Offline-Rechner • Starte VAJ • Importiere aus Repository home.dat • Lade Packages in Workspace(„Add -> Package“ oder „Replace with -> Another Edition“)
VAJ Team-Unterstützung Anmerkungen • Auch Ressourcen versionierbar (ab V 3.5) • Kein Super-User • Workspace owner != NT User • Es gibt kein check out (kein locking) • Check in nicht nötig • Jeder kann auf alles zugreifen • Owner nimmt Änderungen an (release) • Team-Kommunikation wird einem nicht abgenommen!
VAJ Team-Unterstützung Weitere Infos unter ~faensen/lehre/team.pdf
EJB-Entwicklung • VAJ hat EJB-Unterstützung