UML建模---活动图

news/2024/7/4 15:11:42
活动图是UML用于对系统的动态行为建模的另一种常用工具, 描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图在本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。 下面详细一下介绍活动图:
一、基本元素:
1、动作状态(Action State)

• 动作状态是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态的状态。

动作状态使用平滑的圆角矩形表示,动作状态所表示的动作写在圆角矩形内部。如图:


2、活动状态(Activity State)

• 活动状态用于表达状态机中的一个非原子的运行。
• 活动状态的表示图标也是平滑的圆角矩形,并可以在图标中给出入口动作和出口动作等信息。
如图:
• 活动状态的特点:
活动状态可以分解成其他子活动或动作状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断。
活动状态的内部活动可以用另一个活动图来表示。
和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转换。

动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。


3、动作流(Action Flow)
所有动作状态之间的转换流称之为动作流。
• 活动图的转换用带箭头的直线表示,箭头的方向指向转入的方向。


4、分支(Branch)与合并(Merge)

• 分支一般用于表示对象类所具有的条件行为。
• 条件行为用分支和合并表达。
• 在活动图中分支与合并用空心小菱形表示。
• 一个分支有一个入转换和两个带条件的出转换,出转换的条件应当是互斥的,这样可以保证只有一条出转换能够被触发。

• 一个合并有两个带条件的入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。如图:

5、分叉(Fork)与汇合(Join)
• 分叉用于将动作流分为两个或者多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。
• 分叉可以用来描述并发线程,每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流。
• 汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。每个汇合可以有两个或多个输入转换和一个输出转换。

分叉和汇合都使用加粗的水平线段表示。如图:


6、泳道(Swimlane)
• 泳道将活动图中的活动化分为若干组,并把每一组指定给负责这组活动的业务组织即对象。
• 泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的。
• 每个活动只能明确地属于一个泳道。
• 泳道用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道上方可以给出泳道的名字或对象(对象类)的名字,该对象(对象类)负责泳道内的全部活动。
泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线

7、对象流(Object Flow)
• 对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或者动作对对象的影响。
• 对象流中的对象特点:一个对象可以由多个动作操纵;一个动作输出的对象可以作为另一个动作输入的对象。

对象流用带有箭头的虚线表示。如果箭头从动作状态出发指向对象,则表示动作对对象施加了一定的影响。如果箭头从对象指向动作状态,则表示该动作使用对象流所指向的对象。
在活动图中,同一个对象可以多次出现,它的每一次出现表明该对象正处于对象生存期的不同时间点。

泳道和对象流可在下图中观察:


竖线就是泳道,四方块是表示的对象。


二、活动图建模技术:

①识别要对其工作流描述的类或对象。
②确定工作流的初始状态和终止状态,明确工作流的边界。
③对动作状态或活动状态建模。
④对动作流建模。
⑤对对象流建模。
⑥对建立的模型进行精化和细化。

三、实例解析:

这是一个图书馆管理员的活动图:


解释:先进入图书管理系统,有两个活动分支:一、get book。也就是学生还书,判断是否过期,如果过期就收费,之后再更新借书者的信息;不过期,直接更新借书者的信息,活动结束。二、Lend book。也就是借给学生书,判断是有限制,没有限制的话就借出书更新信息;有限制就不借出。活动结束。



http://www.niftyadmin.cn/n/4747438.html

相关文章

minigui 处理细节

minigui 控件处理细节 (2023-05-00 00:00:00) 转载标签: 杂谈 分类:minigui 来源:(http://blog.sina.com.cn/s/blog_684a74300100j2fx.html) - minigui 控件处理细节_玻璃心_新浪博客 1,控件的隐藏 ShowWindow( GetDlgItem( hwnd, IDC_PROM…

老子的软件之道 - 道篇 26 应用软件的根基

摘要:老子哲学 道德经 软件哲学、软件之道 参阅:序消灭人狼软件的十大命题编程规则 圣人曰:重为轻根,静为躁君。是以君子终日行不离轻重。虽有荣观燕处超然。奈何万乘之主而以身轻天下。轻则失根,躁则失君。 本文先哲…

MiniGUI编程-细节

MiniGUI编程--列表框 分类: minigui2009-11-04 20:40列表框LBS(ListBoxStyle)以CTRL_LIST/"list"为类名调用CreateWindow多选风格:LBS_MULTIPLESEL高级风各:LBS_USEICONLBS_CHECKBOXLBS_AUTOCHECK加上边框WS_BORDER加垂直滚动条WS_VSCROLL加水…

你的成功在于你每天养成的习惯

收藏 要成功,就马上准备有所付出吧!这就是每天你应该养成的习惯。 1、不说“不可能”; 2、凡事第一反应: 找方法,不找借口; 3、遇到挫折对自己说声:太好了,机会来了! 4、…

阿甘正传 收藏

今天早上看了阿甘正传觉得,我们还是得抽点时间看看电影,特别是像《阿甘正传》这种有韵味的电影,里面的人生哲学真的很值得人们去深思。我已经好久没写博客了,很多朋友觉得我的日志给了他们很大的启发,其实我的很多思想…

老子的软件之道 - 道篇 27 团队管理的真谛

摘要:老子哲学 道德经 软件哲学、软件之道 参阅:序消灭人狼软件的十大命题编程规则 圣人曰:善行无辙迹。善言无瑕谪。善数不用筹策。善闭无关楗而不可开。善结无绳约而不可解。是以圣人常善救人,故无弃人。常善救物,故…

指针、结构体、联合体的安全规范

指针、结构体、联合体的安全规范分类: C2009-12-06 14:35指针赋予了C编程最大的灵活性;结构体使得C程序整齐而紧凑;联合体在某些要求注重效率的场合有精彩的表现,这三个要素是C语言的精华。 然而,精华并不意味着完美&a…

用DBUtils实现对数据库的操作

首先是环境的搭建: 1、导入所用的包 2、在src下建立一个xml文件,用来存放c3p0(它是一个开源的JDBC连接池) 内容如下图所示:(根据自己的需求修改里面的值,比如数据库名) 建立一个新…