+ All Categories
Home > Documents > 6 Identify Design Elements - Fudan...

6 Identify Design Elements - Fudan...

Date post: 22-Mar-2018
Category:
Upload: dangtruc
View: 225 times
Download: 2 times
Share this document with a friend
79
1 6 Identify Design Elements
Transcript
Page 1: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

1

6 Identify Design Elements

Page 2: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

2

Page 3: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

3

Page 4: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

4

Identify Design Elements in Context

[EarlyElaboration

Iteration][Inception

Iteration (Optional)]

Define a CandidateArchitecture

PerformArchitectural

Synthesis

Analyze Behavior

Refine theArchitecture

DesignComponents

Design theDatabase

(Optional)Identify DesignElements Architect

Page 5: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

5

Page 6: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

6

Page 7: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

7

Identify Design Elements Steps

Identify classes and subsystems

Identify subsystem interfaces

Identify reuse opportunities

Update the organization of the Design Model

Checkpoints

Analysis Classes

Page 8: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

8

From Analysis Classes to Design Elements

Analysis Classes Design Elements

<<boundary>>

<<control>>

<<entity>>

<<boundary>>

Many-to-Many Mapping

Subsystem<<subsystem>>

Subsystem<<subsystem>>

Page 9: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

9

Example: Registration Package

MainRegistrarForm

1

11

MainStudentForm

1

RegisterForCoursesForm

<<boundary>>

0..10..1

11

CloseRegistrationForm

<<boundary>>

0..10..1

CloseRegistrationController

<<control>>RegistrationController

<<control>>

1

Page 10: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

10

FulltimeStudent

<<entity>>

ParttimeStudent

<<entity>>PrimaryScheduleOfferingInfo

<<entity>>

ScheduleOfferingInfo

<<entity>>Student

<<entity>>

Example: University Artifacts Package: Generalization

Page 11: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

11

Student

<<entity>>

Professor

<<entity>>

Schedule

<<entity>>

CourseOffering

<<entity>>

CourseOfferingList

1

Prerequisites

0..*Course

<<entity>>0..*

1

instructor

0..1

0..*

0..*0..*

0..*

0..4

primaryCourses

0..*

0..2

alternateCourses

0..*

1

Example: University Artifacts Package: Associations

Page 12: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

12

IBillingSystem

<<Interface>>

ICourseCatalogSystem

<<Interface>>

Example: External System Interfaces Package

Page 13: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

13

Realizes one or more interfaces that define its behavior

Subsystem

Review: Subsystems and Interfaces

InterfaceRealization (Canonical form)

Realization (Elided form)

Interface Name

Subsystem Name <<subsystem>>

Interface Name

<<interface>>

Subsystem Name <<subsystem>>

Page 14: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

14

Identify Design Elements Steps

Identify classes and subsystems

Identify subsystem interfaces

Identify reuse opportunities

Update the organization of the Design Model

Checkpoints

Page 15: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

15

All other analysis classes map directly to design classes.

Analysis Design

Example: Design Subsystems and Interfaces

BillingSystem

//submit bill()

<<boundary>>

Billing System

<<subsystem>>

IBillingSystem

submitBill(forTuition : Double, forStudent : Student)

CourseCatalogSystem

//get course offerings()

<<boundary>>

Course Catalog System

<<subsystem>>

ICourseCatalogSystem

getCourseOfferings(forSemester : Semester, forStudent : Student) : CourseOfferingList

initialize()

Page 16: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

16

Analysis Class Design Element

CourseCatalogSystem

BillingSystem

All other analysis classes

map directly to design

classes

CourseCatalogSystem Subsystem

BillingSystem Subsystem

Example: Analysis-Class-To-Design-Element Map

Page 17: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

17

Interfaces start with an “I”

Modeling Convention: Subsystems and Interfaces

CourseCatalogSystem<<subsystem>>

ICourseCatalogSystem + initialize ()

+ getCourseOfferings ()

CourseCatalogSystem<<subsystem>>

+ initialize ()

+ getCourseOfferings ()

ICourseCatalogSystem<<interface>>

+ getCourseOfferings ()

+ initialize ()

Page 18: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

18

Example: Subsystem Context: CourseCatalogSystem

Provided

interface

defined

ICourseCatalogSystem<<Interface>>

CloseRegistrationController

+ // is registration open?()

+ // close registration()

<<control>>

0..1

+courseCatalog

CourseCatalogSystem<<subsystem>>

+ initialize ()

