lecture 4-5 uml 建模 uml 时序通信与概览图

23
Lecture 4-5 UML Lecture 4-5 UML 建建 建建 UML UML 建建建建建建建建 建建建建建建建建

Upload: kisha

Post on 05-Jan-2016

106 views

Category:

Documents


10 download

DESCRIPTION

Lecture 4-5 UML 建模 UML 时序通信与概览图. 动态模型. 状态图:通常是一个对象的状态 UML 中用时序图、通信图、活动图和状态机图来建立动态模型。 显示对象在系统运行期间不同时刻的 各对象的动态交互。. 1. 时序图. 时序图用来描述 对象间的交互行为 ,它关注于消息的顺序,即对象间消息的发送和接收的顺序。 时序图还揭示了 一个特定场景的交互 ,即系统执行期间发生在某时间点的对象之间的特定交互。它适合于描述实时系统中的时间特性和时间约束。 实例形式 :描述一次具体的交互历史 一般形式: 描述一个交互场景中所有可能的交互序列 ( 可能带条件和分支). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lecture 4-5 UML 建模 UML 时序通信与概览图

Lecture 4-5 UMLLecture 4-5 UML 建模建模UMLUML 时序通信与概览图时序通信与概览图

Page 2: Lecture 4-5 UML 建模 UML 时序通信与概览图

动态模型动态模型

状态图:通常是一个对象的状态状态图:通常是一个对象的状态

UMLUML 中用时序图、通信图、活动图和状中用时序图、通信图、活动图和状态机图来建立动态模型。态机图来建立动态模型。 显示对象在系统运行期间不同时刻的显示对象在系统运行期间不同时刻的各对象的各对象的

动态交互。动态交互。

Page 3: Lecture 4-5 UML 建模 UML 时序通信与概览图

1. 1. 时序图时序图 时序图用来描述时序图用来描述对象间的交互行为对象间的交互行为,它关注于消,它关注于消

息的顺序,即对象间消息的发送和接收的顺序。息的顺序,即对象间消息的发送和接收的顺序。 时序图还揭示了时序图还揭示了一个特定场景的交互一个特定场景的交互,即系统执,即系统执

行期间发生在某时间点的对象之间的特定交互。行期间发生在某时间点的对象之间的特定交互。它适合于描述实时系统中的时间特性和时间约束。它适合于描述实时系统中的时间特性和时间约束。 实例形式实例形式:描述一次具体的交互历史:描述一次具体的交互历史 一般形式:一般形式:描述一个交互场景中所有可能的交描述一个交互场景中所有可能的交

互序列互序列 ( 可能带条件和分支)( 可能带条件和分支)

Page 4: Lecture 4-5 UML 建模 UML 时序通信与概览图

生存线:生存线:时序图中对象框下可画一垂直的虚线,时序图中对象框下可画一垂直的虚线,称为该对象的生存线(称为该对象的生存线( lifelinelifeline ),显示执行期),显示执行期间的时序。间的时序。

消息发送:消息发送:用来指出该对象对象之间的消息发送用来指出该对象对象之间的消息发送用生存线之间的消息箭头表示。用生存线之间的消息箭头表示。

激活:激活:当一个对象接收到一个消息时,该对象开当一个对象接收到一个消息时,该对象开始活动,称为激活。激活画成对象生存线始活动,称为激活。激活画成对象生存线上的一个长方形框,表示该对象可能在执行自上的一个长方形框,表示该对象可能在执行自己的代码,可能在等待另一对象的返回。己的代码,可能在等待另一对象的返回。

作用:作用:按垂直坐标从上到下的次序读时序图,可按垂直坐标从上到下的次序读时序图,可以发现随时间推进,对象间消息通信的顺序与功以发现随时间推进,对象间消息通信的顺序与功能执行。能执行。

Page 5: Lecture 4-5 UML 建模 UML 时序通信与概览图

呼叫方 应叫方电话线

呼叫方拿起受话器

拨数字( 5 )拨号音结束拨数字( 5 )

拨号音开始

拨数字( 2 )拨数字( 7 )拨数字( 2 )铃声

铃声消失电话接通户叫方挂机电话被切断

电话振铃应叫方摘机

