UML-1-活动图
第9讲UML概要设计建模活动图状态图

2.分岔和联结 分岔用来表示并行活动的分支处理,联结用来把并行活动的汇
集到同步处理。 分岔和联结在UML中的表示方法相似,都用粗黑线表示。分岔
具有一个转移人口,两个或者多个转移出口。分岔描述了单向处 理控制流分成了多个控制流。联结与此相反,联结具有两个或者 多个转移人口,只有一个出口。联结描述了不同的处理控制流合 并到一起形成一个单向处理,如下图所示。
4. 综合运用 现在已经学习了活动图的4种主要标记符,下面综合运用这
些标记来生成一个活动图,如下图所示。
5、 决策 决策是基于判断条件选择控制流继续的方向。决策的UML符号
是一个小菱形标记符,然后从这里再按条件控制分支转移到满足条 件的活动,如下图所示。
例 描述教师记录学生成绩用例的活动图
6. 泳道 泳道可以使活动图非常整洁,因为它们在很大程度上增强了
三、活动图的基本元素
活动图保留了许多传统的流程图 的特征,包含如下元素。
•活动 •操作 •状态 •转移 •对象流 •分岔 •决策 •联结
活动图示意
1. 活动 活动在活动图中,用来指示要完成某项工作的动作或表示工作 流的步骤。其UML标记符是一个带有圆角的矩形,如下图所示。
在确定活动名称时应该恰当地命名,选择准确描述所发生 动作的几个词。例如,Save File或者 Create New Document 就是比较恰当的活动名称,而Run或者Update 对读者而言是 不完整的名称。
例内部和用例之间的路径;它也可以向读者说明需要满足什么条件 用例才会有效,以及用例完成后系统保留的条件或者状态。 。 2.理解工作流程
活动图对理解业务处理过程十分有用。可以画出描述业务工作流 的活动图与领域专家进行交流,明确业务处理操作是如何进行的, 将会有怎样的变化。 3.描述复杂过程的算法
UML 用例图、关系图、活动图

例如,一个银行系统中,有
一个“验证用户”用例,用 身份认证
于验证用户的合法性,它有
两 个 特 殊 的 子 用 例 , 一 个 是 密码认证
指纹认证
“检查密码”,另一个是
“检查指纹”,它们都有父
用例“验证用户”的行为,
并且可以出现在父用例出现
的任何地方,还可以添加自
己的行为。
用例图实例
• 以前面图书信息管理系统为例,画出用例 图。先找出参与系统地的角色:
• 扩展关系——允许一个用例扩展另一个用
例的功能。例如,在图书信息管理系统中,
读者还书时,系统检查所还图书是否有预
订记录,如果有则执行“通知”用例。在
UML中扩展关系表示为箭头和《extend》形
式。
《extend》
还书
通知
管理员
读者
注意
• 使用关系和扩展关系之间的区别,A使用B 本质上是A一定使用B,同时增加自己的专 属行为;而A被用例B扩展是说明A是一个一 般用例,B是一个特殊用例,A在某些条件 下可能使用B。
(2)取消预订——本用例提供取消预订图书的功能。
(3)还书——完成还书任务,在还书是要检查所还的书是否超 期、是否有其他读者预订,有的话要通知预订者。
(4)借书——提供借阅书功能 。
• 分析这个用例图,发现“还书”用例应该 被扩展,因为在还书时检查所还图书是否 有预订记录,若有,则应该通知预订者前 来借书。
• 一个用例内部的具体处理细节是由其他图形工具描述 的,用例图只是反映系统的总体功能,以及与这些功 能的相关的角色。有些人可能在画“借书”用例时, 情不自禁地就考虑了“输入读者号和书号”,“检查 图书是否在库?”,“图书数量减1”,“添加读者借 书记录”等等,一旦考虑了这些细节,就会发现用例 图画不下去了。因此,读者注意用例图中不要考虑处 理细节。
UML建模之活动图介绍(Activity Diagram)

