第10章 活动图

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10.2 活动图的组成元素
10.2.4 分叉与结合


并发指的是在同一时间间隔内,有两个或者两个以上的活动 执行。对于一些复杂的大型系统而言,对象在运行时往往不 止存在一个控制流,而是存在两个或者多个并发运行的控制 流。为了对并发的控制流建模,在UML中引入了分叉和结合 的概念。 分叉用来表示将一个控制流分成两个或者多个并发运行的分 支,结合用来表示并行分支在此得到同步。
10.4 活动图建模实例
10.4.3 完成活动图的创建


当弄清楚系统要处理什么样的问题,并建立了工作流路 径后,我们就可以开始正式的创建活动图。 下图所示的是完整的“借阅者借书”用例活动图。
10.3 绘制活动图
10.3.2 绘制初始和终止状态
► 下面在“借阅者借书活动图”中绘制初始状
态和终止状态,步骤如下: 1.单击“借阅者借书活动图”工具栏中初始状 态图标“ ”和终止状态图标“ ”。 2.在编辑图形区域要绘制的地方单击鼠标左键 即可,创建的初始和终止状态如下图所示。
10.3 绘制活动图

10.3 绘制活动图
10.3.7 绘制分支
6. 单击“借阅者借书活动图”工具栏中的“ ”图标,在图形编辑区域单 击表示分支的菱形图形,按住左键不放,拖动鼠标箭头到“将图书带到 借阅处”动作状态。 7. 双击连接菱形和终止状态之间的转换,弹出 “State Transtion Specification” 对话框。 8. 单击对话框中的“General” 选项卡,进入设置转换常规属性界面。在 “Event”(事件)文本框用于输入事件的名称“找到图书”。 9. 按照7~8步骤,在连接菱形和终止状态之间转换上设置事件名称“没有 找到”。最终绘制的分支如下图所示。
10.4 活动图建模实例
10.4.1 确定需求分析
► 对于“借阅者借书”的用例来说,参与者是借
阅者和图书管理员,借阅者通过图书管理员来 进行借书活动,涉及的用例是借书。 ► 下图所示的是借阅者借书用例图。
10.4 活动图建模实例
10.4.2 确定用例路径
► ►
在开始创建用例的活动图时,往往先建立一条明显的路 径执行工作流,然后从该路径进行扩展。 如下图所示为“借阅者借书”的工作流示意图。
10.2 活动图的组成元素
10.2.1 动作状态
► ► ►

动作状态是原子性的动作或操作的执行状态,它不能被外部 事件的转换中断。 动作状态没有子结构、内部转换或内部活动,它不能有由事 件触发的转换。 动作状态可以有转入,转入可以是对象流或者动作流。动作 状态通常有一个输出的完成转换,如果有监护条件也可以有 多个输出的完成转换。 在UML中,动作状态使用平滑的圆角矩形表示,动作状态表 示的动作写在矩形内部。
wk.baidu.com
10.3 绘制活动图
10.3.6 绘制泳道
下面我们在“借阅者借书活动图”中创建“借阅者”、“图 书管理员”这样两个泳道,具体步骤如下所示: 1. 单击“借阅者借书活动图”工具栏中的“ ”图标。 2. 在图形编辑区域单击,就可以创建名为“NewSwimlane”的 泳道。 3. 右键单击“NewSwimlane”泳道,在弹出的快捷菜单中选择 “Open Specification” 命令,出现 “Swimlane Specification for NewSwimlane” 对话框。在“Name”文本框输入泳道的名 称“借阅者”。
10.2 活动图的组成元素
10.2.5 分支与合并


分支在活动图中很常见,它是转换的一部分,它将转换路径分成多个 部分,每一部分都有单独的监护条件和不同的结果。当动作流遇到分 支时,会根据监护条件(布尔值)的真假来判定动作的流向。分支的 每个路径的监护条件应该是互斥的,这样可以保证只有一条路径的转 换被激发。在活动图中,离开一个活动状态的分支通常是完成转换, 它们是在状态内活动完成时隐含触发的。 合并指的是两个或者多个控制路径在此汇合的情况。合并和分支常常 成对的使用,合并表示从对应分支开始的条件行为的结束。
10.2 活动图的组成元素
10.2.3 组合活动



组合活动是一种内嵌活动图的状态。一个组合活动在表面上看是 一个状态,但其本质却是一组子活动的概括。一个组合活动可以 分解为多个活动或者动作的组合。每个组合活动都有自己的名字 和相应的子活动图。一旦进入组合活动,嵌套在其中的子活动图 就开始执行,直到到达子活动图的最后一个状态,组合活动结束。 如果一些活动状态比较复杂,就会用到组合活动。 使用组合活动可以在一幅图中展示所有的工作流程细节,但是如 果所展示的工作流程较为复杂,这就会使活动图难以理解。所以, 当流程复杂时也可将子图单独放在一个图中,然后让活动状态引 用它。如下图所示是一个组合活动的示例。
10.2 活动图的组成元素
10.2.7 对象流


活动图中交互的简单元素是活动和对象,控制流就是对活动 和对象之间关系的描述。详细的说控制流表示动作与其参与 者和后继动作之间以及动作和其输入和输出对象之间的关系。 而对象流就是一种特殊的控制流。 对象流是将对象流状态作为输入或输出的控制流。在活动图 中,对象流描述了动作状态或者活动状态与对象之间的关系, 表示了动作使用对象以及动作对对象的影响。下图所示的是 对象流中对象的示例。
10.3 绘制活动图
10.3.1 创建活动图

