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

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活动图能让其他人更快的读懂的你的设计意图,更快速的理解你的业务控制流程。

5.源文件下载

Git下载:https://github.com/yubinfeng/BlogExamples

==============================================================================================

返回目录

<如果对你有帮助,记得点一下推荐哦,如有有不明白或错误之处,请多交流>

<对本系列文章阅读有困难的朋友,请先看 《.net 面向对象编程基础》和 《.net 面向对象程序设计进阶》 >

<转载声明:技术需要共享精神,欢迎转载本博客中的文章,但请注明版权及URL>

.NET 技术交流群:467189533

==============================================================================================

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

  1. [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图

    [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图  1.用例图简介 定义:用例图主要用来描述“用户.需求.系统功能单元”之间的关系. ...

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

    [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...

  3. UML——在Visual Studio 2013/2015中设计UML类图

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

  4. Visual Studio 2013 Preview 高清多图先睹为快

    Visual Studio 2013 Preview已经发布.大家可以下载试用了哦: 选项加载明显比之前版本要快很多.

  5. 在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤

    Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装 ...

  6. Visual Studio 2013/2015/2017快捷键(转)

    英文原文:19 Must-Know Visual Studio Keyboard Shortcuts 项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = ...

  7. Visual Studio 2013/2015/2017快捷键(转载)

    本文为转载文章,原文:[心存善念]  [Fonour] 项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示 Solution Explorer(解 ...

  8. visual studio 2013 生成依赖项关系图出错

    开始是说无法连接到sql服务器,我安装卸载localdb http://www.microsoft.com/zh-cn/download/details.aspx?id=29062 下载 CHS\x6 ...

  9. Visual Studio 2015中设计UML类图

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

随机推荐

  1. RabbitMQ的几种应用场景

    RabbitMQ是一个消息代理,从“生产者”接收消息并传递消息至“消费者”,期间可根据规则路由.缓存.持久化消息.“生产者”也即message发送者以下简称P,相对应的“消费者”乃message接收者 ...

  2. css雪碧图生成工具4.2更新

    v4.0更新连接:http://www.cnblogs.com/wang4517/p/4493917.html v4.1更新连接:http://www.cnblogs.com/wang4517/p/4 ...

  3. [Idea] idea打不开项目,原因很莫名

    由于项目是gitlab上存储的,所以下下来之后,之前遇到过,以为是重新下载之后master上面没有内容导致无法正常打开,这种情况,切换一下master再打开即可: 但是这次遇到的问题不是这种情况, 使 ...

  4. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  5. 十个免费的web应用安全检测工具

    Websites are getting more and more complex everyday and there are almost no static websites being bu ...

  6. 丢掉慢吞吞的AVD吧,android模拟神器:Genymotion

    安装图文介绍: http://padhz.com/how-to-run-android-simulator-on-pc.html; 刚好手头上有visual box,亲自试用了一下.新建了一个Gala ...

  7. 泛型的排序问题(Collections.sort及Comparable的应用)

    一.前言    java中对泛型(集合类型)排序的问题,主要采用了两张方式一种是对要排序的实体类,实现Comparable接口,另一种方式,Collections集合工具类进行排序. 二.实现Comp ...

  8. 用ShareSDK 进行第三方分享

    1.首先要先注册自己的appkey在shareSDK官网里面 2.下载shareSDK 文档,可以根据需要下载自己需要的 如图 3.将下载好的shareSDK 解压后加入工程里面 4.添加依赖库 // ...

  9. 第2章 新手必须掌握的Linux命令

      第2章 新手必须掌握的Linux命令 章节简述: 本章节讲述系统内核.Bash解释器的关系与作用,教给读者如何正确的执行Linux命令以及常见排错方法. 经验丰富的运维人员可以恰当的组合命令与参数 ...

  10. Object-C与Swift混编

    1.在Object-C项目中调用Swift 1.1.创建一个Object-C project(项目名例如:YYDemo) 如下图 1.2.创建一个Swift Class,如下图 这里会显示是否需要创建 ...