80
CSE298 CSE300 DOC/UML.1 RESEARCH AND DEVELOPMENT OF A DISTRIBUTED OBJECT COMPUTING SYSTEM USING THE UNIFIED MODELING LANGUAGE AND EXPLORATION OF UML SUPPORT FOR DOC Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar [email protected] [email protected] [email protected]

Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

Embed Size (px)

DESCRIPTION

Overview of Presentation Objectives of the Project Overview of Distributed Banking Application Modeling and Development plan employed Description of the components of the application Demo Brief Introduction to UML and DOC Description and Evaluation of DOC support provided by a few UML modeling tools. Proposals for enhancements to UML/ROSE based on the experiences gained during the project. Future work and conclusion

Citation preview

Page 1: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.1

RESEARCH AND DEVELOPMENT OF A DISTRIBUTED OBJECT COMPUTING SYSTEM USING THE UNIFIED MODELING

LANGUAGE AND EXPLORATION OF UML SUPPORT FOR DOC

Research and Work By:

Hector N. EchegoyenOliver Scheck Gowri Shankar

[email protected]@[email protected]

Page 2: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.2

Overview of PresentationOverview of Presentation

Objectives of the ProjectObjectives of the Project Overview of Distributed Banking ApplicationOverview of Distributed Banking Application

Modeling and Development plan employed Description of the components of the

application Demo

Brief Introduction to UML and DOCBrief Introduction to UML and DOC Description and Evaluation of DOC support Description and Evaluation of DOC support

provided by a few UML modeling tools.provided by a few UML modeling tools. Proposals for enhancements to UML/ROSE based Proposals for enhancements to UML/ROSE based

on the experiences gained during the project.on the experiences gained during the project. Future work and conclusionFuture work and conclusion

Page 3: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.3

ObjectiveObjective

Explore UML Modeling techniques/constructs and Explore UML Modeling techniques/constructs and

identify support to DOC.identify support to DOC. Employ ROSE to Model and develop a Distributed Employ ROSE to Model and develop a Distributed

Banking Application ( with RMI distribution )Banking Application ( with RMI distribution ) Identify key distribution issues relating to OOMIdentify key distribution issues relating to OOM Explore a few UML modeling tools to identify Explore a few UML modeling tools to identify

DOC support.DOC support. Suggest enhancements to UML through the Suggest enhancements to UML through the

experience gained during the projectexperience gained during the project

Page 4: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.4

PROJECT DEVELOPMENT PLANPROJECT DEVELOPMENT PLAN Exploration Of UML was Done FirstExploration Of UML was Done First Decided To Implement Prototype Of DOC App In Decided To Implement Prototype Of DOC App In

JAVAJAVA Usage Of ROSE Tool Vital To The ProcessUsage Of ROSE Tool Vital To The Process Followed By Suggestions To UML Enhancements Followed By Suggestions To UML Enhancements

In DOCIn DOC Research Of What Other Tools Offer To Support Research Of What Other Tools Offer To Support

DOC Application DevelopmentDOC Application Development Suggestions To ROSE Tool Enhancements To Suggestions To ROSE Tool Enhancements To

Support DOCSupport DOC

Page 5: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.5

EXPLORATION OF UMLEXPLORATION OF UML UML Books and Internet LinksUML Books and Internet Links Looked At Every Single DiagramLooked At Every Single Diagram Found Direct UML Support For DOC In Two Found Direct UML Support For DOC In Two

DiagramsDiagrams Interfaces (Class & Component) Deployment Diagram

Sequence Diagrams were Useful To Depict Client Sequence Diagrams were Useful To Depict Client Server TransactionsServer Transactions

Page 6: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.6

HOW DOES IT ALL WORK?HOW DOES IT ALL WORK?

Book Concepts - “Instant UML, The Unified Book Concepts - “Instant UML, The Unified Modeling Language User’s Guide”- OK.Modeling Language User’s Guide”- OK.

How Would a Real Application Use Them?How Would a Real Application Use Them? Drawing From Experience. Worth it?Drawing From Experience. Worth it? Client-Server Application - BankingClient-Server Application - Banking Had To Closely Resemble Real World DOC Had To Closely Resemble Real World DOC

MechanismMechanism Use of a Modeling Tool was Vital to The ProcessUse of a Modeling Tool was Vital to The Process Code Generation and ImplementationCode Generation and Implementation Draw Conclusions from there and Move on to the Draw Conclusions from there and Move on to the

Next PhaseNext Phase

Page 7: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.7

