[.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图
[.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活动图的更多相关文章
- [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图
[.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图 1.用例图简介 定义:用例图主要用来描述“用户.需求.系统功能单元”之间的关系. ...
- [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图
[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...
- UML——在Visual Studio 2013/2015中设计UML类图
1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...
- Visual Studio 2013 Preview 高清多图先睹为快
Visual Studio 2013 Preview已经发布.大家可以下载试用了哦: 选项加载明显比之前版本要快很多.
- 在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤
Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装 ...
- Visual Studio 2013/2015/2017快捷键(转)
英文原文:19 Must-Know Visual Studio Keyboard Shortcuts 项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = ...
- Visual Studio 2013/2015/2017快捷键(转载)
本文为转载文章,原文:[心存善念] [Fonour] 项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示 Solution Explorer(解 ...
- visual studio 2013 生成依赖项关系图出错
开始是说无法连接到sql服务器,我安装卸载localdb http://www.microsoft.com/zh-cn/download/details.aspx?id=29062 下载 CHS\x6 ...
- Visual Studio 2015中设计UML类图
1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...
随机推荐
- cocos2d-x 从win32到android移植的全套解决方案
引言:我们使用cocos2d-x引擎制作了一款飞行射击游戏,其中创新性地融入了手势识别功能.但是我们在移植过程中遇到了很多的问题,同时也发现网上的资料少而不全.所以在项目行将结束的时候,我们特地写了这 ...
- Sort Methods
heyheyhey ~~ It has been a long time since i come here again...whatever today i will summerize some ...
- LAMP_源码安装全教程
第一步:准备安装软件 httpd-2.4.7.tar.gz, apr-1.4.6.tar.gz, apr-util-1.4.1.tar.gz,mysql-5.5.tar.gz,php-5.4.tar. ...
- python求数字位数的方法
第一种:利用str()函数将数字转化成字符串,再利用len()函数判断位长. a=Int(raw_input("the number you want type in:") b=l ...
- JS冒泡排序(div)
更生动的排序动画. 通过改变div的高度来实现排序,通过闭包来实现for循环的睡眠时间. <!doctype html> <html lang="en"> ...
- C# DataGridView绑定数据源
第一种: DataSet ds=new DataSet (); ]; 第二种: DataTable dt=new DataTable(); this.dataGridView1.DataSource= ...
- C++Primer学习笔记(1)
序: 为了重新扎扎实实地再深入学习一遍C++,我选择了C++ Primer这本经典.又开了这个系列的随笔,用于记录学习过程中遇到的一些有趣的问题和心得.同时,也是想通过写随笔的方式督促自己不断进步,争 ...
- jQuery.lazyload
Lazy Load延迟加载也有的称为惰性加载,是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它 ...
- Codeforces Round #344 (Div. 2) A. Interview
//http://codeforces.com/contest/631/problem/Apackage codeforces344; import java.io.BufferedReader; i ...
- CentOS 7 学习笔记(一)时间管理
1 获取当前时间 [root@limt01 ~]# date 2015年 05月 22日 星期五 01:30:50 CST 2 获取当前日期 [root@limt01 ~]# date "+ ...