查看原文
其他

[中英字幕]EA使用SysML和Simulink的数字电子学仿真

潘加宇 UMLChina 2024-03-10
DDD领域驱动设计批评文集>>
《软件方法》强化自测题集>>
《软件方法》各章合集>>

本文只提供字幕文件!
步骤1:
在SparxSystems官网下载教学视频和案例模型
https://sparxsystems.com/resources/webinar/release/ea152/simulation/matlab/introduction/matlab-digital.mp4
https://sparxsystems.com/resources/webinar/release/ea152/simulation/matlab/introduction/matlab-digital.feap
https://sparxsystems.com/resources/webinar/release/ea152/simulation/matlab/introduction/index.html
步骤2:
在UMLChina下载字幕文件
http://www.umlchina.com/tools/matlab-digital.srt
字幕文件内容由UMLChina记录并翻译
步骤3:
把字幕文件matlab-digital.srt和视频文件matlab-digital.mp4放在同一文件夹下
步骤4:
用支持字幕的播放器播放视频,例如VLC Player,不要用Windows自带的播放器。

0
00:00:00,010 --> 00:00:00,462
Hello<br>大家好

1
00:00:00,462 --> 00:00:02,951
this is Dermot O'Bryan from SparxSystems<br>我是SparxSystems的Dermot O'Bryan

2
00:00:02,951 --> 00:00:04,308
in this demonstration<br>在这个演示中【本中英字幕由UMLChina整理翻译】

3
00:00:04,308 --> 00:00:10,870
we will run over using the latest SysML options for simulating a digital electronic example in Simulink.<br>我们演示使用最新的SysML选项来仿真一个Simulink中的数字电路的例子。 

4
00:00:11,210 --> 00:00:18,612
We'll use the new SysPhS modeling to reference components that are defined in Simulink. <br>我们将使用新的SysPhS建模来引用Simulink中已定义的组件。

5
00:00:18,612 --> 00:00:23,136
For a quick overview of this topic, we'll firstly have a broad look at setting up a digital model for Simulink, <br>为了快速了解本主题的概要,我们首先大致看看如何为Simulink设置一个数字模型,

6
00:00:23,136 --> 00:00:28,894
then we'll look at using SysPhS patterns for creating predefined Simulink blocks. <br>然后使用SysPhS模式来创建预定义的Simulink块。

7
00:00:28,894 --> 00:00:31,567
In this exercise, we will use some predefined Simulink components, <br>在这个练习中,我们将使用一些预定义的Simulink组件,

8
00:00:31,567 --> 00:00:37,325
 so we'll look at how to model complex Simulink components in Enterprise Architect using SysPhS, <br>因此,我们会看看如何在Enterprise Architect使用SysPhS建模复杂的Simulink组件。

9
00:00:37,325 --> 00:00:41,437
then we will generate our Simulink model and run a simulation from this, <br>然后,我们生成Simulink模型,运行它的仿真,

10
00:00:41,437 --> 00:00:42,054
and finally<br>最后

11
00:00:42,054 --> 00:00:46,990
we're looking to options for debugging any issue in the generated Simulink script <br>我们来看看调试所生成的Simulink脚本中问题的选项。

12
00:00:47,420 --> 00:00:48,295
for this example<br>本例中

13
00:00:48,295 --> 00:00:52,014
we are modeling a simple binary counter using flip flops<br>我们建模一个使用触发器的简单的二进制计数器

14
00:00:52,014 --> 00:00:56,828
but we will use it to provide a number of divisions of a clock frequency<br>但我们用它来提供时钟分频

15
00:00:56,828 --> 00:00:59,891
this type of frequency division was common inside<br>通俗一点说,这种类型的分频

16
00:00:59,891 --> 00:01:06,236
an early microprocessor where we had options for setting fast and slow clock speeds for the processor<br>在早期的微处理器很常见,可以用于设置处理器的时钟速度快慢

17
00:01:06,236 --> 00:01:16,300
so all we use is a digital square wave clock as an input and see how in our simulation in Simulink. <br>因此,我们使用一个数字方波时钟作为输入,看看Simulink中的仿真。

18
00:01:16,300 --> 00:01:18,270
the frequency output from each of the flip flops in the series hieressing the initial clock frequency <br>序列中每个触发器频率输出继承初始的时钟频率

19
00:01:18,810 --> 00:01:21,810
before we start creating diagrams and elements<br>在开始创建图形和元素之前

