技术开发站45793.com
UML-活动图
发布时间:
2024年01月14日
提示:大家可以参考我的
状态图
博客
UML-活动图
一、活动图的基本概念
1.开始状态和结束状态
2.动作状态和活动状态(活动)
3.分支与合并
4.分叉与合并
5.活动转换
(1)转移
(2)判定
6.泳道
二、活动图的例图练习
1.例题1
2.例题2
三、总结
一、活动图的基本概念
活动图是 UML 用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。
活动图本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。
活动图在用例图之后提供了系统分析种对系统的进一步充分描述。因此,活动图可以用来为用例建模工作流,更可以理解为用例图具体的细化。
活动图的主要元素:
1.开始状态和结束状态
一个活动图中只能有一个开始状态,但可以有多个结束状态。
2.动作状态和活动状态(活动)
活动图中的活动叫做活动状态。活动图中有活动状态和动作状态,动作状态是活动状态的特例。
对象的动作状态是活动图的最小单元的构造快,是指执行原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。
活动也称为动作状态(Action State),是活动图的核心符号,它表示工作流过程中命令的执行或活动的进行。
3.分支与合并
选择其中一种情况执行。
4.分叉与合并
分叉是用于将一个控制流分为两个或多个并发运行的分支。
汇合与分叉相反,代表两个或多个并发控制流同步发生,它将两个或多个并发控制流合并到一起,形成一个单向控制流。
5.活动转换
(1)转移
一个活动图有很多动作或者活动状态,活动图通常开始于初始状态,然后自动转换到活动图的第一个动作状态,一旦该状态的动作完成后,控制就会不加延迟地转换到下一个活动状态或者动作状态。所有活动之间的转换称为
转移
。转移不断重复进行,直到遇到一个分支或者终止状态为止。
转移用来显示从某个活动到另一个活动或状态的控制流。
转移的标记符是执行控制流方向的开放的箭头。
(2)判定
一个活动最终总是要到达某一个点,如果一个活动可能引起两个以上不同的不同路径,并且这些路径是互斥的,此时就需要使用
判断
来实现。
在 UML 中,判定有两种表示方式:
①从一个活动直接引出可能的多条路径。
②将活动转移到一个菱形图标,然后从这个菱形的图标再引出可能的路径。
注意:无论用那种方式,都必须在相关的路径附近指明标识执行该路径的条件,并且条件表达式要用中括号括起来。
6.泳道
元素的活动图将元素的行为顺序表现出来,但元素的行为并不是没有交互的,活动图种表现不出这种交互。
UML 使用泳道来解决不同元素的交互问题。泳道是一个有着头部的矩形区域,在泳道内部放置元素的行为和转移,一个泳道代表一组行为,指定了负责对象的一组行为。
泳道将活动图中的活动划分为若干个组,并把每一组指定给负责这组活动的人或事物,即与活动图交互的对象。
二、活动图的例图练习
1.例题1
销售合同签订后要进行信息核对。如果发现错误则终止合同;如果没有错误,则要核对货物清单确定是否有货;还要核对付款单确定对方是否已经付款,只有这两项都完成了,才可以发货。如果无货或者对方还没付款,也会终止合同。根据以上描述绘制一张活动图。
2.例题2
客户首先在查看和浏览商品,一旦确定要购买的物品后,就通知销售员。这时销售员为购买的物品,开出订单,并通知仓管员提取物品。仓管员则根据定单,提取货物,再把订单交给销售员。这时,顾客查看自己的订单,确认货物,而销售员则开始计算货款。一旦双方都完成后,顾客就付款,提货,销售员则将订单保存下来。
三、总结
活动图和状态图的区别:
状态图:用来描述
一个特定对象
的
所有可能状态
及其
引起状态转移的事件
。大多数面向对象技术都用状态图表示
单个对象在其生命周期中的行为
。一个状态图包括一系列的状态及状态之间的转移。
活动图:它既可用来描述操作的行为,也可以描述用例和对象内部的工作过程。活动图是由状态图变化而来的,它们各自用于不同的目的。活动图依据对象状态的变化来捕获动作与动作的结果。活动图中一个活动束后将立即进入下一个活动。
文章来源:https://blog.csdn.net/weixin_65032328/article/details/135585438
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!
最新文章
Python教程
深入理解 MySQL 中的 HAVING 关键字和聚合函数
Qt之QChar编码(1)
MyBatis入门基础篇
用Python脚本实现FFmpeg批量转换
【JAVA】volatile 关键字的作用
基于Java SSM框架实现列车火车高铁票务信息管理系统项目【项目源码+论文说明】
SpringBoot实现ENC密码加密
如何确定测试用例的优先级?5个方面
XUbuntu22.04之跨平台容器格式工具:MKVToolNix(二百零三)
nmap扫描和MS17-010(永恒之蓝)漏洞攻击
2024最详细的测试用例的设计方法及案例——骚操作
4.7 MEMORY AS A LIMITING FACTOR TO PARALLELISM
基于51单片机的恒温淋浴器控制电路设计
【docker】容器使用(Nginx 示例)