参考 : http://jpkc.cec.edu.cn/jpkc/2009/xtfxsj/jszt8.html
内容路线
•活动图概述
活动图概述
•活动图和交互图是UML中对系统动态 方面建模的两种主要形式
•交互图强调的是对象到对象 的控制流,而活动图则强调的是从活动到活动 的控制流
•活动图是一种表述过程基理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模
•UML 2.0而言,去除了“活动图是状态图的一种特例”这一规定
活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流,阐明了业务用例实现的工作流程。业务用例工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作。业务用例由一系列活动组成,它们共同为业务主角生成某些工件。工作流程通常包括一个基本工作流程和一个或多个备选工作流程,工作流程的结构使用活动图来进行说明。工作流程活动图用于研究实现业务目标时所要执行的各项任务或活动的顺序安排。
活动图的组成元素(Activity Diagram Element):
1、活动状态(Activity)用于表达状态机中的非原子的运行,活动状态可以分解成其他子活动或者动作状态。
2、动作状态(Actions)是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。
UML中活动状态和动作状态的图标相同,用平滑的圆角矩形表示。
3、动作状态约束(Action Constraints)用来约束动作状态,展示了动作状态的前置条件和后置条件。
4、动作流(Control Flow)动作之间的转换称之为动作流,活动图的转换用带箭头的直线表示,箭头的方向指向转入的方向。
5、开始节点(Initial Node)表示成实心黑色圆点。
6、终止节点(Final Node)分为活动终止节点(activity final nodes)和流程终止节点(flow final nodes)。活动终止节点表示整个活动的结束,而流程终止节点表示是子流程的结束。
7、对象节点(Object node)用矩形表示。
8、数据存储对象(DataStore)使用关键字«datastore»标明。
9、对象流(Object Flows)用带有箭头的虚线表示。
10、分支与合并(Decision and Merge Nodes)分支与合并用菱形表示。
11、分叉与汇合(Fork and Join Nodes)分为水平风向和垂直方向。对象在运行时可能会存在两个或多个并发运行的控制流,为了对并发的控制流建模,UML中引入了分叉与汇合的概念。分叉用于将动作流分为两个或多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。
12、异常处理(Exception Handler)当受保护的活动发生异常时,触发异常处理节点。
13、活动中断区域(Interruptible Activity Region)围绕一些可被中断的动作状态图,其实就是例外情况的表示。
14、泳道(Partition)将活动图中的活动划分为若干组,并把每一组指定给负责这组活动的业务组织,即对象。在活动图中,泳道区分了负责活动的对象,它明确地表示了哪些活动是由哪些对象进行的。在包含泳道的活动图中,每个活动只能明确地属于一个泳道。泳道是用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道的上方可以给出泳道的名字或对象的名字,该对象负责泳道内的全部活动。泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线。
• 如何阅读活动图
阅读简单活动图
活动图的主要元素
•初始节点和活动终点:用一个实心圆 表示初始节点,用一个圆圈内加一个实心圆 来表示活动终点
•活动节点:是活动图中最主要的元素之一,它用来表示一个活动
•转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线 来表示
活动图的主要元素
•分支与监护条件:分支是用菱形表示的 ,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件 ,用来表示满足什么条件的时候执行该转换。
•分岔与汇合:
修改后的简单活动图
带泳道的活动图
带对象流的活动图
复杂活动图
•辅助活动图:
•汇合描述:当汇合的所有入流均到点汇合点时,就将执行汇合点指向的活动节点。但是有些时候,你希望对其做一些约束,这时就可以借助汇合描述 来完成。汇合描述实际上是一个约束,其格式就是“{约束条件 }”。
•发送信号与接收信号:
•如何绘制活动图
绘制活动图
•“活动图” 比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图
•绘制时首先决定是否采用泳道 :主要根据活动图中是否要体现出活动的不同实施者
•然后尽量使用 分支、分岔和汇合等基本的建模元素来描述活动控制流程
•如果需要,加入对象流以及对象的状态变化,利用一些高级的建模元素(如辅助活动图、汇合描述、发送信号与接收信号、引脚、扩展区)来表示更多的信息
•活动图的建模关键是表示出控制流 ,其它的建模元素都是围绕这一宗旨所进行的补充
工作流程,控制流程,业务流程中使用。
• 活动图应用说明
活动图应用说明
•对工作流建模:用于业务建模的时候,每一条泳道表示一个职责单位,该图能够有效地体现出所有职责单位之间的工作职责 ,业务范围及之间的交互关系 、信息流程
建模时应遵循以下策略:
•为工作流建立一个焦点 ,除非你所涉及的系统很小,否则不可能在一张图中显示出系统中所有的控制流
•选择对全部工作流中的一部分有高层职责的业务对象 ,并为每个重要的业务对象创建一条泳道
•识别工作流初始节点的前置条件 和活动终点的后置条件 ,这可有效地实现对工作流的边界进行建模。
•从该工作流的初始节点开始,说明随时间发生的动作和活动,并在活动图中把它们表示成活动节点
•将复杂的活动或多次出现的活动集合归到一个活动节点 ,并通过辅助活动图或子活动图来表示它们
•找出连接这些活动节点的转换 ,首先从工作流的顺序开始 ,然后考虑分支 ,接着再考虑分岔和汇合
•如果工作流中涉及重要的对象 ,则也可以将它们加入到活动图中
•若工作流中有多次启用的,则可采用展开区表示
•对操作建模:每一个对象占据一个泳道,而活动则是该对象的成员方法
•建模时应遵循以下策略:
-- 收集操作所涉及的抽象概念,包括操作的参数、返回类型、所属类的属性以及某些邻近的类
-- 识别该操作的初始节点的前置条件和活动终点的后置条件。也要识别在操作执行过程中必须保持的信息
-- 从该操作的初始节点开始,说明随着时间发生的活动 ,并在活动图中将它们表示为活动节点
-- 如果需要,使用分支来说明条件语句及循环语句
-- 仅当这个操作属于一个主动类时,才在必要时用分岔和汇合来说明并行的控制流程
•本章小结
•首先介绍了“活动图”的历史变迁;逐一介绍简单活动图、带泳道的活动图、带对象流的活动图的阅读方法
•讲解了活动节点、初始节点和活动终点、转换、 分支与监护条件、分岔与汇合等基本建模元素;逐步引出了泳道、对象流等控制流逻辑
•介绍了辅助活动图、汇合描述、发送信号与接收信号、引脚和扩展区的概念
•最后,概括地说明了活动图的绘制要点,并结合对工作流建模和对操作建模之间的异同