20
00:01:21,810 --> 00:01:22,810
we first of all<br>我们首先

21
00:01:22,810 --> 00:01:24,610
set our perspective to SysML <br>设置SysML的perspective

22
00:01:25,020 --> 00:01:32,950
this opens the model wizard. from this we can access some SysPhS foundation packages that we need to reference in the model <br>这里打开建模指南。从这里,我们可以访问一些需要在模型中引用的SysPhS基础包

23
00:01:33,970 --> 00:01:36,820
it is best to create a package to hold both<br>最好创建一个包来容纳它们

24
00:01:37,120 --> 00:01:41,114
Then select SysPhS and load the two libraries into the package in the browser <br>然后选择SysPhS,加载两个库到项目浏览器中的包

25
00:01:41,114 --> 00:01:41,780


26
00:01:42,900 --> 00:01:45,480
now let's create a block definition diagram <br>现在,创建一个块定义图

27
00:01:49,320 --> 00:01:54,223
for the simulation we need to set up a reference to the SysPhS library<br>为了仿真,需要设置到SysPhS库的引用

28
00:01:54,223 --> 00:01:57,410
so we drag this library package onto the diagram <br>因此,把这个库的包拖到图上【本中英字幕由UMLChina整理翻译】

29
00:01:57,770 --> 00:02:02,630
we first set the package boundary on the block definition diagram to selectable <br>我们首先设置块定义图的包边界为selectable

30
00:02:05,380 --> 00:02:07,610
then from the package toolbox <br>然后,从包的工具箱

31
00:02:08,720 --> 00:02:13,260
we can create an import connector to reference the SysPhS packages <br>我们可以创建一个import连接器来引用该SysPhS包

32
00:02:18,450 --> 00:02:20,684
in terms of blocks for our model<br>针对模型中的块

33
00:02:20,684 --> 00:02:22,696
let's start with a simplest<br>我们先从最简单的开始

34
00:02:22,696 --> 00:02:28,730
there is a SysPhS block for a Simulink constant that we use for setting a logical true state <br>这是一个SysPhS块,表达一个用于设置逻辑真状态的Simulink常数

35
00:02:29,010 --> 00:02:31,670
this can be accessed from the SysPhS patterns <br>这可以从SysPhS模式访问

36
00:02:37,860 --> 00:02:41,070
And the Sources and sinks, and the Constant <br>选Sources and sinks和Constant

37
00:02:46,500 --> 00:02:51,050
now all we want is a logical clock to get a digital pulse signal <br>现在我们需要一个逻辑时钟,以获得一个数字脉冲信号

38
00:02:51,560 --> 00:02:55,860
we select the SysPhS toolbox and drag on a Simulink Block <br>我们选择SysPhS工具箱,拖上来一个Simulink Block

39
00:02:57,230 --> 00:03:00,090
then we need to create another block for our flip flop <br>然后,需要为触发器创建另一个块

40
00:03:05,360 --> 00:03:08,740
All we want is a reference to a Simulink digital clock <br>需要引用到Simulink的数字时钟

41
00:03:09,020 --> 00:03:12,770
so let's get the correct Simulink path for a digital clock <br>因此,先要取得正确的Simulink数字时钟路径

42
00:03:13,130 --> 00:03:15,470
this being a Simulink component<br>既然这是一个Simulink组件

43
00:03:15,470 --> 00:03:18,280
we find it in the Simulink Library Browser <br>可以在Simulink Library Browser里找

44
00:03:18,590 --> 00:03:22,224
you can see this under the Simulink Extras/Flip Flops <br>在Simulink Extras/Flip Flops下面

45
00:03:22,224 --> 00:03:22,830


46
00:03:23,570 --> 00:03:27,371
we open the parameters dialogue and work out the path<br>打开参数对话框,找到其路径



47
00:03:27,371 --> 00:03:30,630
this can be accessed using CTRL+L <br>可以用CTRL+L来访问

48
00:03:36,550 --> 00:03:37,515
in this case<br>本例中

49
00:03:37,515 --> 00:03:42,344
it is simulink_extras/Flip Flops/Clock<br>就是simulink_extras/Flip Flops/Clock

50
00:03:42,344 --> 00:03:43,310


51
00:03:44,020 --> 00:03:47,450
then we input that in the block in the SimulinkBlock name <br>然后我们把它输入到SimulinkBlock的名称中

52
00:03:59,320 --> 00:04:04,302
the earlier clock component that we need to use is also predefined in Simulink<br>之前需要使用的时钟组件也是在Simulink中预定义

