软件工程---UML动态分析-活动图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Make Plan
entry/ SetGoal
2020/5/4
26
动作流
与状态图不同,活动图的转换一般都不需要特 定事件的触发。
一个动作状态执行完本状态需要完成的动作后 会自发转换到另外一个状态。
2020/5/4
27
动作流
一个活动图有很多动作或者活动状态,
活动图通常开始于初始状态,然后自动转换到 活动图的第一个动作状态,一旦该状态的动作 完成后,控制就会不加延迟地转换到下一个动 作状态或者活动状态。
7
活动图与流程图的区别
⑴ 流程图着重描述处理过程,它
的主要控制结构是顺序、分支 和循环,各个处理过程之间有 严格的顺序和时间关系
找饮料 [ 发现咖啡 ]
活动图描述的是对象活动的顺序
把咖啡放入 滤器
关系所遵循的规则,它着重表 将滤器放入 现的是系统的行为,而非系统 机器
的处理过程。
往容器里加 水
开机器
活动图着重表现从一个活动到另一个活动的控制流, 是内部处理驱动的流程。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
将滤器放入 机器
[ 没有可乐 ]
开机器 冲咖啡
倒咖啡
喝饮料
2020/5/4
12
活动的图形表示
在UML中,活动表示成圆角矩形,与状态的圆角矩 形相比,活动的矩形的圆角更柔和,看上去接近椭 圆。
不能中断,一直运行到结束。 ⑶ 动作状态是瞬时的行为,它所占用的处理时
间极短,有时其至可以忽略。
2020/5/4
19
动作状态
动作状态有如下特点:
⑷ 动作状态可以有入转换,入转换既可以是动 作流,也可以是对象流。动作状态至少有一条 出转换,这条转换以内部动作的完成为起点, 与外部事件无关。
2020/5/4
泳道将活动图中的活动化分为若干组,并把每一 组指定给负责这组活动的业务组织,即对象。
2020/5/4
36
活动图的组成元素
泳道 描述订货工作流程的活动图:
三个泳道分别是: Customer (顾客), Sales (销售部门), Stockroom (库房)。
活动从顾客泳道开始, 顾客要求订货服务,由此 可并行处理付款和办理订 货 ;其中办理订货需要在 库房(泳道)填写订货单。 当付款和填写订单同时完 成后,就可交付订货了。 当顾客收集到订货后活动
有条件的动作流则需要根据条件,即一个布尔表达 式的真假来判定动作的流向。条件行为用分支和合 并表达。
2020/5/4
30
分支与合并
Take book
[ else ]
to Librarian
[ Time too long ]
Leave Library
Fine Money
2020/5/4
31
分叉与汇合
分叉用于将动作 流分为两个或者 多个并发运行的 分支,而汇合则 用于同步这些并 发分支,以达到 共同完成一项事 务的目的。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
将滤器放入 机器
开机器 冲咖啡
[ 没有可乐 ]
倒咖啡
喝饮料
2020/5/4
33
[ 没有咖啡 ]
[ 发现可乐 ]
拿茶杯
拿可乐
冲咖啡
[ 没有可乐 ]
倒咖啡
喝饮料
2020/5/4
8
活动图与流程图的区别
⑵ 活动图能够表示
找饮料
并发活动的情形,
[ 没有咖啡 ]
而流程图不能。
[ 发现咖啡 ]
[ 发现可乐 ]
⑶ 活动图是面向对 把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
象的,而流程图 将滤器放入 机器
转换不断重复进行,直到碰到一个分支或者终 止状态为止。所有动作状态之间的转换流称之 为动作流。
2020/5/4
28
分支与合并
动作流一般会自动进行控制转换,直到遇到分支。 分支在软件系统流程中很常见,一般用于表示对
象类所具有的条件行为。
2020/5/4
29
分支与合并
一个无条件的动作流,可以在一个动作状态的动作 完成后自动触发动作状态的转换以激发下一个动作 状态,
[paid]
M a na ge r
Quated price
feeBill : Bill
[unpaid]
2020/5/4
38
泳道
在活动图中,泳道用 垂直实线绘出,垂直 线分隔的区域就是泳 道。
Guest
Enter into gymnasium
Look for place
Query price
在泳道上方可以给出 泳道的名字或对象(对 PayMoney 象类)的名字,该对象 Play (对象类)负责泳道内的 Badminton 全部活动。
拿茶杯
拿可乐
将滤器放入 机器
[ 没有可乐 ]
开机器 冲咖啡
倒咖啡
喝饮料
2020/5/4
6
活动图与流程图的区别
活动图描述系统使用的活动、判定点和分支,看起 来和流程图没什么两样,并且传统的流程图所能表 示的内容,大多数情况下也可以使用活动图表示, 但是两者是有区别的,不能将两个概念混淆。
2020/5/4
用例图(功能模型): 从用户的角度描述系统能提供哪些功能。
• 结构模型视图(静态): 类图:描述系统的静态结构; 对 象图:描述系统在某个时刻的静态结构; 包图:将类分组成更高层次的静态结构。
• 行为模型视图(动态) 顺序图:按时间顺序描述系统元素之间的交互; 协作图:从时间和空间的顺序描述系统元素之间的交互; 状态图:描述系统元素对事件的响应引起的状态转换; 活动图:描述系统元素的活动。
24
活动状态
活动状态的特点如下: ⑶ 和动作状态不同,活动状态可以有入口动作
和出口动作,也可以有内部转移。 ⑷ 动作状态是活动状态的一个特例,如果某个
活动状态只包括一个动作,那么它就是一个动 作状态。
2020/5/4都是平 滑的圆角矩形。
稍有不同的是活动状态可以在图标中给出入口 动作和出口动作等信息。
是面向过程的。
开机器
冲咖啡
倒咖啡
喝饮料 2020/5/4
[ 没有可乐 ] 9
活动图与流程图的区别
⑵ 活动图能够表示
找饮料
并发活动的情形,
而流程图不能。
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
⑶ 活动图是面向对 把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
象的,而流程图 将滤器放入 机器
是面向过程的。
开机器
冲咖啡
[ 没有可乐 ]
倒咖啡
喝饮料
2020/5/4
10
活动图与状态图都是状态机的表现形式,但是两者 还是有本质区别:
状态图着重描述从一个状态到另一个状态的流程, 主要有外部事件的参与。
未入库 超时
借书
可以外借 预订
被预订
取消预订
从书库里 清除
还书
借书
借出
2020/5/4
11
活动图与状态图都是状态机的表现形式,但是两者还 是有本质区别:
34
分叉与汇合
汇合代表两个或 多个并发控制流 同步发生,当所 有的控制流都达 到汇合点后,控 制才能继续往下 进行。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
将滤器放入 机器
开机器 冲咖啡
[ 没有可乐 ]
倒咖啡
喝饮料
2020/5/4
35
泳道
分叉与汇合
分叉可以用来描 述并发线程,每 个分叉可以有一 个输入转换和两 个或多个输出转 换,每个转换都 可以是独立的控 制流。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
将滤器放入 机器
开机器 冲咖啡
倒咖啡
喝饮料
[ 没有可乐 ]
2020/5/4
20
动作状态
动作状态有如下特点: ⑸ 动作状态和状态图中的状态不同,它不能有
入口动作和出口动作,更不能有内部转移。 ⑹ 在一张活动图中,动作状态允许多处出现。
2020/5/4
21
动作状态
在UML中动作状态使用平滑的圆角矩形表示,动作
状态所表示的动作写在圆角矩形内部
Click Mouse
动作状态
Query price
动作流和对象流允许
穿越分隔线。
Pay Money
Play Badminton
feeBill : Bill
[paid]
M a na ge r
Quated price
feeBill : Bill
[unpaid]
2020/5/4
40
对象流
而分叉与汇合则用一条加粗的线段表示。
2020/5/4
14
分支
分叉
Activity2
Activity1
活动起点 活动
Activity3
合并
Activity4
汇合
Activity5
Activity6
Activity7
活动终点
2020/5/4
15
UML的活动图中包含的图形元素有动作状态、
活动状态、动作流、分支与合并、分叉与汇合、 泳道和对象流等。
2020/5/4
22
活动状态
活动状态用于表达状态机中的非原子的运行。
2020/5/4
23
活动状态
活动状态的特点如下: ⑴ 活动状态可以分解成其他子活动或动作状态,
由于它是一组不可中断的动作或操作的组合, 所以可以被中断。 ⑵ 活动状态的内部活动可以用另一个活动图来 表示。
2020/5/4
它既可以是现实生活中正在进行的某一项工作 (写文章、维修机器等)
也可以是软件系统中正在运行的某个类对象的 一个操作。
活动具体表现为由一系列动作组成的执行过程。
将各种活动以及不同活动之间的转换用图形进 行表示,就构成了活动图。
2020/5/4
4
活动图描述了活动的顺序,展现从一个活动到另一个 活动的控制流。
feeBill : Bill
[paid]
2020/5/4
M a na ge r
Quated price
feeBill : Bill
[unpaid]
39
泳道
泳道没有顺序,不同 泳道中的活动既可以 顺序进行也可以并发 进行。
Guest
Enter into gymnasium
Look for place
活动的图标包含对活动的描述(如活动名)。
State
Activity
2020/5/4
13
活动图的图形表示
如果一个活动引发下一个活动,两个活动的图标之 间用带箭头的直线连接。
与状态图类似,活动图也有起点和终点,表示法和 状态图相同。
活动图中还包括分支与合并、分叉与汇合等模型元 素。分支与合并的图标和状态图中判定的图标相同,
对象在运行时可能会 存在两个或者多个并 发运行的控制流,为 了对并发的控制流建 模,在UML中引入了 分叉与汇合的概念。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
将滤器放入 机器
开机器 冲咖啡
[ 没有可乐 ]
倒咖啡
喝饮料
2020/5/4
32
分叉与汇合
2020/5/4
16
动作状态
动作状态是指执行原子的、不可中断的动作, 并在此动作完成后通过完成转换转向另一个状 态。
2020/5/4
17
动作状态
动作状态有如下特点: ⑴ 动作状态是原子的,它是构造活动图的最小
单位,已经无法分解为更小的部分。
2020/5/4
18
动作状态
动作状态有如下特点: ⑵ 动作状态是不可中断的,它一旦开始运行就
结束。
37
泳道
泳道区分了负责活动 的对象,它明确地表 示了哪些活动是由哪 些对象进行的。
Guest
Enter into gymnasium
Look for place
Query price
在包含泳道的活动图 中,每个活动只能明 确地属于一个泳道。
Pay Money
Play Badminton
feeBill : Bill
◦ 状态图用来描述某一特定对象所有可能的状态及状态间的转 移,是对类图的补充
◦ 顺序图用来描述对象间的动态交互关系,着重体现对象间消 息传递的时间顺序
◦ 协作图用来描述相互协作的对象的交互关系和关联关系,着 重体现对象间的静态关联关系
◦ 活动图主要用于描述用例内部的工作流程
2020/5/4
3
活动是某件事情正在进行的状态。
• 实现模型视图 构件图:描述实现系统的元素的组织结构; 配置图:描述环境元素的配置,并把实现系统的元素映射 到配置上。
2020/5/4
2
一个完整的模型必然描述系统的静态和动态两个方面
静态模型重在描绘系统的组成结构
动态模型描述系统的行为
UML提供如下动态模型:交互图(顺序图和协作图)、状 态图、活动图
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
将滤器放入 机器
拿茶杯
拿可乐
[ 没有可乐 ]
开机器 冲咖啡
倒咖啡
喝饮料
2020/5/4
5
活动图在本质上是一种流程图。但与流程图又有区别。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水