温馨提示:
-
对于 UML图有用无用,网上说法不一,不管怎样也是可以稍微学习一下的 -
看懂本文需要 -
编程思维 -
懂中文:) -
您的观看与点赞是对本公众号最大力的支持和鼓励~~
目录
介绍
活动图的作用是描述一系列具体动态过程的执行逻辑,展现活动和活动之间转移的控制流,并且它采用一种着重逻辑过程的方式来叙述。
在对软件密集系统建模的时候,有时需要详细地模拟系统在运作时的业务流程。面对这种需要,我们可以分析对象间发生的活动和触发条件,选用活动图对这些动态方面进行建模。
活动图的主要组成元素包括动作、活动、动作流、分支与合并、分叉与汇合、泳道和对象流等。

活动图组成元素:动作和活动节点、开始和终止、控制流、判断节点、合并节点、泳道。

动作和活动节点
动作代表一个原子操作,操作可能是任何合法的行为。动作可以是并且不限于:创建或删除对象、发送消息、调用接口,甚至数学运算以及返回表达式的求值结果。
活动节点是一系列动作,主要用于实现动作序列的简化和动作图的嵌套。活动节点在图例上的表达方式和动作相同。、

开始和终止
活动图中的开始和终止是两个标记符号,分别标记了业务流程的起始位置和结束位置。
活动图中必须有且仅有一个开始标记,一般至少有一个结束标记。(存在一些特殊的无穷过程不存在终止标记。)

控制流
控制流是活动图中用于标示控制路径的一种符号。它负责当一个动作或活动节点执行完毕后,将执行主体从当前已完毕的节点转移到过程的下一个动作或动作节点。
控制流从活动图的开始标记开始运行,经过顺序、分支等结构引导着各个动作的连续执行。

判断节点
判断节点是活动图中进行逻辑判断、并创造分支的一种方法。
判断节点具有一个进入控制流和至少两个导出控制流。
判断节点具有多个导出流,对于每条导出流而言,应当在表示该控制流的箭头上附加控制条件。

判断的三种处理方式

-
在不需要写下判断的内容,直接通过监护来表示这个判断 -
在判断菱形旁边写下判断的句子。 -
在判断菱形前增加一个活动,表明判断的动作,而判断菱形不需要写下判断的句子。
合并节点
合并节点将多个控制流进行合并,并统一导出到同一个离开控制流。
合并节点仅有逻辑意义而没有时间和数据上的意义:几个动作都指向同一个合并节点也并不意味着这些动作要在进入之后互相等待或进行同步数据之类的操作。

泳道
泳道是将活动中的具体活动按照负责进行该活动的对象进行分区,一条泳道中的所有活动由同一个对象来执行。
除了以上的对线性流程进行分区以外,使用泳道表示法可以更清晰地表示并发。

工时审批流程
员工填写工时,项目工时报项目经理审批后再报部门经理审批、非项目工时直接报部门经理审批。

分叉节点 & 结合节点
分叉节点是从线性流程进入并发过程的过渡节点,它拥有一个进入控制流和多个离开控制流。分叉节点的所有离开流程是并发关系,即分叉节点使执行过程进入多个动作并发的状态。
结合节点是将多个并发控制流收束回同一流程的节点标记,功能上与合并节点类似。结合节点的各个进入控制流间具有并发关系,它们在系统中同时运行。

例子:学生选课的活动图
学生选上课后需要上课、复习、考试、查询成绩,查询成绩后可以申请复核、查询复核结果、成绩如果及格庆祝、未通过补考或重修。

注意:有“分叉”必须有“汇合”,“分叉”与“汇合”必须成对出现。
对象流

和“输入”、“输出”相连的箭头叫对象流(Object Flow)
而活动与活动之间的箭头叫控制流(Control Flow)
示例

我们说:工作产品1、2是活动A的输入,活动B输出工作产品3、4、5,其中工作产品5是活动C的输入
对象流是UML为填补活动图与面向对象思想之间的疏离而出现的。如果需要在活动图中表现对象流,则首先需要绘制出泳道,且对象应该作为泳道的负责对象出现。


连接件(Connector)

左边的符号是箭头指向A,表示活动图到这里要转到另外一张图。
右边的符号由A开始指向一个箭头,这表示从这个A符号开始继续这个活动图。
例子
例子(1)上班活动图
早上起来,心里斗争是否去上班。如果决定睡懒觉,就打电话请假,继续睡觉。如果决定上班,洗漱后出门上班。上班时要决定吃不吃早餐,吃就买早餐在途中食用,不吃就回公司再做打算。

例子(2)汽车租赁

例子(3)客户下单
用户下单后,生成送货清单时让客户选择支付方式。若支付成功后,将收款清单和送货地址交到供货商,供货商修改订单状态,如果送货完成则订单完成否则返回供货商。若支付超时、或支付失败,则结束。


活动图与状态图的比较
活动图与状态图的相同点
都是对系统的动态行为建模。
活动图与状态图的区别
①描述对象不同
状态图:描述对象状态及状态之间的转移;活动图:描述从活动到活动的控制流。
②使用场合不同
状态图:描述对象在其生命期中的行为状态变化;活动图:描述过程的流程变化。
参考文章
https://www.cnblogs.com/gd-luojialin/p/10356755.html UML之活动图
https://www.cnblogs.com/greatesthacker/p/12823876.html 活动图
end
您的观看与点赞是对本公众号最大力的支持和鼓励~~
原文始发于微信公众号(一个调皮的bug):UML-活动图
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/43516.html