53
00:04:04,302 --> 00:04:05,797
that is a flip flop<br>是一个触发器

54
00:04:05,797 --> 00:04:06,296


55
00:04:06,296 --> 00:04:08,040
Again, we get the path from Simulink <br>一样,我们从Simulink获得路径

56
00:04:08,450 --> 00:04:14,330
replaces in the name field on the flip flop block under the hitting SimulinkBlock <br>替换当前所点击的SimulinkBlock的名称栏

57
00:04:20,820 --> 00:04:28,435
the Simulink digital clock has one key parameter that we need to define as a PhS constant on the block<br> Simulink数字时钟有一个关键参数,我们需要定义为块上的PhS常数

58
00:04:28,435 --> 00:04:30,720
this is period and it's of type time<br>该参数是时间周期,类型是时间

59
00:04:30,720 --> 00:04:32,750
which is in seconds<br>以秒为单位

60
00:04:32,750 --> 00:04:34,781
for this, we drag from the SysPhS toolbox a Simulink Parameter<br>因此,我们从SysPhS工具箱拖上来一个Simulink Parameter

61
00:04:34,781 --> 00:04:36,558


62
00:04:36,558 --> 00:04:37,320
we name it Period<br>命名为Period

63
00:04:41,360 --> 00:04:42,994
for the Period's type which is time <br>因为Period的类型为时间

64
00:04:42,994 --> 00:04:49,260
use CTRL+L to set the classifier to Time in the SysPhS library <br>使用CTRL+L设置类元为SysPhS库中的Time

65
00:04:55,320 --> 00:04:58,860
for the time we can set this as a constant to 2<br>时间可以设置为一个常数2

66
00:04:58,860 --> 00:04:59,618


67
00:04:59,618 --> 00:05:00,630
for example half a HZ<br>例如,半HZ

68
00:05:00,630 --> 00:05:02,400
a period of 2 seconds<br>2秒的周期

69
00:05:02,400 --> 00:05:05,940
the first second is true the next second false or 0 <br>第1秒为真,下一秒为假或0

70
00:05:06,220 --> 00:05:08,178
it also needs an output port<br>也需要一个输出端口

71
00:05:08,178 --> 00:05:12,340
this will need to be a port of type BooleanOutSignalElement <br>端口类型为BooleanOutSignalElement

72
00:05:12,620 --> 00:05:16,030
so we drag this from our package reference under the block <br>因此,我们从引用的包中把这个拖到块的下方

73
00:05:21,690 --> 00:05:23,760
then we name it as y <br>命名为y

74
00:05:26,990 --> 00:05:36,568
for the flip flop in Simulink, it has ports J K Q and CLK, so we need to set them up. <br> Simulink中的触发器有端口J、K、Q和CLK,因此我们需要设置它们

75
00:05:36,568 --> 00:05:42,617
note that these are Simulink components. these differ to the Modelica code world in that these ports are not identified by a name<br>注意,这是Simulink组件,和Modelica的代码有所不同,这些端口不是通过名称来标识

76
00:05:42,617 --> 00:05:45,390
rather a simply referenced by an array <br>而是通过array简单引用

77
00:05:45,670 --> 00:05:56,632
hence the ordering of the creation of these is critical. <br>the ordering in the Simulink array is from top to bottom for the inputs and top to bottom to the outputs<br>因此,创建的次序至关重要。Simulink array的次序,对输入是自顶而下,输出也是自顶而下

78
00:05:56,632 --> 00:05:58,915
so for your inputs to the J K flip flop<br>因此对于到J、K的输入

79
00:05:58,915 --> 00:06:01,199
it's critical that we start with J<br>要从J开始

80
00:06:01,199 --> 00:06:01,884
Then do CLK<br>然后是CLK

81
00:06:01,884 --> 00:06:02,570
then do K <br>然后是K

82
00:06:02,950 --> 00:06:08,679
these are nonetheless shown in alphabetical order on the block. <br>尽管在块上是以字母顺序显示。

83
00:06:08,679 --> 00:06:14,000
we drag on the input ports. This is a BooleanInSignal and then name them to match these ports on the Simulink component <br>我们拖上来BooleanInSignal输入端口,让它的命名匹配Simulink组件的端口

84
00:06:48,180 --> 00:06:52,650
then we do the same for output ports using BooleanOutSignal<br>同样,用BooleanOutSignal对输出端口做同样的事情

85
00:06:52,930 --> 00:06:53,561


