活动图高阶讲解-06

31
00:01:52,300 --> 00:02:04,300
刚才讲了,活动里面是动作

32
00:02:04,300 --> 00:02:06,300
这个动作

33
00:02:06,300 --> 00:02:09,300
就可以看作活动的一个

34
00:02:09,300 --> 00:02:13,300
里面的实现的一个行为了

35
00:02:16,300 --> 00:02:20,300
在UML的参考手册书里面

36
00:02:20,300 --> 00:02:23,300
强调动作是原子的行为

37
00:02:23,300 --> 00:02:31,300
这个原子怎么理解

38
00:02:31,300 --> 00:02:33,300
按道理来说,理论上

39
00:02:33,300 --> 00:02:36,300
你可以无限拆分的

40
00:02:36,300 --> 00:02:40,300


41
00:02:40,300 --> 00:02:42,300
比如说

42
00:02:44,300 --> 00:02:49,300
我要给你一个参数

43
00:02:49,300 --> 00:02:51,300
比如说,就给你一个字符串

44
00:02:51,300 --> 00:02:54,300
你给我统计这个字符串

45
00:02:54,300 --> 00:02:57,300
有多少个字符,就这么简单

46
00:02:57,300 --> 00:02:58,300
你说这是原子的

47
00:02:58,300 --> 00:03:00,300
但实际上也不是原子的

48
00:03:00,300 --> 00:03:03,300
这里面

49
00:03:03,300 --> 00:03:07,300
它里面也有一大坨实现的代码

50
00:03:07,300 --> 00:03:10,300
你要对这里面还可以再分

51
00:03:12,300 --> 00:03:15,300
你分到后面还可以再分

52
00:03:15,300 --> 00:03:18,300
因为高级语言的一句话

53
00:03:18,300 --> 00:03:22,300
高级语言里面可能就一句话

54
00:03:22,300 --> 00:03:24,300
但实际上你要

55
00:03:24,300 --> 00:03:27,300
用汇编什么的表达

56
00:03:27,300 --> 00:03:29,300
可能怎么样

57
00:03:29,300 --> 00:03:31,300
它还可以再分

58
00:03:31,300 --> 00:03:34,300
理论上可以不断分下去

59
00:03:34,300 --> 00:03:36,300
但是为什么我们叫原子的

60
00:03:36,300 --> 00:03:40,300
在活动的上下文里面

61
00:03:40,300 --> 00:03:44,300
我们对它内部细节不感兴趣了

62
00:03:44,300 --> 00:03:50,300
所以它在我们的活动里面是原子的

63
00:03:50,300 --> 00:03:52,300
不感兴趣

64
00:03:52,300 --> 00:03:54,300
并不代表它里面不能再分了

65
00:03:54,300 --> 00:03:56,300
而是说它对我们的活动来说

66
00:03:56,300 --> 00:03:58,300
是原子的

67
00:03:58,300 --> 00:04:00,300
所以

68
00:04:00,300 --> 00:04:06,300
活动图上面里面有原子动作

69
00:04:06,300 --> 00:04:09,300
就直接在工具栏里面

70
00:04:09,300 --> 00:04:11,300
从工具箱里面放一个动作

71
00:04:11,300 --> 00:04:12,300
直接给它命名

72
00:04:12,300 --> 00:04:14,300
第二种是调用的动作

73
00:04:14,300 --> 00:04:17,300
就是有定义好的活动

74
00:04:17,300 --> 00:04:18,300
然后

75
00:04:18,300 --> 00:04:23,300
把它拖上来变成调用的动作

76
00:04:23,300 --> 00:04:28,300
我们建议尽量不用

77
00:04:28,300 --> 00:04:30,300
原子动作

78
00:04:30,300 --> 00:04:34,300
所有的,我们一律建模成活动

79
00:04:34,300 --> 00:04:38,300
不管大是小

80
00:04:38,300 --> 00:04:41,300
因为你没有办法判断它是大是小

81
00:04:41,300 --> 00:04:43,300
你认为是小的

82
00:04:43,300 --> 00:04:45,300
你本来认为是原子的

83
00:04:45,300 --> 00:04:47,300
后面你发现可能还要分解

84
00:04:47,300 --> 00:04:54,300
或者在这个项目的范围需要

85
00:04:54,300 --> 00:04:56,300
还可以再分解

86
00:04:56,300 --> 00:04:58,300
那怎么办呢

87
00:04:58,300 --> 00:05:02,300
那还不如就直接定义成活动

