Visual Age und Rational Rose Daniel Faensen. 2 Übersicht Integration Rational Rose und VisualAge...
-
Upload
daniel-falk -
Category
Documents
-
view
219 -
download
0
Transcript of Visual Age und Rational Rose Daniel Faensen. 2 Übersicht Integration Rational Rose und VisualAge...
Visual Age und Rational RoseVisual Age und Rational Rose
Daniel Faensen
2
ÜbersichtÜbersicht
Integration Rational Rose und VisualAge(Forward / Reverse Engineering)
Team-Unterstützung in VisualAge
EJB-Entwicklung mit VisualAge und der WebSphere Testumgebung
3
Integration Rose/VAJIntegration 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!
4
Integration Rose/VAJ Integration Rose/VAJ I Klassische I Klassische VarianteVariante
Voraussetzungen (auch für Rose Link): Default language muss Java sein Referenzierte Klassen müssen im
Rose-Classpath stehen
5
Integration Rose/VAJ Integration Rose/VAJ I Klassische I Klassische VarianteVariante
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
6
Integration Rose/VAJ Integration Rose/VAJ I Klassische I Klassische VarianteVariante
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
7
Integration Rose/VAJ Integration Rose/VAJ II Rose II Rose LinkLink
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
8
Integration Rose/VAJ Integration Rose/VAJ II Rose II Rose LinkLink
In Rose Reverse Engineering Projekt wählen Rose initiiert Export aus VAJ Rose bietet exportierte Klassen zum Import an
Achtung! Speicherplatzprobleme
9
Integration Rose/VAJ Integration Rose/VAJ ProblembehebungProblembehebung
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”
10
Integration Rose/VAJ Integration Rose/VAJ III XMI III XMI ToolkitToolkit
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! www.inf.fu-berlin.de/inst/ag-db/software/VAJ_PDF/
xmi.pdf
Rose-Modell UML-XMI Java-XMI JavaForward Engineering
Reverse Engineering
11
Integration Rose/VAJ Integration Rose/VAJ EJBEJB
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
12
VAJ Team-UnterstützungVAJ Team-Unterstützung
VAJ Enterprise Edition hat Team-Unterstützung
Benutzer, Rollen, Rechte, Team-Server, Shared Repository
goliath emsvr
Team Repository
lehre.dat
VAJ Clients
13
VAJ Team-UnterstützungVAJ 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...
14
VAJ Team-UnterstützungVAJ 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
15
VAJ Team-UnterstützungVAJ Team-Unterstützung
Object Role Rights
Project Owner Version, Release
Package OwnerGroup Member
ReleaseVersion
Type OwnerDeveloper
ReleaseVersion
Jeder darf jede Klasse ändern/bearbeiten!
16
VAJ Team-UnterstützungVAJ Team-Unterstützung
undefined
versioned
version
create
released
open edition
change[ group member ]
version[ developer ]
may change
may change
others may load
release[ owner ]
scratch edition
change[ not group member ]
Zustände von Projekten, Packages, Typen
17
VAJ Team-UnterstützungVAJ 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
18
VAJ Team-Unterstützung VAJ Team-Unterstützung BaselinesBaselines
Baseline Editionen im Workspace synchronisieren Baseline update:
Role Baseline ActionClass owner Package add class
release classdelete class
Package owner Project release packagedelete package
Project owner Project ... „ ...add packagerelease resources
19
VAJ Team-Unterstützung VAJ Team-Unterstützung BaselinesBaselines
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
20
VAJ Team-UnterstützungVAJ 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“)
21
VAJ Team-UnterstützungVAJ 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!
22
VAJ Team-UnterstützungVAJ Team-Unterstützung
Weitere Infos unter http://www.inf.fu-berlin.de/
~ag-db/software/VAJ_PDF/team.pdf
23
EJB-EntwicklungEJB-Entwicklung
VAJ EE hat EJB-Unterstützung Websphere Test Environment Weblogic VAJ Integration Kit
Vorbereitungen Add Features (File -> Quickstart)
EJB Tool Unterstützt:
Session BeanCMP BeanBMP Bean
24
EJB-EntwicklungEJB-Entwicklung
Schritte Add EJB Group Add EJBs Add home and remote (business) methods Add custom finders Add CMP fields Set deployment descriptor properties Generate EJB classes Generate access beans Test Export and deploy
25
EJB-EntwicklungEJB-Entwicklung
Beispiele in EJB Samples: HelloWorld und Increment
Projekt und Package erzeugen Empfehlung: getrennte Projekte für Client und
EJB (-> jar-Dateien) EJB Group: Logische Gruppierung,
z.B. f. Export in JAR-Datei Erzeugen einer neuen EJB Group
EJB -> Add -> EJB Group Projekt wählen EJB Group benennen
26
EJB-Entwicklung EJB-Entwicklung Session Session BeanBean
Session Bean
27
EJB-Entwicklung EJB-Entwicklung Session Session BeanBean
Session Bean Felder hinzufügen
Selektiere Bean-Klasse, Add -> Field(incl. getX() und set(X))
Methoden hinzufügen Selektiere Bean-Klasse, Add -> Method Implementiere Methode Add -> Methods-Add To -> EJB RemoteInterface Achtung: Erneutes
Deployment erforderlich
28
EJB-Entwicklung EJB-Entwicklung DeploymentDeployment
Deployment Deployment descriptor
wizard - Bean level:Select bean, Properties
Methods Select method
EJB Method attributes -> Add control descriptor
29
EJB-Entwicklung EJB-Entwicklung DeploymentDeployment
EJB Jar-Datei Class-Dateien, Deployment Descriptor,
Manifest Generate Deployed Code erzeugt:
Container-implementierte EJBHome- und EJBObject-Klassen (+ Persistor und Finder für CMP-Beans)
Java ORB, Stubs und Skeletons für RMI Helper und Holder für Home und Remote Interfaces
30
EJB-Entwicklung EJB-Entwicklung TestingTesting
Add to -> Server configuration
Properties Create database tables
31
EJB-Entwicklung EJB-Entwicklung TestingTesting
Start EJB Server: Tools -> Websphere Test Environment Start Persistent Name Server Start EJB Server Quelltextänderung,
Debugging ohne Neustart
32
EJB-Entwicklung EJB-Entwicklung TestingTesting
Test Client Breakpoints, Debugging ... Lookup -> Initialer Naming Context
-> laden desHome Interfaces Selektiere Create Run
33
EJB-Entwicklung EJB-Entwicklung Testing/DeploymentTesting/Deployment
Configuration für eigene Applikationen Websphere Test Environment muss in Project
Classpath Deployment für andere
Applikationsserver Export -> EJB JAR
34
EJB-Entwicklung EJB-Entwicklung CMP CMP BeansBeans
Container Managed Persistence Entity Beans Wie Session Bean aber anderer Bean Type Add CMP Fields
35
EJB-Entwicklung EJB-Entwicklung CMP CMP BeansBeans
Schema und Map: Abbildung zwischen CMP-Feldern und Tabellenspalten
Top Down: CMP-EJB existiert, generiere DB Schema
Bottom Up: EJB für existierende DB(nicht unterstützt)
Meet in the Middle: Importiere Schema Definiere Map
36
EJB-Entwicklung EJB-Entwicklung CMP CMP BeansBeans
Top Down Add -> Schema and Map Schema browser und Map browser
Generate deployed code Add to -> Server configuration EJB Server Properties: Configuriere DB-Verbindung EJB Server: Create Database Tables Eine Tabelle pro CMP Bean
SQL> DESC SCOTT.Account Name Null? Type ----------------------------------------- -------- ---------------------------- ACCNUMBER NOT NULL NUMBER(10) BALANCE FLOAT(126) OWNER VARCHAR2(30)
37
EJB-Entwicklung EJB-Entwicklung CMP CMP BeansBeans
Finder-Methoden Beim Home-Interface Add -> Method public java.util.Enumeration findNegativeAccounts() Add Exceptions Ignoriere Probleme
Query String im AccountFinderHelperKopiere Vorlage aus EJSJDBCPersisterAccount.findByKeySqlString nachAccountFinderHelper.findNegativeAccountsSqlString
Generate Deployed Code löst Probleme
38
EJB-Entwicklung EJB-Entwicklung CMP CMP BeansBeans
Finder-Methoden - Richtlinien Bezeichner für Query String:
methodNameQueryString, z.B.findNegativeAccountsQueryString
Test Starte EJB Server Selektiere Account Run Test Client Selektiere create(int) Setze Parameter auf 1001 Run SQL> SELECT * from SCOTT.Account;
ACCNUMBER BALANCE OWNER---------- ---------- ------------------------------ 1001 0
Spiele mit Test Client und Oracle
Test Client:create()setOwner()...
Oracle:insertdeleteupdate(commit nicht vergessen)
39
EJB-Entwicklung EJB-Entwicklung BMP BMP BeansBeans
J. Picon, P. Genchi, M. Sahu, M. Weiss, A. Dessureault: Enterprise JavaBeans Development Using VisualAge for Java. IBM Redbook SG24-5429-00, June 1999~faensen/lehre/sg245429_EJB_VAJ.pdf
Beispiel mit XML-Datei als Persistenzmedium
40
EJB-Entwicklung EJB-Entwicklung Access Access BeansBeans
Access Beans Home-Methoden, die einzelne Instanz liefern -
> Constructor Erst instanziieren, dann aufrufen Copy helper statt wiederholtes get/set String-Konverter (für JSP)
41
EJB-Entwicklung EJB-Entwicklung AnmerkungenAnmerkungen
Code nur im EJB-Pane bearbeiten Package EJBGroupEJBReserved enthält
Metadaten
42
EJB-Entwicklung EJB-Entwicklung Session Session BeanBean
Deployment Deployment descriptor
wizard:Select bean, Properties
Methods Select method
EJB Method attributes -> Add control descriptor
43
Integration Rose/VAJ Integration Rose/VAJ EJBEJB
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
44
QuellenhinweiseQuellenhinweise
Lokale Dokumentation (PDF):http://www.inf.fu-berlin.de/~ag-db/software/VAJ_PDF z.B.: Team-Entwicklung, EJB-Entwicklung, XMI-Toolkit
Visual Age Developer Domainhttp://www7.software.ibm.com/vad.nsf Doku, Downloads, Redbooks, Technical Journal ...
Rose Tools~faensen/rose/ Rose Link: RoseVAJava.exe Putzhilfe für das Après Reverse Engineering:
CleanAssociationsAfterImport.ebs + roseImportConversions.txt XMI Bridge
~faensen/lehre/xmibridge.dat J. Picon, P. Genchi, M. Sahu, M. Weiss, A. Dessureault: Enterprise JavaBeans
Development Using VisualAge for Java. IBM Redbook SG24-5429-00, June 1999~faensen/lehre/sg245429_EJB_VAJ.pdf