1
00:00:02,940 --> 00:00:07,740
接下来,我们就要进入具体内容的讲解了
2
00:00:10,080 --> 00:00:15,260
还是跟之前的软件需求设计方法学
3
00:00:15,270 --> 00:00:17,220
中阶课程一样的
4
00:00:17,230 --> 00:00:19,020
我们也是按照
5
00:00:19,520 --> 00:00:21,100
愿景、业务用例图、业务序列图
6
00:00:22,810 --> 00:00:25,460
用例图、用例规约这样来
7
00:00:29,900 --> 00:00:32,810
在往下走之前
8
00:00:32,900 --> 00:00:36,330
我们先来看一个建模的元模型
9
00:00:37,400 --> 00:00:40,600
我们把涉及到的这些概念
10
00:00:41,380 --> 00:00:44,770
通过模型把它表达出来
11
00:00:48,850 --> 00:00:50,120
为什么有这个模型
12
00:00:50,330 --> 00:00:52,310
因为我们一直在想
13
00:00:52,320 --> 00:00:53,750
做一个
14
00:00:53,760 --> 00:00:58,050
智能的建模工具
15
00:00:59,070 --> 00:01:00,380
那么我们希望
16
00:01:00,390 --> 00:01:04,540
把建模的这种智慧和思维
17
00:01:04,550 --> 00:01:06,420
凝固到工具里面来
18
00:01:09,560 --> 00:01:16,900
那么这是一部分的,跟业务建模相关的模型
19
00:01:17,720 --> 00:01:18,230
我们来看
1
00:00:02,970 --> 00:00:09,030
第一个我们要看的概念,就是系统这个概念
2
00:00:10,200 --> 00:00:14,680
关于系统的研究,早就已经有了
3
00:00:17,240 --> 00:00:21,600
你看左边这个图,文献里面摘出来的
4
00:00:22,750 --> 00:00:25,840
在1940年代的早期
5
00:00:25,850 --> 00:00:27,640
1945年以前
6
00:00:29,190 --> 00:00:30,780
贝尔实验室
7
00:00:30,790 --> 00:00:34,380
已经在使用 系统工程 这个术语了
8
00:00:35,210 --> 00:00:36,270
在这里
9
00:00:40,200 --> 00:00:46,600
右边这个是Arthur D. Hall教授的一个书
10
00:00:47,400 --> 00:00:49,750
你看,他说,系统工程的方法学
11
00:00:49,760 --> 00:00:51,680
1962年出版
12
00:00:53,240 --> 00:00:58,820
我们看书里面,他提到系统的定义
13
00:00:59,610 --> 00:01:01,140
还有属性
14
00:01:02,590 --> 00:01:04,340
对象、关系
15
00:01:04,850 --> 00:01:08,050
好像是在说面向对象的开发
16
00:01:08,060 --> 00:01:11,650
但实际上面向对象当时还没出来
17
00:01:12,450 --> 00:01:14,570
面向对象是1967年
18
00:01:14,820 --> 00:01:21,360
由Alan Kay第一次使用面向对象
19
00:01:22,840 --> 00:01:23,780
这样一个表达
20
00:01:24,030 --> 00:01:25,930
而且你看,这里说的系统
21
00:01:26,430 --> 00:01:29,220
你看这里,可能包含原子
22
00:01:29,230 --> 00:01:30,260
星体
23
00:01:30,860 --> 00:01:32,390
开关
24
00:01:32,400 --> 00:01:33,390
弹簧
25
00:01:34,220 --> 00:01:37,910
线等等,显然这说的不是我们的软件系统
26
00:01:38,350 --> 00:01:39,130
而是什么
27
00:01:40,580 --> 00:01:44,530
各种各样处理物质和能量的机械系统
28
00:01:44,880 --> 00:01:46,080
电力系统等等
29
00:01:47,680 --> 00:01:49,880
所以这些系统是广义的系统
30
00:01:52,630 --> 00:01:53,990
不是我们现在说的
31
00:01:55,730 --> 00:01:58,680
我们在座各位默认的信息系统
32
00:02:06,200 --> 00:02:07,680
所以我们这里就有一个
33
00:02:07,690 --> 00:02:09,760
对系统的定义和分类的问题
34
00:02:11,880 --> 00:02:12,730
什么叫系统
35
00:02:13,850 --> 00:02:15,870
广义上,我们可以认为
36
00:02:16,120 --> 00:02:18,200
能够提供某些服务的
37
00:02:19,530 --> 00:02:21,320
对外能够提供服务
38
00:02:26,140 --> 00:02:33,110
第二个,内部由一些组件构成
39
00:02:35,610 --> 00:02:36,700
里面有零件
40
00:02:37,290 --> 00:02:39,320
外面可以对外提供服务的
41
00:02:41,130 --> 00:02:44,070
从这个角度来看
42
00:02:45,250 --> 00:02:47,410
这个定义就很广了,范围就很广
43
00:02:47,420 --> 00:02:50,260
整个宇宙你都可以说是一个系统
44
00:02:51,280 --> 00:02:54,620
一家企业、一家公司你也可以说是一个系统
45
00:02:56,700 --> 00:02:59,200
当然我们做的软件也是系统
46
00:03:03,680 --> 00:03:05,670
或者某个细胞
47
00:03:05,680 --> 00:03:10,070
细胞也有外和内
48
00:03:10,670 --> 00:03:12,800
内部外部也有的
49
00:03:14,060 --> 00:03:15,080
都可以说是一个系统
50
00:03:15,090 --> 00:03:18,700
因为他们是处理物质和能量
51
00:03:22,960 --> 00:03:24,990
所以我们就把系统分为
52
00:03:25,810 --> 00:03:28,250
我们既然是研究软件
53
00:03:28,260 --> 00:03:29,500
研究信息系统的
54
00:03:29,890 --> 00:03:31,760
我们就把系统分为,先这样分
55
00:03:32,660 --> 00:03:36,060
信息系统这是一类
56
00:03:36,930 --> 00:03:41,750
剩下的,我们就归到一个大的垃圾堆里面
57
00:03:41,760 --> 00:03:42,910
就叫非信息系统
58
00:03:43,600 --> 00:03:50,010
后面怎么分类,我们就先不管了,太多了
59
00:03:50,020 --> 00:03:52,490
不属于我们研究的范围
60
00:03:54,970 --> 00:03:56,640
我们就把它分为这么两类
61
00:03:56,650 --> 00:03:58,040
在我们的模型里面
62
00:04:01,420 --> 00:04:05,110
信息系统跟非信息系统的区别
63
00:04:05,700 --> 00:04:06,820
我们在第一章
64
00:04:06,830 --> 00:04:09,840
在软件方法第一章
65
00:04:09,850 --> 00:04:11,800
或者说中阶里面偶尔也会提到的
66
00:04:13,150 --> 00:04:13,950
区别是什么
67
00:04:13,960 --> 00:04:16,870
它们的输入输出不一样
68
00:04:17,810 --> 00:04:20,270
信息系统,输入输出是信息
69
00:04:20,280 --> 00:04:21,660
信息进来
70
00:04:22,770 --> 00:04:25,820
然后信息出去,里面经过了一些计算和处理
71
00:04:32,100 --> 00:04:35,140
而非信息系统,它还能够处理物质和能量
72
00:04:36,210 --> 00:04:39,990
比如说,你看,这是一个蒸馏的设备
73
00:04:41,480 --> 00:04:42,120
输入是什么
74
00:04:42,130 --> 00:04:44,200
输入是热
75
00:04:44,610 --> 00:04:45,160
能源
76
00:04:45,640 --> 00:04:47,320
第二个,还有脏水
77
00:04:48,960 --> 00:04:49,710
输出是什么
78
00:04:49,720 --> 00:04:51,310
输出是干净的净水
79
00:04:52,840 --> 00:04:53,670
还有残渣
80
00:04:56,450 --> 00:04:59,490
这是我们建模示范视频里面
81
00:04:59,500 --> 00:05:03,190
有这个案例卖的,一个系统工程
82
00:05:03,200 --> 00:05:08,850
用SysML画一个水蒸馏器
83
00:05:10,550 --> 00:05:15,310
显然,水蒸馏器,它就跟信息没有关系了
84
00:05:15,320 --> 00:05:17,420
你看,它连电都没有
85
00:05:17,430 --> 00:05:18,900
都没有电
86
00:05:19,380 --> 00:05:22,210
因为它是给非洲,给一些贫困地区用的
87
00:05:23,460 --> 00:05:24,770
那里只有柴火
88
00:05:26,890 --> 00:05:28,720
你说你有酒精,都不能了
89
00:05:28,730 --> 00:05:32,230
都是砍树,拿柴来烧
90
00:05:32,240 --> 00:05:35,110
他这里用一个酒精炉什么的
91
00:05:35,120 --> 00:05:36,830
这都太高级了
92
00:05:38,910 --> 00:05:42,840
所以它处理的是物质和能量
93
00:05:43,190 --> 00:05:47,260
热量和脏水作为输入
94
00:05:47,790 --> 00:05:48,940
输出是净水
95
00:05:48,950 --> 00:05:50,260
还有残渣
96
00:05:55,060 --> 00:05:57,330
这也是系统,只不过这是非信息系统
1
00:00:03,190 --> 00:00:04,430
而信息系统
2
00:00:04,440 --> 00:00:05,530
又可以分为
3
00:00:06,300 --> 00:00:09,000
人脑系统和软件系统
4
00:00:12,230 --> 00:00:14,150
人脑系统并不是说
5
00:00:14,160 --> 00:00:15,870
人脑本身是一个系统
6
00:00:16,080 --> 00:00:19,820
我们把它定义成基于人脑的信息系统
7
00:00:19,830 --> 00:00:22,370
装在人脑里面的信息系统
8
00:00:22,380 --> 00:00:23,810
当然这个人脑是广义的
9
00:00:24,860 --> 00:00:26,140
光有脑不行的
10
00:00:26,150 --> 00:00:27,540
因为你要传达信息
11
00:00:28,280 --> 00:00:30,440
还有人体的整个神经系统
12
00:00:30,530 --> 00:00:32,070
包括人脑
13
00:00:32,910 --> 00:00:34,380
大脑是主干嘛
14
00:00:34,670 --> 00:00:36,250
你后面的神经系统
15
00:00:36,260 --> 00:00:40,130
还有脊髓里面的各种各样的神经元等等
16
00:00:41,990 --> 00:00:43,960
我们这里就统一叫人脑了
17
00:00:45,040 --> 00:00:48,470
实际上是人脑以及它附属的神经系统
18
00:00:51,780 --> 00:00:53,490
第二种,基于计算机的
19
00:00:54,180 --> 00:00:57,290
就是以计算机为容器的信息系统
20
00:00:57,420 --> 00:00:59,370
实际上就是平时我们的软件系统
21
00:01:03,960 --> 00:01:05,670
本来可以叫电脑系统
22
00:01:05,880 --> 00:01:07,790
你这个人脑,我这个电脑
23
00:01:07,800 --> 00:01:09,190
但电脑这个词
24
00:01:10,440 --> 00:01:11,760
你说电脑系统,人家以为
25
00:01:11,770 --> 00:01:13,440
就是指计算机本身
26
00:01:15,120 --> 00:01:17,360
因为这个词就已经被用得
27
00:01:17,740 --> 00:01:21,710
到处用,意思已经模糊掉了
28
00:01:22,240 --> 00:01:24,000
所以我们这里还是叫软件系统
29
00:01:26,850 --> 00:01:29,510
那么它们的区别就在于这个容器不一样
30
00:01:32,320 --> 00:01:35,240
人脑系统是装在人脑里面的系统
31
00:01:37,030 --> 00:01:38,740
以人脑为容器的系统
32
00:01:41,060 --> 00:01:43,660
软件系统就是以计算机为容器的系统
33
00:01:48,280 --> 00:01:52,570
目前只有这两种存在信息系统
34
00:01:53,530 --> 00:01:55,070
因为只有人脑
35
00:01:55,080 --> 00:02:00,300
才有孕育这种逻辑思考的系统的可能
36
00:02:01,640 --> 00:02:02,870
计算机也是了
37
00:02:03,410 --> 00:02:04,400
有没有猪脑系统
38
00:02:04,410 --> 00:02:06,550
没有,因为猪脑里面
39
00:02:06,560 --> 00:02:09,630
不可能有逻辑运算的东西在里面
40
00:02:12,890 --> 00:02:15,600
除非以后有外星人来了
41
00:02:15,610 --> 00:02:18,830
外星人的大脑里面也有很多系统
42
00:02:20,440 --> 00:02:22,270
把它看作容器,那意味着什么
43
00:02:22,280 --> 00:02:27,300
比如说,一个人
44
00:02:27,310 --> 00:02:32,980
他在单位里面担任研发总监
45
00:02:36,190 --> 00:02:38,790
那么,研发总监
46
00:02:39,780 --> 00:02:41,420
这个岗位就可以看作
47
00:02:42,400 --> 00:02:45,760
装在这个人的大脑里面的
48
00:02:45,770 --> 00:02:47,160
一个信息系统
49
00:02:50,780 --> 00:02:54,730
如果说这个人,比如说,张三,他既是研发总监
50
00:02:55,240 --> 00:03:00,120
他回到家里面,他又是一个丈夫
51
00:03:01,310 --> 00:03:03,060
假设我们要研究丈夫的行为
52
00:03:04,300 --> 00:03:09,060
或者说,家庭的一家之主
53
00:03:11,770 --> 00:03:12,720
实际上也就是说
54
00:03:13,400 --> 00:03:14,520
这个人的大脑里面
55
00:03:14,650 --> 00:03:18,170
还安装了一家之主
56
00:03:18,340 --> 00:03:19,490
或家庭管理的
57
00:03:19,500 --> 00:03:20,850
这样一个系统
58
00:03:21,460 --> 00:03:22,770
一家之主的系统
59
00:03:24,720 --> 00:03:26,680
也就是说,一个人担任几个角色
60
00:03:27,180 --> 00:03:31,010
我们就认为他的大脑里面安装了几个系统
61
00:03:32,130 --> 00:03:35,960
所以人脑里面可以看作安装了很多个系统
62
00:03:35,970 --> 00:03:38,000
因为人可以扮演很多个角色
63
00:03:39,030 --> 00:03:40,300
同样,计算机里面
64
00:03:40,310 --> 00:03:41,940
也可以安装很多个系统
65
00:03:42,740 --> 00:03:44,530
这里的计算机是广义的
66
00:03:44,700 --> 00:03:46,620
跟人脑一样,广义的
67
00:03:50,380 --> 00:03:57,010
它不是指一台单机计算机
68
00:03:57,020 --> 00:03:58,490
我们这里指的是什么
69
00:04:00,360 --> 00:04:05,420
能够支撑这个软件系统的基础设施
70
00:04:09,400 --> 00:04:10,920
基础设施的意思
71
00:04:12,810 --> 00:04:16,800
因为你说计算机
72
00:04:17,360 --> 00:04:18,670
你说它范围在哪里
73
00:04:18,680 --> 00:04:21,660
你说CPU、内存
74
00:04:21,990 --> 00:04:23,940
相当于过去的计算机核心了
75
00:04:24,400 --> 00:04:28,010
你说计算机外面的一个外设,你算不算
76
00:04:29,160 --> 00:04:30,430
而且现在很多是什么
77
00:04:30,990 --> 00:04:33,400
都是分布式的
78
00:04:34,410 --> 00:04:36,310
现在很多都虚拟化的
79
00:04:36,790 --> 00:04:38,580
云计算、虚拟化什么的
80
00:04:40,980 --> 00:04:43,080
你这计算机是什么
81
00:04:44,410 --> 00:04:45,640
我们现在的计算机
82
00:04:45,650 --> 00:04:48,560
广义就是支撑软件系统的容器
83
00:04:49,300 --> 00:04:52,380
过去这个容器可能是一台单机
84
00:04:53,360 --> 00:04:54,590
某台计算机
85
00:04:55,620 --> 00:04:58,210
现在可能是一个很虚拟的容器了
86
00:05:02,930 --> 00:05:03,960
这样来思考
87
00:05:06,000 --> 00:05:07,870
这样来思考之后,我们就可以知道
88
00:05:09,010 --> 00:05:10,280
我们的人、计算机
89
00:05:10,290 --> 00:05:11,680
只不过是一个容器
90
00:05:12,380 --> 00:05:15,340
同样的逻辑思考
91
00:05:15,350 --> 00:05:18,180
既可以放在人脑里面
92
00:05:18,610 --> 00:05:20,250
也可以安装在计算机里面
93
00:05:22,220 --> 00:05:23,260
可以互相替换
94
00:05:23,270 --> 00:05:25,620
你人脑不灵了,可以换成计算机
95
00:05:26,330 --> 00:05:27,330
计算机不灵换人脑
96
00:05:27,340 --> 00:05:31,630
这个人老掉了,你可以换一个新人
97
00:05:32,270 --> 00:05:33,600
计算机老掉了
98
00:05:33,610 --> 00:05:36,710
你可以换一个新的计算机的版本
99
00:05:38,130 --> 00:05:44,510
这样来思考,下一个就是时间
100
00:05:44,600 --> 00:05:47,790
我们软件方法里面
101
00:05:47,800 --> 00:05:49,270
把时间看作是一个
102
00:05:49,280 --> 00:05:54,050
上帝造好的信息系统
103
00:05:56,110 --> 00:05:58,180
我们这里就把它归到哪里,归到这里来了
104
00:05:58,920 --> 00:06:01,410
归到这里来,上帝造好的一个软件系统
105
00:06:02,420 --> 00:06:06,760
安装在宇宙这个大的计算机里面了
106
00:06:07,600 --> 00:06:09,120
它的基础设施就是宇宙
107
00:06:10,910 --> 00:06:12,450
我们可以这样来思考
108
00:06:15,040 --> 00:06:19,120
我们就相当于把上帝看作是一个计算机了
109
00:06:19,450 --> 00:06:21,680
因为人只有我们自己了
110
00:06:24,700 --> 00:06:27,820
然后它向其他的人脑系统
111
00:06:28,350 --> 00:06:30,960
软件系统不断发射时间信号
112
00:06:31,750 --> 00:06:32,860
这些系统收到信号以后
113
00:06:32,950 --> 00:06:34,260
该做什么就做什么
114
00:06:34,870 --> 00:06:37,190
这是我们书里面说的
115
00:06:38,580 --> 00:06:40,070
或者之前的课程里面说的
116
00:06:41,170 --> 00:06:44,090
但从物理学的角度看,这个想象是有问题的
117
00:06:44,100 --> 00:06:46,440
因为时间这个概念本身
118
00:06:46,750 --> 00:06:48,450
严格来说,实际上不存在的
119
00:06:48,460 --> 00:06:52,230
它实际上是我们对事物变化的一种感觉
120
00:06:54,000 --> 00:06:59,060
这个的话,我们的软件
121
00:06:59,070 --> 00:07:01,020
目前管不了这么多
122
00:07:01,190 --> 00:07:04,850
因为我们处理的逻辑没有微妙到这个地步