88
00:05:02,300 --> 00:05:04,300
把它拖上来

89
00:05:04,300 --> 00:05:06,300
然后你需要分解的时候

90
00:05:06,300 --> 00:05:08,300
在这个活动下面你再分解

91
00:05:08,300 --> 00:05:14,300
所以我们尽量就直接变成活动

92
00:05:14,300 --> 00:05:16,300
所以你看刚才我们那个SysML

93
00:05:16,300 --> 00:05:19,300
里面就把

94
00:05:19,300 --> 00:05:21,300
这个

95
00:05:21,300 --> 00:05:26,300
活动就把删掉了

96
00:05:26,300 --> 00:05:27,300
就改成什么

97
00:05:27,300 --> 00:05:29,300
动作的定义

98
00:05:29,300 --> 00:05:33,300
而动作就变成了活动的实例

99
00:05:35,300 --> 00:05:36,300
这两个留一个就行了

100
00:05:36,300 --> 00:05:38,300
不需要两个词

101
00:05:38,300 --> 00:05:41,300
要么留动作、动作定义

102
00:05:41,300 --> 00:05:44,300
把活动改成动作定义

103
00:05:44,300 --> 00:05:45,300
要么就活动

104
00:05:45,300 --> 00:05:46,300
活动实例

105
00:05:46,300 --> 00:05:49,300
动作就不要

106
00:05:49,300 --> 00:05:53,300
这样的话就少一个词

107
00:05:53,300 --> 00:05:54,300
我们说伪创新

108
00:05:54,300 --> 00:05:57,300
我经常批评伪创新喜欢造词

109
00:05:57,300 --> 00:05:59,300
那么SysML

110
00:05:59,300 --> 00:06:01,300
这一次的话应该是

111
00:06:01,300 --> 00:06:04,300
把这个往正确的方向

112
00:06:04,300 --> 00:06:06,300
走了一步

113
00:06:06,300 --> 00:06:08,300
把这个词减下来

114
00:06:08,300 --> 00:06:10,300
动作定义

115
00:06:10,300 --> 00:06:13,300
所以它们之间可以看作是

116
00:06:13,300 --> 00:06:15,300
定义和实例的关系

117
00:06:15,300 --> 00:06:18,300
而这一点的话

118
00:06:18,300 --> 00:06:20,300
之前的UML

119
00:06:20,300 --> 00:06:22,300
的1.x的时候

120
00:06:22,300 --> 00:06:23,300
它没有分的

121
00:06:23,300 --> 00:06:26,300
直接活动,活动下面套活动

122
00:06:26,300 --> 00:06:28,300
活动下面套

123
00:06:28,300 --> 00:06:29,300
到最后

124
00:06:29,300 --> 00:06:31,300
说最小的叫动作

125
00:06:33,300 --> 00:06:34,300
这个

126
00:06:34,300 --> 00:06:38,300
虽然说这个词汇上

127
00:06:38,300 --> 00:06:39,300
多了

128
00:06:39,300 --> 00:06:41,300
这是一个问题

129
00:06:41,300 --> 00:06:43,300
但另外还有一个问题

130
00:06:43,300 --> 00:06:44,300
就是说

131
00:06:44,300 --> 00:06:48,300
它把这个调用和定义

132
00:06:48,300 --> 00:06:50,300
或者实例和定义

133
00:06:50,300 --> 00:06:52,300
把它给混淆了

134
00:06:52,300 --> 00:06:56,300
那混淆的话有什么后果

135
00:06:56,300 --> 00:06:58,300
比如说,我们要表达一个这样的

136
00:06:58,300 --> 00:06:59,300
比如说

137
00:06:59,300 --> 00:07:02,300
假设要表达这样一个过程

138
00:07:02,300 --> 00:07:04,300
比如说

139
00:07:04,300 --> 00:07:05,300
这里先做A

140
00:07:05,300 --> 00:07:06,300
对吧

141
00:07:06,300 --> 00:07:08,300
A之后,做一个判断

142
00:07:08,300 --> 00:07:10,300
如果判断是这样的条件的话

143
00:07:10,300 --> 00:07:11,300
就做B

144
00:07:11,300 --> 00:07:12,300
C、D

145
00:07:12,300 --> 00:07:13,300
如果是这样

146
00:07:13,300 --> 00:07:15,300
就做E、C、F

147
00:07:15,300 --> 00:07:19,300
那你看这里出现了

