6 系统动态建模-活动图
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
把没没放把 滤滤
往往滤往往 水
拿拿拿
拿拿拿
将滤滤放把 机滤
[ 没没拿拿 ]
开机滤
冲没没
倒没没
喝找找
2012-5-15
9
6.2 活动图的表示
1. 活动图
活动图是描述系统或业务的一 序列活动构成的控制流,它描 述了系统从一种活动转换到另 一种活动的整个过程。 例如,有一个表示某公司销售 过程的一张活动图,图8-1就是 描述这一业务过程的活动图。
2012-5-15
Home
38
泳道(Swimlance)代表 对象对活动的责任。 泳道把活动图中的活动划 分为若干组,并把这些组指 定给对象,这些对象必须履 行该组所包括的活动。泳道 明确表示哪些活动是由哪些 对象进行的。 在活动图上泳道用垂直实 线划出,垂直线分隔的区域 就是泳道。在泳道上方给出 泳道的名字或对象(对象类) 名字,该对象(对象类)负 责泳道内的全部活动。 例:右图在上图的基础上 增加了3个泳道:“顾客服 务”、“处理订货”、“财 务结算”。
2012-5-15
10
图8-1活动图
6.2 活动图的表示
2.活动图的作用
活动图常用来描述业务或软件系统的活动轨迹,描述了系统 的活动控制流程。我们常用活动图对业务过程、工作流和用 例实现进行建模。
3.活动图的组成元素
活动图的元素包括初始节点、终点、活动节点、转换、分支、 分岔与汇合。其中,转换、分支、分岔与汇合把多个活动节 点连接在一起。
2012-5-15
26
1、分叉 、 用于将一个控制流分为两个或多个并发运行的分支。 用于将一个控制流分为两个或多个并发运行的分支。
2012-5-15
27
2012-5-15
28
2、汇合 、 用于将两个或多个控制流合并到一起形成一个单向控制流。 用于将两个或多个控制流合并到一起形成一个单向控制流。 合并到一起形成一个单向控制流
2012-5-15
34
图6-8 订单处理
2012-5-15 35
6.3.2 标识泳道的活动图
为了有效地表示各个活动由谁负责的信息,可以通过泳道(Swim Lane)来实现。例如,在图6-9的活动图中,活动的执行者包括窗 口和打印机,因此可以将其分成二个泳道。左边泳道中的所有活 动的执行者是窗口;右边泳道中的所有活动的执行者是打印机。 泳道将活动图的活动状态分组,每一组表示负责那些活动的 业务组织,直接显示动作在哪一个业务组织中执行。每一个 活动都只能明确地属于一个泳道。 每个泳道用一条垂直的线将它们分开,并且每个泳道都必须有一 个唯一的名称,例如本例中的窗口和打印机。从图中可以看出, 每个活动节点,分支必须只属于一个泳道,而转换,分岔与汇合 是可以跨泳道的。通过泳道,不仅体现了整个活动控制流,还体 现出了每个活动的实施者。
2、合并 、 合并将两条路径连接到一起,合并成一条路径。 合并将两条路径连接到一起,合并成一条路径。
2012-5-15
24
提示: 提示:判断节点与合并节点的符号相同
2012-5-15 25
五、分叉和汇合
在实际应用中,如果活动的转换是有条件的,我们就 用分支与监护条件来表示转换,如果一些活动是并发执 行的,我们就用分叉和汇合来表示并发活动。分叉线和 汇合线都使用加粗的水平线或垂直线段表示。
2012-5-15
31
ATM机“登录”用例的活动图 机 登录”
2012-5-15
32
6.3 活动图分类
按照活动图表示的信息不同,将活动图分为: 简单活动图、标识泳道的活动图、标识对象流 的活动图、复合活动图。
2012-5-15
33
6.3.1
简单活动图
图6-8 就是一个描述订单处理的简单活动图, 这个图既没有标识活动的执行者,也没有标识 活动执行过程中,创建了哪些对象。其中,每 个活动都是简单的活动。
活动图是一种表述业务过程以及工作流的技 术。它可以用来对业务过程,工作流建模, 也可以对用例实现,甚至是对程序实现进行 建模。活动图与流程图的最主要的区别在于, 活动图能够标识活动的并行行为。
2012-5-15
4
6.1 定义活动图
活动是某件事情正在进行的状态。 它既可以是现实生活中正在进行的某一项工作(写文 章、维修机器等) 也可以是软件系统中正在运行的某个类对象的一个 操作。 活动具体表现为由一系列动作组成的执行过程。 将各种活动以及不同活动之间的转换用图形进行表 示,就构成了活动图。
4.活动图与交互图
活动图和交互图是UML中对系统动态方面建模的两种主要形 式,交互图强调对象与对象之间的交互消息,而活动图则强 调的是从活动到活动的控制流程.
2012-5-15
11
1. 活动图的元素
活动起点
Activity1
活动 分叉 分支
Activity2 Activity3
Activity4
Activity5
2012-5-15
19
1、分支
根据条件的取值决定动作的流向。 根据条件的取值决定动作的流向。
2012-5-15
20
2012-5-15
21
2012-5-15
22
闹闹闹
闹闹闹
( 饿饿 )
( 没饿 )
( 没饿 ) ( 饿饿 ) 吃吃吃 接接接接
吃吃吃
接接接接
分支的两种表示方法
2012-5-15
23
第6章 系统动态建模-活动图
2012-5-15
1
教学要求
理解:活动图的作用 掌握:活动图建模的方法
2012-5-15
2
6.1 活动图的概念 6.2 活动图的表示 6.3 活动图分类 6.4 构建活动图 小结
2012-5-15
3
6.1 定义活动图
活动(Activity)是做某件事情的状态,它可以是现 实世界中的一项工作,如写文章、修机器等;或者 是执行某个软件的例行程序,如运行对象类中的一 个操作等。
把没没放把 滤滤
往往滤往往 水
拿拿拿
拿拿拿
将滤滤放把 机滤
[ 没没拿拿 ]
开机滤
冲没没
倒没没
喝找找
2012-5-15
8
活动图与流程图的区别
找找找
⑵ 活动图能够表示 并发活动的情形, 而流程图不能。 ⑶ 活动图是面向对 象的,而流程图是 面向过程的。
[ 没没没没 ] [ 发发没没 ] [ 发发拿拿 ]
2012-5-15
图 泳道示例
39
Home
6.3.2 标识对象流的活动图
在活动图中,存在这样一些现象:一种情况是,可能存在一些对象进入 一个活动节点,经过活动处理,修改了对象的状态;另一种情况是,活 动节点创建或删除了一些对象;一些情况是,输出一些对象。在这些活 动中,对象与节点活动是紧密相关的,用户可以在活动图中把相关的对 象标识出来,即标识哪些对象进入活动节点,哪些对象从活动节点中输 出,这对编程具有现实意义。 在UML中,我们可以在活动图中标识一个对象的角色,状态和属性值的 变化,它的表示方法如图5-10所示。
图 活动节点
2012-5-15
14
二、状态
开始状态
结束状态
2012-5-15
15
一个活动图中开始状态能否有多个?结束状态能否有多个? 一个活动图中开始状态能否有多个?结束状态能否有多个?
2012-5-15 16
注意: 注意: 一个活动图中只能有一个开始状态 一个活动图中可以有多个结束状态
2012-5-15
如果一个控制流在其他控制流到达之前到达了连接, 如果一个控制流在其他控制流到达之前到达了连接,它将 会等待,直到所有控制流都到达了才会向连接传递控制权。 会等待,直到所有控制流都到达了才会向连接传递控制权。
2012-5-15
29
做做做做
放放
听听
2012-5-15
30
(1)分叉:每个分叉可以有一个输入转换和两个或 多个输出转换,每个转换都可以是独立的控制流。 (2)汇合:当两个或多个并发控制流都达到汇合点 后,活动流程才能进入下一个活动节点. 分岔用来表示两个或者多个并发活动的分支;而汇 合则用于同步这些并发活动的分支,当且仅当所有 的并发分支(活动)都到达汇合点后,活动流程才能 进入下一个活动节点。
2012-5-15
36
6.3.2 标识泳道的活动图
:窗口
初始化打印机
:打印机
获取打印机数据
设置打印页面
保存页面参数数据
传送打印数据
接收并保存打印数据
打印文件
执行打印命令
图6-9 标识泳道的活动图
2012-5-15 37
例:一个网上商 店处理顾客订货 的活动图示例, 如图所示。
图 顾客订货处理 的活动图
2012-5-15
43
6.3.4 标识信号的活动图
在交互图中,利用“信号”可以增加活动图的可读性。信号是表 示两个对象之间进行异步通讯的方式,当一个对象接收到一个信 号时,将触发信号事件。
2012-5-15
44
6.3.4 标识信号的活动图
1.信号 在活动图中,有三种信号元素,它们是:发送信号,接收信号和时间信 号,其表示方法如图5-12所示。
17
三、转移(动作流) 转移(动作流)
活动之间、活动与状态之间的转换。 活动之间、活动与状态之间的转换。
A
B
2012-5-15
18
四、分支与合并
在实际应用中,有三种活动控制流,它们是顺序结 构、分支结构、循环结构.当从一个活动节点到另一 个活动节点的转换需要条件时,常用分支与监护条件 来表示活动的分支结构. 分支是用菱形表示的,它有一个进入转换(箭头从 外指向分支符号),一个或多个离开转换(箭头从分 支符号指向外)。而每个离开转换上都会有一个监护 条件,用来表示满足某种条件时才执行该转换。 一个合并有两个带条件的入转换和一个出转换,合 并表示从对应的分支开始的条件行为的结束。
图5-10 活动图中的对象表示法
2012-5-15 40
6.3.3 标识对象流的活动图
2012-5-15
41
6.3.3 标识对象流的活动图
在图5-11中,标识了一些关键的对象流,对象的状态也在图中 作了标识: (1)当“用户下订单”时,将创建一个Order类的实例,用来 存放订单的信息,该Order类还包含着相应的OrderItem(针对 每个产品一条) (2)当“生成送货单”时,将根据Order类的实例创建多个 DeliverOrder(送货单)的实例。 (3)当“修改订单项状态”之后,DeliverOrder对象的状态将 变成finished。
2012-5-15
7
活动图与流程图的区别
找找找 [ 没没没没 ]
⑴ 流程图着重描述处理
[ 发发没没 ]
过程,它的主要控制结 构是顺序、分支和循环, 各个处理过程之间有严 格的顺序和时间关系 活动图描述的是对象活 动的顺序关系所遵循的 规则,它着重表现的是 系统的行为,而非系统 的处理过程。
[ 发发拿拿 ]
2012-5-15
5
6.1 定义活动图
活动图描述了活动的顺序,展现从一个活动 到另一个活动的控制流。 活动图在本质上是一种流程图。但与流程图 又有区别。
2012-5-15
6
活动图与流程图的区别
活动图描述系统使用的活动、判定点和分支,看 起来和流程图没什么两样,并且传统的流程图所 能表示的内容,大多数情况下也可以使用活动图 表示,但是两者是有区别的,不能将两个概念混 淆。
Activity6
合并 汇合
Activity7
活动终点
2012-5-15 12
一、活动(动作) 活动(动作) 1、活动的概念 、 表示工作流过程中命令的执行或活动的进行。 表示工作流过程中命令的执行或活动的进行。 2、活动的符号 、
2012-5-15
13
2、活动的符号 、
在下图中列出的就是一些可能的活动节点 描述,可能用文字描述活动节点,可能用 表达式描述活动节点,可能用消息描述活 动节点。
图5-12 三种信号的表示法
(1)时间信号:时间信号是用来表示随着时间的流逝而自动发出的信号, 时间信号表示,当时间到达某个特定的时刻时,就会触发时间事件,例 如每天10点时,闹钟开始响铃,10点钟发出响铃的信号就是时间信号。 (2)发送信号:也就是发出一个异步消息,对于发送者而言,就是发送 信号;对于接收到这种消息的目标而言,就是“接收信号’。 (3)接收信号:就是接收者收到的一个外部信号。
2012-5-15
42
6.3.3 标识对象流的活动图
当然,在这张活动图中实际上还蕴藏着许多对象流,例如: (1)当“收款”后,Order类的实例的状态就变成了“已付 款”。 (2)当“修改订单项状态”后,Order类中部分订单项的状态 就变成了“已送货”。 (3)当用户取消或订单超过时限时,Order类的状态就将成为 Cancel。 在实际应用中识出来,这样会使活动图变得复杂、混乱。在实际建模中, 只对重要的对象进行描述。