一、活动图的组成元素Activity Diagram Element......................................1、活动状态图(Activity)2、动作状态(Actions)3、动作状态约束(Action Constraints)4、动作流(Control Flow)5、开始节点(Initial Node)6、终止节点(Final Node)7、对象(Objects)8、数据存储对象(DataStore)9、对象流(Object Flows)10、分支与合并(Decision and Merge Nodes)11、分叉与汇合(Fork and Join Nodes)12、异常处理(Exception Handler)13、活动中断区域(Interruptible Activity Region)14、泳道(Partition)二、活动图案例分析.............................................................................三、总结活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。
活动图在本质上是一种流程图。
活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。
一、活动图的组成元素Activity Diagram Element1、活动状态图(Activity)活动状态用于表达状态机中的非原子的运行,其特点如下:(1)、活动状态可以分解成其他子活动或者动作状态。
(2)、活动状态的内部活动可以用另一个活动图来表示。
(3)、和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。
(4)、动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。
UML中活动状态和动作状态的图标相同,但是活动状态可以在图标中给出入口动作和出口动作等信息。
UML 活动图 Activity Diagram

A、Activity Diagram(活动图)活动图用于为系统行为建模,以及行为以何种方式描述。
逻辑路径过程如下,基于各种条件,并行处理,数据访问,中断和其他逻辑路径的区别,用于构建过程,系统或程序。
活动图着重描述操作(方法)中所完成的工作以及用例实例或对象的活动。
B、活动图的模型元素B.1、Activity(活动)Activity组织和指定参与部属行为,例如sub-Activitie或Action,来反映过程的控制和数据流。
在活动图中Activity用于形容建模目的,为程序类型应用开发的系统设计,业务流程建模的组织结构和工作流程。
B.2、Structured Activity(结构活动)Structured Activity是一个合成元素,子活动图。
有很多种类的Structured Activity。
B.3、Action(行动)Action元素描述了一个发生在系统中的一个基本进程或变换。
它是活动图中的基本功能单元。
你可以认为它是Activity的孩子。
它们都表示进程,但Activity可以包含多步骤或可分解的进程,其中每一个都可以在Action中体现。
Action不能进一步分解。
B.4、Partition(泳道)Partition用于组合活动,它不会影响活动图的流,但有助于组织活动图。
显示动作在那个对象中执行,或显示执行的是一项组件工作的那一部分。
B.5、Object(对象)Object是运行时类的一个特别实例。
Object常用于分析存在于业务中的多个事物,如:纸、传真和信息。
为对象在运行时建模,使用运行状态。
B.6、Central Buffer Node(中央缓冲节点)Central Buffer Node是一个对象节点用来管理有多个源和目的的流。
它充当多个从其它对象流入的流和流出的流的缓冲,但不能连接Action。
B.7、Datastore(数据存储)Datastore是一个用于定义永久存储数据的元素。
如何绘制活动图

如何绘制UML活动图Scott W. AmblerUML 活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。
要创建一个 UML 活动图,您需要反复执行下列步骤。
第一步,定义活动图的范围首先应该定义您要对什么建模。
单个用户案例力?一个用户案例的一部分?一个包含多个用户案例的商务流程?一个类的单个方法?一旦您定义了您所作图的范围,您应该在其顶部,用一个标注添加标签,指明该图的标题和唯一的标示符。
您有可能也想要包括该图的时间甚至作者名。
第二步,添加起始和结束点每个活动图有一个起始点和结束点,因此您也要马上添加它们。
在《UML 精粹》(UML Distilled) (参见参考资料),Fowler 和Scott 认为结束点是可选的。
有时候一个活动只是一个简单的结束,如果是这种情况,指明其唯一的转变是到一个结束点也是无害的。
这样,当其他人阅读您的图时,他或她知道您已经考虑了如何退出这些活动。
第三步,添加活动如果您正对一个用户案例建模,对每个角色(actor)所发出的主要步骤引入一个活动(该活动可能包括起始步骤,加上对起始步骤系统响应的任何步骤)。
如果您正对一个高层的商务流程建模,对每个主要流程引入一个活动,通常为一个用户案例或用户案例包。
最后,如果您正对一个方法建模,那么对此引入一个活动是很常见的。
第四步,添加活动间的转变我的风格总是应该退出一个活动,即使它是转变到一个结束点。
一旦一个活动有多个转变时,您必需对每个转变加以相应标示。
第五步,添加决策点有时候,您所建模的逻辑需要做出一个决策。
有可能是需要检查某些事务或比较某些事务。
要注意的是,使用决策点是可选的。
例如,在图 1 中,我可以只是简单地将“接受”和“拒绝”两个转变直接接到“在大学报名(Enroll in University)”活动。
第六步,找出可并行活动之处当两个活动间没有直接的联系,而且它们都必需在第三个活动开始前结束,那它们是可以并行运行的。
UML活动图

