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

.net 面向对象程序设计深入](3)UML的更多相关文章

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

    [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图 1.活动图简介 定义:是阐明了业务用例实现的工作流程. 业务工作流程说明了业务为向 ...

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

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

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

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

  4. .net 面向对象程序设计深入](1)UML

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

  5. 面向对象程序设计第四单元总结(UML系列)

    2019面向对象程序设计第四单元总结 前言 ​ 本单元是面向对象程序设计课程的最后一个单元了,本单元是和UML模型相关,也就是说,我们需要正确理解UML模型的基础上,对构建出的UML模型进行解析,但是 ...

  6. UML与面向对象程序设计原则

    [实验任务一]:UML复习 阅读教材第一章复习UML,回答下述问题: 面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明. 1.  关联关系 (1)  双向关联 (2)  单向关联 (3)  ...

  7. [.net 面向对象程序设计深入](0) 开篇

    [.net 面向对象程序设计深入](0)开篇        [.net 面向对象编程基础]和 [.net 面向对象程序设计进阶]在15年底写完了,群里也加进来不少热爱学习的小伙伴.让我深切感受到在这个 ...

  8. [.net 面向对象程序设计进阶] (28) 结束语——告别2015

    [.net 面向对象程序设计进阶] (28) 结束语——告别2015 <.net面向对象程序设计进阶>这一系列文章写了太长的时间了,大概有半年没写,在年底又一口气写了好几篇.在整个过程中目 ...

  9. 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  10. 20145212《Java程序设计》实验报告二 《 Java面向对象程序设计》

    20145212 实验二< Java面向对象程序设计> 实验内容 单元测试 三种代码 伪代码 百分制转五分制: 如果成绩小于60,转成"不及格" 如果成绩在60与70之 ...

随机推荐

  1. cucumber & selenium & bddtest

    目录 1.Cucumber介绍 refer link: 2.使用步骤 2.1 引入依赖 2.2新建test.future文件 2.3在resource目录下创建cucumber.bat,执行bat,c ...

  2. 2019.04.18 读书笔记 深入string

    整个.net中,最特殊的就是string类型了,它有着引用类型的特性,又有着值类型的操作方式,最特殊的是,它还有字符串池,一个字符串只会有一个实例(等下就推翻!). 鉴于之前的<==与Equal ...

  3. 每一次要fix的pr

    1.TODO一定要加自己名字 2.写代码考虑别人的阅读,比如event这样很general的名字不要用,所以不用from sqlalchemy import event, 要用import sqlal ...

  4. 如何使一个div能够铺满整个页面? && 模态框的制作 && outerHTML

    说明: 使用 ele.outerHTML = '' 这样的方法可以很容易的清除一个元素. 当然也可以使用parent.removeChild() ,但是相较而言,还是使用 outerHTML = '' ...

  5. 设置MySQL字符集utf8

    1.修改mysql 配置文件my.cnf 标签[mysqld]下添加即可 character-set-server = utf8 2.创建数据库时设置字符集 create database db_na ...

  6. 查看修复HDFS中丢失的块

    检测缺失块 hdfs fsck -list-corruptfileblocks hdfs fsck / | egrep -v '^\.+$' | grep -v eplica 查看上面某一个文件的情况 ...

  7. js中的闭包理解一

    闭包是一个比较抽象的概念,尤其是对js新手来说.书上的解释实在是比较晦涩,对我来说也是一样. 但是他也是js能力提升中无法绕过的一环,几乎每次面试必问的问题,因为在回答的时候.你的答案的深度,对术语的 ...

  8. RequireJs使用快速入门

    前言:Requirejs作为一个ES5环境流行的模块加载器,在很多项目中使用它.而且这个开源库任然在更新,同类产品seajs已经不更新了. ES6之后引入import 或者使用Commonjs的方式引 ...

  9. 【eclipse安装黑色主题】

    eclipse Luna Service Release 2 (4.4.2)版本的自带了黑色的主题,切换下即可: 切换主题以后还需要修改下字体的主题: http://www.eclipsecolort ...

  10. Firebird Internal Function

    火鸟自定义内置函数,方便.强大. 特点:只可以返回单值,不能返回多行. 若想返回多行table,可以定义存储过程 Procedure,用suspend返回. 自定义内置函数,示例:返回当前批次号. c ...