活动图是UML 行为图 ,它显示了控制或对象流的流,重点在于流的顺序和条件。活动模型协调的动作可以被启动,当其他操作可以完成执行,对象和数据变得可用,或者由于流程外部的某些事件发生。
通常在UML 活动图上绘制以下节点和边: 活动, 分区, 操作, 对象, 控件, 活动传递。
你可以 在这里找到一些 活动图例子:
- 网上购物
- 业务流程 – 流程订单
- 业务流程 – 文档管理流程
- 软件设计 – 解决问题
- Sentinel HASP SL – 手动激活试用产品
- 针对 Google Apps的单一登录
活动
活动是一种参数化 行为, 它表示为协调的行动流程 。
执行流被建模为活动节点,通过活动边线连接。节点可以是从属行为的执行,例如算术计算,对操作的调用或对象内容的操纵。活动节点还包括控制结构流,例如同步,决策和并发控制。活动可以形成调用其他活动的调用层次结构,最终解决单个动作。在面向对象的模型中,活动通常被间接调用,作为绑定到直接调用的操作的方法。
活动包含活动节点(activity nodes),可能是:
- 动作(action)
- 对象节点(object )
- 控制节点(controls)
活动可能包含各种动作:
- 原始函数的出现,例如算术函数。
- 行为的调用,比如活动。
- 通信行为,例如发送信号。
- 对象的操作,例如读取或写入属性或关联。
有一些行为可以调用活动 – 直接使用调用行为动作 或间接使用调用操作动作。
活动可呈现为左上角有活动名称的圆角矩形和边界内活动的节点和边缘。UML 2.4规范示例以粗体显示活动名称。
在线购物活动
活动参数显示在边框上,并在活动名称下面列出:
参数名称:参数类型。
使用两个参数验证用户活动 - 登录ID和密码
因为行为 活动可以有前置和后置条件约束。如果出现,这些分别以关键字“前置条件(precondition)”和“后置条件(postcondition)”一起显示。
关键字<<singleExecution>>用于作为单个共享执行(单例(singleton))执行的活动,否则每个调用都在其自己的空间中执行。
圆角活动边界可以用图的框架符号代替。这种情况下,框架的是活动或行为在短形式。活动参数(如果有的话)显示在框架上。
使用两个参数验证用户活动框架 - 登录ID和密码
具有关键字<<activity(活动)>>的类的符号可用于显示反射活动的特征,以表明它是activity类。关联和状态机符号也可以根据需要使用。
UML允许行为产生作为活动的标记,并且这些标记又可以在运行时执行。
活动分区
活动分区是具有一些共同特征的活动的活动组。
分区通常对应于业务模型中的组织单位或业务参与者。
分区为活动中调用的行为提供了一个受约束的视图。可以根据分区表示的元素的类型来选择约束。
以下约束是UML 2.4中的规范(标准):
- 分类(classifier)
- 实例(instance)
- 属性类(part)
- 属性和值
例如,分区可以表示特定的 分类器。在这种情况下,每个分区中的操作应该是针对作为相应分类器实例的对象的操作或信号。
分区可以表示某个属性 及其子分区 – 该属性的特定值。例如,分区可以表示执行行为的位置,子分区将表示该属性的特定值,例如纽约。
活动分区可以使用泳道符号显示 – 使用两条通常平行的线条(横向或纵向),并在一端将一个分区标记在一个盒子中。任何活动节点,例如放置在这些行之间的动作和边线被认为包含在分区内。
活动将客户和订单部门划分为水平泳道
活动将客户和订单部门划分为垂直泳道
如下所示,分层划分使用子划分的泳道来表示。
使用子分区进行分层分区
分区可以被标记为其子分区的维度,以沿着维度包含(组)这些子分区。例如,一个活动可能有一个维度的分区,用于存放所包含的行为的位置,另一个维度是执行它们的成本。维度分区不能被任何其他分区所包含。
图表也可以多维分区,其中每个游泳单元是多个分区的交叉点。每个维度中的分区可以分组到一个封闭的活动分区中,其中isDimension = true,它的名称是维度名。但是,不是将其显示为分区本身,而是通过将其名称放在维度中的一组分区上来指示该维度。
分区可以表示分区结构不适用的外部实体。 外部分区是分区结构规则的有意例外。例如,维度可能包含显示结构化分类器部分的分区 。它可以有一个外部分区,它不代表一个部分,而是一个完全独立的分类器。在业务建模中,可以使用外部分区来为业务外部的实体建模。
当活动被认为发生在特定模型的域之外时,该分区可以用关键字<<external(外部)>>标记。只要泳道中的活动标记为“external”,就会覆盖泳道和维度的指定。
在外部分区 Customer中 发生 购买操作
在泳道不能用于显示分区的情况下,可以使用具有限定操作名称的替代文字符号。在这种情况下,分区名称放置在操作名称上方的括号中。以逗号分隔的分区名称列表表示该节点包含在多个分区中。一个分区名称中的双冒号表明分区是嵌套的,较大的分区在名称中较早出现。
购买操作发生在外部分区 Customer中
活动边线
Activity Edge是活动节点间令牌或数据对象流向的定向连接的抽象类。它包括控制边 和 对象流边。边缘的源和目标必须与边的活动相同。
活动边线由连接两个活动节点的开放箭头线表示。
活动边线连接填充订单和审核订单。
边线可以被命名,但是边线不需要在活动中具有唯一的名称。如果边线有名称,则在箭头旁标注。
活动边线 “更新”连接两个节点。
活动边可以在运行时评估警戒规格,以确定是否可以遍历边界。守卫必须对每一个在边缘传递的令牌进行评估。
活动边线的守卫显示在包含警卫的方括号中。
当优先级为1时填写订单
活动边线可以使用连接器进行标记,连接器是一个内部带有名称的小圆圈。尽管UML 2.4规范将其称为边线名称,但提供的连接符号和示例表明连接符具有其自己的名称(也称为标签)。
通常使用连接器来避免绘制长边。这纯粹是符号。它不会影响底层模型。涉及的圆圈和线条映射到模型中的单个活动边缘。每个具有给定标签的连接器必须与同一个活动图上的相同标签完全配对。一个连接器必须只有一个入口边缘,另一个连接器只有一个出口边缘,每个连接器都具有相同类型的流量,对象或控制。
连接器A连接填充订单和检查订单之间的两条边。
对象流边线
对象流边是活动边缘,用来显示动作节点之间对象和数据令牌的数据流。
对象流通过箭头线表示。
对象流的订单填写订单并查看订单行动之间
任何数量的令牌都可以沿边传递,一次一组,或者在不同的时间单独传递。权重属性规定了必须同时遍历边缘的令牌的最小数量。当提供了最小数量的令牌时,源代码中的所有令牌都同时提供给目标。
边线的权重可以显示在包含重量的大括号中。权重是一个价值规范,它可以是一个常数,它的计算结果为非零的无限自然值。无限的权重表示为“*”。
警告次数达到6时发送通知。
中断边线
中断边线是表示中断区域的中断的活动边线。它呈现为闪电螺栓。
取消请求信号导致中断导致取消订单。
在一条直线上,一种可以选择的方法是在一条直线上进行一种简单的装饰。
取消请求信号导致中断导致取消订单。 |