(2)重命名泳道:双击泳道标签,弹出如下窗口
(3)调整泳道的宽度:拖动泳道间的调整线
(4)删除泳道 方法1:右击泳道->delete
此删除操作产生的效果:
泳道被删除(非彻底删除,可恢复)
泳道内的图形也会同时被删除(非彻底删除,可恢复)
方法2:在浏览器中右击泳道->delete
此删除操作产生的效果:
2、汇合 用于将两个或多个控制流合并到一起形成一个单向控制流。
如果一个控制流在其他控制流到达之前到达了连接,它将 会等待,直到所有控制流都到达了才会向连接传递控制权。
分叉用来表示将一个控制流分成两个或者多个并发运行 的分支,结合用来表示并行分支在此得到同步。
练习:销售合同从签订到履约的过程 销售合同签订后,要进行核对。如果发现错误,则终止履 约;如果没有错误,则要核对货物清单确定是否有货,还 要核对付款单确定对方是否已经付款,只有这两项都完成, 才可以发货。如果无货或对方尚未付款,则终止履约。
描述“播放MP3”用例:
实例引入:活动图的作用
public class assistant { public int id; …… public int max(int score1, int score2, int score3) { int temp; temp = score1; if (score2 > temp) temp = score2; if (score3 > temp) temp = score3; return temp; } }
在活动图中泳道区分了负责活动的对象,它明确地表示了 哪些活动是由哪些对象进行的。 在包含泳道的活动图中每个活动只能明确地属于一个泳道
三、对象流 用活动图描述某个对象时,可以将涉及到的对象放到活 动图中,并用一个依赖将其连接到活动或状态上,对象 的这种使用方法就构成了对象流。
软件工程---UML动态分析-活动图

Make Plan
entry/ SetGoal
2020/5/4
26
动作流
与状态图不同,活动图的转换一般都不需要特 定事件的触发。
一个动作状态执行完本状态需要完成的动作后 会自发转换到另外一个状态。
2020/5/4
27
动作流
一个活动图有很多动作或者活动状态,
活动图通常开始于初始状态,然后自动转换到 活动图的第一个动作状态,一旦该状态的动作 完成后,控制就会不加延迟地转换到下一个动 作状态或者活动状态。
7
活动图与流程图的区别
⑴ 流程图着重描述处理过程,它
的主要控制结构是顺序、分支 和循环,各个处理过程之间有 严格的顺序和时间关系
找饮料 [ 发现咖啡 ]
活动图描述的是对象活动的顺序
把咖啡放入 滤器
关系所遵循的规则,它着重表 将滤器放入 现的是系统的行为,而非系统 机器
的处理过程。
往容器里加 水
开机器
活动图着重表现从一个活动到另一个活动的控制流, 是内部处理驱动的流程。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
将滤器放入 机器
[ 没有可乐 ]
开机器 冲咖啡
倒咖啡
喝饮料
2020/5/4
12
活动的图形表示
在UML中,活动表示成圆角矩形,与状态的圆角矩 形相比,活动的矩形的圆角更柔和,看上去接近椭 圆。
不能中断,一直运行到结束。 ⑶ 动作状态是瞬时的行为,它所占用的处理时
间极短,有时其至可以忽略。
2020/5/4
19
动作状态
动作状态有如下特点:
uml建模-状态图和活动图

