关注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活动图相关推荐

  1. uml活动图 各个功能的操作流程和分支_解析UML活动图的七大组成元素

    本文和大家重点讨论一下UML活动图的概念,UML活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流.UML活动图在本质上是一种流程图. UML ...

  2. uml活动图 各个功能的操作流程和分支_做软件架构设计,你不得不知道这些图...

    作为一名架构师,你设计的架构其实是要给很多人看的,包括公司领导.产品.开发.测试和运维,那么你该如何把你设计的架构展示给别人呢? 这就是Relax今天想跟大家聊的内容.大家还是不妨先花个两三分钟好好想 ...

  3. uml活动图 各个功能的操作流程和分支_UML建模更好的表达产品逻辑

    UML(UnifiedModeling Language,统一建模语言) 是一种在软件设计时提供给分析师.设计师和工程师之间的通用语言.UML在软件需求分析及整个产品生命周期中起着重要作用:一是有助于 ...

  4. uml活动图 各个功能的操作流程和分支_UML建模之活动图介绍(Activity Diagram)

    一.活动图的组成元素 Activity Diagram Element 1.活动状态图(Activity) 2.动作状态(Actions) 3.动作状态约束(Action Constraints) 4 ...

  5. uml活动图 各个功能的操作流程和分支_UML活动图介绍和用法图解

    本文概述 在UML中, 活动图用于演示系统内而不是实现内的控制流.它对并发和顺序活动进行建模. 活动图有助于设想从一个活动到另一个活动的工作流程.它强调了流动的条件和流动的顺序.流可以是顺序的, 分支 ...

  6. uml活动图 各个功能的操作流程和分支_UML学习系列教程08------九大基本图05---活动图(Activity Diagram)(重点理解和流程图的区别)...

    @活动图定义: 活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流. 活动图在本质上是一种流程图. 活动图与状态图都是状态机的表现形式,但是两 ...

  7. Solidworks二维图倒角功能的注意点

    Solidworks二维图倒角功能的注意点 记录Solidworks二维图倒角功能使用过程中遇到的问题 solidworks二维图在标注倒角功能时,需要注意一点,如下图1所示为一个一边有倒角的长方体, ...

  8. 织梦cms多图发布功能

    文章多图发布功能操作步骤 如果遇到上传图片报302 找到 include/userlogin.class.php 文件,在 第11行的 session_start(); 前面加上如下一段代码即可~ i ...

  9. 使用画图工具draw.io的嵌入模式实现uml图绘制功能的尝试(1)

    使用画图工具draw.io的嵌入模式实现uml图绘制功能的尝试(2) 使用画图工具draw.io的嵌入模式实现uml图绘制功能的尝试(3) 正在编写的本科毕设项目中要求实现绘制UML图的需求,我搜索了 ...

最新文章

  1. 站长如何短线操作实现盈利
  2. plsql developer 10注册码----亲测截止2017年5月6可用
  3. s3c6140 UART驱动设计
  4. 数据表格+弹出层的综合案例
  5. 修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全
  6. boost::locale::to_upper用法的测试程序
  7. 链表表示八进制加法c语言,用单链表实现八进制加法操作,恳请大家看看Add( )函数的问题...
  8. dota2比分网_红黑电竞比分横空出世 LPL夏季赛火热进行
  9. 【[SHOI2015]超能粒子炮·改】
  10. 程序员常用字体(vs2008字体修改方案)
  11. html toast 插件,基于Bootstrap4的Toast提示插件
  12. 中小微企业税务数据的指标分析
  13. dom块级元素的各种宽高
  14. python shell 方向键不可用
  15. JS实现PDF合并功能
  16. 数据分析36计(27):分析师与用户研究员,玩转定量研究和定性研究,落地研究结论...
  17. ARM芯片学习内容规划及ARM开发环境的搭建
  18. [MATLAB]matlab鼠标操作画两圆,做出两圆的公切线
  19. 一款界面友好的思维导图软件MindMaster
  20. 命令行下转换amr为mp3

热门文章

  1. vba的like和正则表达式
  2. 信号处理与数据分析——Z变换
  3. Internet Download Manager(IDM)网页下载浮动条不出现的问题记录
  4. 【图像分割】基于snake模型的图像分割matlab 源码
  5. 数字图像处理标准图像Lena的故事
  6. 从ST官网获取最新的标准外设库
  7. RxJava简单使用(Kotlin)
  8. 【Python数据分析基础-1】二元操作符(又全又清晰!)
  9. Domain Generalization by Solving Jigsaw Puzzles----论文翻译
  10. 经典广告语 广告语对话