148
00:07:19,300 --> 00:07:20,300
两个C

149
00:07:20,300 --> 00:07:24,300
这里出现两个C

150
00:07:24,300 --> 00:07:25,300
这一个C

151
00:07:25,300 --> 00:07:26,300
这一个C

152
00:07:26,300 --> 00:07:30,300


153
00:07:32,300 --> 00:07:35,300
假设我们没有办法区分的话

154
00:07:35,300 --> 00:07:39,300
直接用活动本身的定义的话

155
00:07:39,300 --> 00:07:43,300
那么我们就得指向E

156
00:07:43,300 --> 00:07:44,300
然后又指向C

157
00:07:44,300 --> 00:07:46,300
对吧

158
00:07:46,300 --> 00:07:48,300
因为你不能有两个

159
00:07:48,300 --> 00:07:49,300
那指向C之后呢

160
00:07:49,300 --> 00:07:50,300
你还得做一个判断

161
00:07:50,300 --> 00:07:53,300
因为下一步是D还是 F

162
00:07:53,300 --> 00:07:56,300
还要做一个判断

163
00:07:56,300 --> 00:07:58,300
这里再判断这个地方

164
00:07:59,300 --> 00:08:01,300
还得在这里再来一个判断

165
00:08:01,300 --> 00:08:03,300
来决定是D还是F

166
00:08:03,300 --> 00:08:08,300
那现在的话

167
00:08:08,300 --> 00:08:10,300
就相当于把这个实例

168
00:08:10,300 --> 00:08:13,300
把它放进来

169
00:08:13,300 --> 00:08:16,300
你就直接把实例放这里就可以了

170
00:08:16,300 --> 00:08:21,300
相当于C有两个实例

171
00:08:21,300 --> 00:08:24,300
在同一个活动里面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/753009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue项目跳转html页面

1. 把html页面以及相关文件放到public文件夹下(目的和index.html同级) 2.在vue项目中正常写跳转事件,只是路径写法需要注意

【理解指针(三)】

文章目录 一、数组名的理解(1)数组的地址与数组首元素地址的区别 二、使用指针访问数组(1)一维数组传参的本质 三、冒泡排序(1)什么是冒泡排序(2)写冒泡排序 四、结束语 一、数组名的…

堆排序(向下调整法,向上调整法详解)

目录 一、 二叉树的顺序结构 二、 堆的概念及结构 三、数组存储、顺序存储的规律 此处可能会有疑问,左右孩子的父节点计算为什么可以归纳为一个结论了? 四、大小堆解释 五、大小堆的实现(向上和向下调整法) 5.11向上调整法…

Unity Timeline学习笔记(1) - 创建TL和添加动画片段

Timeline在刚出的时候学习了一下,但是因为一些原因一直都没用在工作中使用。 版本也迭代了很久不用都不会用了,抽时间回顾和复习一下,做一个笔记后面可以翻出来看。 创建Timeline 首先我们创建一个场景,放入一个Plane地板&#…

Linux操作系统-08-常用的网络相关命令

1、ping命令 在linux下ping的话会一直ping下去,在windows下的话它会只ping四次就结束, [rootbastion ~]# ping 192.168.0.102 PING 192.168.0.102 (192.168.0.102) 56(84) bytes of data. 64 bytes from 192.168.0.102: icmp_seq1 ttl64 time0.571 ms…

Linux - 线程互斥和互斥锁

文章目录 前言一、为什么要线程互斥原子性 二、互斥锁互斥锁的创建与销毁互斥锁进行互斥 前言 前几节课,我们学习了多线程的基础概念,这节课,我们来对线程互斥和互斥锁的内容进行学习。 一、为什么要线程互斥 首先我们要明白,对…

悲观锁(Pessimistic Locking)是一种数据库锁定机制

悲观锁(Pessimistic Locking)是一种数据库锁定机制,用于防止多个事务同时修改同一数据记录。以下是关于悲观锁的一些详细信息: 锁定数据:当事务对一条记录进行操作时,悲观锁会阻止其他事务对这条记录进行修…

Matplotlib数据可视化实战-1数据可视化Matplotlib基础

1.1绘图的一般过程: 1.导入相关库 2.生成、读入或计算得到数据; 3.根据需要绘制折线图、散点图、柱状图、饼状图、雷达图、箱线图、三维曲线/曲面以及极坐标系图形; 4.根据需要设置图形属性; 5.显示或保存绘图结果。 例如&…

c语言大小写字母的转换