CHOICE OF PROGRAMMING CHOICE OF PROGRAMMING LANGUAGELANGUAGE

JAVA was the language of choiceJAVA was the language of choice Ease of use Prior experience working with JAVA

Found JAVA Features And Components To Found JAVA Features And Components To Directly Support DOCDirectly Support DOC Object Serialization Remote Method Invocation

Page 8: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.8

CHOICE OF MODELING TOOLCHOICE OF MODELING TOOL Decided On Rational Rose Decided On Rational Rose

9898 Team had some

experience with it Fairly stable Recognized and used at

companies for real development and code generation not just modeling

Had to set up the tool for Had to set up the tool for development in a team development in a team environmentenvironment

Page 9: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.9

INITIAL PREPARATION OF TOOLINITIAL PREPARATION OF TOOL Reverse engineering was Reverse engineering was

vital at least for startupvital at least for startup Learning curve steep Level of comfort had not

been reached yet Possible initial

development without tool

Banking App was done in Banking App was done in JAVA - Reverse engineering JAVA - Reverse engineering of whole JDK was necessaryof whole JDK was necessary

Difficult - Tool made many Difficult - Tool made many assumptionsassumptions

Documentation..well..Documentation..well..

Page 10: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.10

FRONT END GUI FOR CLIENTFRONT END GUI FOR CLIENT Symantec Visual Café was UsedSymantec Visual Café was Used New learning curve introducedNew learning curve introduced Used SWING componentsUsed SWING components

Platform-independent, lightweight components part of JFC

Written in Pure Java. Will look the same on

different OSes Fewer System Resources Can control their look and

feel (appearance and behavior)

Part Of GUI Modeled in ROSEPart Of GUI Modeled in ROSE

Page 11: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.11

INITIAL RESEARCH AND DESIGN INITIAL RESEARCH AND DESIGN MEETINGSMEETINGS

Agreed to do DOC research concurrently with App Agreed to do DOC research concurrently with App design design

Initial Issues we looked for in our researchInitial Issues we looked for in our research Key distribution issues about DOC What issues were supported by ROSE Suggestions of enhancements to tools

supporting UML Look for other tools with support for DOC

Discussion on definition of Banking SystemDiscussion on definition of Banking System Extent of functionality to be implementedExtent of functionality to be implemented DOC issues to consider during transactions - what DOC issues to consider during transactions - what

makes sense for which scenario. Use Cases?makes sense for which scenario. Use Cases?

Page 12: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.12

BEHAVIORAL MODELING -BEHAVIORAL MODELING -SYSTEM USE CASESYSTEM USE CASE

Process Transactions

Distributed Communication

Persistent Storage

Report Generation

Printing

Auditing

Clerk

BANKING SYSTEM

The Customer

Manager

<<uses>>

<<uses>> <<uses>>

<<uses>>

<<uses>>

THE CLERK

THE CUSTOMER

THE MANAGER

TheServer

THE SERVER

Page 13: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.13

SYSTEM USE CASE - SYSTEM USE CASE - DESCRIPTIONDESCRIPTION

Hard concept to grasp initiallyHard concept to grasp initially Almost self-explanatory - Focus on functionality Almost self-explanatory - Focus on functionality

of system with interaction of Actorsof system with interaction of Actors Identified Four major ActorsIdentified Four major Actors Major functionality and relations to Actors also Major functionality and relations to Actors also

identifiedidentified Drew clear definitions of operations for each actorDrew clear definitions of operations for each actor Helped to identify the need for some sort of Role Helped to identify the need for some sort of Role

based security (i.e. Customer actor doesn’t based security (i.e. Customer actor doesn’t perform Audits)perform Audits)

Actors directly linked to roles?Actors directly linked to roles? Wrote Case Scenarios Of Major functionsWrote Case Scenarios Of Major functions

Page 14: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.14

ARCHITECTURAL MODELING -ARCHITECTURAL MODELING -DEPLOYMENT DIAGRAMDEPLOYMENT DIAGRAM

Branch Server

Terminal1

Terminal 2

Terminal X

Branch Server

Terminal 1

Terminal 2 Terminal

X

Central Bank

ATM 1 ATM 2

ATM X

Hub

Page 15: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.15

DEPLOYMENT DIAGRAM -DEPLOYMENT DIAGRAM -DESCRIPTIONDESCRIPTION

To get an idea of how the system would be To get an idea of how the system would be distributeddistributed

Concept of more than one type of Bank ServerConcept of more than one type of Bank Server Questions: What kind of functionality is Questions: What kind of functionality is

