活动图是 UML 用于对系统的动态行为建模的一种常用工具,属于 UML 行为图(行为图,状态图)的一种。
活动图与流程图类似,但不完全相同,在结构化程序设计中,流程图用来描述一个程序的流程,与活动图的主要区别如下。
-
流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系。
-
活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。
UML活动图介绍:
活动图是一个重要的 UML 图,它主要用来描述系统的动态方面。
在 UML 中,对系统动态方面建模主要有 交互图 和 活动图 两种形式,交互图更倾向于描述对象到对象的控制流,而活动图侧重描述活动的顺序,展现从一个活动到另一个活动的控制流。
活动图的组成元素:
下面来一一解释各个组成元素的作用
活动(Action)
活动图的主要结点,用两边为弧的条形框表示,中间写活动名。
活动具有原子性,它是一个不可中断的动作
活动流(Action Flow)
描述活动之间的有向关系,反映一个活动向另外一个活动的转移。用带箭头的实线表示
对象流(Object Flow)
对象流反映活动与对象之间的依赖关系,表示对象对活动的作用或活动对对象的影响,用依赖关系表示。
分支(Decision Node)与合并(Merge Node)
分支表示活动流要根据不同的条件(监护条件似乎可有可无)决定转换的去向。分支包括一个入转换和多个出转换,出转换之间是互斥的;
合并表示两个或者多个控制路径在此汇合的情况。合并包括多个入转换和一个出转换。
开始(Initial Node)与结束(Final Node)
活动图中的开始和结束是两个标记符号,分别标记了业务流程的起始位置和结束位置。
要注意的是:一个完整的活动图中必须有且仅有一个开始标记,并且一般情况下至少有一个结束标记。
在本文章中为了方便描述,很多地方没有加开始和结束结点
分叉与汇合
分叉与汇合用来对并发的控制流建模。
分叉用于将活动流分为两个或多个并发运行的分支。
汇合用来表示并行分支在此得到同步。
注意:有“分叉”必须有“汇合”,“分叉”与“汇合”必须成对出现。
泳道(Swimlane)
泳道是活动图中的区域划分。每一个泳道代表一个责任区域,指明活动是由谁负责的或发起的,不同泳道之间由分割线区分。
要注意的是:只有活动流和对象流允许穿越分隔线。
综合案例:
题目:绘制产品入库的活动图
由车间人员填写入库单,仓库管理审批入库单,如果审批不通过,退回入库单车间人员需要修改原有入库单信息重新申请入库,如果审批通过,由仓库管理安排车间人员进行产品入库。
结语:
UML 真是一个复杂的工具,学起来也是真的有意思,不过相关权威的文献资料不少都是从英文翻译过来的,不同的书说法在细微处也有所不同,网上对 UML 的介绍也是种类繁多。。。本蒟蒻在对 UML 活动图的学习过程中,总结了这篇学习笔记,如果本文还有什么不恰当的地方,欢迎大佬们指正。