为了更好的体系化软件工程相关技术,第一篇文档先整体视角回顾整个软件工程核心的关键时间点,后续再逐步展开。
软件工程发展简史
1.【1930~1946】 计算机理论奠基时代
计算机出现之前,就已经有很多数学家为计算机软件的出现打下了坚实的数学理论基础,最著名的是“阿兰. 图灵”,在 20 世纪三、 四十年代就创建立了“图灵机”理论, 从理论上解决了计算机软件和核心——“计算复杂性”以及“算法表示”问题。
通用图灵机等于向我们展示这样一个过程:程序和其输入可以先保存到存储带上,图灵机就按程序一步一步运行直到给出结果,结果也保存在存储带上。
“图灵”机
图灵机理论是计算机最重要核心的理论
- 它证明了通用计算理论,肯定了计算机实现的可能性,同时它给出了计算机应有的主要架构。
- 引入了读写与算法与程序语言的概念,极大的突破了过去的计算机器的设计理念。
- 阐述了计算机的极限计算能力就是通用图灵机的计算能力,很多问题可以转化到图灵机这个简单的模型来考虑。
我们可以隐约看到现代计算机主要构成(其实就是冯诺依曼理论的主要构成),存储器(相当于存储带),中央处理器(控制器及其状态,并且其字母表可以仅有0和1两个符号),1O系统(相当于存储带的预先输入);
如果说图灵(Alan Turing)奠定了计算机的理论基础,那么冯·诺依曼(John Von Neumann)是将图灵的理论物化成为实际的物理实体,成为计算机体系结构的奠基者,被称为“计算机之父”。
冯·诺依曼与冯·诺依曼机
“冯·诺依曼机”,该架构由算术和逻辑单元 (ALU)、控制单元和临时存储器寄存器组成,它们共同构成了中央处理器 (CPU)。CPU 连接到内存单元,该内存单元包含将要由CPU处理和操作的所有数据。CPU还连接到输入和输出设备,以根据需要更改数据,并检索运行程序的结果。
自 1945 年冯诺依曼提出这一架构以来,直到今天,它基本上仍是当今大多数通用计算机的运行方式,几乎没有改变。
2.【1946~1955】计算机诞生之初的无“软件”概念阶段
1946年2月14日,美国宾夕法尼亚大学制成世界上第一台通用电子数字计算机ENIAC,即电子数字积分电脑,简称“埃尼阿克”。发明者莫克利和艾克特均为美国人,其初衷也是美国奥伯丁武器试验场为了满足计算弹道需要而研制的。