86
00:06:53,561 --> 00:06:55,456
Again, this is ordered by q<br>同样,顺序是q

87
00:06:55,456 --> 00:06:56,720
then qn <br>然后 qn

88
00:07:19,760 --> 00:07:21,085
in this section<br>在这一节

89
00:07:21,085 --> 00:07:25,060
we will create the main block that will contain the IBD diagram <br>我们将创建包含IBD图的块

90
00:07:25,340 --> 00:07:30,830
this new diagram is where we connect these ports as parts to form our flip flop counter <br>在这个新图中,我们把这些端口当成部件连接起来,形成触发器计数器

91
00:07:31,420 --> 00:07:34,260
now let's create a block for the binary counter <br>现在来创建二进制计数器的块

92
00:07:34,940 --> 00:07:38,920
then we created a child diagram on this block called Counter <br>然后在这个块上面创建一张子图,称为Counter

93
00:07:45,340 --> 00:07:49,230
on which we then drag on our blocks as components <br>然后把我们的块作为组件拖上去

94
00:07:49,640 --> 00:07:50,176


95
00:07:50,176 --> 00:07:54,470
for this, it's recommended to use the all option in the Paste dialogue <br>为此,推荐在Paste对话框中使用all选项

96
00:08:00,340 --> 00:08:02,570
to display these in the compartments <br>为了以分栏方式显示

97
00:08:02,850 --> 00:08:04,588
we delete the properties<br>我们删除属性

98
00:08:04,588 --> 00:08:07,320
the first is the clock period property <br>首先是时钟周期属性

99
00:08:08,080 --> 00:08:09,870
to keep the diagram clear<br>为了保持图形清爽

100
00:08:09,870 --> 00:08:15,914
we order the diagram properties to not show the port classifiers and the property types<br>我们设置图形的属性为不显示端口的类元和属性的类型

101
00:08:15,914 --> 00:08:18,600
this gives a simpler view of just the port name <br>只保留端口名称,看起来更简洁

102
00:08:25,150 --> 00:08:26,717
for our Constant part<br>对于Constant部件

103
00:08:26,717 --> 00:08:31,420
this needs to pass a logical 1 or true state to our j and k port <br>需要传送一个逻辑1或真给j和k端口

104
00:08:31,940 --> 00:08:34,490
we will set an appropriate name for this <br>给这个起一个恰当的名字

105
00:08:34,890 --> 00:08:34,891


106
00:08:34,891 --> 00:08:37,600
we also give the clock a more meaningful name <br>也给时钟一个更有意义的名字

107
00:08:42,370 --> 00:08:45,400
Then we create four parts of time flip flop <br>然后,创建4个时间触发器部件

108
00:09:00,790 --> 00:09:04,500
let's name these as Flip Flop 1 to 4 <br>命名为Flip Flop 1到4

109
00:09:14,510 --> 00:09:16,320
now we reorganize the ports<br>现在,重新组织端口

110
00:09:16,320 --> 00:09:18,810
placing the outgoing ports on the right <br>把输出端口放在右侧

111
00:09:25,130 --> 00:09:30,687
then we need to set our connectors between the relevant ports to fit our proposed model<br>然后我们需要设置相关端口之间的连接器,以匹配我们的模型

112
00:09:30,687 --> 00:09:35,390
the first is from the Clck output to the clock port on the first flip flop <br>第一个,从Clck输出到第一个触发器的时钟端口

113
00:09:35,670 --> 00:09:41,510
the subsequent flip flops are connected from the q to the proceeding clock import <br>随后的触发器从q连接到后续的时钟输入

114
00:09:44,640 --> 00:09:51,330
then we set the j and k ports to true by connecting this to the BoolTrue part <br>然后,通过把这个连接到BoolTrue部件,我们设置j和k端口为真

115
00:10:00,730 --> 00:10:01,072
OK

116
00:10:01,072 --> 00:10:03,810
that completes our IBD setup <br>这样就完成了IBD的设置

117
00:10:04,480 --> 00:10:06,810
let's now configure our simulation <br>现在来配置仿真

118
00:10:07,090 --> 00:10:09,903
we go back to the block definition diagram<br>回到块定义图

119
00:10:09,903 --> 00:10:13,890
we see that we have a Counter block populated with the new parts <br>我们看到,Counter块添加了新的部件

120
00:10:14,260 --> 00:10:15,428