distributed where? Where is security, servers or distributed where? Where is security, servers or clients, both?clients, both?

Where should we deploy objects, and which Where should we deploy objects, and which object?object?

Servers handling multiple clients and/or server Servers handling multiple clients and/or server transactions at the same timetransactions at the same time

How to make our system Generic so that we can How to make our system Generic so that we can run all possible scenariosrun all possible scenarios

Page 16: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.16

STRUCTURAL MODELING - STRUCTURAL MODELING - LOGICAL AND COMPONENT VIEWSLOGICAL AND COMPONENT VIEWS

ClientServerGui

U

TheServer

U

ClientServerGui

U

TheServer

U

CLASS CLASS DIAGRAMDIAGRAM

COMPONENT COMPONENT DIAGRAMDIAGRAM

Page 17: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.17

INITIAL LOGICAL VIEW OF CLIENTINITIAL LOGICAL VIEW OF CLIENTThis is Where The Applet GUI Goes. To be Added To The Model Later.

RMI Here

CustomerProfileForm(f rom TheServ er)

Serializable(f rom io)

<<Interface>>

CustomerAccountForm(f rom TheServ er)

Vector(f rom util)

TransactionInterface<<Interface>>

TellerInterface<<Interface>>

BankConnection

1

+BankTransaction

1

1

+TellerTransaction

1

Page 18: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.18

INIT LOCAL SERVER SIMULATOR INIT LOCAL SERVER SIMULATOR AND CLIENT COMP MODELAND CLIENT COMP MODEL

FunnyMoney

Serializable

Serializable

TransactionInterface

TransactionInterface

rmi

BankConnection

RemoteBankServer

server

util

SessionInterface

SessionInterface

TransactionByRole

AtmTrans

TellerTrans

MgrTrans

TellerInterface Teller

Interface

Page 19: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.19

INITIAL LOGICAL VIEW OF THE INITIAL LOGICAL VIEW OF THE SERVER SIMULATORSERVER SIMULATOR

Funny Money

amount : int

Serializable(from io)

<<Interf ace>>Remote

(from rmi)

<<Interf ace>>

This is Where The Applet GUI Goes. To be Added To The Model Later.

RMI Here

TransactionInterf ace<<Interf ace>> UnicastRemoteObject

(from server)

SessionInterf ace<<Interf ace>>

Hashtable(from util)

Account

Account()

SessionHandler

TransactionBy Role

$ GOOD_CONN : int = 0

RemoteBankServ eraccounts

1

+TheAccount

1

1

+TheSessionHandler

1

+TheTransactionHandler

AtmTrans

TellerTrans

MgrTrans

TellerInterf ace<<Interf ace>>

CustomerProf ileForm(from TheServer)

CustomerAccountForm(from TheServer)

Page 20: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.20

BEHAVIORAL MODELING - BEHAVIORAL MODELING - SEQUENCE DIAGRAM OF LOG INSEQUENCE DIAGRAM OF LOG IN

Client 1 Server

Enter UName And Passwd

Send UName And Passwd

Verify UName And Passwd

Send Connection Status

Prompt User For Transaction Info

Allocate Memory And Resources For Transactions

Allocate Memory And Resources For Transactions

Page 21: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.21

BEHAVIORAL MODELING - BEHAVIORAL MODELING - SEQUENCE DIAGRAM OF LOG OUTSEQUENCE DIAGRAM OF LOG OUT

Client Server

User Execute Logout

Send Logout Message

Release Memory And Resources

Successfully Logged Out Message

Release Memory And Resources

Page 22: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.22

FINAL APPLICATION MODELS AND FINAL APPLICATION MODELS AND DEPLOYMENTDEPLOYMENT

Each of us to explain his/her own piece in detailEach of us to explain his/her own piece in detail Hector - Client GUI and App Oliver - Main Server Transaction and Interface

Hierarchy Gowri - Main Server Banking Application

Only a Prototype - Not a full fledge application. Only a Prototype - Not a full fledge application. Demo is limited to a couple of transactions.Demo is limited to a couple of transactions.

Goal is to prove Java RMI Concepts, Interfaces, Goal is to prove Java RMI Concepts, Interfaces, UML support of them and know how they work in UML support of them and know how they work in a Real World Appa Real World App

After this phase, ready to jump to the Analysis After this phase, ready to jump to the Analysis phasephase

Page 23: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.23

FINAL DEVELOPMENT - APPLET FINAL DEVELOPMENT - APPLET AND CONNECTIONAND CONNECTION

