Upload
kisha
View
112
Download
10
Embed Size (px)
DESCRIPTION
Lecture 4-5 UML 建模 UML 时序通信与概览图. 动态模型. 状态图:通常是一个对象的状态 UML 中用时序图、通信图、活动图和状态机图来建立动态模型。 显示对象在系统运行期间不同时刻的 各对象的动态交互。. 1. 时序图. 时序图用来描述 对象间的交互行为 ,它关注于消息的顺序,即对象间消息的发送和接收的顺序。 时序图还揭示了 一个特定场景的交互 ,即系统执行期间发生在某时间点的对象之间的特定交互。它适合于描述实时系统中的时间特性和时间约束。 实例形式 :描述一次具体的交互历史 一般形式: 描述一个交互场景中所有可能的交互序列 ( 可能带条件和分支). - PowerPoint PPT Presentation
Citation preview
Lecture 4-5 UMLLecture 4-5 UML 建模建模UMLUML 时序通信与概览图时序通信与概览图
动态模型动态模型
状态图:通常是一个对象的状态状态图:通常是一个对象的状态
UMLUML 中用时序图、通信图、活动图和状中用时序图、通信图、活动图和状态机图来建立动态模型。态机图来建立动态模型。 显示对象在系统运行期间不同时刻的显示对象在系统运行期间不同时刻的各对象的各对象的
动态交互。动态交互。
1. 1. 时序图时序图 时序图用来描述时序图用来描述对象间的交互行为对象间的交互行为,它关注于消,它关注于消
息的顺序,即对象间消息的发送和接收的顺序。息的顺序,即对象间消息的发送和接收的顺序。 时序图还揭示了时序图还揭示了一个特定场景的交互一个特定场景的交互,即系统执,即系统执
行期间发生在某时间点的对象之间的特定交互。行期间发生在某时间点的对象之间的特定交互。它适合于描述实时系统中的时间特性和时间约束。它适合于描述实时系统中的时间特性和时间约束。 实例形式实例形式:描述一次具体的交互历史:描述一次具体的交互历史 一般形式:一般形式:描述一个交互场景中所有可能的交描述一个交互场景中所有可能的交
互序列互序列 ( 可能带条件和分支)( 可能带条件和分支)
生存线:生存线:时序图中对象框下可画一垂直的虚线,时序图中对象框下可画一垂直的虚线,称为该对象的生存线(称为该对象的生存线( lifelinelifeline ),显示执行期),显示执行期间的时序。间的时序。
消息发送:消息发送:用来指出该对象对象之间的消息发送用来指出该对象对象之间的消息发送用生存线之间的消息箭头表示。用生存线之间的消息箭头表示。
激活:激活:当一个对象接收到一个消息时,该对象开当一个对象接收到一个消息时,该对象开始活动,称为激活。激活画成对象生存线始活动,称为激活。激活画成对象生存线上的一个长方形框,表示该对象可能在执行自上的一个长方形框,表示该对象可能在执行自己的代码,可能在等待另一对象的返回。己的代码,可能在等待另一对象的返回。
作用:作用:按垂直坐标从上到下的次序读时序图,可按垂直坐标从上到下的次序读时序图,可以发现随时间推进,对象间消息通信的顺序与功以发现随时间推进,对象间消息通信的顺序与功能执行。能执行。
呼叫方 应叫方电话线
呼叫方拿起受话器
拨数字( 5 )拨号音结束拨数字( 5 )
拨号音开始
拨数字( 2 )拨数字( 7 )拨数字( 2 )铃声
铃声消失电话接通户叫方挂机电话被切断
电话振铃应叫方摘机
停止振铃电话接通
电话被切断应叫方挂机
实例形式
A B:myB
doOne
激活区
生命线
public class A{private B myB=new B( );public void doOne( ){myB.doTwo( );myB.doThree( );}}
doTwo
doThree
在时序图中,不同的消息表示对象间在时序图中,不同的消息表示对象间不同类型的通信。不同类型的通信。 简单消息:简单消息:表示消息类型未知或与类型表示消息类型未知或与类型
无关,或是一个同步消息的返回。无关,或是一个同步消息的返回。 同步消息:同步消息:表示发送对象必须等接收对表示发送对象必须等接收对
象完成消息的处理后才能继续执行。象完成消息的处理后才能继续执行。 异步消息:异步消息:表示发送对象在消息发送后表示发送对象在消息发送后
立即继续执行,而不必等待接收对象的立即继续执行,而不必等待接收对象的返回。返回。
传送延迟:传送延迟:可用倾斜的箭头表示,意思可用倾斜的箭头表示,意思是消息发送后需经历一段延迟时间才被是消息发送后需经历一段延迟时间才被接收(可以注明最大延迟时间)。接收(可以注明最大延迟时间)。
:clockStarter
对象创建消息
create
startclock
Log:logger
异步消息
主动对象:拥有独立的运行线程或进程
返回消息
同步消息run
saveLog(desp, time)
committed
: Sales
:Payment
一个对象可以通过一条消息创建另一个对象。当需要显式地表示对象的销毁 ( 没有垃圾自动回收机制或特别指明不再使用 ) 时,在图中用一个 X号表示。创建或消亡一个对象的消息通常是同步消息
Create(cash)
<<Destroy>>
OP1()
OP2()
OP3()
时序图中还可出现递归,即一个对象发消息给自身,这种消息通常是同步
A: A1 B:b1 C:c1
UML2.0UML2.0 中的带条件消息中的带条件消息
:Foo
opt [color=red]
:Bar
else
[x>0]
xx
alt calculate
calculate
calculate
yy
alt: 互斥的有条件交互消息
被引用的交互片断具有一样的生命线准则:任何时序图
: 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
时序图中的循环时序图中的循环
endsale
[more items]
[make new sale]
:B:A
[enteritem(item, quantity)
loop
Description, total
loop 标记后还可以包含循环次数的限制
时序图的结构化控制结构时序图的结构化控制结构 前面的时序图中描述的都是顺序的控制流,前面的时序图中描述的都是顺序的控制流,
对于复杂的控制流可以对于复杂的控制流可以用组合片段用组合片段(( combined fragmentcombined fragment )来表示。)来表示。 组合片段组合片段 :: 有一个关键字和一或多个子片段有一个关键字和一或多个子片段
(( subfragmentsubfragment ),关键字指明),关键字指明操作符,子片段指出操作对象。下表给出操作符,子片段指出操作对象。下表给出了部分关键字及其含义。 了部分关键字及其含义。
关键字关键字 含义含义ref-ref- 引用引用 对另一对另一 (( 子子 )) 交互的引用交互的引用loop-loop- 循环循环 它有一个子片段,当循环的警戒条件为它有一个子片段,当循环的警戒条件为
真时执行子片段真时执行子片段
altalt (选(选择)择)
它有二个或多个子片段,每个子片段有一个初始警戒条件,它有二个或多个子片段,每个子片段有一个初始警戒条件,当某子片段的警戒条件为真时,执行该子片段。当某子片段的警戒条件为真时,执行该子片段。如果有多个子片段的警戒条件为真,则无确定如果有多个子片段的警戒条件为真,则无确定性地选择它们中的一个执行。性地选择它们中的一个执行。如果没有一个子片段的警戒条件为真,则不执行如果没有一个子片段的警戒条件为真,则不执行
opt-opt- 可选可选 它是带单个子片段的特殊情况,即警戒条件为假时省略它是带单个子片段的特殊情况,即警戒条件为假时省略该子片段该子片段
par-par- 并发并发 它有二个或多个子片段,处于此片段时,所有子片段都它有二个或多个子片段,处于此片段时,所有子片段都并发地执行,在不同片段中消息的相关顺序是不确定的,并发地执行,在不同片段中消息的相关顺序是不确定的,当所有子片段完整地并发执行后,控制流又连接到一起当所有子片段完整地并发执行后,控制流又连接到一起成为单一的流成为单一的流
时序图中的并行和嵌套时序图中的并行和嵌套
[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]
并行区域中,同一分区内的消息顺序执行,不同分区之间的消息次序是任意的
时间图 时间图 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:取消预订
通信图通信图 (( 协作图协作图 ))
通信图通信图 communication diagram,communication diagram, 与与 1.X1.X版本中的协作图版本中的协作图 collaboration diagram collaboration diagram 相同相同
通信图通信图 (( 协作图协作图 ))
通信图通信图 :: 对象间的交互和链接(一个对象间的交互和链接(一个 linklink 是关联的是关联的一个实例)。一个实例)。 LinkLink 可以带上消息可以带上消息 消息:同顺序图消息:同顺序图 链:两个对象之间的连接。链:两个对象之间的连接。
链上可附加上消息链上可附加上消息 在链的末端可附加上约束:如在链的末端可附加上约束:如 global, local, global, local,
parameter,self(parameter,self( 对象可以向自身发送消息)对象可以向自身发送消息) 例例 1. 1. 工作申请协作图工作申请协作图
通信图举例
交互概览图交互概览图 interaction overview interaction overview diagramdiagram
UML2.0UML2.0 新增新增 ,, 结合了时序图中的控制流结合了时序图中的控制流与活动图的交互特征。与活动图的交互特征。
关注控制流,但抽象掉了时序图中的消息关注控制流,但抽象掉了时序图中的消息和生命线的视图。和生命线的视图。
使用活动图的表示法,其中的节点不是活使用活动图的表示法,其中的节点不是活动,而是动,而是 UMLUML 的各种交互图(时序、通信、的各种交互图(时序、通信、时间及交互概述图) 时间及交互概述图)
sd Activ ity
登记出院
ref正常流程
refa异常
refb异常
refc异常
结束结束
[ ]收费管理系统没有响应
[ ]没有出院申请记录
[ ]其他异常
[ ]意外处理