| 编辑推荐: |
本文主要介绍了什么是UML,UML的好处,UML的类型,以及如何设计和使用UML的类图。
本文来自于geeksforgeeks.org,由Alice编辑、推荐。 |
|
我们使用 活动图 来说明系统中的控制流,并参考执行用例所涉及的步骤。我们使用活动图对顺序和并发活动进行建模。因此,我们基本上使用活动图直观地描绘工作流。活动图侧重于流动的条件及其发生的顺序。我们使用活动图描述或描述导致特定事件的原因。UML模型基本上有三种类型的图,即结构图,交互图和行为图。活动图是一种 行为图 ,即它描述了系统的行为。活动图描绘了从起点到终点的控制流,显示了执行活动时存在的各种决策路径。我们可以使用活动图来描述活动的顺序处理和并发处理。它们用于业务和流程建模,其中它们的主要用途是描述系统的动态方面。活动图 与流程图非常相似 。因此,让我们了解活动图或流程图是否有任何不同:
活动图和流程图之间的区别 –
流程图通常比活动图更早发明。非程序员使用流程图对工作流进行建模。例如:制造商使用流程图来解释和说明特定产品的制造方式。我们可以将流程图称为活动图的原始版本。涉及决策的业务流程使用流程图表示。因此,程序员使用活动图(流程图的高级版本)来描述工作流程。 开发人员使用 活动图来了解程序的流程。它还使他们能够找出导致特定事件的约束和条件。如果做出复杂的决策,流程图会收敛为活动图。简洁是机智的灵魂。我们需要清晰地传达大量信息,并确保它简短。因此,活动图可以帮助双方的人(即商人和开发人员)进行交互和理解系统。一个问题出现了: 我们是否需要同时使用图表和文本文档? 不同的人有不同的偏好,他们理解某事。例如:要理解一个概念,有些人可能更喜欢带有图像的书面教程,而另一些人则更喜欢视频讲座。因此,我们通常同时使用图表和文本文档来使我们的系统描述尽可能清晰。我们还需要对我们有时迎合的观众的需求保持敏感。 用例图和活动图之间的区别 活动图用于对描述条件、约束、顺序和并发活动的工作流进行建模。另一方面,用例的目的是描述功能,即系统做什么而不是如何完成。因此,简单来说,活动图显示“如何”,而用例显示特定系统的“内容”。两者的抽象级别也各不相同。活动图可用于将业务流程(高级实现)与独立算法(底层实现)进行说明。但是,用例的抽象级别较低。它们仅用于显示 高水平的 实现。

图 – 基于情感的音乐播放器的活动图
上图描绘了基于情感的音乐播放器的活动 图 ,也可用于更改壁纸。下面解释了图表中使用的各种组件和标准符号。
活动图符号 –
初始状态 – 活动发生之前的开始状态使用初始状态进行描述。

图 – 表示初始状态或开始状态
一个进程只能有一个初始状态,除非我们描述的是嵌套的活动。我们使用黑色填充圆圈来描述系统的初始状态。对于对象,这是实例化它们时的状态。UML 活动图中的“初始状态”标记入口点和初始活动状态。例如 – 这里的初始状态是打开应用程序之前系统的状态。

图 – 正在使用的初始状态符号
操作或活动状态 – 活动表示对对象或对象执行操作。我们使用带有圆角的矩形来表示活动。基本上,发生的任何操作或事件都使用活动表示。

图 – 活动状态的表示法
例如 – 考虑前面打开应用程序的示例 打开应用程序是活动图中的活动状态。
操作流或控制流 – 操作流或控制流也称为路径和边。它们用于显示从一个活动状态到另一个活动状态的转换。

图 – 控制流的表示法
活动状态可以有多个传入和传出操作流。我们使用带有箭头的线来描述控制流。如果在进行过渡时要遵守约束,则会在箭头上提及。考虑这个例子 – 在这里,两个状态都使用操作流符号(即箭头)过渡到一个最终状态。
决策节点和分支 – 当我们需要在决定控制流之前做出决策时,我们使用决策节点。

图 – 决策节点的表示法
决策节点的传出箭头可以使用条件或保护表达式进行标记。它始终包含两个或多个输出箭头。

图 –使用决策节点的活动 图
警卫– 守卫是指写在箭头上的决策节点旁边的语句,有时在方括号内。

图 – 在决策节点旁边使用的防护
该语句必须为 true,控件才能沿特定方向移动。防护装置帮助我们了解决定过程流程的约束和条件。
叉– 分叉节点用于支持并发活动。

图 – fork 表示法
当我们使用 fork 节点时,两个活动同时执行,即在将活动分成两部分之前没有做出任何决定。在 fork 语句的情况下,这两个部分都需要执行。我们使用圆角实心矩形条来表示 Fork 表示法,其中包含来自父活动状态的传入箭头和朝向新创建活动的传出箭头。例如:在下面的示例中,煮咖啡的活动可以分为两个并发的活动,因此我们使用分叉符号。

图 – 使用叉子的图表
加入– 联接节点用于支持并发活动收敛为一个节点。对于连接符号,我们有两个或多个传入边和一个传出边。

图 –连接符号
例如 – 当蒸牛奶和添加咖啡这两个活动都完成时,我们将它们融合到最后一个活动中。

图 – 使用连接表示法的图表
合并 或合并事件 – 当必须合并未同时执行的活动时,会出现这种情况。对于这种情况,我们使用合并表示法。如果控件继续执行下一个活动,则无论选择的路径如何,我们都可以将两个或多个活动合并为一个。

图 –合并符号
例如 – 在下图中:我们不能让双方同时执行,但它们最终合并为一个。一个数字不能既是奇数又是偶数。

图 –使用合并符号的活动 图
泳道 – 我们使用泳道将相关活动分组到一列中。泳道将相关活动分组到一列或一行中。泳道可以是垂直的,也可以是水平的。泳道用于向活动图添加模块化。使用泳道不是强制性的。它们通常会使活动图更加清晰。这类似于在程序中创建函数。这不是强制性的,但这是推荐的做法。

图 – 泳道符号
我们使用矩形列来表示泳道,如上 图 所示。例如 – 这里根据数字是奇数还是偶数执行不同的活动集。这些活动被分组到泳道中。

图 – 利用泳道的活动 图
时间事件 –

图 – 时间事件表示法
我们可以有一个场景,即事件需要一些时间才能完成。我们使用沙漏来表示时间事件。例如,让我们假设图像的处理需要花费大量时间。然后可以表示如下。

图 –使用时间事件的活动 图
最终状态或结束状态 – 系统在特定流程或活动结束时达到的状态称为最终状态或结束状态。我们使用圆圈符号中的填充圆来表示状态机图中的最终状态。一个系统或一个进程可以有多个最终状态。

图 – 表示最终状态
如何绘制活动图 –
1.确定初始状态和最终状态。
2.确定从初始状态达到最终状态所需的中间活动。
3.确定导致系统更改控制流的条件或约束。
4.使用适当的符号绘制图表。

图 – 活动图
如果数字是奇数,则上 图 打印数字,否则从数字中减去 1 并显示它。
活动图的用途 –
1.系统或过程的动态建模。
2.说明 UML 用例中涉及的各种步骤。
3.对方法、操作和功能等软件元素进行建模。
4.我们可以使用活动图来轻松描述并发活动。
5.显示算法背后的约束、条件和逻辑。
|