BankConnection$ GOOD_CONN : int = 0$ UNK_CONN_ERR : int = 1$ REMOT_ERR : int = 2$ NOT_BOUND_ERR : int = 3$ COMM_FAILED : int = 4$ ATM_CONN : int = 11$ TELLER_CONN : int = 12$ MGR_CONN : int = 13$ VERIF_FAILED : int = 14$ TRANSACTION_PASSED : int = 20$ TRANSACTION_FAILED : int = 21

Connect_To_Bank()Run_Query()Login()Logout()SendCustomerProfile()SendCustomerAccount()Connect_To_ServerBank()LoginToServer()LogoutFromServer()ShowAllCustomers()

BankingApp

init()JMenuItem2_actionPerformed()JMenuItem2_actionPerformed_Interaction1()JMenuItem18_actionPerformed()JMenuItem18_actionPerformed_Interaction1()JMenuItem2_actionPerformed_Interaction2()myBankingAppCode_Logout()JMenuItem4_actionPerformed()JMenuItem4_actionPerformed_Interaction1()JMenuItem4_actionPerformed_Interaction2()createCustProfMenu_actionPerformed()createCustProfMenu_actionPerformed_Interaction1()closeMenu_actionPerformed()closeMenu_actionPerformed_Interaction1()createNewAccountMenu_actionPerformed()createNewAccountMenu_actionPerformed_Interaction1()myBankingAppCode_ShowAllCustomers()JShowCustomersMItem_actionPerformed()JShowCustomersMItem_actionPerformed_Interaction1()

+$MyBankConnection

APPLET AND GUI

ITS CONNECTION TO THE CLIENT BANK ENGINE

Page 24: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.24

FINAL DEVELOPMENT - MAIN FINAL DEVELOPMENT - MAIN CLIENT APPLICATIONCLIENT APPLICATION

The Applet GUI IS To be Added To The Model Later.

RMI ENTRY HERE

CustomerProfileForm(f rom TheServ er)

Serializable(f rom io)

<<Interface>>

CustomerAccountForm(f rom TheServ er)

BranchServerInterface(f rom TheServ er)

<<Interface>>

MgrTransactionInterface(f rom TheServ er)

<<Interface>>

ServerTransactionInterface(f rom TheServ er)

<<Interface>>

ATMTransactionInterface(f rom TheServ er)

<<Interface>>

SessionInterface

VerifyUserNameAndPassword()PerformLogout()

<<Interface>>

ServerInterface

login()logout()

(f rom TheServ er)

<<Interface>>

RoleTransactionInterface(f rom TheServ er)

<<Interface>>BankConnection

1+BankSession1

+BankServerSession

1+BankServerTransaction 1

Tel lerTransactionInterface(f rom TheServ er)

<<Interface>>

Vector(f rom util)

FORM CLASSES FOR DATA TRANSFER

CONNECTION CLASS WITH THE GUI

Page 25: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.25

RMI StructureRMI Structure

Make method callable by declaring signature in Make method callable by declaring signature in interfaceinterface

Compile class and interface and generate stub and Compile class and interface and generate stub and skeletonskeleton

Stub

Client Object

Skeleton

Server Object

Page 26: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.26

RMI Flow of EventsRMI Flow of Events

Page 27: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.27

Server - GoalsServer - Goals

Handle multiple virtual connectionsHandle multiple virtual connections Have multiple user types, with varying privilegesHave multiple user types, with varying privileges Provide the financial servicesProvide the financial services Use of databaseUse of database

Design elements, which have been prepared in the Design elements, which have been prepared in the design, but have not been implementeddesign, but have not been implemented server-server connection to have hierarchy of

servers use of distributed database persistency of DB (object serialization)

Page 28: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.28

Server - Transaction ObjectsServer - Transaction Objects

Page 29: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.29

Server - Transaction InterfacesServer - Transaction Interfaces

Page 30: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.30

Server at Runtime - LoginServer at Runtime - Login

Page 31: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.31

