1.活动图简介

定义:是阐明了业务用例实现的工作流程。

业务工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作。

业务用例由一系列活动组成,它们共同为业务主角生成某些工件。

工作流程通常包括一个基本工作流程和一个或多个备选工作流程。

工作流程的结构使用活动图来进行说明。

活动图在本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。

类型:动态图

应用:需求分析阶段

2.活动图元素

在VS 2013/2015中有以下17种活动图元素:

2.1 Initial Node(起始节点)

说明:表示一个活动或行为的开始

表示:用黑色的实心圆点表示

图例:

2.2 Activity Final Node(活动结束节点)

说明:表示整个流程的结束

表示:用黑色的实心圆点和一个外部圆表示

图例:

2.3 Action(活动)

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

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

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

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

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

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

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

表示:用平滑的圆角矩形表示

图例:

2.4 Object Node(对象节点)

说明: 表示一个对象元素

表示: 矩形表示

图例:

2.5 Comment(注释)

说明:  对活动图元素注释

表示:  黄色边框折角矩形表示(一般给某个元素注释,会有一条连接线)

图例:

2.6 Decision Node(决策节点)

说明:   一般某一节点需要有一个决策分支时使用

表示:   菱形表示

图例:

2.7 Merge Node(合并节点)

说明:   分支流程合并时使用

表示:   菱形表示

图例:  菱形表示

2.8 Fork Node(分支节点或分叉节点)

说明:   分支节点和决策节点的区别在于,分支节点是对两个或多个并发控制流的表示,不存在决策

表示:   黑色矩形框表示

图例:

2.9 Join Node(连接节点或联接节点)

说明:同步多个并发分支,完成程程汇合

表示:黑色矩形框表示(水平或垂直均可)

图例:

2.10 Send Signal Action(信号发送活动)

说明:   动作发送一个信号

表示:   矩形箭头

图例:

2.11 Accept Event Action(事件接收活动)

说明:接收一个信号

表示:   燕尾状短形

图例:

2.12 Call Behavior Action(行为调用活动)

说明:详细的行为调用

表示:圆角短形

图例:

2.13 Call Operation Action(操作调用活动)

说明:这一动作调用一个类的实例操作

表示:圆角短形

图例:

2.14 Input Pin(输入标记)

说明:表示数据动作能够获取执行

表示:  小方框表示(只能定义在行为、操作、对象上)

图例:

2.15 Output Pin(输出标记)

说明:表示数据产生一个动作时执行

表示:小方框表示(只能定义在行为、操作、对象上)

图例:

2.16 Activity Parameter Node(活动参数节点)

说明:对象节点,表示活动产生的对象

表示:矩形框表示

图例:

2.17 Connector(连接线箭头)

说明:表示一个动作流,箭头方向表示

表示:箭头表示

图例:

3.活动图设计示例

下面是几种常见的活动图设计示例:

3.1 单线控制流(Simple Control Flow)

下面单线控制流中,地铁如果选错线路,可以通过节点再进行一次重选

3.2 并行流(Concurrent Flows)

以下是一个从创建订单开始,费用支付和接收支付是一个信号发送行为和接收事件,另一分支处理订单发货操作,两个并发分支完成后联接,完成订单。

3.3 数据流(Data Flows)

4.总结

软件设计中对于需求分析的重要性是毋庸置疑的,不论采用什么样的设计思想,都需要比较周密的需求分析,进而形成书面的文档。在文档编写过程中,活动图比起文字描述具有更直观的表现。使用UML活动图能让其他人更快的读懂的你的设计意图,更快速的理解你的业务控制流程。

转载:http://www.cnblogs.com/yubinfeng/p/5212477.html

最新文章

  1. 打包ipa出现问题记录
  2. Appium for IOS testing on Mac
  3. linux笔记:shell基础-bash基本功能
  4. php常用Stream函数集介绍
  5. 无侵入方面编程-用HttpModule+SoapExtension监视页面执行参数(二)
  6. 使用Redis做MyBatis的二级缓存
  7. NC保存报dirty解决方法
  8. css3 字体旋转
  9. Android AlertDialog全屏显示去除白色边框
  10. AIX和Linux中wtmp的不同处理方式
  11. javascript 我是广告
  12. 菜鸟系列之C/C++经典试题(七)
  13. Error C1189: #error: Please use the /MD switch for _AFXDLL builds
  14. javascript 中 arguments.callee属性
  15. Windows7 java-jdk1.7安装及设置变量过程
  16. SQL Server 文章目录
  17. nginx的概念与几种负载均衡算法
  18. Struts2+Spring+Hibernate3整合
  19. springcould 微服务 搭建
  20. luogu P1816 【忠诚】

热门文章

  1. 解决 jenkins 下使用 HTML Publisher 插件后查看 html 报告显示不正常
  2. Android Notification 的四种使用方式
  3. ios UISearchDisplayController 实现 UITableView 搜索功能
  4. 003-BootStrap完整模板
  5. 关于append,appendTo,prepend,prependTo的区别
  6. 从C语言的整数取值范围说开去
  7. .Net程序员玩转Android系列之三~快速上手
  8. Redis单机数据迁移至Sentinel集群
  9. spring框架-----轻量级的应用开发框架
  10. Spring事务不起作用原因