停止振铃电话接通

电话被切断应叫方挂机

实例形式

Page 6: Lecture 4-5 UML 建模 UML 时序通信与概览图

A B:myB

doOne

激活区

生命线

public class A{private B myB=new B( );public void doOne( ){myB.doTwo( );myB.doThree( );}}

doTwo

doThree

Page 7: Lecture 4-5 UML 建模 UML 时序通信与概览图

在时序图中,不同的消息表示对象间在时序图中,不同的消息表示对象间不同类型的通信。不同类型的通信。 简单消息:简单消息:表示消息类型未知或与类型表示消息类型未知或与类型

无关,或是一个同步消息的返回。无关,或是一个同步消息的返回。 同步消息:同步消息:表示发送对象必须等接收对表示发送对象必须等接收对

象完成消息的处理后才能继续执行。象完成消息的处理后才能继续执行。 异步消息:异步消息:表示发送对象在消息发送后表示发送对象在消息发送后

立即继续执行,而不必等待接收对象的立即继续执行,而不必等待接收对象的返回。返回。

传送延迟:传送延迟:可用倾斜的箭头表示,意思可用倾斜的箭头表示,意思是消息发送后需经历一段延迟时间才被是消息发送后需经历一段延迟时间才被接收(可以注明最大延迟时间)。接收(可以注明最大延迟时间)。

Page 8: Lecture 4-5 UML 建模 UML 时序通信与概览图

:clockStarter

对象创建消息

create

startclock

Log:logger

异步消息

主动对象:拥有独立的运行线程或进程

返回消息

同步消息run

saveLog(desp, time)

committed

Page 9: Lecture 4-5 UML 建模 UML 时序通信与概览图

: Sales

:Payment

一个对象可以通过一条消息创建另一个对象。当需要显式地表示对象的销毁 ( 没有垃圾自动回收机制或特别指明不再使用 ) 时,在图中用一个 X号表示。创建或消亡一个对象的消息通常是同步消息

Create(cash)

<<Destroy>>

Page 10: Lecture 4-5 UML 建模 UML 时序通信与概览图

OP1()

OP2()

OP3()

时序图中还可出现递归,即一个对象发消息给自身,这种消息通常是同步

A: A1 B:b1 C:c1

Page 11: Lecture 4-5 UML 建模 UML 时序通信与概览图

UML2.0UML2.0 中的带条件消息中的带条件消息

:Foo

opt [color=red]

:Bar

else

[x>0]

xx

alt calculate

calculate

calculate

yy

alt: 互斥的有条件交互消息

Page 12: Lecture 4-5 UML 建模 UML 时序通信与概览图

被引用的交互片断具有一样的生命线准则:任何时序图

: C: B: C: B: A

do X

Sd do foo

sd authen user

: C: B

do fooref

refAuthen user

do B

authe(id)

do A

p3

Op1op2

op5op4

Page 13: Lecture 4-5 UML 建模 UML 时序通信与概览图

时序图中的循环时序图中的循环

endsale

[more items]

[make new sale]

:B:A

