View
216
Download
0
Tags:
Embed Size (px)
Citation preview
CSE298
CSE300
I5 DL-1.1
UML and I5UML and I5
Scott A. CraigScott A. [email protected]@engr.uconn.edu
Jim SuttonJim [email protected]@home.com
in Support ofin Support ofMaria Cecilla BastariccaMaria Cecilla Bastaricca
Computer Science & Engineering DepartmentComputer Science & Engineering DepartmentThe University of ConnecticutThe University of Connecticut
Storrs, Connecticut 06269-3155Storrs, Connecticut 06269-3155
CSE298
CSE300
I5 DL-1.2
Overall Goal of I5Overall Goal of I5
Graphically specify a distributed Graphically specify a distributed object system architecture and object system architecture and implementationimplementation
Work towards optimal deployment of Work towards optimal deployment of objectsobjects
CSE298
CSE300
I5 DL-1.3
Our Project Goal SummaryOur Project Goal Summary
State of the art review of current practices State of the art review of current practices relating to UML and the design, relating to UML and the design, documentation, and analysis of distributed documentation, and analysis of distributed object systemsobject systems
State of the art review of current tools that State of the art review of current tools that could implement I5could implement I5
Refined definition of I5 achieved though Refined definition of I5 achieved though application of test casesapplication of test cases
Start at creation of an I5 design toolStart at creation of an I5 design tool
CSE298
CSE300
I5 DL-1.5
Supported DiagramsSupported Diagrams
Use Case DiagramsUse Case Diagrams Sequence diagramsSequence diagrams Collaboration diagramsCollaboration diagrams Class diagramsClass diagrams State DiagramsState Diagrams Component DiagramsComponent Diagrams Deployment DiagramsDeployment Diagrams I5DL
CSE298
CSE300
I5 DL-1.6
ResearchResearch
TextbooksTextbooks Fowler, UML distilled IEEE Recommended Practice for
Software Requirements Specification Booch, UML Reference Manual Sommerville, Software Requirements
Engineering Liberty, Object Oriented Analysis and
Design Web Literature & InterviewsWeb Literature & Interviews
CSE298
CSE300
I5 DL-1.7
InterviewsInterviews
Dr. Jerome Sotter, CognitechDr. Jerome Sotter, Cognitech Dr. Melissa Chase MITRE CorporationDr. Melissa Chase MITRE Corporation Peter Sutton, IBM CorporationPeter Sutton, IBM Corporation Dr. Pratul Duplish, PRT associatesDr. Pratul Duplish, PRT associates Roger Sessions, ObjectWatchRoger Sessions, ObjectWatch Dr. Michael Higgs, I-Kinetics Inc.Dr. Michael Higgs, I-Kinetics Inc. Robert Babcock, ClientSoftRobert Babcock, ClientSoft Dr. Tarek El-Hadidi, ABB ETI RaleighDr. Tarek El-Hadidi, ABB ETI Raleigh Alex Stein IBM E-business solutionsAlex Stein IBM E-business solutions Dave Marsh, Pinkerton ScientificDave Marsh, Pinkerton Scientific
CSE298
CSE300
I5 DL-1.8
Key UnderstandingKey Understanding
The big issue on the block is interface - CORBA, The big issue on the block is interface - CORBA, Enterprise Java Beans and Microsoft Comware. Enterprise Java Beans and Microsoft Comware. Speed is always and issueSpeed is always and issue
UML is part of the process but only use UML is part of the process but only use casecomponent/class diagrams are routinely usedcasecomponent/class diagrams are routinely used
Biggest disadvantage of Rational Rose is round Biggest disadvantage of Rational Rose is round trip engineeringtrip engineering
Industry not focused on optimal deployment Industry not focused on optimal deployment because of interface concerns and relatively small because of interface concerns and relatively small number of computers communicatingnumber of computers communicating
CSE298
CSE300
I5 DL-1.10
Web Based Decision Support Web Based Decision Support System development ProcessSystem development Process
•Creating Object and Data Models
•Creating Database Tables
•Create Java data access objects -- Extensive use of Rational Rose
•Implement Business Logic
•Create Presentation Layer with JSP’s
•Test and integrate JSPs in VisualAge for Java
•Deployment using WebSphere
CSE298
CSE300
I5 DL-1.16
PRT Inc. PRT Inc.
Over 900 IT professionalsOver 900 IT professionals Locations include Barbados, Locations include Barbados, India, UK, and US (Windsor)India, UK, and US (Windsor)
CSE298
CSE300
I5 DL-1.17
250,000 terminals250,000 terminals Asynchronous Asynchronous
CommunicationCommunication Almost all “C” and Almost all “C” and
assembler languageassembler language Documentation kept to Documentation kept to
a minimum to minimize a minimum to minimize costcost
Use CORBA Use CORBA effectivelyeffectively
Documentation at a Documentation at a minimumminimum
Transaction Oriented SystemTransaction Oriented System
CSE298
CSE300
I5 DL-1.18
Roger Sessions ObjectWatchRoger Sessions ObjectWatch(Notes from training seminar 3/29/99)(Notes from training seminar 3/29/99)
Provider of Services for Microsoft COM, Provider of Services for Microsoft COM, DCOM, MTS and Microsoft Distributed DCOM, MTS and Microsoft Distributed Component ArchitectureComponent Architecture
Microsoft focused on interoperability but has Microsoft focused on interoperability but has little respect for platform portabilitylittle respect for platform portability
Expect 70% market shareExpect 70% market share Running NASDAQ application at 800 Running NASDAQ application at 800
transaction/sec sustained for 8 days. Analysts transaction/sec sustained for 8 days. Analysts alerts within .7 seconds achievedalerts within .7 seconds achieved
CSE298
CSE300
I5 DL-1.19
Desktop
Critical Need: Legacy Asset IntegrationCritical Need: Legacy Asset Integration
Codes
1997 IT Spending
USA: $320 Billion
Europe: $200 Billion
Japan: $108 Billio
Total Assets; $5 Trillion
Integration Tier Legacy Assets
Data
?
?
Data Access
Transactions
Messaging
Directory
Other...
Middleware
Gap
Proprietary Interfaces:
High cost
Low functionality
Development Cost:
$300K to $1M+
Per Legacy Asset
Dr. Higgs lead the first release of Rational Rose for UNIX and Windows
CSE298
CSE300
I5 DL-1.20
Lessons learned for I5Lessons learned for I5
Definitely a need in the industry. Many products Definitely a need in the industry. Many products already exist but are not focused at optimum already exist but are not focused at optimum deploymentdeployment
Don’t make the solution worse than the problemDon’t make the solution worse than the problem Ability to develop diagrams from code would be Ability to develop diagrams from code would be
really nicereally nice Ability to share data with other UML programs Ability to share data with other UML programs
importantimportant
CSE298
CSE300
I5 DL-1.21
Potential tools for I5DLPotential tools for I5DL
Rational RoseRational Rose VisioVisio Microsoft Visual ModelerMicrosoft Visual Modeler Advanced Tech GD-ProAdvanced Tech GD-Pro Together J.Together J. Visual UMLVisual UML Object DomainObject Domain Object TeamObject Team From Scratch ProgramFrom Scratch Program
CSE298
CSE300
I5 DL-1.22
$2588
Rational Rose 98i Professional J EditionRational Rose 98i Professional J Edition
CSE298
CSE300
I5 DL-1.23
Rational Rose 98i Professional J EditionRational Rose 98i Professional J Edition
CSE298
CSE300
I5 DL-1.32
Tool ResultsTool Results
Rational is still the standardRational is still the standard None of the packages support optimal None of the packages support optimal
deploymentdeployment Object Domain has a nice GUI that could be Object Domain has a nice GUI that could be
mimickedmimicked None of the programs are open sourceNone of the programs are open source The from scratch alternative gives maximum The from scratch alternative gives maximum
programming flexibilityprogramming flexibility
CSE298
CSE300
I5 DL-1.33
Application of I5Application of I5
Assisted in Refinement of I5 by Using It to Assisted in Refinement of I5 by Using It to Specify Example SystemsSpecify Example Systems CORBA-based Systems Based on Experience in Developing the Non-
propulsion Electronic System for Virginia Class Submarine
Naming Service Used to Locate Objects Event Service Used for Notification
MotivationMotivation Find Practical Example of Each Feature of
Language Identify Key Information That Cannot Be
Captured by the Language
CSE298
CSE300
I5 DL-1.34
Naming ServiceNaming Service
Facilitates Locating Objects in a Distributed Facilitates Locating Objects in a Distributed SystemSystem
A A Name BindingName Binding Is a Name-to-object Association Is a Name-to-object Association and Is Always Defined Relative to a and Is Always Defined Relative to a Naming Naming ContextContext
A Naming Context Is an Object That Contains a A Naming Context Is an Object That Contains a Set of Name Bindings in Which Each Name Is Set of Name Bindings in Which Each Name Is UniqueUnique
Multiple Names May Be Bound to an ObjectMultiple Names May Be Bound to an Object Servers Bind Names to Objects and Clients Servers Bind Names to Objects and Clients
Resolve Names to ObjectsResolve Names to Objects
CSE298
CSE300
I5 DL-1.35
Naming GraphNaming Graph
ContextContext
Application ObjectApplication Object
EnvironmentEnvironment SettingsSettings
source1source1 source1source1
<Environment;source1><Environment;source1> <Settings;source1><Settings;source1>
ECEC
source2source2 source2source2
ECEC
CSE298
CSE300
I5 DL-1.36
Event ServiceEvent Service
Event Service Defines Two Roles for ObjectsEvent Service Defines Two Roles for Objects Supplier Role: Produce Event Data Consumer Role: Process Event Data
Event ChannelsEvent Channels Decouple Communication Between Suppliers
and Consumers Is Both a Consumer and a Supplier of Events
Push-style Communication With an Event ChannelPush-style Communication With an Event Channel Multiple Consumers and Multiple Suppliers
Typed Event CommunicationTyped Event Communication Consumer Interface Defined in IDL Typed Event Channel Required
CSE298
CSE300
I5 DL-1.37
Overview of I5Overview of I5
Five Levels of SpecificationFive Levels of Specification Interface Level (I1) Defines Component Types,
Node Types, and Connector Types Inheritance Level (I2) Defines Implementation
Classes Implementation Level (I3) Maps Component
Classes to Node Classes Instantiation Level (I4) Defines Instance
Components and Instance Nodes Installation Level (I5) Defines the Deployment
of Instance Components Over Instance Nodes
CSE298
CSE300
I5 DL-1.38
Overview of I5 (cont.)Overview of I5 (cont.)
Z Notation Used for Textual SpecificationZ Notation Used for Textual Specification Schemas
Variants of UML Implementation Diagrams Used Variants of UML Implementation Diagrams Used for Graphical Specificationfor Graphical Specification Component Diagrams Deployment Diagrams
CSE298
CSE300
I5 DL-1.39
Typed Event ExampleTyped Event Example
Given Two Sets of Interfaces:Given Two Sets of Interfaces: Environment
Environment_cs (Client/Server) EnvNotification_ev (Event) EnvUpdate_ev (Event)
Settings Settings_cs (Client/Server) Setttings_ev (Event)
Constraints:Constraints: 2 Instances of EnvSupplier SettingsSupplier Contains Two Unique
Realizations of Interface “Settings_cs”
CSE298
CSE300
I5 DL-1.40
Event IDL: Supplier SideEvent IDL: Supplier Side
ProxyPushConsumer
+ connect_push_supplier()
<<Interface>>
PushConsumer
+ push()+ disconnect_push_consumer()
<<Interface>>
TypedEventChannel
+ for_consumers()+ for_suppliers()+ destroy()
<<Interface>>
TypedProxyPushConsumer<<Interface>>
TypedPushConsumer
+ get_typed_consumer()
<<Interface>>
TypedSupplierAdmin
+ obtain_typed_push_consumer()
<<Interface>>
CSE298
CSE300
I5 DL-1.41
Event IDL: Consumer SideEvent IDL: Consumer Side
ProxyPushSupplier
+ connect_push_consumer()
<<Interface>>
PushSupplier
+ disconnect_push_supplier()
<<Interface>>
TypedConsumerAdmin
+ obtain_typed_push_supplier()
<<Interface>>
TypedEventChannel
+ for_consumers()+ for_suppliers()+ destroy()
<<Interface>>
CSE298
CSE300
I5 DL-1.42
Environment IDLEnvironment IDL
Environment_cs
+ getFixedLenStruct()+ getVarLenStruct()
<<Interface>>
EnvNotification_ev
+ notification()
<<Interface>>
EnvUpdate_ev
+ update()
<<Interface>>
FixedLenStruct_t
- timestamp : long- data : float- source : source_t
(from Environment_cs)
Notification_t
- timestamp : long- source : source_t
(from Environment_cs)
source_t
- source1- source2
(from Environment_cs)
VarLenStruct_t
- timestamp : long- source : source_t- data : string
(from Environment_cs)
TypedPushConsumer
+ get_typed_consumer()
(from Event)
<<Interface>>
CSE298
CSE300
I5 DL-1.43
Settings IDLSettings IDL
Settings_cs
+ getFixedLenStruct() : FixedLenStruct_t
<<Interface>>FixedLenStruct_t
- timestamp : long- data : float- source : source_t
(from Settings_cs)
source_t
- source1- source2
(from Settings_cs)
Settings_ev
+ update(val : in Settings_cs::FixedLenStruct_t) : void
<<Interface>>
TypedPushConsumer
+ get_typed_consumer() : Object
(from Event)
<<Interface>>
CSE298
CSE300
I5 DL-1.44
Interface Level: SoftwareInterface Level: Software
Comp_Typetype: TypedConsumer (Abstract)supertypes: { }interfaces: { PushConsumer}calls: { TypedEC.TypedEventChannel,
TypedEC.TypedConsumerAdmin,TypedEC.ProxyPushSupplier}
Comp_Typetype: TypedSupplier (Abstract)supertypes: { }interfaces: { PushSupplier}calls: { TypedEC.TypedEventChannel,
TypedEC.TypedSupplierAdmin,TypedEC.TypedProxyPushConsumer}
Comp_Typetype: TypedEC (Abstract)supertypes: { }interfaces: { TypedEventChannel,
TypedConsumerAdmin,ProxyPushSupplier,TypedSupplierAdmin,TypedProxyPushConsumer}
calls: { TypedConsumer.TypedPushConsumer,TypedSupplier.PushSupplier}
CSE298
CSE300
I5 DL-1.45
Interface Level: SoftwareInterface Level: Software
<<type>><<type>>TypedECTypedEC
11
33
<<type>><<type>>EnvECEnvEC
TypedEventChannelTypedEventChannel{resolve}{resolve}
44
22
1) TypedSupplierAdmin1) TypedSupplierAdmin2) TypedProxyPushConsumer2) TypedProxyPushConsumer3) TypedConsumerAdmin3) TypedConsumerAdmin4) ProxyPushSupplier4) ProxyPushSupplier
EnvUpdate_evEnvUpdate_ev
<<type>><<type>>TypedSupplierTypedSupplier
PushSupplierPushSupplier
<<type>><<type>>TypedConsumerTypedConsumer
PushConsumerPushConsumer
(Generalization)(Generalization)
Note: EnvUpdate_ev inheritsNote: EnvUpdate_ev inheritsfrom TypedPushConsumerfrom TypedPushConsumer
<<type>><<type>>EnvConsumerEnvConsumer
EnvUpdate_evEnvUpdate_ev
<<type>><<type>>EnvSupplierEnvSupplier
(Generalization)(Generalization)
(Generalization)(Generalization)
CSE298
CSE300
I5 DL-1.46
Inheritance Level: SoftwareInheritance Level: Software
Comp_ClassComp_Type.type: EnvConsumerclass: EnvConsumerIC1 (HP-UX 10.20)cl_calls: { EnvSupplierIC.Environment_cs }
Comp_ClassComp_Type.type: EnvConsumerclass: EnvConsumerIC2 (Windows NT 4.0)cl_calls: { EnvSupplierIC.Environment_cs }
Comp_ClassComp_Type.type: EnvECclass: EnvEC_ICcl_calls: { EnvConsumerIC1.EnvNotification_ev,
EnvConsumerIC1.EnvUpdate_ev,EnvConsumerIC2.EnvNotification_ev,EnvConsumerIC2.EnvUpdate_ev }
Comp_ClassComp_Type.type: EnvSupplierclass: EnvSupplierICcl_calls: { EnvEC_IC.EnvNotification_ev,
EnvEC_IC.EnvUpdate_ev }
CSE298
CSE300
I5 DL-1.47
Inheritance Level: SoftwareInheritance Level: Software
<<type>><<type>>EnvConsumerEnvConsumer
EnvUpdate_evEnvUpdate_ev
EnvNotification_evEnvNotification_ev
<<implementationClass>><<implementationClass>>EnvConsumerIC1EnvConsumerIC1{HP-UX 10.20}{HP-UX 10.20}
EnvUpdate_evEnvUpdate_ev
EnvNotification_evEnvNotification_ev
<<implementationClass>><<implementationClass>>EnvConsumerIC2EnvConsumerIC2
{Windows NT 4.0}{Windows NT 4.0}
EnvUpdate_evEnvUpdate_ev
EnvNotification_evEnvNotification_ev
Note 1: RelationshipsNote 1: Relationshipsare realizationsare realizations
Note 2: Illustrates the use ofNote 2: Illustrates the use ofstereotypes and tagged valuesstereotypes and tagged values(UML Extension Mechanisms)(UML Extension Mechanisms)
CSE298
CSE300
I5 DL-1.48
I5 IssuesI5 Issues
Component Interfaces and Calls May Be SpecifiedComponent Interfaces and Calls May Be Specified Static View of System
Needs to Address Scenario Where a Component Needs to Address Scenario Where a Component Contains Multiple Realizations of the Same Contains Multiple Realizations of the Same InterfaceInterface
Needs to Incorporate Naming ServiceNeeds to Incorporate Naming Service Specify Which Realizations Are Accessible
Through Naming Service Access to Other Realizations Through
Interfaces
CSE298
CSE300
I5 DL-1.49
I5 ToolI5 Tool
I5 Has Been Refined to the Point Where It Is I5 Has Been Refined to the Point Where It Is Feasible to Begin Development of a ToolFeasible to Begin Development of a Tool
Use Cases Will Essentially Document Steps Use Cases Will Essentially Document Steps Performed in Specifying Example SystemsPerformed in Specifying Example Systems
Tool Needs to Support Component Diagrams and Tool Needs to Support Component Diagrams and Deployment DiagramsDeployment Diagrams Class Diagrams May Be Supported to Facilitate
Specification of Interfaces Interoperability Will Other UML ToolsInteroperability Will Other UML Tools
Import Rational Rose Petal Files Investigate Standard Formats for Storing UML
Models
CSE298
CSE300
I5 DL-1.50
Concluding RemarksConcluding Remarks
I5 Was Used to Specify a Small System Consisting I5 Was Used to Specify a Small System Consisting of 11 Component Instances Deployed Over 6 of 11 Component Instances Deployed Over 6 NodesNodes Tedious, Demonstrated the Need for a Tool
That Facilitates Textual (Z Notation) and Graphical (UML) Specification
Future Work:Future Work: Further Refinement of I5 Specification Application to Non-corba Systems
Java Agent-based Systems
Iterative Development of I5 Tool Completed by September