uml活动图 各个功能的操作流程和分支_软件工程专题:UML活动图
关注BeTester,学习更多知识
让碎片成体系,让测试更专业
1、概述
活动图(Activity Diagram),描述了活动的顺序,展现从一个活动到另一个活动的控制流,即活动图是一种流程图。活动图描述了业务实现用例的工作流程。活动图主要由活动和动作构成,也可以支持分支、迭代、并行。
在UML中,活动图主要用于计算性和组织性过程(即工作流)建模。实际上,在活动图引入到UML之初,是存在巨大争议的,因为活动图实际上描述的是业务流程,是一种过程化的分析方法,这让人担心面向过程的活动图对面向对象的类产生混乱。
但是,UML引入活动图是必须的,活动图的引入解决了业务目标过程化的描述。
活动最终可以细分成多个动作,动作是不可再分的步骤。
2、活动图元素
活动图有五部分:活动(Activity)、动作流(Action Flow)、分支(Branch)与合并(Merge)、分叉(Fork)和汇合(Join)、泳道(Swimlane)。
2.1 活动
活动表示某流程中的任务的执行,它可以表示算法过程中语句的执行。
2.2 动作流
所有动作状态之间的转换称之为动作流。
2.3 分支与合并
分支一般用于表示对象类所具有的条件行为。条件行为用分支和合并表达。
2.4 分叉与汇合
分叉可以用来描述并发线程。汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。
2.5 泳道
泳道将活动图中的活动分成了若干小组,并把每一组制定给负责这种活动的业务组织,通常为对象。泳道区分了负责活动的对象,明确地表示哪些活动是由哪些对象触发的。
每个活动只能明确地属于一个泳道,并且泳道要负责泳道内的全部活动。
泳道没有顺序,不同泳道中的活动既可以顺序进行,也可以并发进行,动作流和对象流都可以穿越分割线。
3、UML语法PlantUML中有新版和旧版活动图语法,本文以新版语法为准进行说明。
3.1 活动
活动以 冒号(:)开始,以分号(;)结束,中间可以是一行或多行文本内容。
@startuml
: Hello UML Activity(单行);
-> 箭头上的文本;
: Hello UML Activity Again(多行)
1. 多行文本内容。
2. 多行文本内容;
@enduml
3.2 开始/结束
在活动图中,使用start关键字表示开始,使用end关键字表示结束。
@startuml
start
: Hello UML Activity(单行);
: Hello UML Activity Again(多行)
1. 多行文本内容。
2. 多行文本内容;
end
@enduml
3.3 条件判断
UML中使用 if/then/elseif/else 来对判断进行设置,并且判断文案放到括号中。
3.3.1 单条件判断
直接使用if 、then 、else 来进行单条件判断,并且在UML图中展示时,会汇合成另一个条件判定(可忽略)。
@startuml
start
if (测试用例是否评审?) then (yes)
: 入库存档;
else (no)
: 进行测试用例评审;
endif
stop
@enduml
3.3.2 多条件判断
@startuml
title VIP等级判断
start
if (充值金额 > 5000) then (yes)
: 高级VIP逻辑处理活动;
stop
elseif (充值金额 > 500) then (yes)
: 普通VIP逻辑处理活动;
elseif (充值金额 > 50) then (yes)
: 穷逼VIP逻辑处理活动;
else (没有任何充值)
: 屌丝逻辑处理活动;
endif
stop
@enduml
3.4 循环
UML中有repeat和while循环,其关系与do/while 和 while 是一样的,repeat会先进入循环体,执行一次结束后再做判断,而while则会先进行判断是否满足进入循环体的条件。
3.4.1 repeat 循环
@startuml
title 测试设计流程
start
repeat
:第n个需求澄清;
:第n个需求分析;
:第n个需求进行测试设计;
repeat while (还有需求要做测试设计吗?)
stop
@enduml
3.4.2 while 循环
@startuml
title 测试设计流程
start
while (有需求要做测试设计吗?)
:第n个需求澄清;
:第n个需求分析;
:第n个需求进行测试设计;
endwhile
stop
@enduml
3.4 并行处理
使用 fork/fork again 进行并发处理
@startuml
title 开展性能测试
start
if (是否需要开展性能测试?) then (yes)
fork
: 功能测试;
fork again
: 回归测试;
fork again
: 探索性测试;
fork again
: 性能摸底测试;
end fork
else (不开展性能测试)
:回归测试;
:探索性测试;
endif
stop
@enduml
3.5 泳道
通过 |泳道名称| 来设置泳道,在需要对该泳道进行表述时,可以 |泳道名称| 进行泳道的切换。一个活动只能在一条泳道上,如果需要多个泳道同时处理,那么就需要使用并发。
@startuml
title 测试用例评审流程
|测试工程师|
start
: 测试用例评审邀请;
|#AntiqueWhite|开发工程师|
: 了解测试设计思路;
: 分析测试设计中的缺陷;
|测试工程师|
: 组织评审会议;
fork
|测试工程师|
: 概要阐述测试设计思路;
: 答疑;
fork again
|开发工程师|
: 提出会议前准备的问题;
end fork
|测试工程师|
: 根据评审意见进行用例修改;
stop
@enduml
4、小结
活动图是描述用例场景最为常见的图,与顺序图一样,都可以完成用例场景描述的工作,并且都能方便地进行角色职责的描述。
通常,我们都会使用活动图完成以下工作:对系统工作流程建模
对工程组织过程建模
对算法流程建模
在后续遇到涉及到流程相关的设计分析时,不妨试试活动图!
—— 更多文章 ——
uml活动图 各个功能的操作流程和分支_软件工程专题:UML活动图相关推荐
- uml活动图 各个功能的操作流程和分支_解析UML活动图的七大组成元素
本文和大家重点讨论一下UML活动图的概念,UML活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流.UML活动图在本质上是一种流程图. UML ...
- uml活动图 各个功能的操作流程和分支_做软件架构设计,你不得不知道这些图...
作为一名架构师,你设计的架构其实是要给很多人看的,包括公司领导.产品.开发.测试和运维,那么你该如何把你设计的架构展示给别人呢? 这就是Relax今天想跟大家聊的内容.大家还是不妨先花个两三分钟好好想 ...
- uml活动图 各个功能的操作流程和分支_UML建模更好的表达产品逻辑
UML(UnifiedModeling Language,统一建模语言) 是一种在软件设计时提供给分析师.设计师和工程师之间的通用语言.UML在软件需求分析及整个产品生命周期中起着重要作用:一是有助于 ...
- uml活动图 各个功能的操作流程和分支_UML建模之活动图介绍(Activity Diagram)
一.活动图的组成元素 Activity Diagram Element 1.活动状态图(Activity) 2.动作状态(Actions) 3.动作状态约束(Action Constraints) 4 ...
- uml活动图 各个功能的操作流程和分支_UML活动图介绍和用法图解
本文概述 在UML中, 活动图用于演示系统内而不是实现内的控制流.它对并发和顺序活动进行建模. 活动图有助于设想从一个活动到另一个活动的工作流程.它强调了流动的条件和流动的顺序.流可以是顺序的, 分支 ...
- uml活动图 各个功能的操作流程和分支_UML学习系列教程08------九大基本图05---活动图(Activity Diagram)(重点理解和流程图的区别)...
@活动图定义: 活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流. 活动图在本质上是一种流程图. 活动图与状态图都是状态机的表现形式,但是两 ...
- Solidworks二维图倒角功能的注意点
Solidworks二维图倒角功能的注意点 记录Solidworks二维图倒角功能使用过程中遇到的问题 solidworks二维图在标注倒角功能时,需要注意一点,如下图1所示为一个一边有倒角的长方体, ...
- 织梦cms多图发布功能
文章多图发布功能操作步骤 如果遇到上传图片报302 找到 include/userlogin.class.php 文件,在 第11行的 session_start(); 前面加上如下一段代码即可~ i ...
- 使用画图工具draw.io的嵌入模式实现uml图绘制功能的尝试(1)
使用画图工具draw.io的嵌入模式实现uml图绘制功能的尝试(2) 使用画图工具draw.io的嵌入模式实现uml图绘制功能的尝试(3) 正在编写的本科毕设项目中要求实现绘制UML图的需求,我搜索了 ...
最新文章
- 站长如何短线操作实现盈利
- plsql developer 10注册码----亲测截止2017年5月6可用
- s3c6140 UART驱动设计
- 数据表格+弹出层的综合案例
- 修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全
- boost::locale::to_upper用法的测试程序
- 链表表示八进制加法c语言,用单链表实现八进制加法操作,恳请大家看看Add( )函数的问题...
- dota2比分网_红黑电竞比分横空出世 LPL夏季赛火热进行
- 【[SHOI2015]超能粒子炮·改】
- 程序员常用字体(vs2008字体修改方案)
- html toast 插件,基于Bootstrap4的Toast提示插件
- 中小微企业税务数据的指标分析
- dom块级元素的各种宽高
- python shell 方向键不可用
- JS实现PDF合并功能
- 数据分析36计(27):分析师与用户研究员,玩转定量研究和定性研究,落地研究结论...
- ARM芯片学习内容规划及ARM开发环境的搭建
- [MATLAB]matlab鼠标操作画两圆,做出两圆的公切线
- 一款界面友好的思维导图软件MindMaster
- 命令行下转换amr为mp3