电子商务系统分析与设计
上QQ阅读APP看书,第一时间看更新

3.6 活动图

活动图(Activity Diagram)描述了实现用例所要执行的各项活动的顺序安排,展现从一个活动到另一个活动的控制流程,在本质上是一种流程图。

978-7-111-50752-9-Chapter03-28.jpg

图3-25 活动图基本图标

活动图是状态图的一种特殊形式,其多数或所有状态都表现为活动状态,不同的是,状态图中状态的变迁需要事件的触发,而活动图中一个活动结束后自动进入下一个活动。在UML中,构成活动图的主要元素有活动、转移、判断、同步条、泳道和对象流,如图3-25所示。

3.6.1 活动

活动是构成活动图的核心元素,表示在用例工作流程中执行的某个动作或步骤。活动用圆角矩形框表示,框中标注具体活动名,与状态图一样,活动也可分为初态、终态和中间态。

3.6.2 转移

转移表示从一个活动到另一个活动的跳转行为,与一般转移不同的是,活动转移不需要明显事件的触发,而是通过活动的完成来触发,因此也可称为完成转移。活动转移用实箭线表示,上方通常无标注,表示顺序执行,但如果是根据不同条件进行相应转移,则需要标注转移条件。

3.6.3 判断

当某活动完成后,需要根据条件的不同,转移到相应的不同活动时,可通过在活动图中加入判断图标来表示。判断用菱形框表示,框内写明具体的判断内容,如图3-26a所示,用户登录时输入用户名和密码,系统核对输入是否正确,如果正确则转到用户主界面,否则进行错误提示。

3.6.4 同步条

同步条用于显示平行分支流,表示用例工作流中的并行过程。同步条用一条粗的水平线或垂直线表示,如图3-26b所示,顾客的付款活动和售货员的取货活动就是用同步条表示的并行过程。

978-7-111-50752-9-Chapter03-29.jpg

图3-26 判断及同步条的使用

a)判断 b)同步条

3.6.5 泳道

活动图中的活动只描述进行了什么动作,但没有说明该动作由谁来完成,而泳道把活动划分为了若干组,每组称为一个泳道,泳道上方标明活动负责对象,通过这种方式,泳道清晰展现了各项活动的执行对象。泳道用矩形框表示,属于该泳道的活动置于其矩形框内,每个活动只能属于一个泳道。

泳道之间的排序不会影响工作流程,不同泳道中的活动可以顺序进行,也可以并发进行,而转移则可能跨越数条泳道,图3-27是用泳道表示的“用户登录”活动图。

978-7-111-50752-9-Chapter03-30.jpg

图3-27 用泳道表示的“用户登录”活动图

3.6.6 对象流

在活动的执行过程中可能会创建、更新或使用一些相关对象,如“下新订单”活动会创建新的“订单”对象,“配送商品”活动会更新“订单”对象,而对象流则描述了活动与对象之间的这种依赖关系。

活动图中的对象流用依赖关系的虚箭线表示,对象可以是某个活动的输出,也可以是众多活动的输入。如果虚箭线从活动指向对象,表示该活动创建或更新了对象流所指对象,该对象是活动的输出;如果虚箭线从对象指向活动,表示该活动使用了对象流所指向的对象,该对象是活动的输入。

图3-28是“用户注册”的活动图,用户“填写快速注册信息”活动完成后会创建一个新的用户对象,系统“转到用户信息界面”活动要读取新用户对象的信息,最后用户“添加其他信息”活动完成后则会对新用户对象信息进行更新。

978-7-111-50752-9-Chapter03-31.jpg

图3-28 使用对象流的“用户注册”活动图

3.6.7 建立活动图的步骤

在系统分析与设计阶段,建立活动图的步骤如下。

1)找出负责工作流程的业务对象,并为每一个对象建立一条泳道。

2)确定工作流程的初始状态和终结状态。

3)从初始状态开始,找出随时间发生的活动,把它们表示成活动状态。

4)建立连接活动的转移。

5)列出与各项活动有关的对象,建立活动与对象之间的对象流。

案例3-5

如图3-29所示是“取款”用例的活动图,展示了客户在ATM系统上进行取款操作的基本流程。客户提出取款请求,系统提示客户输入取款金额,客户按要求输入取款金额。系统判断输入金额数字的有效性。如果数字无效或超过单次取款上限,则提示“输入有误”,要求客户重新输入;如果数字有效,则进一步查询账户是否有充足的余额,该活动要读取“账户”对象的信息。如果余额不足,则提示“账户余额不足”并终止操作;如果余额充足,则更新“账户”对象的余额信息,同时创建一个新的取款“交易记录”对象,即添加一笔交易记录,然后计算并提示客户提取现金,并询问其是否要打印凭条,系统根据客户选择决定是否打印凭条,之后完成此次取款操作。

978-7-111-50752-9-Chapter03-32.jpg

图3-29 “取款”用例活动图