活动是某件事情正在进行的状态。活动在状态机中表现为一个由一系列动作组成 的非原子的执行过程。

活动图是一种描述系统行为的图,它用于展现 参与行为的实体所进行的各种活动的顺序关系。活动图(Activity diagram)是UML用于对 系统的动态行为建模的另一种常用工具,它描 述活动的顺序,展现从一个活动到另一个活动 的控制流。活动图在本质上是一种流程图。

一:活动图的组成元素

(1) 动作状态 (Action State)

  • 动作状态是指执行原子的、不可中断的 动作,并在此动作完成后通过完成转换 转向另一个状态的状态。
  • 动作状态使用平滑的圆角矩形表示,动 作状态所表示的动作写在圆角矩形内部。

  • 动作状态的特点:
  1. 动作状态是原子的,它是构造活动图的最小单位,已经 无法分解为更小的部分。
  2. 动作状态是不可中断的状态,它一旦开始运行就不能中 断,一直运行到结束。
  3. 动作状态是瞬时的行为,它所占用的处理事件极短,有 时甚至可以忽略。
  4. 动作状态可以有入转换,入转换既可以是动作流,也可 以是对象流。动作状态至少有一条出转换,这条转换以 内部动作的完成为起点,与外部事件无关。
  5. 动作状态和状态图中的状态不同,它不能有入口动作和 出口动作,更不能有内部转移。
  6. 在一张活动图中,动作状态允许多处出现。

(2)活动状态(Activity State)

  • 活动状态用于表达状态机中的一个非原 子的运行。
  • 活动状态的表示图标也是平滑的圆角矩 形,并可以在图标中给出入口动作和出 口动作等信息。
  • 点击建立,双击图标,设置属性如图:
  • 活动状态的特点:
  1. 活动状态可以分解成其他子活动或动作状态, 由于它是一组不可中断的动作或操作的组合, 所以可以被中断。
  2. 活动状态的内部活动可以用另一个活动图来表示。
  3. 和动作状态不同,活动状态可以有入口动作和 出口动作,也可以有内部转移。
  4. 动作状态是活动状态的一个特例,如果某个活 动状态只包括一个动作,那么它就是一个动作 状态。

 

(3)动作流(Action Flow)

  • 所有动作状态之间的转换 流称之为动作流。
  • 与状态图的转换相同,活 动图的转换也用带箭头的 直线表示,箭头的方向指 向转入的方向。

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

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

图例1:

图例2:

(5)分叉(Fork)与汇合(Join) 

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

  • 分叉与汇合用于显示平行分支流,使您 能够显示业务用例的工作流程中的并行 线程。
  • 警戒条件用于说明一组并行线程中的某 个线程是有条件的。例如,在上面的"个 人登记"示例中,进行登记的乘客可能是 频繁乘机旅行的顾客。在此情况下,您 需要给他奖励一些飞行里程数。

(6)甬道(Swimlane) 

没有甬道的活动图:

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

一个有通道的活动图:

 (7) 对象流(Object Flow)

  • 对象流是动作状态或者活动状态与对象之间 的依赖关系,表示动作使用对象或者动作对 对象的影响。
  • 对象流中的对象特点: 
    (1)一个对象可以由多个动作操纵。 
    (2)一个动作输出的对象可以作为另一个动作输 入的对象。 
    (3)在活动图中,同一个对象可以多次出现,它 的每一次出现表明该对象正处于对象生存期 的不同时间点。
  • 对象流用带有箭头的虚线表示。如果箭 头从动作状态出发指向对象,则表示动 作对对象施加了一定的影响。如果箭头 从对象指向动作状态,则表示该动作使 用对象流所指向的对象。
  • 对象流用表示,一个包含对象流的活动图:

PowerDesigner16 活动图的更多相关文章

  1. 用rose画UML图(用例图,活动图)

    用rose画UML图(用例图,活动图) 首先,安装rose2003,电脑从win8升到win10以后,发现win10并不支持rose2003的安装,换了rose2007以后,发现也不可以. 解决途径: ...

  2. 初次启动app校验的活动图和分析

    初次启动活动图 version 1 version 2 version 3 根据上图的活动图分析,可能存在较严重的问题: 主线程中如果发现是sdcard的url,则可能进行重命名 FirstEnter ...

  3. [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图

    [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图 1.活动图简介 定义:是阐明了业务用例实现的工作流程. 业务工作流程说明了业务为向 ...

  4. [UML]UML系列——活动图activity diagram

    系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...

  5. Enterprise Architect 学习 之 活动图

    UML中,活动图用来展示活动的顺序.显示了从起始点到终点的工作流,描述了活动图中存在于事件进程的判断路径.活动图可以用来详细阐述某些活动执行中发生并行处理的情况.活动图对业务建模也比较有用,用来详细描 ...

  6. UML活动图与流程图的区别

    http://blog.chinaunix.net/uid-11572501-id-3847592.html UML活动图与流程图的区别 (1).流程图着重描述处理过程,它的主要控制结构是顺序.分支和 ...

  7. iOS 活动图 流程图

    活动图        活动图和状态机图都被称为演化图,其区别和联系如下:       1.活动图:用于描述用例内部的活动或方法的流程,如果除去活动图中的并行活动描述以后,它就变成流程图.       ...

  8. UML精粹5 - 状态图,活动图,通信图,组合结构,组件图,协作,交互概述图,时间图

    状态机图state machine diagram 下面是状态图的一个例子(一个城堡中的秘密保险箱的控制面板). 转换transition包括3个部分:trigger-signature [guard ...

  9. UML状态图和活动图

    UML状态图和活动图 统一建模语言UML(Unified Modeling Language)是非专利的第三代建模和规约语言.UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对 ...

随机推荐

  1. 物联网常见通信协议RFID、NFC、Bluetooth、ZigBee等梳理

    1  概述 在上一篇文章<物联网常见通信协议与通讯协议梳理[上]-通讯协议>中,对物联网常用通信协议和通讯协议作了区分,并对通讯协议进行了分享:本文将对常用的通信协议进行剖析,重点面向市场 ...

  2. 第二十一次ScrumMeeting会议

    第二十一次Scrum Meeting 时间:2017/12/11 地点:SPR咖啡馆 人员:王子铭 游心 解小锐 王辰昱 李金奇 杨森 陈鑫 赵晓宇 照片: 目前工作进展 名字 今日 明天的工作 蔡帜 ...

  3. 20145214实验五 Java网络编程及安全

    20145214实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 我的结对伙伴是 20145219 宋歌,我负责的 ...

  4. python执行linux命令的两种方法

    python执行linux命令有两种方法: 在此以Linux常用的ls命令为例: 方法一:使用os模块 1 2 3 shell# python >> import os >> ...

  5. 2d命令行小游戏源码

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. lintcode-11-二叉查找树中搜索区间

    二叉查找树中搜索区间 给定两个值 k1 和 k2(k1 < k2)和一个二叉查找树的根节点.找到树中所有值在 k1 到 k2 范围内的节点.即打印所有x (k1 <= x <= k2 ...

  7. GPS定位,根据经纬度查询附近地点的经纬度-sql方法实现

    根据当前所在的坐标点也即经纬度,查找数据库中附近5公里或10公里附近的所有信息的实现,经过查找资料,原来是我高二学的,就是求弦长,数学忘完了,没想到数学还这么有用,数学啊 真是用途太大了. 用到的什么 ...

  8. Python的7种性能测试工具:timeit、profile、cProfile、line_profiler、memory_profiler、PyCharm图形化性能测试工具、objgraph

    1.timeit: >>> import timeit >>> def fun(): ): a = i * i >>> timeit.timeit ...

  9. [剑指Offer] 48.不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. [思路] 首先看十进制是如何做的: 5+7=12,三步走第一步:相加各位的值,不算进位,得到2.第二步:计算进 ...

  10. CSS定义input disabled样式

    disabled 属性规定应该禁用 input 元素.被禁用的 input 元素既不可用,也不可点击.可以设置 disabled 属性,直到满足某些其他的条件为止(比如选择了一个复选框等等).然后,就 ...