121
00:10:15,428 --> 00:10:19,870
for the simulation, we start by creating an artifact of type SysMLSim Configuration <br>首先,创建一个artifact,类型为SysMLSim Configuration

122
00:10:20,390 --> 00:10:24,440
double clicking on this opens up the simulation configuration <br>双击这个,打开仿真配置

123
00:10:25,200 --> 00:10:26,280
on opening this<br>打开这个

124
00:10:26,280 --> 00:10:29,250
we firstly select the package to simulate <br>首先选择要仿真的包

125
00:10:31,770 --> 00:10:34,600
ensure the Simulink library is referenced <br>确保Simulink库已被引用【本中英字幕由UMLChina整理翻译】

126
00:10:35,600 --> 00:10:41,650
set the parent block for the SysML model that we're simulating, in this case is the counter block <br>设置正在仿真的SysML模型(本例为Counter块)的父块

127
00:10:41,930 --> 00:10:44,800
we set this a SysMLSimModel <br>把这个设为SysMLSimModel

128
00:10:45,460 --> 00:10:51,570
now we see the list of properties available to plot, so we can select which of these we want to use <br>现在可以看到可用于绘图的属性列表,我们可以选择要用到的

129
00:10:59,110 --> 00:11:01,240
now we can run the simulation <br>现在运行仿真

130
00:11:01,560 --> 00:11:03,810
the plot in Simulink is complex <br> Simulink的图很复杂

131
00:11:04,710 --> 00:11:06,950
so let's simplify this <br>我们来简化一下

132
00:11:07,230 --> 00:11:10,657
in order to open the generated model in Simulink<br>为了在Simulink中打开所生成模型

133
00:11:10,657 --> 00:11:11,800


134
00:11:11,800 --> 00:11:12,485


135
00:11:12,485 --> 00:11:13,400
we access the EA generator and select file <br>我们访问EA生成器,选择文件

136
00:11:19,200 --> 00:11:22,862
here we can see the component that we created in the SysML model<br>这里我们可以看到在SysML模型中创建的组件

137
00:11:22,862 --> 00:11:23,293


138
00:11:23,293 --> 00:11:23,508


139
00:11:23,508 --> 00:11:23,939


140
00:11:23,939 --> 00:11:28,463
is shown in the Simulink format along with the connectivity that we set up in our SysML model<br>以及我们在SysML模型中设置的连接,以Simulink格式展示

141
00:11:28,463 --> 00:11:28,894


142
00:11:28,894 --> 00:11:29,110


143
00:11:29,590 --> 00:11:33,340
we can run this and view the plot and change all we want to view <br>我们可以运行这个,查看图表,改变想看的内容

144
00:11:39,950 --> 00:11:42,750
we start with the output of Flip Flop 1<br>从Flip Flop 1的输出开始

145
00:11:43,030 --> 00:11:45,001
then select the last output<br>然后选择最后一个输出

146
00:11:45,001 --> 00:11:46,410
which is q 4 <br>即q 4

147
00:11:47,170 --> 00:11:48,638
with each q enabled<br>对于每个有效的q 

148
00:11:48,638 --> 00:11:54,270
we see the simulation of the clock frequency being heard for each flip flop that is passed through <br>我们看到仿真,时钟频率被每个所通过的触发器接收到

149
00:12:00,960 --> 00:12:03,041
when doing a complex SysML model<br>当做一个复杂的SysML模型时

150
00:12:03,041 --> 00:12:06,070
there are bound to be issues with generation of the plot <br>图表的生成多半会出现问题

151
00:12:06,400 --> 00:12:07,259
so on that note<br>因此,这个地方

152
00:12:07,259 --> 00:12:12,415
let's have a look at the debugging an issue resolution when generating the Simulink<br>我们来看看如何调试并解决生成Simulink时出现的问题

153
00:12:12,415 --> 00:12:12,630


154
00:12:12,980 --> 00:12:13,460
firstly<br>首先

155
00:12:13,460 --> 00:12:14,902
we set up an error<br>我们设置一个错误

156
00:12:14,902 --> 00:12:19,710
we do this by sending our wrong connectors to the block not to the port <br>我们把连接器连向块,而不是端口

157
00:12:28,630 --> 00:12:28,863
now<br>现在

158
00:12:28,863 --> 00:12:30,500
when we run the simulation<br>我们运行仿真时

159
00:12:30,500 --> 00:12:34,240
we can see that there is an error created in the code build, this is viewed in the System Output. <br>可以看到,构建代码时有一个错误,可以在System Output那里查看