[enteritem(item, quantity)

loop

Description, total

loop 标记后还可以包含循环次数的限制

Page 14: Lecture 4-5 UML 建模 UML 时序通信与概览图

时序图的结构化控制结构时序图的结构化控制结构 前面的时序图中描述的都是顺序的控制流,前面的时序图中描述的都是顺序的控制流,

对于复杂的控制流可以对于复杂的控制流可以用组合片段用组合片段(( combined fragmentcombined fragment )来表示。)来表示。 组合片段组合片段 :: 有一个关键字和一或多个子片段有一个关键字和一或多个子片段

(( subfragmentsubfragment ),关键字指明),关键字指明操作符,子片段指出操作对象。下表给出操作符,子片段指出操作对象。下表给出了部分关键字及其含义。 了部分关键字及其含义。

Page 15: Lecture 4-5 UML 建模 UML 时序通信与概览图

关键字关键字 含义含义ref-ref- 引用引用 对另一对另一 (( 子子 )) 交互的引用交互的引用loop-loop- 循环循环 它有一个子片段,当循环的警戒条件为它有一个子片段,当循环的警戒条件为

真时执行子片段真时执行子片段

altalt (选(选择)择)

它有二个或多个子片段,每个子片段有一个初始警戒条件,它有二个或多个子片段,每个子片段有一个初始警戒条件,当某子片段的警戒条件为真时,执行该子片段。当某子片段的警戒条件为真时,执行该子片段。如果有多个子片段的警戒条件为真,则无确定如果有多个子片段的警戒条件为真,则无确定性地选择它们中的一个执行。性地选择它们中的一个执行。如果没有一个子片段的警戒条件为真,则不执行如果没有一个子片段的警戒条件为真,则不执行

opt-opt- 可选可选 它是带单个子片段的特殊情况,即警戒条件为假时省略它是带单个子片段的特殊情况,即警戒条件为假时省略该子片段该子片段

par-par- 并发并发 它有二个或多个子片段,处于此片段时,所有子片段都它有二个或多个子片段,处于此片段时,所有子片段都并发地执行,在不同片段中消息的相关顺序是不确定的,并发地执行,在不同片段中消息的相关顺序是不确定的,当所有子片段完整地并发执行后,控制流又连接到一起当所有子片段完整地并发执行后,控制流又连接到一起成为单一的流成为单一的流

Page 16: Lecture 4-5 UML 建模 UML 时序通信与概览图

时序图中的并行和嵌套时序图中的并行和嵌套

[invalid pass]

par

opt

Loop(1,3)

Bank: ATMUser: Person

Deliver cash

Enter(ammount)

Enter(account)

Valid=verify(password)

enter(password)

[valid pass]

[valid pass]

并行区域中,同一分区内的消息顺序执行,不同分区之间的消息次序是任意的

Page 17: Lecture 4-5 UML 建模 UML 时序通信与概览图

时间图 时间图 TimingTiming

sd 信仁医院

Tim

eL

ine

1

status registered:

status Empty:取消预订

0 10 20 30 40 50 60 70 80 90 100

Tim

eL

ine

1

status registered:

status Empty:取消预订

Page 18: Lecture 4-5 UML 建模 UML 时序通信与概览图

通信图通信图 (( 协作图协作图 ))

通信图通信图 communication diagram,communication diagram, 与与 1.X1.X版本中的协作图版本中的协作图 collaboration diagram collaboration diagram 相同相同

Page 19: Lecture 4-5 UML 建模 UML 时序通信与概览图

通信图通信图 (( 协作图协作图 ))

通信图通信图 :: 对象间的交互和链接(一个对象间的交互和链接(一个 linklink 是关联的是关联的一个实例)。一个实例)。 LinkLink 可以带上消息可以带上消息 消息:同顺序图消息:同顺序图 链:两个对象之间的连接。链:两个对象之间的连接。

链上可附加上消息链上可附加上消息 在链的末端可附加上约束:如在链的末端可附加上约束:如 global, local, global, local,

parameter,self(parameter,self( 对象可以向自身发送消息)对象可以向自身发送消息) 例例 1. 1. 工作申请协作图工作申请协作图

Page 20: Lecture 4-5 UML 建模 UML 时序通信与概览图

通信图举例

Page 21: Lecture 4-5 UML 建模 UML 时序通信与概览图

交互概览图交互概览图 interaction overview interaction overview diagramdiagram

UML2.0UML2.0 新增新增 ,, 结合了时序图中的控制流结合了时序图中的控制流与活动图的交互特征。与活动图的交互特征。

关注控制流,但抽象掉了时序图中的消息关注控制流,但抽象掉了时序图中的消息和生命线的视图。和生命线的视图。

使用活动图的表示法,其中的节点不是活使用活动图的表示法,其中的节点不是活动,而是动,而是 UMLUML 的各种交互图(时序、通信、的各种交互图(时序、通信、时间及交互概述图) 时间及交互概述图)

Page 22: Lecture 4-5 UML 建模 UML 时序通信与概览图
Page 23: Lecture 4-5 UML 建模 UML 时序通信与概览图

sd Activ ity

登记出院

ref正常流程

refa异常

refb异常

refc异常

结束结束

[ ]收费管理系统没有响应

[ ]没有出院申请记录

[ ]其他异常

[ ]意外处理