0
00:00:00,830 --> 00:00:03,520
接下来呢,就是分析的
1
00:00:03,900 --> 00:00:06,200
和设计的工作流程
2
00:00:07,860 --> 00:00:09,450
我们要从
3
00:00:09,980 --> 00:00:11,620
系统的整体
4
00:00:12,440 --> 00:00:15,360
开始来思考系统的内部的
5
00:00:15,920 --> 00:00:16,900
部件
6
00:00:17,290 --> 00:00:19,870
由哪些结构组成
7
00:00:22,270 --> 00:00:24,900
怎么把系统分解成一块一块的
8
00:00:25,280 --> 00:00:28,370
各个块各自承担什么责任
9
00:00:29,570 --> 00:00:30,990
这样来思考
10
00:00:36,510 --> 00:00:37,783
那同样的
11
00:00:37,783 --> 00:00:38,420
首先
12
00:00:39,440 --> 00:00:39,882
13
00:00:39,882 --> 00:00:41,210
我们先
14
00:00:41,650 --> 00:00:44,300
看这个水蒸馏器
15
00:00:47,340 --> 00:00:48,430
16
00:00:48,840 --> 00:00:50,560
教材里面的
17
00:00:51,650 --> 00:00:52,780
做法
0
00:00:00,330 --> 00:00:04,020
那么下一个内容就是
1
00:00:04,610 --> 00:00:07,830
怎样来建模结构了,从需求
2
00:00:08,600 --> 00:00:10,840
跳到里面的分析了
3
00:00:12,620 --> 00:00:17,120
之前并没有提到内部的结构
4
00:00:17,980 --> 00:00:19,360
只是说
5
00:00:19,640 --> 00:00:21,300
分这么几个步骤
6
00:00:22,900 --> 00:00:25,676
加热水、蒸发水、冷凝水
7
00:00:25,676 --> 00:00:26,510
但没有说
8
00:00:27,240 --> 00:00:30,422
到底这个系统由几个零件组成的
9
00:00:30,422 --> 00:00:31,332
没有说
10
00:00:31,332 --> 00:00:34,060
那现在开始来建模它的结构
11
00:00:39,020 --> 00:00:42,300
那首先呢,就是这个图16.17
12
00:00:42,920 --> 00:00:45,120
它用一个块定义图
13
00:00:47,680 --> 00:00:48,750
定义了
14
00:00:49,440 --> 00:00:51,590
这个蒸馏器的结构
15
00:00:57,240 --> 00:00:59,710
那我们来看这个内容
16
00:01:01,590 --> 00:01:06,590
包名,这个包还是蒸馏器结构下面
17
00:01:06,870 --> 00:01:07,573
然后呢
18
00:01:07,573 --> 00:01:09,920
这个图是蒸馏器分解
19
00:01:10,230 --> 00:01:14,923
然后这个蒸馏器这个block之前已经有了
20
00:01:14,923 --> 00:01:15,370
对吧
21
00:01:15,990 --> 00:01:18,040
这个已经有了的
22
00:01:18,470 --> 00:01:19,370
然后呢
23
00:01:19,370 --> 00:01:22,370
它满足了,satisfies这个
24
00:01:23,100 --> 00:01:25,046
简单蒸馏器这个需求
25
00:01:25,046 --> 00:01:27,209
这个是MS 5.1
26
00:01:27,209 --> 00:01:30,886
就之前我们列出来一堆需求嘛
27
00:01:30,886 --> 00:01:33,050
这个是MS 5.1这个需求
28
00:01:35,170 --> 00:01:39,580
它认为这样是满足了简单的
29
00:01:40,120 --> 00:01:40,320
简单吗
30
00:01:40,320 --> 00:01:41,320
还比较简单
31
00:01:41,320 --> 00:01:43,320
你看它只有三个部件
32
00:01:43,320 --> 00:01:43,920
对不对
33
00:01:44,260 --> 00:01:45,070
三个部件
34
00:01:45,070 --> 00:01:46,286
一个热交换器
35
00:01:46,286 --> 00:01:47,299
一个煮沸器
36
00:01:47,299 --> 00:01:48,110
一个阀门
37
00:01:49,750 --> 00:01:52,129
那这三个目前我们是没有的
38
00:01:52,129 --> 00:01:53,960
我们要给它加上去
39
00:01:57,410 --> 00:01:59,055
这三个分别扮演
40
00:01:59,055 --> 00:02:00,700
你看,这是角色
41
00:02:00,700 --> 00:02:01,876
这是类
42
00:02:01,876 --> 00:02:03,051
这是block的名字
43
00:02:03,051 --> 00:02:08,223
这是这个block在这个蒸馏器里面扮演的角色
44
00:02:08,223 --> 00:02:11,043
你看,冷凝器,这个扮演冷凝器
45
00:02:11,043 --> 00:02:12,689
这个扮演蒸发器
46
00:02:12,689 --> 00:02:15,040
这个扮演排空
47
00:02:15,610 --> 00:02:17,150
那我们来画这个图
48
00:02:21,790 --> 00:02:22,820
怎么画
49
00:02:23,570 --> 00:02:25,700
你看,我们那个
50
00:02:28,400 --> 00:02:30,000
蒸馏器的
51
00:02:31,760 --> 00:02:33,490
结构在这里,对吧
52
00:02:34,220 --> 00:02:35,989
这里已经有了几个block了
53
00:02:35,989 --> 00:02:38,290
之前我们画图的时候用到的
54
00:02:38,840 --> 00:02:41,590
但是我们现在要画一张图
55
00:02:42,820 --> 00:02:46,984
这个图叫蒸馏器分解,是一个BDD,对吧
56
00:02:46,984 --> 00:02:48,300
所以我们建一个图
57
00:02:49,770 --> 00:02:50,056
58
00:02:50,056 --> 00:02:51,490
右键点这个
59
00:02:52,310 --> 00:02:53,840
Add Diagram
60
00:02:55,860 --> 00:02:57,382
块定义图,没错
61
00:02:57,382 --> 00:02:59,340
这个叫蒸馏器分解
62
00:03:06,370 --> 00:03:06,590
好
63
00:03:06,590 --> 00:03:07,470
有了,对吧
64
00:03:07,470 --> 00:03:08,790
你看,对照一下
65
00:03:11,720 --> 00:03:16,210
对吧,BDD,包,结构,分解
66
00:03:18,620 --> 00:03:21,770
BDD包,蒸馏器结构,分解,好
67
00:03:24,140 --> 00:03:24,940
那
68
00:03:25,500 --> 00:03:26,440
我们来看
69
00:03:26,850 --> 00:03:28,589
蒸馏器已经有了
70
00:03:28,589 --> 00:03:30,080
但是这个关系
71
00:03:31,860 --> 00:03:34,140
satisfies这个没有
72
00:03:35,280 --> 00:03:37,451
那同样跟前面一样的
73
00:03:37,451 --> 00:03:40,588
也是通过先建立好这个关系
74
00:03:40,588 --> 00:03:42,760
我们再把它拖上去
75
00:03:45,370 --> 00:03:47,000
那个需求在哪里
76
00:03:47,280 --> 00:03:49,250
简单蒸馏器在哪里
77
00:03:52,250 --> 00:03:53,170
在这里嘛
78
00:03:53,170 --> 00:03:53,630
对吧
79
00:03:54,660 --> 00:03:55,670
这个地方
80
00:03:56,380 --> 00:03:56,648
81
00:03:56,648 --> 00:03:59,870
也就是说,我们要让蒸馏器这个block
82
00:04:01,220 --> 00:04:02,650
把它拖上来
83
00:04:04,450 --> 00:04:08,930
让它去满足这个简单蒸馏器这个需求
84
00:04:09,320 --> 00:04:10,013
拖过来
85
00:04:10,013 --> 00:04:11,630
然后satisfies
86
00:04:13,010 --> 00:04:13,181
87
00:04:13,181 --> 00:04:14,208
这样就行了
88
00:04:14,208 --> 00:04:16,777
跟前面那个,我们前面也建立了
89
00:04:16,777 --> 00:04:20,544
蒸馏水这个活动怎么满足这个净化什么的
90
00:04:20,544 --> 00:04:22,427
也在这里,之前画的一样的
91
00:04:22,427 --> 00:04:22,770
对吧
92
00:04:23,760 --> 00:04:23,970
好
93
00:04:23,970 --> 00:04:24,810
这个有了
94
00:04:24,810 --> 00:04:25,230
对吧
95
00:04:25,510 --> 00:04:27,873
然后我们就把这个拖上来了
96
00:04:27,873 --> 00:04:30,040
回到这个BDD,拖上来
97
00:04:33,640 --> 00:04:33,899
98
00:04:33,899 --> 00:04:34,676
link
99
00:04:34,676 --> 00:04:37,010
就是直接把这个
100
00:04:37,490 --> 00:04:40,010
这个block拖上来了
101
00:04:40,010 --> 00:04:42,810
这里面就选,不要了
102
00:04:43,920 --> 00:04:44,770
None
103
00:04:47,600 --> 00:04:47,830
104
00:04:47,830 --> 00:04:48,750
None的话
105
00:04:48,750 --> 00:04:50,130
即使这样的话
106
00:04:50,130 --> 00:04:52,890
它那个端口还是露出来了
107
00:04:52,890 --> 00:04:56,110
但我们也不要这个端口
108
00:04:56,590 --> 00:05:00,050
这里一样的,之前已经操作过的
109
00:05:01,260 --> 00:05:03,022
部件的可见性
110
00:05:03,022 --> 00:05:05,036
分栏的可见性
111
00:05:05,036 --> 00:05:05,540
这里
112
00:05:06,230 --> 00:05:07,873
把这个端口去掉
113
00:05:07,873 --> 00:05:08,490
把这个
114
00:05:09,020 --> 00:05:10,613
约束这个也去掉
115
00:05:10,613 --> 00:05:12,890
satisfies这个露出来
116
00:05:13,500 --> 00:05:14,600
OK,你看
117
00:05:17,710 --> 00:05:18,860
这跟这个
118
00:05:19,510 --> 00:05:20,567
一样的,对吧
119
00:05:20,567 --> 00:05:20,779
120
00:05:20,779 --> 00:05:22,260
就漏了这个出来
121
00:05:24,030 --> 00:05:25,110
这里,对吧
122
00:05:25,510 --> 00:05:25,747
好
123
00:05:25,747 --> 00:05:26,695
这个有了
124
00:05:26,695 --> 00:05:27,880
那我们来看
125
00:05:28,840 --> 00:05:31,218
下面有三个block,热交换器
126
00:05:31,218 --> 00:05:33,360
煮沸器、阀门,加上去
127
00:05:38,750 --> 00:05:41,390
热交换器
128
00:05:47,340 --> 00:05:48,790
煮沸器
129
00:05:55,640 --> 00:05:56,940
阀门
130
00:06:00,330 --> 00:06:01,570
这有了,对吧
131
00:06:03,230 --> 00:06:04,070
好
132
00:06:04,380 --> 00:06:05,787
这三个有了
133
00:06:05,787 --> 00:06:10,010
接下来呢,建立起这个和它们之间的
134
00:06:11,160 --> 00:06:12,768
组合关系
135
00:06:12,768 --> 00:06:15,180
实心菱形的组合关系
136
00:06:15,840 --> 00:06:17,770
那我们就来建立了
137
00:06:20,830 --> 00:06:22,240
画过来
138
00:06:23,510 --> 00:06:26,330
那一种是直接选这个
139
00:06:27,140 --> 00:06:29,385
composition to part这个
140
00:06:29,385 --> 00:06:33,428
但是呢,我们建议不要选这个,选关联
141
00:06:33,428 --> 00:06:34,551
在关联里面设
142
00:06:34,551 --> 00:06:37,471
因为这里面很多不受控制的
143
00:06:37,471 --> 00:06:39,717
它那个方向刚好反过来的
144
00:06:39,717 --> 00:06:40,840
我们选这个关联
145
00:06:41,310 --> 00:06:41,920
146
00:06:45,330 --> 00:06:46,669
然后在这里设置
147
00:06:46,669 --> 00:06:47,434
在关联
148
00:06:47,434 --> 00:06:48,200
这里设置
149
00:06:51,570 --> 00:06:52,449
角色
150
00:06:52,449 --> 00:06:54,500
首先我们蒸馏器
151
00:06:55,030 --> 00:06:56,650
这个是一个
152
00:06:57,240 --> 00:06:59,980
composite,组合,对吧
153
00:07:02,850 --> 00:07:04,451
多重性,没有
154
00:07:04,451 --> 00:07:05,252
然后呢
155
00:07:05,252 --> 00:07:07,120
你看这个角色
156
00:07:07,120 --> 00:07:09,256
这个角色叫冷凝器
157
00:07:09,256 --> 00:07:09,790
对吧
158
00:07:10,100 --> 00:07:11,585
而且是有方向的
159
00:07:11,585 --> 00:07:13,070
是这边指向这边
160
00:07:15,380 --> 00:07:16,490
那这个怎么设
161
00:07:16,490 --> 00:07:16,860
你看
162
00:07:18,050 --> 00:07:21,030
这个角色叫冷凝器,角色在这里
163
00:07:21,710 --> 00:07:24,560
这里写冷凝器
164
00:07:24,840 --> 00:07:25,770
这个地方
165
00:07:26,280 --> 00:07:27,500
写冷凝器
166
00:07:30,250 --> 00:07:31,190
方向
167
00:07:33,330 --> 00:07:35,030
是由蒸馏器
168
00:07:36,110 --> 00:07:39,150
指向这个,说明蒸馏器是可以访问的
169
00:07:39,450 --> 00:07:41,568
这边是不能访问的
170
00:07:41,568 --> 00:07:43,452
单向的,那怎么设
171
00:07:43,452 --> 00:07:45,100
所以这个导航是
172
00:07:45,550 --> 00:07:46,860
可以导航的
173
00:07:47,170 --> 00:07:49,140
这边就要设成什么
174
00:07:51,180 --> 00:07:52,340
不能导航
175
00:07:54,350 --> 00:07:55,420
这样来
176
00:07:55,960 --> 00:07:56,767
然后呢
177
00:07:56,767 --> 00:08:01,612
这边并没有说是私有还是公开
178
00:08:01,612 --> 00:08:02,420
那我们
179
00:08:03,790 --> 00:08:05,384
统统设成私有
180
00:08:05,384 --> 00:08:07,434
因为它是它的部件嘛
181
00:08:07,434 --> 00:08:08,117
对不对
182
00:08:08,117 --> 00:08:09,940
所以呢,这里面这个
183
00:08:10,800 --> 00:08:12,210
public改成
184
00:08:13,450 --> 00:08:14,810
私有的
185
00:08:17,570 --> 00:08:19,230
这样来,好
186
00:08:19,850 --> 00:08:20,505
确定
187
00:08:20,505 --> 00:08:21,160
你看
188
00:08:22,940 --> 00:08:24,590
就得到了一个
189
00:08:25,350 --> 00:08:27,810
组合的关联,对吧
190
00:08:28,650 --> 00:08:29,540
这样来
191
00:08:30,190 --> 00:08:32,330
那下面这个一样的操作
192
00:08:38,110 --> 00:08:39,320
关联
193
00:08:48,040 --> 00:08:49,250
组合
194
00:09:00,500 --> 00:09:02,760
这叫蒸发器
195
00:09:04,050 --> 00:09:05,490
蒸发器
196
00:09:08,270 --> 00:09:08,685
好
197
00:09:08,685 --> 00:09:09,930
可以吗
198
00:09:11,200 --> 00:09:11,805
199
00:09:11,805 --> 00:09:12,410
对
200
00:09:13,590 --> 00:09:15,130
这个叫排空
201
00:09:52,570 --> 00:09:53,720
组合
202
00:10:08,340 --> 00:10:09,050
好
203
00:10:10,610 --> 00:10:10,831
204
00:10:10,831 --> 00:10:11,940
这样
205
00:10:12,370 --> 00:10:14,130
那我们把它对齐一下
206
00:10:26,590 --> 00:10:27,250
齐了没有
207
00:10:27,250 --> 00:10:27,910
我们看看
208
00:10:31,660 --> 00:10:31,918
好
209
00:10:31,918 --> 00:10:32,694
就这样
210
00:10:32,694 --> 00:10:33,470
对不对
211
00:10:34,960 --> 00:10:35,670
对吧
212
00:10:39,590 --> 00:10:40,650
这样来
213
00:10:41,700 --> 00:10:42,960
这是图
214
00:10:44,860 --> 00:10:46,870
16.17
215
00:10:47,650 --> 00:10:49,190
这样来画