+ getCourseOfferings ()

+ getCourseOfferings ( for Semester: Semester )

+ initialize ()

RegistrationController

+ getCurrentSchedule()

+ deleteCurrentSchedule()

+ submitSchedule()

+ saveSchedule()

+ getCourseOfferings()

+ setSession()

+ <<class>> new()

+ getStudent()

<<control>>

CourseOfferingList

+ new()

+ add()

1

Required interface

defined

Page 19: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

19

Example: Subsystem Context: Billing System

IBillingSystem

+ submitBill(forStudent : Student, forTuition : double)

<<Interface>>1

0..1

+ Biller 1

Student

<<entity>>

CloseRegistrationController

+ // is registration open?()

+ // close registration()

<<control>>

BillingSystem<<subsystem>>

+ submitBill(forStudent : Student, forTuition : double)

Page 20: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

20

Identify Design Elements Steps

Identify classes and subsystems

Identify subsystem interfaces

Identify reuse opportunities

Update the organization of the Design Model

Checkpoints

Page 21: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

21

?

Reuse Opportunities Internal to System

Page 22: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

22

Identify classes and subsystems

Identify subsystem interfaces

Identify reuse opportunities

Update the organization of the Design Model

Checkpoints ClassB

Y()

Z()

ClassA

Y()

Z()

Identify Design Elements Steps

ClassC

Y()Z()

ClassD

Y()Z()

ClassC

Y()Z()

ClassE

Y()Z()

Page 23: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

23

Example: Architectural Layers

Middleware

<<layer>>

Base Reuse

global

Application

<<layer>>

Business

Services

<<layer>>

Necessary because the

Application Layer must

have access to the core

distribution mechanisms

provided with Java RMI.

Page 24: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

24

Registration

<<layer>>

Application

Example: Application Layer

Page 25: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

25

Security

GUI FrameworkSecure Interfaces

Application<<layer>>

Business Services

<<layer>>

<<layer>>

Application

<<layer>>

Business Services

Example: Application Layer Context

University Artifacts

Registration

External System

Interfaces

Page 26: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

26

Example: Business Services Layer

CourseCatalogSystem

<<subsystem>>

External System

Interfaces

University

Artifacts

ObjectStore

Support

<<layer>>

Business Services

GUI

Framework

Secure

Interfaces

Security

<<subsystem>>

Security

Manager

BillingSystem

<<subsystem>>

Page 27: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

27

Middleware<<layer>>

Business Services

<<layer>>

Example: Business Services Layer Context

java.sqlcom.odi

<<layer>>

Middleware

BillingSystem<<subsystem>>

CourseCatalogSystem<<subsystem>>

External System Interfaces

University Artifacts

ObjectStoreSupport

<<layer>>

Business Services

GUI

Framework

Secure

Interfaces

Security

<<subsystem>>

SecurityManager

Page 28: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

28

com.odi

Database(from com.odi)

Session(from com.odi)

Transaction(from com.odi)

Map(from com.odi)

java.sql

ResultSet(from com.odi)

Connection(from com.odi)

Statement(from com.odi)

DriverManager(from com.odi)

Example: Middleware Layer

<<layer>>

Middleware

Page 29: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

29

7 RunTime Architecture

Page 30: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

30

Page 31: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

31

Describe the Run-time Architecture in Context

[EarlyElaboration

Iteration][Inception

Iteration (Optional)]

Define a CandidateArchitecture

PerformArchitectural

Synthesis

Analyze Behavior

Refine theArchitecture

DesignComponents

Design theDatabase

(Optional)Describe the Run-time Architect

Architecture

Page 32: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

32

Page 33: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

33

Page 34: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

34

Describe the Run-time Architecture Steps

Analyze concurrency requirements

Identify processes and threads

Identify process lifecycles

Map processes onto the implementation

Distribute model elements among processes

Page 35: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

35

Page 36: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

36

Page 37: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

37

Page 38: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

38

Page 39: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

39

Page 40: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

40

Page 41: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

41

Page 42: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

42

Page 43: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

43

Page 44: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

44

Class diagrams

Active classes as processes/threads

Composition relationships from processes/threads to classes

Composition relationships from processes/threads to subsystems

Class NameProcess Name

<<process>>

Process Name

<<process>>

Process Name

<<process>>

Modeling the Mapping of Elements to Processes

Thread Name

<<thread>>

<<subsystem>>

Subsystem Name

Page 45: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

45

Page 46: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