通过ascll码表我们可以知道大写字母与小写字母相差32个数&#xff08;小写字母比大写字母大&#xff09;。因此&#xff0c;通过相加减32即可转换大小写字母。 #include <stdio.h>int main() {char ch c;char CH A;printf("%c\n", ch - 32);printf("%c…

计算机网络实验——学习记录

1. tun/tap模块&#xff1a;为Linux系统提供网络虚拟功能&#xff0c;tun位于网络OSI模型的三层&#xff08;网络层&#xff09;&#xff0c;tap位于网络的二层&#xff08;数据链路层&#xff09;。 1.1 验证是否包含tun/tap模块&#xff1a;modinfo tun&#xff1b; 1.2 验…

Python进程与线程开发

目录 multiprocessing模块 线程的开发 threading模块 setDaemon 死锁 线程间的通信 multiprocessing模块 运行python的时候&#xff0c;我们都是在创建并运行一个进程&#xff0c;(linux中一个进程可以fork一个子进程&#xff0c;并让这个子进程exec另外一个程序)。在pyt…

全局路径规划算法 - 动态规划算法Python实现

参考博客&#xff1a; &#xff08;1&#xff09;算法数据结构——动态规划算法&#xff08;Dynamic Programming&#xff09;超详细总结加应用案例讲解 &#xff08;2&#xff09;【路径规划】全局路径规划算法——动态规划算法&#xff08;含python实现&#xff09; &#xf…

【上交主办·EI会议】| 2024年模式分析与机器智能国际会议 (ICPAMI 2024)

会议简介 Brief Introduction 2024年模式分析与机器智能国际会议(ICPAMI 2024) 会议时间&#xff1a;2024年8月30日-9月1日 召开地点&#xff1a;中国上海 大会官网&#xff1a;www.icpami.org ICPAMI 2024将围绕“模式分析与机器智能”的最新研究领域展开&#xff0c;为研究人…

(零)OpenOFDM接收端整体思路

一旦捕获射频信号并将其下变频至基带&#xff0c;解码管道就会启动&#xff0c;包括&#xff1a; OFDM&#xff0c;多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力&#xff0c;能够支持多用户接入。 OFDM主要思想是&#xff1a;将信…

Finding the Majority Element寻找主元素

Problem Is there the majority element in sequence A [1.. n]? If so, please find it out. An integer a in A is called the majority if it appears more than [n/2] times in A.寻找元素出现次数大于n/2 Algorithm 1 —— The brute-force method 遍历序列中的每个元…

物联网数据驾驶舱

在信息化时代&#xff0c;数据已经成为驱动企业发展的核心动力。特别是在物联网领域&#xff0c;海量数据的实时采集、分析和监控&#xff0c;对于企业的运营决策和业务优化具有至关重要的作用。HiWoo Cloud作为领先的物联网云平台&#xff0c;其数据监控功能以“物联网数据驾驶…

Docker常见指令

1.docker search mysql &#xff1a;从docker镜像仓库搜索和mysql有关的镜像 docker search mysql 2.docker pull mysql &#xff1a;从docker仓库拉取mysql镜像 docker pull mysql 3.docker run mysql &#xff1a;启动mysql镜像 docker run mysql 4.docker ps &#xff…

工业母机5G智能制造工厂数字孪生可视化平台,推进行业数字化转型

随着科技的不断进步和工业的快速发展&#xff0c;数字化转型已成为工业领域的重要趋势。工业母机作为制造业的核心设备&#xff0c;其智能化、自动化水平的提升对于整个工业的发展具有重要意义。5G技术的广泛应用&#xff0c;为智能制造工厂提供了更为可靠、高速的网络连接&…

OSError: We couldn‘t connect to ‘https://huggingface.co‘ to load this file

想折腾bert的同学&#xff0c;应该也遇到这个问题。 一、报错信息分析 完整报错信息&#xff1a;OSError: We couldnt connect to https://huggingface.co to load this file, couldnt find it in the cached files and it looks like google/mt5-small is not the path to a…

力扣刷题Days20-151. 反转字符串中的单词(js)

目录 1,题目 2&#xff0c;代码 1&#xff0c;利用js函数 2&#xff0c;双指针 3&#xff0c;双指针加队列 3&#xff0c;学习与总结 1&#xff0c;正则表达式 / \s /&#xff1a; 2&#xff0c;结合使用 split 和正则表达式&#xff1a; 1,题目 给你一个字符串 s &am…