Upload
winfred-bradford
View
221
Download
0
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
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
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
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
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
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
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
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
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
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..
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
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?
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
CSE298 CSE300
DOC/UML.26
RMI Flow of EventsRMI Flow of Events
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)
CSE298 CSE300
DOC/UML.28
Server - Transaction ObjectsServer - Transaction Objects
CSE298 CSE300
DOC/UML.29
Server - Transaction InterfacesServer - Transaction Interfaces
CSE298 CSE300
DOC/UML.30
Server at Runtime - LoginServer at Runtime - Login
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; }
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
CSE298 CSE300
DOC/UML.33
Server - HierarchyServer - Hierarchy
CSE298 CSE300
DOC/UML.34
Server - The Big PictureServer - The Big Picture
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
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
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; }
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; }
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");
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.");
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; }
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.
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.
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™.
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.
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
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.
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)
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.
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
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
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.
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.
CSE298 CSE300
DOC/UML.54
Component CreationComponent Creation
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)
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
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.
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])
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.
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.
CSE298 CSE300
DOC/UML.61
PARADIGM PLUS - REVERSE PARADIGM PLUS - REVERSE ENGINEERINGENGINEERING
CSE298 CSE300
DOC/UML.62
PARADIGM PLUS - BUSINESS PARADIGM PLUS - BUSINESS PROCESS MODELPROCESS MODEL
CSE298 CSE300
DOC/UML.63
PARADIGM PLUS - PHYSICAL PARADIGM PLUS - PHYSICAL DATABASE MODELINGDATABASE MODELING
CSE298 CSE300
DOC/UML.64
PARADIGM PLUS - COMPONENT PARADIGM PLUS - COMPONENT BASED DEVELOPMENTBASED DEVELOPMENT
CSE298 CSE300
DOC/UML.65
PARADIGM PLUS AND UML - PARADIGM PLUS AND UML - CLASS DIAGRAMCLASS DIAGRAM
CSE298 CSE300
DOC/UML.66
PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -USE CASE DIAGRAMUSE CASE DIAGRAM
CSE298 CSE300
DOC/UML.67
PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -STATE AND OBJECT DIAGRAMSSTATE AND OBJECT DIAGRAMS
CSE298 CSE300
DOC/UML.68
PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -SEQUENCE AND COMPONENT DIAGRAMSEQUENCE AND COMPONENT DIAGRAM
CSE298 CSE300
DOC/UML.69
PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -PHYS DATABASE AND COLLABORATION PHYS DATABASE AND COLLABORATION
DIAGRAMDIAGRAM
CSE298 CSE300
DOC/UML.70
PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -PROJECT AND DEPLOYMENT DIAGRAMSPROJECT AND DEPLOYMENT DIAGRAMS
CSE298 CSE300
DOC/UML.71
PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -ENTERPRISE COMPONENT MODELINGENTERPRISE COMPONENT MODELING
CSE298 CSE300
DOC/UML.72
PARADIGM PLUS AND UML -PARADIGM PLUS AND UML -ECM ZOOMING INTO CONCEPTUALIZATIONECM ZOOMING INTO CONCEPTUALIZATION
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.
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
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
CSE298 CSE300
DOC/UML.76
Together - ScreenshotTogether - Screenshot
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
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
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
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