Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Visual Age und Rational Rose Daniel Faensen. 2 Übersicht  Integration Rational Rose und VisualAge (Forward / Reverse Engineering)  Team-Unterstützung.

Ähnliche Präsentationen


Präsentation zum Thema: "Visual Age und Rational Rose Daniel Faensen. 2 Übersicht  Integration Rational Rose und VisualAge (Forward / Reverse Engineering)  Team-Unterstützung."—  Präsentation transkript:

1 Visual Age und Rational Rose Daniel Faensen

2 2 Übersicht  Integration Rational Rose und VisualAge (Forward / Reverse Engineering)  Team-Unterstützung in VisualAge  EJB-Entwicklung mit VisualAge und der WebSphere Testumgebung

3 3 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!

4 4 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

5 5 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

6 6 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

7 7 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

8 8 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

9 9 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”

10 10 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!  www.inf.fu-berlin.de/inst/ag-db/software/VAJ_PDF/xmi.pdf Rose-ModellUML-XMIJava-XMIJava Forward Engineering Reverse Engineering

11 11 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 >  In VAJ: EJB -> Add -> Import from Rose or XMI

12 12 VAJ 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 13 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...

14 14 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

15 15 VAJ Team-Unterstützung Jeder darf jede Klasse ändern/bearbeiten!

16 16 VAJ Team-Unterstützung Zustände von Projekten, Packages, Typen

17 17 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

18 18 VAJ Team-Unterstützung Baselines Baseline  Editionen im Workspace synchronisieren  Baseline update:

19 19 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

20 20 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“)

21 21 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!

22 22 VAJ Team-Unterstützung Weitere Infos unter http://www.inf.fu-berlin.de/ ~ag-db/software/VAJ_PDF/team.pdf

23 23 EJB-Entwicklung  VAJ EE hat EJB-Unterstützung  Websphere Test Environment  Weblogic VAJ Integration Kit  Vorbereitungen -Add Features (File -> Quickstart) EJB Tool  Unterstützt: Session Bean CMP Bean BMP Bean

24 24 EJB-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 25 EJB-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 26 EJB-Entwicklung Session Bean Session Bean

27 27 EJB-Entwicklung Session Bean 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 28 EJB-Entwicklung Deployment Deployment  Deployment descriptor wizard - Bean level: Select bean, Properties  Methods Select method EJB Method attributes -> Add control descriptor

29 29 EJB-Entwicklung Deployment 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 30 EJB-Entwicklung Testing  Add to -> Server configuration  Properties  Create database tables

31 31 EJB-Entwicklung Testing  Start EJB Server: -Tools -> Websphere Test Environment -Start Persistent Name Server -Start EJB Server -Quelltextänderung, Debugging ohne Neustart

32 32 EJB-Entwicklung Testing  Test Client -Breakpoints, Debugging... -Lookup -> Initialer Naming Context -> laden desHome Interfaces -Selektiere Create -Run

33 33 EJB-Entwicklung Testing/Deployment  Configuration für eigene Applikationen -Websphere Test Environment muss in Project Classpath  Deployment für andere Applikationsserver -Export -> EJB JAR

34 34 EJB-Entwicklung CMP Beans  Container Managed Persistence Entity Beans -Wie Session Bean aber anderer Bean Type -Add CMP Fields

35 35 EJB-Entwicklung CMP Beans  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 36 EJB-Entwicklung CMP Beans  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 37 EJB-Entwicklung CMP Beans  Finder-Methoden -Beim Home-Interface Add -> Method -public java.util.Enumeration findNegativeAccounts() -Add Exceptions -Ignoriere Probleme -Query String im AccountFinderHelper Kopiere Vorlage aus EJSJDBCPersisterAccount.findByKeySqlString nach AccountFinderHelper.findNegativeAccountsSqlString -Generate Deployed Code löst Probleme

38 38 EJB-Entwicklung CMP Beans  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: insert delete update (commit nicht vergessen)

39 39 EJB-Entwicklung BMP Beans  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 40 EJB-Entwicklung Access Beans 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 41 EJB-Entwicklung Anmerkungen  Code nur im EJB-Pane bearbeiten  Package EJBGroupEJBReserved enthält Metadaten

42 42 EJB-Entwicklung Session Bean Deployment  Deployment descriptor wizard: Select bean, Properties  Methods Select method EJB Method attributes -> Add control descriptor

43 43 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 >  In VAJ: EJB -> Add -> Import from Rose or XMI

44 44 Quellenhinweise  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 Domain http://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


Herunterladen ppt "Visual Age und Rational Rose Daniel Faensen. 2 Übersicht  Integration Rational Rose und VisualAge (Forward / Reverse Engineering)  Team-Unterstützung."

Ähnliche Präsentationen


Google-Anzeigen