Server - Login MethodServer - Login Method switch (db.validateUser(u, p)) { case User.ATM: { atmTransaction = new ATMTransaction(this); addTransaction(atmTransaction); return (atmTransaction); } case User.MANAGER: { mgrTransaction = new MgrTransaction(this); addTransaction(mgrTransaction); return (mgrTransaction); } case User.TELLER: { tellerTransaction = new TellerTransaction(this); addTransaction(tellerTransaction); return (tellerTransaction); } case User.SERVER: { serverTransaction = new ServerTransaction(this); addTransaction(serverTransaction); return (serverTransaction); } default: { System.out.println("unsupported user type"); return null; }

Page 32: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.32

Server - DatabaseServer - Database

Designed to Designed to support support persistency persistency via object via object serializationserialization

Associations Associations are Vectors; are Vectors; not intuitively not intuitively displayed in displayed in RoseRose

Page 33: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.33

Server - HierarchyServer - Hierarchy

Page 34: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.34

Server - The Big PictureServer - The Big Picture

Page 35: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.35

Application FunctionalityApplication Functionality

Adding a new Customer to the bankAdding a new Customer to the bank Customer Profile Information transferred from

client to Server Transaction Object Customer Information extracted from the

Customer Profile Object Server function invoked to add current

customer to list of customers Display information about existing bank customersDisplay information about existing bank customers Opening one or more accounts for customers.Opening one or more accounts for customers.

Two types of accounts - Savings,Checking Customer can have any number of accounts Can have more than one type of account with

the same account number

Page 36: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.36

SERVER APPLICATION HIERARCHYSERVER APPLICATION HIERARCHY

Customer

User

UnicastRemoteObject

UnicastRemoteObject()readObject()clone()exportObject()

(from server)

Acctaccno : intbalance : float = (float)0.0

CustomerProfileForm

CustomerAccountForm

Database

Server

-db

Vector(from util)

-customers-users

#customers-transactions

Customer#account

SavingsAccount

CheckingAccount

TheCustomerAccountAccountNumber : int

+TheSavingsAccount

+TheCheckingAccount

UTILITY CLASSES AND FORMS

BANK ACCOUNT AND CUSTOMER INFORMATION

REMOTE SERVER

Page 37: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.37

Sample CodeSample Code Add a Customer to the bank protected boolean addCustomer(Customer c) { System.out.println("Server.addCustomer()"); Object obj = null; for (int i = 0; i < customers.size(); i++) { obj = (Customer)customers.elementAt(i); if (obj.equals(c)) { System.out.print("customer already exists"); return false; } } customers.addElement(c); return true; }

Page 38: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.38

Sample CodeSample Code Open an Account for customer public int createAccount(AccProfileForm apf) throws

RemoteException { Acct account = null; switch (apf.type) { case AccProfileForm.SAVINGS: { account = new SavingsAccount(); break; } case AccProfileForm.CHECKING: { account = new CheckingAccount(); break; } default: } account.balance = apf.initialDeposit; account.accno = server.accNoGen(); account.type = apf.type; server.addAccount(customer, account); return account.accno; }

Page 39: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.39

Sample CodeSample Code

protected boolean NewAddAccount(int

customerNumber, TheCustomerAccount a) {

// get a reference to current customer object System.out.println("entering NewAddAccount()");

Object obj = null; Object accObj = null; for (int i = 0; i < customers.size(); i++) { obj = (Customer)customers.elementAt(i); if ( ((Customer)obj).custNumber ==

customerNumber ) { System.out.println("customer found");

Page 40: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.40

Sample CodeSample Code

// Check for Duplicate account numbers

for (int j = 0; j < ((Customer)obj).accounts.size(); j++) { accObj = (TheCustomerAccount)

((Customer)obj).accounts.elementAt(j); if

( ((TheCustomerAccount)accObj).AccountNumber == a.AccountNumber)

{ System.out.println("Account is duplicated");

return false; } } // end for int j System.out.println("Account Number: " +

a.AccountNumber + " Successfully Added.");

Page 41: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.41

Sample CodeSample Code

System.out.println("Account Number: " + a.AccountNumber + " Successfully Added.");

Add the account to the customer

((Customer)obj).accounts.addElement(a); return true;

} // end if == cust number } // end for i System.out.println("Customer Not Found");

return false; }

Page 42: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.42

Distribution Issues Relating to OOMDistribution Issues Relating to OOM

Problems relating to distribution.Problems relating to distribution. How to distribute the different parts of the

system. How to find the distribution objects. How to decide clusters of objects. How to distinguish high and low read/write

ratios between objects. How to find the operations which changes the

object states.

Page 43: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.43

UML Support For DOCUML Support For DOC

Component Diagrams-Component Diagrams- Shows the structure of the code Graph of components connected by

dependency relationships Shows dependencies among software

components Deployment DiagramsDeployment Diagrams

Shows the structure of the run-time system Used to depict which components may run on

which nodes Migration of components from node to node

may also be shown.

Page 44: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.44

Tool ExplorationTool Exploration

Having done a Distributed Object Having done a Distributed Object Communications project we looked into several Communications project we looked into several other tools, that use the UML methodologyother tools, that use the UML methodology

Found some extensions to UML that support Found some extensions to UML that support DOC, though not as many as anticipatedDOC, though not as many as anticipated

Took a look at additional features of the tools in Took a look at additional features of the tools in comparison to the industry standard Rose™.comparison to the industry standard Rose™.

Page 45: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.45

Softmodeler - A Next Generation UML Softmodeler - A Next Generation UML Modeling ToolModeling Tool

Exploration of the capabilities of SoftmodelerExploration of the capabilities of Softmodeler

Identify support to DOCIdentify support to DOC

Suggest enhancements to UML/Rose through the Suggest enhancements to UML/Rose through the

exploration of Softmodeler.exploration of Softmodeler.

Page 46: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.46

Capabilites of SoftmodelerCapabilites of Softmodeler

Supports three important technological trendsSupports three important technological trends Software Components Distributed Computing OO Technology

Supports the basic UML ConstructsSupports the basic UML Constructs Use Case Diagrams Object Diagrams Class Diagrams Sequence Diagrams

No support for No support for State Diagrams Activity Diagrams

Page 47: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.47

Features Supporting DOC Features Supporting DOC

True Component Design True Component Design

Distribution Modeling with support for RMI and Distribution Modeling with support for RMI and

CORBA DistributionCORBA Distribution

Code Generation of Enterprise Java Beans and Code Generation of Enterprise Java Beans and

Java Beans.Java Beans.

Simulation of models during the analysis and Simulation of models during the analysis and

design stages.design stages.

Page 48: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.48

Component Design and DistributionComponent Design and Distribution

Provides special notation for defining componentsProvides special notation for defining components supports component distribution modeling supports component distribution modeling Allows reuse of existing models of componentsAllows reuse of existing models of components Automatic generation of Enterprise Java Beans Automatic generation of Enterprise Java Beans

and Java Beans codeand Java Beans code Creation of visual graphical component models Creation of visual graphical component models

from existing EJB and JB source code.from existing EJB and JB source code. Produces required distribution code (CORBA,Java Produces required distribution code (CORBA,Java

RMI)RMI)

Page 49: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.49

Component Notation Component Notation

Components are Special Classes that define a Components are Special Classes that define a higher level of encapsulation.higher level of encapsulation.

Possess an extra interface layer of remotely Possess an extra interface layer of remotely accessed methodsaccessed methods

Belong to a certain Component Framework such as Belong to a certain Component Framework such as JB or EJB. JB or EJB.

Have an optional distribution method(RMI, Have an optional distribution method(RMI, CORBA) for accessing their remotely accessed CORBA) for accessing their remotely accessed interface.interface.

Page 50: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.50

Component Diagram - An Extension to the Component Diagram - An Extension to the UML Notation UML Notation

Different from a Class Diagram in the followingDifferent from a Class Diagram in the following Component Scope - can be a components

class or a set of classes and interfaces Components Interface - a set of methods and

properties which allow remote access. Component Framework- Java Beans , Enterprise

Java Beans , COM Components Distribution Method -CORBA,RMI

Page 51: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.51

Class Diagram - An Enhancement to UMLClass Diagram - An Enhancement to UML

NewCustomerid : intname : string[rw]

Customer()

FieldFieldPropertyProperty

MethodMethod

SoftModeler differentiates between regular fieldsSoftModeler differentiates between regular fields and properties of a classand properties of a class Property is a field with access rightsProperty is a field with access rights Set/Get methods for the property fields generated Set/Get methods for the property fields generated automaticallyautomatically

Page 52: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.52

SoftModeler Vs Rational RoseSoftModeler Vs Rational Rose Component Diagrams Component Diagrams

provide facilities forprovide facilities for Specifying distinct

local and remote methods

Specifying the distribution method required.

Support for the simulation Support for the simulation of Models during of Models during Analysis and Design Analysis and Design phase.phase.

Allows specification of Allows specification of properties with access properties with access rights within classes.rights within classes.

Extensive support for Extensive support for Component Diagrams not Component Diagrams not available.available.

No support.No support.

No support.No support.

Page 53: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.53

SoftModeler Vs Rational Rose ( Contd. )SoftModeler Vs Rational Rose ( Contd. )

Doest not support state Doest not support state diagrams and Activity diagrams and Activity Diagrams.Diagrams.

Supports all constructs Supports all constructs defined in the UML defined in the UML Notation.Notation.

Page 54: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.54

Component CreationComponent Creation

Page 55: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.55

ObjecTime Developer™ObjecTime Developer™

Product of ObjecTime LimitedProduct of ObjecTime Limited http://www.objectime.com/http://www.objectime.com/ Versions for C, C++Versions for C, C++

Consider themselves as the leading provider of Consider themselves as the leading provider of software engineering tools and middleware for software engineering tools and middleware for developers of distributed systemsdevelopers of distributed systems

This product has been incorporated in Rational This product has been incorporated in Rational RoseRose®® RealTime RealTime

Uses extensions on UML to incorporate real-time Uses extensions on UML to incorporate real-time aspects, methodology call ROOM (part of UML-aspects, methodology call ROOM (part of UML-RT)RT)

Page 56: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.56

ObjecTime Developer™ - FeaturesObjecTime Developer™ - Features

Different levels of views for developers and Different levels of views for developers and customerscustomers

Executable modeling capability for understanding Executable modeling capability for understanding complex, real-time systems designscomplex, real-time systems designs tracing messages visually and debugging using

graphics build model from design, load it to target

platform, control and animate them from the development platform

generates entire applications, not only headers and generates entire applications, not only headers and skeletons, by using formal methods that allow skeletons, by using formal methods that allow automatisationautomatisation

Page 57: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.57

ObjecTime Developer™ - FeaturesObjecTime Developer™ - Features

Integrates smoothly with other developement tools Integrates smoothly with other developement tools and operating systems (esp. real-time operating and operating systems (esp. real-time operating systemssystems

Stated on their web page:Stated on their web page:ROOM forms the basis for UML-RT, a set of real-ROOM forms the basis for UML-RT, a set of real-time extensions to UML, which is soon to be an time extensions to UML, which is soon to be an OMG standard for general purpose software OMG standard for general purpose software development.development.

Page 58: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.58

UML-RT componentsUML-RT components

CapsulesCapsules represent represent complex, complex, potentially potentially concurrent and also concurrent and also distributed active distributed active componentscomponents

PPort ort is physical part of implementation of is physical part of implementation of capsule that mediates interaction of capsule capsule that mediates interaction of capsule with outside world (includes Interface and with outside world (includes Interface and Protocol [signals])Protocol [signals])

Page 59: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.59

UML-RT componentsUML-RT components

Connectors Connectors capture key capture key communication communication relationships relationships between capsules. between capsules. These relationships have architectural significance These relationships have architectural significance since they identify which capsules can affect each since they identify which capsules can affect each other through direct communication.other through direct communication.

Page 60: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.60

RESEARCH OF UML TOOLS -RESEARCH OF UML TOOLS -PARADIGM PLUSPARADIGM PLUS

Enterprise Component Modeling (ECM: share and Enterprise Component Modeling (ECM: share and reuse of components across projects)reuse of components across projects)

Models Business ProcessesModels Business Processes Object Repository for component sharing and Object Repository for component sharing and

reuse and to reverse engineer legacy softwarereuse and to reverse engineer legacy software Fully integrated business process modeling, object Fully integrated business process modeling, object

modeling, and physical database modelingmodeling, and physical database modeling OOCL (Object Oriented Change and Learning). OOCL (Object Oriented Change and Learning).

Business managers capture, model, and Business managers capture, model, and communicate corporate strategies to development communicate corporate strategies to development teams by mapping business requirements directly teams by mapping business requirements directly into use-case, object, and physical database into use-case, object, and physical database models.models.

Page 61: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.61

PARADIGM PLUS - REVERSE PARADIGM PLUS - REVERSE ENGINEERINGENGINEERING

Page 62: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.62

PARADIGM PLUS - BUSINESS PARADIGM PLUS - BUSINESS PROCESS MODELPROCESS MODEL

Page 63: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.63

PARADIGM PLUS - PHYSICAL PARADIGM PLUS - PHYSICAL DATABASE MODELINGDATABASE MODELING

Page 64: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.64

PARADIGM PLUS - COMPONENT PARADIGM PLUS - COMPONENT BASED DEVELOPMENTBASED DEVELOPMENT

Page 65: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.65

PARADIGM PLUS AND UML - PARADIGM PLUS AND UML - CLASS DIAGRAMCLASS DIAGRAM

Page 66: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.66

PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -USE CASE DIAGRAMUSE CASE DIAGRAM

Page 67: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.67

PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -STATE AND OBJECT DIAGRAMSSTATE AND OBJECT DIAGRAMS

Page 68: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.68

PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -SEQUENCE AND COMPONENT DIAGRAMSEQUENCE AND COMPONENT DIAGRAM

Page 69: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.69

PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -PHYS DATABASE AND COLLABORATION PHYS DATABASE AND COLLABORATION

DIAGRAMDIAGRAM

Page 70: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.70

PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -PROJECT AND DEPLOYMENT DIAGRAMSPROJECT AND DEPLOYMENT DIAGRAMS

Page 71: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.71

PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -ENTERPRISE COMPONENT MODELINGENTERPRISE COMPONENT MODELING

Page 72: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.72

PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -ECM ZOOMING INTO CONCEPTUALIZATIONECM ZOOMING INTO CONCEPTUALIZATION

Page 73: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.73

PARADIGM PLUS - ENHANCEMENTS PARADIGM PLUS - ENHANCEMENTS TO UML THAT SUPPORT DOCTO UML THAT SUPPORT DOC

Use Case DiagramUse Case Diagram Communication Types

Sequence DiagramSequence Diagram Timing Related Interactions

Deployment DiagramDeployment Diagram Additions to Physical Components

Project DiagramProject Diagram Not Directly Related To DOC Useful in Project Management Activities For

Team Leaders and Middle Management ECMECM

Not Directly Related To DOC. Could be used in Software Systems Engineering.

Page 74: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.74

TogetherTogether®®

Product of Object International, Inc.Product of Object International, Inc. http://www.oi.com/http://www.oi.com/ Together/J & Together/C++Together/J & Together/C++

President and founder Peter CoadPresident and founder Peter Coad Coad conducts workshops and performs

corporate consultations publishes books on modeling provides extensions to UML tries to propagate his own model called “Coad

Object Model” and Archetypes

Page 75: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.75

TogetherTogether®® - Features - Features

Supports C++ and Java™ Supports C++ and Java™ Round-trip engineeringRound-trip engineering Works directly with source files, thus no Works directly with source files, thus no

intermediate repository necessaryintermediate repository necessary UML diagrams, Coad Object Models UML diagrams, Coad Object Models Generation of system documentation Generation of system documentation Configurability of reverse engineering and code Configurability of reverse engineering and code

generation generation Rational Rose™ import/export Rational Rose™ import/export Open API for extensibility Open API for extensibility Availability on multiple OS platforms Availability on multiple OS platforms Supports IDL for CORBA and COMSupports IDL for CORBA and COM

Page 76: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.76

Together - ScreenshotTogether - Screenshot

Page 77: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.77

Coad’s Extension to UMLCoad’s Extension to UML

4 basic “Archetypes” 4 basic “Archetypes” moment-interval role category-entry-like description party, place or thing

Use of color, because …Use of color, because … psychology behind colors

His Archetypes are actually PatternsHis Archetypes are actually Patterns

Page 78: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.78

Future WorkFuture Work

Completion of Application FunctionalityCompletion of Application Functionality Server hierarchy with branch and central server Distributed DB Client GUI adapted to new functionality

Explore more UML modeling tools to identify Explore more UML modeling tools to identify further support to DOCfurther support to DOC

Page 79: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.79

IDENTIFICATION OF ENHANCEMENTS IDENTIFICATION OF ENHANCEMENTS TO UML TO SUPPORT DOCTO UML TO SUPPORT DOC

Object DeploymentObject Deployment Placing the objects at the right places (C or S) Ongoing work at UCONN To be incorporated into the design phase of the

model Simulation Capabilities In Deployment DiagramsSimulation Capabilities In Deployment Diagrams

Formal Methods, Mathematical Equations, Node Constraints, Connections, Traffic Reports, Line Capacity Maximization, Statistics and Run Time Simulation

Script of Events to generate activity in a DOC System

Lots Of CPU

Page 80: Research and Work By: Hector N. Echegoyen Oliver Scheck Gowri Shankar

CSE298 CSE300

DOC/UML.80

ConclusionsConclusions

Experience gained from the ProjectExperience gained from the Project Knowledge about UML notation Opportunity to model using Rational Rose Java RMI More DOC support provided by other tools Team-work

Enhancements to UML that support DOCEnhancements to UML that support DOC Use Case, Deployment and Sequence Diagram

additions to UML by Paradigm Plus Extensions to the Component Diagram, Class

Diagram provided by SoftModeler UML-RT as found in Rose for Real-Time