160
00:12:35,060 --> 00:12:38,919
if we go to the SysML Simulation in the System Output <br> 如果我们去往System Output中的SysML Simulation

161
00:12:38,919 --> 00:12:39,600


162
00:12:39,600 --> 00:12:39,827


163
00:12:39,827 --> 00:12:40,962


164
00:12:40,962 --> 00:12:43,460
we see the error that it is generated <br>可以看到生成的错误

165
00:12:43,820 --> 00:12:45,447
we double click on this<br>双击这个

166
00:12:45,447 --> 00:12:49,110
it opens a configuration at the port where the issue occurred <br>打开一个发生问题的端口的配置

167
00:12:49,440 --> 00:12:50,225
in this case<br>本例中

168
00:12:50,225 --> 00:12:54,150
we see that the clock is the part where the issue is <br>Clock是出问题的部件

169
00:12:55,010 --> 00:13:00,370
an alternative issue checking method is to open the generator script file directly in Simulink <br>另一个检查问题的方法是,直接在Simulink中打开生成器脚本文件

170
00:13:03,960 --> 00:13:06,770
then view the diagram and check the connection <br>然后观察图形,检查连接

171
00:13:07,160 --> 00:13:13,540
then you can run the simulation and view the error and see there is a connector issue <br>然后,运行仿真,观察错误,可以看到是连接器问题

172
00:13:20,970 --> 00:13:22,267
given this feedback<br>得到了这个反馈

173
00:13:22,267 --> 00:13:25,080
we can now do a simple correction of the model <br>就可以对模型做简单的修正

174
00:13:36,660 --> 00:13:36,906
OK

175
00:13:36,906 --> 00:13:38,137


176
00:13:38,137 --> 00:13:41,830
so in conclusion, let's run over what we have covered in this demonstration <br>最后,归纳一下本演示的内容

177
00:13:42,110 --> 00:13:50,520
this includes setting up a digital logical model of Simulink by using SysPhS patterns for creating predefined Simulink blocks <br>包括:通过使用创建预定义Simulink块的SysPhS模式,来设置Simulink数字逻辑模型

178
00:13:51,360 --> 00:13:55,180
modeling other complex Simulink components using SysPhS <br>使用SysPhS建模其他复杂Simulink组件

179
00:13:55,500 --> 00:14:05,550
generating a Simulink model then simulating and viewing this in Simulink. <br>running over how to debug an issue and viewing the generated model in Simulink. <br>生成Simulink模型,仿真,在Simulink中查看,调试问题,<br>在Simulink中查看所生成模型

180
00:14:06,270 --> 00:14:09,817
although we have focused on using MATLAB Simulink<br>虽然我们聚焦于MATLAB Simulink

181
00:14:09,817 --> 00:14:15,020
please note that a Simulink scenario can be replicated using SysPhS for Modelica <br>但是,使用SysPhS for Modelica,Simulink的场景也可以照搬到Modelica

182
00:14:15,920 --> 00:14:23,350
hopefully this gives you a good starting point for getting familiar with the integration and simulation with MATLAB Simulink <br>希望这个演示能作为你熟悉与MATLAB Simulink集成和仿真的一个好起点

183
00:14:23,630 --> 00:14:26,942
this is all being part of the new SysML SysPhS features available in the Enterprise Architect 15.2<br>这都是Enterprise Architect 15.2新的SysML SysPhS特性的一部分

184
00:14:26,942 --> 00:14:27,218


185
00:14:27,218 --> 00:14:28,047


186
00:14:28,047 --> 00:14:28,875


187
00:14:28,875 --> 00:14:39,090
for more information on this, see sparxsystems.com/ea152<br>更多信息,参见sparxsystems.com/ea152【本中英字幕由UMLChina整理翻译】
[19:30上课]11月7-11月11日晚剔除伪创新的领域驱动设计-网络公开课
[19:30上课]11月14-18晚软件需求设计方法学全程实例剖析网课
[新增架构师专用集锦AD-001]28套UML+EA和StarUML的建模示范视频-全程字幕(20221006更新)
《软件方法》书中自测题-题目全文+分卷自测(1-8章)16套111题
《软件方法》强化自测题集110题
CTO也糊涂的常用术语:功能模块、业务架构、用户需求……[20210217更新]
如何选择UMLChina服务
作者微信:umlchina2
继续滑动看下一个

[中英字幕]EA使用SysML和Simulink的数字电子学仿真

潘加宇 UMLChina
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存