46

Page 47: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

47

Page 48: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

48

8 Describe Distribution

Page 49: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

49

Page 50: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

50

Describe

Distribution

Implementation Model

Describe Distribution Overview

Software

Architecture

Document

Deployment Model

Design Model

Supplementary

Specifications

Page 51: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

51

Key Concepts: The Deployment View

The Deployment View is an “architecturally significant”

slice of the Deployment Model.

Process View Deployment View

Logical View

Use-Case View

Implementation View

End-user

Functionality

Programmers

Software management

Performance, scalability, throughput

System integrators System topology, delivery,

installation, communication

System engineering

Analysts/Designers

Structure

Page 52: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

52

<<legacy RDBMS>>

Course Catalog

Review: Example: Deployment Diagram with Processes

<<Campus LAN>>

<<Campus LAN>><<Campus LAN>>

<<application server>>

Registration Server

<<client workstation>>

PC

CourseCatalogSystemAccess

CourseRegistrationProcess

BillingSystemAccess

Billing

System

<<legacy>>

0..2000

1

1

1

1

1

Page 53: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

53

Why Distribute?

Reduce processor load

Special processing requirements

Scaling concerns

Economic concerns

Distributed access to the system

Page 54: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

54

Distribution Patterns

Client/Server

3-tier

Fat Client

Fat Server

Distributed

Client/Server

Peer-to-peer

Page 55: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

55

Thinner client, thicker server

Database Server(s)

Client/Server Architectures

Application

Business Object

Services

Client A

Business Object

Engine

Business Object

Services

Business Object

Engine

Business Object Server

COM

MTS

Beans

ETS

Client B

Application

DCOM

ADO/RCORBA Beans

Client C

WWW Browser

Web Server

HTML

CGIASP Java

Business Object

Services

Business Object

Engine

Page 56: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

56

Application Services

Business Services

Data Services

Client/Server: Three-Tier Architecture

Database Server(s)

Business Object

Services

Business Object

Engine

Business Object Server

COM

MTS

Beans

ETS

Client B

Application

DCOM

ADO/RCORBA Beans

Page 57: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

57

Application Services

Business Services

Data Services

Client/Server: “Fat Client” Architecture

Application

Business Object

Services

Client A

Business Object

Engine

Database Server(s)

Page 58: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

58

Application Services

Business Services

Data Services

Client/Server: Web Application Architecture

Client C

WWW Browser

Web Server

HTML

CGIASP Java

Business Object

Services

Business Object

Engine

Database Server(s)

Page 59: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

59

Application

Services

Business

Services

Data Services

Peer-to-Peer Architecture

Business Object

Services

Business Object

Engine

COM

MTS

Beans

ETS

Application

DCOM

ADO/RCORBA Beans

Business Object

Services

Business Object

Engine

COM

MTS

Beans

ETS

Application

DCOM

ADO/RCORBA Beans

Page 60: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

60

Describe Distribution Steps

Define the network configuration

Allocate processes to nodes

Define the distribution mechanism

Page 61: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

61

Describe Distribution Steps

Define the network configuration

Allocate processes to nodes

Define the distribution mechanism

Page 62: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

62

The Network Configuration

End-user workstation nodes

”Headless" processing server nodes

Special configurations

Development

Test

Specialized processors

Page 63: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

63

Review: What Is a Node?

Represents a run-time computational resource Generally has at least memory

and often processing capability.

Types: Device

• Physical computational resource with processing capability.

• May be nested

Execution Environment• Represent particular

execution platforms

<<exe env>>

EE Name

<<device>>

Device Name

<<device>>

Sub Device

Name

Page 64: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

64

Review: What Is a Connector?

A connector represents a:

Communication mechanism

• Physical medium

• Software protocol

<<application server>>

Server<<RS-232>>

<<100-T Ethernet>>

Connector

<<client workstation>>

Console

<<client workstation>>

Kiosk

Page 65: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

65

Review: Example: Deployment Diagram

<<legacy RDBMS>>

Course Catalog

<<Campus LAN>>

<<Campus LAN>><<Campus LAN>>

<<application server>>

Registration Server

<<client workstation>>

PC

Billing System

<<legacy>>

0..2000

1

1

1

1

1

Page 66: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

66

Describe Distribution Steps

Define the network configuration

Allocate processes to nodes

Define the distribution mechanism

Page 67: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

67

Process-to-Node Allocation Considerations

Distribution patterns

Response time and system throughput

