Hermes Alerting Service

Werbung
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
2
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 Engineering
Drei Alternativen für Rose und VAJ:
Klassische Variante
Rose Link
XMI Toolkit
 Frage: Wie oft synchronisieren? - Eher selten!
3
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
4
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
5
Integration Rose/VAJ
I Klassische Variante
 Reverse Engineering
 VAJ starten
 Java-Dateien exportieren
File -> Export -> Directory
 Rose starten, Modell laden
 Tools -> Java -> Reverse Engineer Java oder
Kontextmenü
 Klassen auswählen und Import starten
 Modell bearbeiten
6
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 starten
File -> QuickStart -> Basic -> Rose Link Plugin
 In Rose Code generieren
 Projekt wählen
 Code wird generiert und automatisch in VAJ importiert
7
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
8
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”
9
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
10
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
11
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
12
VAJ Team-Unterstützung
 Client-Konfiguration:
Eintrag in Datei
C:\Programme\Ibm\Visual Age for Java\
ide\program\ide.ini
...
[JavaDevelopment]
ServerAddress=goliath
DefaultName=lehre.dat
OpenReadOnly=false
...
13
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
14
VAJ Team-Unterstützung
Object
Role
Rights
Project
Owner
Version, Release
Package
Owner
Group Member
Release
Version
Type
Owner
Developer
Release
Version
Jeder darf jede Klasse ändern/bearbeiten!
15
VAJ Team-Unterstützung
Zustände eines Typs (Klasse, Interface)
create
undefined
may change
version
others may load
versioned
release[ owner ]
released
change[ group member ]
change[ not group member ]
version[ developer ]
open
edition
may change
scratch
edition
16
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ür
Team-Mitglieder
 Scratch Edition: Privat,
zum Experimentieren
17
VAJ Team-Unterstützung
Baselines
Baseline
 Editionen im Workspace synchronisieren
 Baseline update:
Role
Class owner
Baseline
Package
Package owner
Project
Project owner
Project
Action
add class
release class
delete class
release package
delete package
... „ ...
add package
release resources
18
VAJ Team-Unterstützung
Baselines
 Synchronisieren
Projekt bzw. Package in den Workspace laden oder
Replace with -> Released contents
Lädt die zuletzt freigegebenen Klassen-Editionen dieser
Edition
Erfolglos, wenn es eine neue Version gibt!
 Hilfreich: Management Query
19
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“)
20
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!
21
VAJ Team-Unterstützung
Weitere Infos unter
~faensen/lehre/team.pdf
22
EJB-Entwicklung
 VAJ hat EJB-Unterstützung
23
Herunterladen