8.3.7 活动图

更新于 2026年10月10日 版权声明
8.3.7 活动图

描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他构件的功能如何共同满足前面使用用例图建模的商务需求。

(1)活动图概述。活动图(activity diagram)和交互图是UML中对系统动态建模的两种主要形式。

交互图(顺序图和协作图)强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流。

活动图用来描述事物或对象的活动变化流程,是一种表述业务过程、工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。

活动图描述了从活动到活动的流。从本质上说,是一个流程图,它显示出一个过程的各个步骤。是UML中对系统动态方面建模的图之一。

(2)活动图的组成。如图8.51所示:活动图由活动、活动流、分支与合并、分叉与汇合、泳道和对象流六要素组成。

图示

图8.51 活动图

1)活动。活动(Action):是活动图主要结点,用两边为弧的条形框表示,中间为活动名。活动分为简单活动和复合活动。简单活动为不能再分解的活动,如图8.52所示;复合活动是可以再分解的复杂活动,如图8.53所示。

图示

图8.52 简单活动

图示

图8.53 复杂活动

2)活动流。活动流(Action Flow)用来描述活动之间的有向关系,反映一个活动向另外一个活动之间的转移。用带箭头的实线表示,如图8.54所示。

与状态图不同,活动图的转换一般不需要特定事件的触发,自动转换。

3)分支与合并。分支活动流要根据不同的条件决定转换的去向。分支包括一个入转换和多个出转换。出转换之间是互斥的;合并包括多个入转换和一个出转换,如图8.55所示。

图示

图8.54 活动流

图示

图8.55 分支与合并

4)分叉与汇合。分叉与汇合用来对并发的控制流建模。分叉用于将活动流分为两个或多个并发运行的分支,如图8.56所示。

图示

图8.56 分叉与汇合

如图8.57所示,处理订货活动分叉成结帐活动和运货活动,之后又汇合成通知客户活动。

图示

图8.57 分叉与汇合实例

5)泳道。泳道(swim lane)是活动图中的区域划分,每一个泳道代表一个责任区域,指明活动是由谁负责的或发起的。一个泳道中包括一组相关活动。

如图8.58所示,有三个泳道,分别由销售、客户服务和财务三个角色发起。

图示

图8.58 泳道

6)对象流。对象流反映活动与对象之间的依赖关系,表示对象对活动的作用或活动对对象的影响,用依赖关系表示,如图8.59所示。

图示

图8.59 对象流

①如果箭头从活动指向对象,表示活动对对象的创建、修改或撤销等的影响;(https://www.daowen.com)

②如果箭头从对象指向活动,表示该活动将使用所指向的对象。

(3)建立活动图。下面这些步骤描述了绘制活动图的基本任务,这些任务都以迭代的方式执行。

1)确定活动图的范围;

2)增加起点和终点;

3)添加活动;

4)添加活动间的转变;

5)添加决策点;

6)找出可并行活动之处。

例8.8 学生请假流程描述如下。

1)学生请假须先经班主任同意。

2)班主任在准假时,如学生请假时间超越审批权限,还要请系办审批,经系办审批后,系办将假条存根留下,事后转班主任存查。

3)学生请假获准后,应立即报告班长,以便班长向任课教师报告。

通过对过程进行简化,最终活动图如图8.60所示。

图示

图8.60 学生请假活动图

例8.9 活动图具有广泛地应用,活动图对表示并发行为很有用。在软件建模中,活动图可以用来描述业务流程,如图8.61描述了订货处理业务流程。

图示

图8.61 订货处理活动图

1)描述工程组织过程。各种工程组织过程,管理过程均可以用活动来描述。如图8.62所示,描述了建筑工程流程。

图示

图8.62 工程活动图

2)描述算法流程。如图8.63所示描述了算法流程。

图示

图8.63 算法流程图

3)描述软件开发过程。如图8.64和8.65所示。

图示

图8.64 非迭代软件开发过程

图示

图8.65 迭代软件开发过程

(4)活动图和状态图的比较。活动图描述动作及动作之间的关系。活动图是状态机图的一个变种,它的目的与状态机图有些不同,活动图的主要目的是描述动作及动作的结果——对象状态改变。不需指明任何事件,只要动作被执行,活动图中的状态就自动开始转换。如果状态转换的触发事件是内部动作的完成,可以用活动图描述;当状态转换的触发事件是外部事件时,常用状态机图来表示。

在活动图中,用例通常是和对象的行为中的各个活动之间具有事件顺序。活动图可表示这种顺序,展示出对象执行某种行为时或者在业务过程中所要经历的各个活动和判定点。每个活动用一个圆角矩形表示,判定点用菱形框表示。

描述对象不同:状态图描述对象状态及状态之间的转移,以状态为中心;活动图描述从活动到活动的控制流,以活动为中心。

使用场合不同:状态图描述对象在其生命期中的行为状态变化;活动图描述过程的流程变化。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)