3.1 软件的历史

在计算机发展史上,二值逻辑和布尔代数的使用是一项重要的突破。1847年,英国数学家布尔在《逻辑的数学分析》一书中分析了数学和逻辑之间的关系,并阐述了逻辑归于数学的思想。这在数学发展史上是一个了不起的成就,也是思维的一大进步,并为现代计算机提供了重要的理论准备。但是,布尔理论直到100年之后才被用于计算机。在此期间,程序设计随硬件的发展,其形式也不断发展。

在基于继电器的计算机器时代,所谓“程序设计”实际上就是设置继电器开关以及根据要求使用电线把所需的逻辑单元相连,重新设计程序就意味着重新连线。所以通常的情况是:“设置程序”花了许多天时间,而计算本身则几分钟就可以完成。此后,随着真空管计算机和晶体管计算机的出现,程序设计的形式有了不同程度的改变,但革命性的变革则是在1948年,香农[1]重新发现了二值演算,二值逻辑代数被引入程序设计过程,程序的表现形式就是存储在不同信息载体上的“0”和“1”的序列,这些载体包括纸带、穿孔卡以及后来的磁鼓、磁盘和光盘等。此后,计算机程序设计进入了一个崭新的发展阶段。就程序设计语言来讲,已经经历了机器语言、汇编语言、高级语言和非过程语言等四个阶段。

计算机软件的发展与软件产业化的进程息息相关。在电子计算机诞生之初,计算机程序是作为解决特定问题的工具和信息分析的工具而存在的。软件产业化是在20世纪50年代,随着计算机在商业应用中的迅猛增长而发生的。这种增长直接导致了社会对程序设计人员需求的增长,于是,一部分具有计算机程序设计经验的人分离出来专门从事程序设计工作,根据用户订单提供相应的程序设计服务,这样,就产生了第一批软件公司。进入20世纪六七十年代,计算机的应用范围持续快速增长,使计算机软件产业无论是软件公司的数量还是产业的规模都有了更大的发展,与软件业相关的各种制度也逐步建立。