文档章节

VP:活动图

MoksMo
 MoksMo
发布于 2015/04/29 16:50
字数 1863
阅读 657
收藏 8

一、活动图的组成元素 Activity Diagram Element

1、活动状态图(Activity

2、动作状态(Actions)

3、动作状态约束(Action Constraints

4、动作流(Control Flow

5、开始节点(Initial Node

6、终止节点(Final Node

7、对象(Objects

8、数据存储对象(DataStore

9、对象流(Object Flows

10、分支与合并(Decision and Merge Nodes

11、分叉与汇合(Fork and Join Nodes

12、异常处理(Exception Handler

13、活动中断区域(Interruptible Activity Region

14、泳道(Partition

二、活动图案例分析

三、总结

 

活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图在本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。

一、活动图的组成元素 Activity Diagram Element

1、活动状态图(Activity

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

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

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

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

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

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

 

 

2、动作状态(Actions

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

(1)、动作状态是原子的,它是构造活动图的最小单位。

(2)、动作状态是不可中断的。

(3)、动作状态是瞬时的行为。

(4)、动作状态可以有入转换,入转换既可以是动作流,也可以是对象流。动作状态至少有一条出转换,这条转换以内部的完成为起点,与外部事件无关。

(5)、动作状态与状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。

(6)、在一张活动图中,动作状态允许多处出现。

UML中的动作状态图用平滑的圆角矩形表示,如下:

 

3、动作状态约束(Action Constraints

动作状态约束:用来约束动作状态。如下图展示了动作状态的前置条件和后置条件

4、动作流(Control Flow

动作之间的转换称之为动作流,活动图的转换用带箭头的直线表示,箭头的方向指向转入的方向。

5、开始节点(Initial Node)
开始节点:表示成实心黑色圆点

 

6、终止节点(Final Node)
分为活动终止节点(activity final nodes)和流程终止节点(flow final nodes)。

活动终止节点表示整个活动的结束

而流程终止节点表示是子流程的结束。

7、对象(Objects)

  

8、数据存储对象(DataStore)

使用关键字«datastore»

 

9、对象流(Object Flows)

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

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

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

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

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

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

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

10、分支与合并(Decision and Merge Nodes)
分支与合并用菱形表示


11、分叉与汇合(Fork and Join Nodes)

分为水平风向和垂直方向。

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

12、异常处理(Exception Handler)

当受保护的活动发生异常时,触发异常处理节点。

 

 

13、活动中断区域(Interruptible Activity Region)

活动中断区域围绕一些可被中断的动作状态图。比如下图,正常情况下【Process Order】顺序流转到【Close Order】,订单处理流程完毕;但在【Process Order】过称中,会发送【Cancel Order】请求,这时会流转到【Cancel Order】,从而订单处理流程结束

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

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

 

二、活动图案例分析

1、  泳道分为:会员泳道和系统泳道。会员选择商品并加入购物车,系统完成订单生成及其支付完毕。

2、  开始节点:会员添加商品到购物车,点击【订单确认】,开始交于系统处理订单流程

3、  结束节点:商品发送完毕和付款成功,订单处理流程结束

4、  活动状态:产生订单、Check Credit Cart核对信用卡、Check Stock 核对库存量、Deliver Goods 发送商品、Process Credit Cart付款

5、  分叉与汇合:【产生订单】份叉为检查库存量和会员支付金额是否足够,如果不足,取消订单,如过库存量和支付金额足够,发送商品和付款,最后汇合为订单完成。

VP在线使用文档:http://www.visual-paradigm.com/support/documents/vpuserguide.jsp


© 著作权归作者所有

共有 人打赏支持
MoksMo
粉丝 29
博文 220
码字总数 155281
作品 0
静安
架构师
V8与H.264之争(fromjavaeye)

转自http://www.javaeye.com/news/16134 HTML5的脚步越来越近了,不过关于HTML5中视频标签格式标准的争夺最近似乎愈演愈烈,其中最受关注的是H.264视频编解码和最新的WebM中的VP8视频编解码。...

orpheus
2010/05/22
0
0
HEVC,VP9,x264性能对比

Dan Grois等人在论文《Performance Comparison of H.265/MPEG-HEVC, VP9, andH.264/MPEG-AVC Encoders》中,比较了下一代编码标准HEVC,VP9的以及当前主流编码标准H.264之间的性能。在此记录...

leixiaohua1020
2014/02/09
0
0
专业心率监测器克服了心电噪声和电源的挑战---凯利讯半导体

  针对个人和远程医疗监控的可穿戴式心电图(ECG)设备的需求正在增加,其对准确性、可靠性和电池寿命的要求也越来越高。这对设计人员来说是一个挑战,因为ECG读数对运动和其他干扰源高度敏感...

tyaolxh
01/17
0
0
MSU 出品的 H.264 编码器比较 (2011.5)(包含VP8以及XviD)

这是著名的视频质量评价实验室MSU Graphics&Media Lab(是莫斯科国立大学的实验室)做的编码器比较的实验报告《Seventh MPEG-4 AVC/H.264 Video Codecs Comparison》。非常的详细,全面,在此...

leixiaohua1020
2013/09/23
0
0
AV1显著超越H.265和VP9?—MSU最新比较公布

本文转载自“煤矿工厂”。莫斯科国立大学(MSU)开启了一项从主观层面对比视频质量的服务,本文是他们对AV1和VP9、HEVC编码质量的测试结果。 前言 最新的编码质量对比研究表明,视频编码标准...

LiveVideoStack
02/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

以太坊总结

一、概念说明 1.以太坊(Ethereum blockchain)由V神(Vitalik Buterin)发明,是一个交易记录的永久数据库,它以一个“无信任”的交易系统来运行,不需要任何第三方信任机构即可进行点对点的...

盼望明天
27分钟前
1
0
Java并发工具类——AtomicInteger

基本类型int的递增等操作并不是线程安全的,加上synchronized又会影响性能,因此在并发情况下我们应该使用AtomicInteger,下面通过一个例子验证一哈。 public class TestAtomicInteger {...

东都大狼狗
29分钟前
1
0
基于CentOS7.2系统对RabbitMQ单机版安装过程

准备虚拟机系统 我的系统如下 系统版本7.2 安装perl yum install perl 安装wget工具 yum install -y wget 安装相关依赖工具 yum install ncurses ncurses-base ncurses-devel ncurses-libs ...

凌晨一点
33分钟前
1
0
Maven常用命令

Maven常用命令 说到命令,则不得不提一下环境变量,在之前的博文中简单提了一下环境变量的配置,这里具体说一下。说完环境变量的配置,然后就是Maven的常用命令,这里说的是常用的几个命令,...

星汉
49分钟前
0
0
Flink操作mysql kafka和hbase

主程序 package com.streaming.flink;import java.util.Properties;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functi......

守望者之父
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部