l 使用状态图的最常见的是对反应型对象、尤其是对类、 用例或整个系统的实例的行为建模。反应型对象是指 这个对象可能处于的稳定状态、从一个状态到另一个 状态之间的转换所需的触发事件,以及每个状态改变 时发生的动作。反应型对象具有如下的特点:
活动图的符号集与状态图中使用的符号集类似。像状态图 一样,活动图也从一个连接到初始活动的实心圆开始。 活动是通过一个圆角矩形(活动的名称包含在其内)来 表示的。活动可以通过转换线段连接到其他活动,或者 连接到判断点,这些判断点连接到由判断点的条件所保 护的不同活动。结束过程的活动连接到一个终止点(就 像在状态图中一样)。活动图中的基本要素包括状态、 转移、分支、分叉和汇合、泳道、对象流等。
l ⑹把动作附加到这些转换上,并且附加到这些状态上; l ⑺考虑通过使用子状态、分支、汇合和历史状态,来简化状态图; l ⑻核实所有的状态都是在事件的某种组合下可达的; l ⑼核实不存在死角状态,即不存在那种不能转换出来的状态; l ⑽通过手工或通过使用工具跟踪状态机,核对所期望的事件序列以及它
们的响应。
::new book 借书
::availห้องสมุดไป่ตู้ble 还书
::delete
一个图书对象从它的起始点 开始,首先是“新书”状态
(new book),然后是“可 以借阅”(available)的状 ::borrowed 态,如果有读者将书借走, 则该书的状态为“已借出”
状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)控制节点
判断节点(Decision Nodes)
图 (a)表示由动作返回的布尔值来决定输 出流的去向 图 (b)表示判断节点产生布尔值的条件内 容
(a) 图8-10 判断节点
(b)
(3)控制节点
汇合节点(Merge Nodes)
与决策节点相反,汇合节点具有多个输入 边和一个输出边,它的两个输入边并不需 要并行到达汇合节点,也就是说无论哪个 边先到达汇合节点,都要进入唯一的输出 边
(3)控制节点
控制节点 (Control Nodes) 是用于表示活动中的控 制判断、同步运算、路径分叉、路径合并等特殊节 点 控制节点主要包括:
起始节点(Initial Nodes) 判断节点(Decision Nodes) 汇合节点(Merge Nodes) 分叉节点(Fork Nodes) 结合节点(Join Nodes) 终点节点(Final Nodes)
图8-13 结合节点
(3)控制节点
分叉和结合
pick show schedule show
publicize show buy script and music sell tickets hire artists build sets design lighting make costumes
rehearse
UML及建模工具
——活动图
Activity Diagram
活动图
1 2 3 4 5 活动图作用 活动图元素 活动图的表示方法 总结 Rose中绘制活动图
1. 活动图作用
说明一次商务活动中的参与者、工作流、组 织和对象是如何工作的,即业务流程建模。
描述一个用例的实例是如何执行动作以及如 何改变对象状态,即系统某一个功能的执行 过程; 描述一个操作执行过程中(如类的方法)所 完成的工作(动作),类似于程序流程图作 用;
带泳道的活动图
3.5 调用其它活动
为了增加可读性,活动图中用符号 表示当 前动作在另一个活动图中被详细描述 “计算折扣”动作内部有更详细的描述,另 外有活动图描述
计算折扣
4. 总结
创建一个 UML 活动图,需要反复执行下列 步骤:
第一步,定义活动图要对什么建模 第二步,寻找泳道(部门或角色) 第三步,添加活动/动作 第四步,添加活动/动作间的转换 第五步,添加决策点 第六步,找出可并行活动之处
5. Rose中绘制活动图
在视图区域中右键单击“Logical View”节点,选 择【New】【Activity Diagram】,默认名称为 “NewDiagram”,可输入自己的名称
课堂练习
某公司对职工借款报销规定了以下流程: 职工填写借据交由部门经理签字,然后将部门经理 签好字的借据交至财务部,财务部出纳员看到签批 手续齐全的借据后,予以付款,保存借据。如手续 不全,出纳员有权拒付。 职工将原始票据收集整理后,填制费用报销单。 填好的费用报销单需交部门经理审核,部门经理认 可后签字。 职工将签好字的报销单交至财务部,出纳员找出借 据,计算后多退少补,报销单内容有误应退回。 如果是当月借当月报销就将借据还给借款人; 如果隔月报销,冲销其他应收款,不退借款单。
图8-11 汇合节点
(3)控制节点
分叉节点(Fork Nodes)
分叉节点是一个动作在该点同时并行产生 多个并发活动边
图8-12 分叉节点
(3)控制节点
结合节点(Join Nodes)
结合节点是指多个并发活动边在该点应产 生各自的返回值,当所有返回值均正确产 生后,传递给该节点的唯一输出边
3.1 活动和动作
活动的名字 活动
LogSystem Enter ID and Password
Verify
Log In
动作的名 字
动作 图8-1 活动和动作
3.2 活动边
在活动图中,仅有动作是没有意义的,因为 活动图是需要表现动作与动作之间、动作与 数据之间、数据与动作之间的关联和方向 UML2.0称这些出现在活动中的信息之间的关 联为活动边 (Activity Edges)
dress rehearsal
perform
(3)控制节点
终点节点(Final Nodes) 有两种类型的终点节点:
用于终止活动图的一个路径而不是整个活 动的流终点节点,用圆形加X表示; 用于结束整个活动的活动终点节点,用加 圈的实心圆表示
图8-14 终点节点
3.4 活动划分或泳道
为了表明活动图中各种元素的归属,UML用 垂直线将不同归属的元素分开,将它称为活 动划分(Activity Partitions),由于这种划分 的外观很像泳道,所以也称为活动图中的泳 道(Swimming Lines)。 活动划分将一个活动图中的活动元素分组, 每一组的上方表明该组元素所属对象,这样 很容易通过划分看到活动的参与者
示例
登机过程
2. 活动图元素
活动图由以下元素组成:
节点
动作 控制(起始、终止、分支、合并、并发分叉、汇合) 对象
流(连接节点,也称边) 泳道 活动图主要利用动作和流对行为建模,同时 还有数据、状态和控制等元素。
3. 活动图的表示方式
3.1 3.2 3.3 3.4 3.5 活动和动作 活动边 活动节点 活动划分或泳道 调用其它活动
3.2 活动边
LogSystem
Enter ID and Password
Verify
Log In
活动边 图8-2 活动边
3.3 活动节点
在活动图中,流动中的信息不仅仅只有动作, 还有许多其它的流动信息,UML2.0把除了动 作外的其它活动信息称为活动节点。 活动节点主要分为三大类:
参数节点 对象节点 控制节点
3.1 活动和动作
活动(Activity)是由一个或多个动作(Action)组 成的行为 动作是活动中的一个步骤,但是,动作并不 是组成活动的最小单位,每个动作只是相对 它的活动而言,如果把一个动作作为一个活 动,那么,这个动作又可分为更多个组成这 个活动的动作 在UML活动图中,活动和动作都用同样一种 图形来表示,即圆角矩形, 圆角矩形中书写 动作或活动的名字
(3)控制节点
起始节点(Initial Nodes)
表示活动ห้องสมุดไป่ตู้开始节点
图8-9 起始节点
(3)控制节点
判断节点(Decision Nodes)
判断节点是通过布尔值的选择给出不同的 输出流的控制节点 在判断节点中,需要根据不同的条件执行 不同的动作序列,这些条件被称为警戒条 件(Guard Conditions)