UML——活动图

本文详细介绍了UML中的活动图,它用于描述系统的行为,特别是操作的执行过程和多线程应用。活动图与流程图类似但支持并行活动,适用于展现任务执行和工作流程,但不适用于表示对象合作和生命周期。文中讲解了动作状态、活动状态、动作流、分支与合并、分叉与汇合、泳道和对象流等核心概念,强调了它们在建模中的作用和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,行为模型

系统建模,需要从系统的结构和行为两个方面来描述,其中系统的行为是通过状态啊图,活动图,序列图和协作图来描述的。

2,流程图:常被用来建立算法模型,使用流程图可以表示一个算法的执行序列,过程,判定点,分支和循环。

3,活动图与流程图十分相似,不同的是活动图支持并行活动。

4,活动图的缺点:

很难清除的描述动作与对象之间的关系,没有交互图直接。

5,活动图的作用:

描述一个操作的执行过程中所完成的工作或者动作,

描述对象内部的工作

显示如何执行一组相关的动作,以及这些动作如何影响周围对象

描述用例的执行

处理多线程应用

6,不适合用活动图的场合

显示对象这件的合作

显示对象在其生命周期内的运转情况

1、动作状态

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

动作状态有如下特点:

动作状态是原子的,它是构造UML活动图的最小单位。是不可中断的,是瞬时的行为。可以有入转换,入转换既可以是动作流,也可以是对象流。至少有一条出转换,这条转换以内部的完成为起点,与外部事件无关。动作状态与状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。在一张UML活动图中,动作状态允许多处出现。

UML中动作状态用平滑的圆角矩形表示。

2、活动状态

活动状态用于表达状态机中的非原子的运行,其特点如下:

(1)、活动状态可以分解成其他子活动或者动作状态。

(2)、活动状态的内部活动可以用另一个UML活动图来表示。

(3)、和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。

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

UML中活动状态和动作状态的图标相同,但是活动状态可以在图标中给出入口动作和出口动作等信息。

3、动作流

与状态图不同,UML活动图的转换一般都不需要特定事件的触发。与状态图的转换相同,UML活动图的转换也用带箭头的直线表示,箭头的方向指向转入的方向。

4、分支与合并

UML中分支与合并用空心的小菱形表示。

5、分叉与汇合

对象在运行时可能会存在两个或多个并发运行的控制流,为了对并发的控制流建模,UML中引入了分叉与汇合的概念。分叉用于将动作流分为两个或多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。

6、泳道(Swimlane)

泳道将UML活动图中的活动划分为若干组,并把每一组指定给负责这组活动的业务组织,即对象。在UML活动图中,泳道区分了负责活动的对象,它明确地表示了哪些活动是由哪些对象进行的。在包含泳道的UML活动图中,每个活动只能明确地属于一个泳道。

泳道是用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道的上方可以给出泳道的名字或对象的名字,该对象负责泳道内的全部活动。泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线。

7、对象流

对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或动作对对象的影响。用UML活动图描述某个对象时,可以把涉及到的对象放置在UML活动图中并用一个依赖将其连接到进行创建、修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流。

对象流中的对象有以下特点:

(1)、一个对象可以由多个动作操作。

(2)、一个动作输出的对象可以作为另一个动作输入的对象。

(3)、在UML活动图中,同一个对象可以多次出现,它的每一次出现表面该对象正处于对象生存期的不同时间点。

对象流用带有箭头的虚线表示。如果箭头是从动作状态出发指向对象,则表示动作对对象施加了一定的影响。施加的影响包括创建、修改和撤销等。如果箭头从对象指向动作状态,则表示该动作使用对象流所指向的对象。

状态图中的对象用矩形表示,矩形内是该对象的名称,名称下的方括号表明对象此时的状态。

活动的分解

一个活动可以分为若干个动作或子活动,这些动作和子活动本身又可以组成一个UML活动图。不含内嵌活动或动作的活动称之为简单活动,嵌套了若干活动或动作的活动称为组合活动。组合活动有自己的名字和相应的子UML活动图。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值