下面我们以在“Logic View” 中创建一个“借阅者借书活动 图”为例,演示活动图的创建步骤: 1. 右键单击浏览器中的“Logic View” 图标,在弹出的快捷菜 单中选择“New”|“Activity Diagram” 命令。 2. 在“Logic View” 下会创建“State/Activity Model”(状态/动 作模型)目录,目录下是新建的默认名称为“New Diagram” 的活动图。 3. 右键单击“New Diagram”活动图,在弹出的快捷菜单中选 择“Rename” 来修改新创建的活动图名字为“借阅者借书活 动图”。 4. 双击浏览器中的创建的“借阅者借书活动图”,会出现活动 图绘制区域。
第10章 活动图
学习内容
► 活动图的概念 ► 活动图的组成元素 ► 绘制活动图
► 活动图建模实例
10.1 活动图的概念
► 活动图是一种用于描述系统行为的模型视图,它可
用来描述动作和动作导致对象状态改变的结果,而 不用考虑引发状态改变的事件。 ► 活动图是模型中的完整单元,表示一个程序或工作 流,常用于计算流程和工作流程建模。 ► 活动图着重描述了用例实例或对象的活动,以及操 作实现中所完成的工作。 ► 活动图通常出现在设计的前期,即在所有实现决定 前出现,特别是在对象被指定执行所有活动前。

10.3 绘制活动图
10.3.5 绘制转换
► 下面我们在“借阅者借书活动图”中创建起始状态
和“查找所需图书”动作状态的转换。 1.单击“借阅者借书活动图”工具栏中的“ ”图标。 2.单击图形编辑区中的起始状态,按住左键不放,拖 动鼠标箭头到“查找所需图书”动作状态上,松开 鼠标左键即可。创建的转换如下图所示。
10.2 活动图的组成元素
10.2.6 泳道

► ►
为了对活动的职责进行组织而在活动图中将活动状态分 为不同的组,称为“泳道”。每个泳道代表特定含义的 状态职责。在活动图中,每个活动只能明确的属于一个 泳道,泳道明确的表示了哪些活动是由哪些对象进行的。 每个泳道都有一个与其他泳道不同的名称。 每个泳道可能由一个或者多个类实施,类所执行的动作 或拥有的状态按照发生的事件顺序自上而下的排列在泳 道内。

10.3 绘制活动图
10.3.6 绘制泳道
4.单击“OK”按钮,创建好一个名为“借阅者” 的泳道。 5.根据以上的步骤,再绘制一个名为“图书管 理员”的泳道。绘制后的两个泳道如下图所 示。
10.3 绘制活动图
10.3.7 绘制分支
绘制“借阅者借书活动图”分支的步骤如下,两个活动状态 和终止状态的绘制请参考前面的内容。 1. 单击“借阅者借书活动图”工具栏中的“ ”图标。 2. 然后在绘制区域要创建分支的地方单击鼠标左键,出现表示 分支的菱形图形。 3. 单击“借阅者借书活动图”工具栏中的“ ”图标。 4. 在图形编辑区域单击“查找所需图书”动作状态,按住左键 不放,拖动鼠标箭头到表示分支的菱形图形。 5. 单击“借阅者借书活动图”工具栏中的“ ”图标,在图形 编辑区域单击表示分支的菱形图形,按住左键不放,拖动鼠 标箭头到终止状态。
10.3.3 创建动作状态
下面以在“借阅者借书活动图”中创建一个名为“查找所需 图书”的动作状态为例,说明动作状态的绘制,步骤如下所 示: 1. 点击“借阅者借书活动图”工具栏中“ ”图标。 2. 在编辑区域要绘制动作状态的地方单击鼠标左键,新创建一 个默认名称为“NewActivity”的动作状态。 3. 双击“NewActivity”动作状态,弹出的“Activity Specification for NewActivity”对话框,该对话框用于对活动 图各种元素属性的设置。 4. 在对话框中,选择 “General”(常规)选项卡,在 ““Name”(名称)文本框中输入“查找所需图书”。 5. 单击“OK”按钮即可,绘制好的动作状态如下图所示。
10.2 活动图的组成元素
10.2.2 活动状态
► ► ► ►
活动状态是非原子性的,用来表示一个具有子结构的纯粹计算执行。活 动状态可以分解成其他子活动或动作状态,可以被使转换离开状态的事 件从外部中断。 活动状态是一个程序的执行过程的状态而不是一个普通对象的状态。离 开一个活动状态的转换通常不包括事件触发器。 动作状态是一种特殊的活动状态。可以把动作状态理解为一种原子的活 动状态,即它只有一个入口动作,并且它活动时不会被转换所中断。 活动状态和动作状态的表示图标相同,都是平滑的圆角矩形。两者不同 的是活动状态可以在图标中给出入口动作和出口动作等信息。

10.3 绘制活动图
10.3.4 创建活动状态
下面是在“借阅者借书活动图”绘制了一个“查找所需图书” 动作状态后,如何添加活动的操作步骤。 1. 双击“查找所需图书”活动状态,弹出弹出的“Activity Specification for 查找所需图书”对话框。 2. 选择“Action” 选项卡进入为活动状态添加动作的界面。 3. 在列表框空白处单击鼠标右键,在弹出的快捷菜单中选择 “Insert”(插入)命令。 4. 双击列表中出现的默认动作“Entry/”,进入 “Detail” 选项 卡界面。 5. 在“When”(何时)下拉列表框中选择了“On Entry”(进入 动作),在“Name”文本框输入动作的名称“进入动作”。 6. 单击“OK”按钮,完成设置的活动状态如下图所示。
相关文档
最新文档