UML 活动图

版权声明:Sharing Is Power,欢迎「带出处」转载分享。 https://blog.csdn.net/MrBaymax/article/details/81321111

在UML里,活动图本质上就是流程图,它描述系统的活动、判定点和分支等。它对开发人员来说是一种重要的工具。

活动是某件事情正在进行的状态,既可以是现实生活中正在进行的某一项工作,也可以是软件系统中某个类对象的一个操作。活动在状态机中表现为由一系列动作组成的非原子的执行过程。

定义

活动图是 UML 中描述系统动态行为的图之一,用于展现参与行为的类的活动或动作。

UML 中,图形上活动图里的活动用圆角矩形表示;一个活动结束自动引发下一个活动,则两个活动之间用带箭头的连线相连接,连线的箭头指向下一个活动;起点用实心圆表示,终点用半实心圆表示;分支与合并的图标和状态图中判定的图标相同,而分叉与汇合则用一条加粗的线段表示。

模型如下图所示:
这里写图片描述

组成元素

UML 的活动图中包含的图形元素有动作状态、活动状态、动作流、分支与合并、分叉与汇合、泳道和对象流等。

  1. 动作状态

    活动图包括动作状态和活动状态。对象的动作状态是活动图最小单位的构造块,表示原子动作。在UML里,动作状态是以执行指定动作,并在此动作完成后通过完成变迁转向另一个状态而设置的状态。动作状态表示状态的入口动作。入口动作是在状态被激活的时候执行的动作,在活动状态机中,动作状态所对应的动作就是此状态的入口动作。

  2. 活动状态

    对象的活动状态可以被理解成一个组合,它的控制流由其他活动状态或动作状态组成。

  3. 动作流

    当一个动作状态或活动状态结束时,该状态就会转换到下一个状态,这就是无触发转移或称为自动转移。无触发转移实际上是没有任何特定的事件触发的转移,即当状态结束工作时就自动的发生转移。

  4. 分支与合并

    在软件系统的流程图中,分支十分常见,它描述了软件对象在不同的判断结果下所执行的不同动作。在 UML 中,活动图也提供了描述这种程序结构的建模元素,这被称为分支。

    在活动图中分支与合并用空心小菱形表示。分支包括一个入转换和两个带条件的出转换,出转换的条件应当是互斥的,这样可以保证只有一条出转换能够被触发。合并包括两个带条件的入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。

    如图所示:
    这里写图片描述

  5. 分叉与汇合

    在建模过程中,可能会遇到对象在运行时存在两个或多个并发运行的控制流。在 UML 中,可以使用分叉把路径分成两个或多个并发流,然后使用结合,同步这些并发流。
    汇合代表两个或多个并发控制流同步发生。当所有的控制流都到达汇合点后,控制才继续向下进行。一个汇合可以有两个或多个转换和一个输入输出转换。
    图形上,分叉和汇合都使用同步条表示。同步条是一条粗的水平线。
    如图所示:
    这里写图片描述

  6. 泳道

    泳道将活动图的活动状态分组,每一组表示负责那些活动的业务组织。在活动图里泳道区分了活动的不同职责,在泳道活动图中,每一个活动都只能明确的属于一个泳道。从语义上,泳道可以被理解为一个模型包。
    泳道可以用于建模某些复杂的活动图。这时,每一个泳道可以对应于一个协同,其中活动可以由一个或多个相互连接的类的对象实现。
    在 UML 中,泳道是活动图中的一些垂直展现,把它的邻居隔开,泳道之间可以有转换。活动图中的每个泳道必须有唯一的名字以区别于其他泳道。

  7. 对象流

    用活动图描述某个对象时,可以把所涉及的对象放置在活动图上,并用一个依赖将这些对象连接到对它们进行创建、撤销和修改的活动转换上。这种依赖关系和对象的应用被称为对象流。
    对象流是动作和对象间的关联。对象流可用于对下列关系建模:动作状态对对象的使用以及动作状态对对象的影响。

建模步骤

(1)识别要对其工作流进行描述的类;
(2)对动态状态建模;
(3)对动作流建模;
(4)对对象流建模;
(5)对建模结果进行精化和细化。

与流程图区别

名称 着重点 是否表示并发活动 面向
流程图 着重描述处理过程,主要控制结构是顺序、分支、循环 不可以表示并发活动的情形 面向过程
活动图 描述对象活动的顺序关系遵循的规则,着重表现系统行为 可以表示并发活动的情形 面向对象

猜你喜欢

转载自blog.csdn.net/MrBaymax/article/details/81321111
今日推荐