cse298 cse300 i5 dl-1.1 uml and i5 scott a. craig [email protected] jim sutton [email protected] in...

50
CSE298 CSE300 I5 DL-1.1 UML and I5 UML and I5 Scott A. Craig Scott A. Craig [email protected] [email protected] Jim Sutton Jim Sutton [email protected] [email protected] in Support of in Support of Maria Cecilla Bastaricca Maria Cecilla Bastaricca Computer Science & Engineering Computer Science & Engineering Department Department The University of Connecticut The University of Connecticut Storrs, Connecticut 06269-3155 Storrs, Connecticut 06269-3155

Post on 19-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

MITRE CorporationMITRE Corporation

CSE298

CSE300

I5 DL-1.12

MITRE CorporationMITRE Corporation

CSE298

CSE300

I5 DL-1.13

MITRE CorporationMITRE Corporation

CSE298

CSE300

I5 DL-1.14

MITRE CorporationMITRE Corporation

CSE298

CSE300

I5 DL-1.15

Mitre Software Architecture toolMitre Software Architecture tool

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

$359.95

Visio ProfessionalVisio Professional

CSE298

CSE300

I5 DL-1.25

Visual UMLVisual UML

CSE298

CSE300

I5 DL-1.26

Advanced Software TechnologiesAdvanced Software Technologies

CSE298

CSE300

I5 DL-1.27

Advanced Software TechnologiesAdvanced Software Technologies

CSE298

CSE300

I5 DL-1.28

Visual UMLVisual UML

CSE298

CSE300

I5 DL-1.29

$695

Object DomainObject Domain

CSE298

CSE300

I5 DL-1.30

$99

$99

Object InsightObject Insight

CSE298

CSE300

I5 DL-1.31

I5 ToolI5 Tool

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