UML活动图、状态图详解
都是对系统的动态行为建模描述对象不同:状态图:描述对象状态及状态之间的转移活动图:描述从活动到活动的控制流使用场合不同:状态图:描述对象在其生命期中的行为状态变化活动图:描述过程的流程变化。
1.活动图与状态图的异同:
共同点
都是对系统的动态行为建模
不同点
描述对象不同:
状态图:描述对象状态及状态之间的转移
活动图:描述从活动到活动的控制流
使用场合不同:
状态图:描述对象在其生命期中的行为状态变化
活动图:描述过程的流程变化
2.活动图概念
UML中,活动图用来展示活动的顺序。 显示了从起始点到终点的工作流,描述了活动图中存在于事件进程的判断路径
3.活动图要素
(1)开始、结束、动作节点
开始、结束是通过圆形的图标来表示,其中开始是实心圆,结束是一个空心圆中包含了一个小一点的实心圆,动作则是通过一个圆角方框来表示,他们之间的执行流程通过实现箭头来表示,箭头的方向就是流程运行的方向。
活动图表达的是业务流程,所有的业务流程都是有始有终的,如下图:
动作(action)节点表示的是需要执行的任务,它是当前活动流程中的一个原子性步骤,通过动词来进行描述,下面是一个极简版的商品购买流程:
(2)决策、合并节点
条件分支在代码中体现为if/else
这样的代码块,而在活动图当中是通过决策节点来描述的。决策节点可以通过一个空心菱形来表示,在指向子流程的箭线上可以写上条件,意思是满足xxx条件后,会进入这个分支,如下图所示:
空心菱形除了可以表示决策节点外,还可以表示合并节点。所谓的合并节点就是不同的条件中分支子流程执行后,最终都会在某个节点上进行合并,执行同一个后续流程。对于上图中的后续动作,有时候会看到如下图的表示方式:
(3)fork、join 节点
fork、join节点与上面的决策、合并节点类似,都是将一个流程分叉成多个子流程链路,最终再合并到一起,不同的是,fork节点分叉出的子流程是并行执行的,也就是异步操作。join节点也很好理解,就是在某个位置等待所有异步执行的流程都执行完毕后,再合并成同一个流程运行。
fork、join节点都是通过一根又黑又粗又长的直线来表示的,如下图:
在购买商品的流程中,用户支付成功之后需要修改支付订单的状态为成功,同时需要生产快递单以进行配送,这两个动作可以并行执行,则可以表示为:
4.泳道
在上面的商城下单支付业务活动图中,已经可以看到大致业务流程,相信大家已经注意到了,图中不同的动作节点应该属于不同的角色来触发的,但是现在所有的节点都试混杂在一起的,不容易理解,为了避免这样的情况,我们可以将同一种类型的动作按照角色、流程阶段等维度进行分组。
在活动图中提供分组功能的图例就是接下来要说的泳道,由多个并列的长矩形框组成,由酷似泳池中的泳道而得名,如下图:
5.状态图概述
UML状态图是一种描述对象在其生命周期内的状态以及状态之间的转换关系的图形化表示方法。它由状态、转换和事件组成,用于展现对象在不同状态下的行为和状态之间的转换规则
6.状态图的组成
1. 初始状态
用一个黑色的圆圈代表一个系统或一个类的初始状态
2. 过程状态
用一个圆角矩形来代表一个状态
3. 过渡事件
用实线箭头来表示控制从一种状态到另一种状态的转换或变化。箭头标有导致状态变化的事件
4. 自我过渡
用一个指向状态本身的实线箭头来表示自我转换
5. 最终状态
使用圆圈符号中的实心圆圈来表示状态图中的最终状态。
更多推荐
所有评论(0)