Minimization of cross-network traffic

Node capacity

Communication medium bandwidth

Availability of hardware and communication links

Rerouting requirements

Page 68: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

68

<<legacy RDBMS>>

Course Catalog

Review: Example: Deployment Diagram with Processes

<<Campus LAN>>

<<Campus LAN>><<Campus LAN>>

<<application server>>

Registration Server

<<client workstation>>

PC

CourseCatalogSystemAccess

CourseRegistrationProcess

BillingSystemAccess

Billing

System

<<legacy>>

0..2000

1

1

1

1

1

Page 69: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

69

What is Deployment?

Deployment is the assignment, or mapping, of software artifacts to physical nodes during execution.

Artifacts are the entities that are deployed onto physical nodes

• Processes are assigned to computers

Artifacts model physical entities.

Files, executables, database tables, web pages, etc.

Nodes model computational resources.

Computers, storage units.

Page 70: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

70

Example: Deploying Artifacts to Nodes

<<client workstation>>

PC

StudentApplication

<<client workstation>>

PC

<<process>>

StudentApplication

<<deploy>>

<<client workstation>>

PC

<<process>>

StudentApplication

Page 71: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

71

What is Manifestation?

The physical implementation of a model element as an artifact.

A relationship between the model element and the artifact that implements it

• Model elements are typically implemented as

a set of artifacts.

Source files, executable files, documentation file

Page 72: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

72

Example: Manifestation

<<client workstation>>

PC

<<process>>

StudentApplication

<<deploy>>

MainStudentForm

<<manifest>>

<<header>>

MainStudentForm

<<source>>

MainStudentForm

<<manifest>>

<<manifest>>

Page 73: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

73

What is a Deployment Specification?

A detailed specification of the parameters of the deployment of an artifact to a node.

May define values that parameterize the execution

Page 74: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

74

Example: Deployment Specification

<<client workstation>>

PC

<<process>>

StudentApplication

<<deploy>>

MainStudentForm

<<manifest>>

<<header>>

MainStudentForm

<<source>>

MainStudentForm

<<manifest>>

<<manifest>>

<<deploymentSpec>>

StuAppDeploy

execution =

priority =

location =

Page 75: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

75

Describe Distribution Steps

Define the network configuration

Allocate processes to nodes

Define the distribution mechanism

Page 76: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

76

Distribution Mechanism

Remote Method

Invocation (RMI)

Analysis

Mechanism

(Conceptual)

Design

Mechanism

(Concrete)

Implementation

Mechanism

(Actual)

Java 1.2 from SunDistribution

RMI was chosen as the implementation mechanism for distribution

Page 77: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

77

Design Mechanisms: Distribution: RMI

Distribution characteristics Latency

Synchronicity

Message Size

Protocol

Page 78: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

78

Remote Method Invocation (RMI) (continued)

OneInstanceper node

For all classes that realize the Remote

interface, a remote stub and a remote

skeleton are created. These classes handle

the communication that must occur to

support distribution.

Naming.

lookup(name : String) : Remote

(from java.rmi)

SampleDistributedClass

doSomething(aParameter : SamplePassedData)

<<role>>

Remote(from java.rmi)

SampleDistributedClassClient<<role>>

SamplePassedData<<role>>

Any Java class that you want to

pass as an argument to an

operation on a remote interface

must realize the Serializable

Interface.

UnicastRemoteObject(from Server)

To "distribute" a class in Java, you must define an interface

that inherits from Remote. The distributed class needs to

realize the defined Remote interface and also inherit from

(extend) the UnicastRemoteObject.

ISampleDistributedClass

doSomething(aParameter : SamplePassedData)

<<Interface>>

Serializable(from java.io)

Roles to be filled by the

designer applying the

mechanism

Page 79: 6 Identify Design Elements - Fudan Universityjpkc.fudan.edu.cn/picture/article/212/49/f7/cbde563e47d... ·  · 2010-04-25Identify Design Elements in Context [Early Elaboration Iteration]

79

<<layer>>

Business Services

Example: Incorporating RMI

<<layer>>

Middleware

<<layer>>

Application

University Artifacts

(from Business Services)

Middleware<<layer>>

Application<<layer>>

Business Services

<<layer>>

java.rmi

<<interface>>

remote(from java.rmi)

Naming(from java.rmi)

UnicastRemote

Object(from Server)

Server

<<interface>>

Serializable(from java.io)

Java.io

Registration

Package

(from Application)


Recommended