[.net 面向对象程序设计深刻](3)UML——在Visual Studio 2013/2015中设计UML活动图html
定义:是阐明了业务用例实现的工做流程。git
业务工做流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工做。github
业务用例由一系列活动组成,它们共同为业务主角生成某些工件。编程
工做流程一般包括一个基本工做流程和一个或多个备选工做流程。并发
工做流程的结构使用活动图来进行说明。 post
活动图在本质上是一种流程图。活动图着重表现从一个活动到另外一个活动的控制流,是内部处理驱动的流程。spa
类型:动态图 .net
应用:需求分析阶段设计
在VS 2013/2015中有如下17种活动图元素:3d
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.1 单线控制流(Simple Control Flow)
下面单线控制流中,地铁若是选错线路,能够经过节点再进行一次重选
3.2 并行流(Concurrent Flows)
如下是一个从建立订单开始,费用支付和接收支付是一个信号发送行为和接收事件,另外一分支处理订单发货操做,两个并发分支完成后联接,完成订单。
3.3 数据流(Data Flows)
软件设计中对于需求分析的重要性是毋庸置疑的,不论采用什么样的设计思想,都须要比较周密的需求分析,进而造成书面的文档。在文档编写过程当中,活动图比起文字描述具备更直观的表现。使用UML活动图能让其余人更快的读懂的你的设计意图,更快速的理解你的业务控制流程。
Git下载:https://github.com/yubinfeng/BlogExamples
==============================================================================================
<若是对你有帮助,记得点一下推荐哦,若有有不明白或错误之处,请多交流>
<对本系列文章阅读有困难的朋友,请先看 《.net 面向对象编程基础》 和 《.net 面向对象程序设计进阶》 >
<转载声明:技术须要共享精神,欢迎转载本博客中的文章,但请注明版权及URL>
==============================================================================================