软件发展史

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件发展史

软件发展史

软件是计算机的组成部分

软件[software]是一系列按照特定顺序组织的计算机数据和指令的集合。

史前时期

计算机出现之前,就已经有很多数学家为计算机软件的出现打下了坚实的数学理论基础,比如著名的数学家“阿兰.图灵”和他的导师一起努力,在20世纪三、四十年代年代就创建立了“图灵机”理论,从理论上解决了计算机软件和核心——“计算复杂性”以及“算法表示”问题。前者研究“能不能计算”的问题,后者研究“如何计算”的问题,正是有了这样的数学理论作为基础,加上当时电子技术的突飞猛进,二者相结合,才产生了计算机这样一个划时代的伟大产物。1946年

硬件:美国宾夕法尼亚大学经过几年的艰苦努力,研制出世界上第一台电子计算机,是电子管计算机,结构上以CPU为中心,使用机器语言,速度慢、存储量小,主要用于数值计算。计算机都是按照“冯.诺依曼”体系设计的,其运行的基本原理,可以简单概括为“程序存储、集中控制”,“约翰.冯.诺依曼”被称为“计算机之父”

语言:计算机的内部处理的全都是1和0的二进制数字,表示“开”和“关”,而计算机刚刚发明出来的时候,操作人员就必须用很多真正的“开关”来操作计算机,进步一点以后,出现了“机器语言”的概念,使用例如在纸带上打孔的方式,把一些原来需要人手工拨动开关的操作序列,变成按照某种规则在纸带上的一系列孔的序列,这种打着孔的纸带可以被看作是今天的鼠标、键盘、打印机、显示器、磁盘这些东西的总和,这些东西在当年,“打孔纸带”一个人就全包了。软件工程:伴随着第一台电子计算机的问世诞生了。以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师,硬件通常用来执行一个单一的

程序,而这个程序又是为一个特定的目的而编制的。早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。而且,除了源代码往往没有软件说明书等文档。

机器语言通常称为“第一代语言”,其后又产生了“汇编语言”,即“第二代语言”,汇编语言实际上就是机器语言,区别就是汇编语言中用一些符号代替0和1的序列,仅仅是便于记忆,此外,有少量的扩展功能,比如可以通过定义的“宏”来产生类似于“子程序”这样的逻辑概念,通过编写汇编语言程序产生机器代码,效率提高了很多,但是它依然是紧密依赖于机器的,和后来被广泛使用的高级语言是完全不同的。

1954年,“约翰.巴科斯”建立了高级语言的思想,并设计出了世界上第一个真正意义上(至今广泛应用)的高级语言,第一个完全脱离机器硬件的高级语言—Fortran问世

1955-,典型的操作系统是FMS(FORTRAN Monitor System-FORTRAN监控系统)和IBSYS(IBM为7094机配备的操作系统)。

1958年

晶体管计算机,结构上以存储器为中心,使用高级语言应用范围扩大到数据处理和工业控制。

1961年第一个数据库管理系统—IDS由通用电气(GE)公司的Charles Bachman 开发出。

1964年

中小规模集成电路计算机,结构上仍以存储器为中心,增加了多种外部设备,软件得到一定发展,计算机处理图像、文字和资料功能加强。

60年代中期之前的第一代计算机网络是以单个计算机为中心的远程联机系统。典型应用是由一台计算机和全美范围内2 000多个终端组成的飞机定票系统。终端是一台计算机的外部设备包括显示器和键盘,无CPU和内存。

60年代中期软件开始作为一种产品被广泛使用,出现了“软件作坊”专职应别人的需求写软件。这一软件开发的方法基本上仍然沿用早期的个体化软件开发方式,但软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜。“软件危机”就这样开始了!1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了“软件危机”(software crisis)这个名词。概括来说,软件危机包含两方面问题:一、如何开发软件,以满足不断增长,日趋复杂的需求;

二、如何维护数量不断膨胀的软件产品。同年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(software engineering)这个概念。软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。软件工程包括两方面内容:软件开发技术和软件项目管理。软件开发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等

60年代末“软件危机”后出现的第一个生命周期模型。如下所示:分析→ 设计→编码→ 测试→ 维护,使人们认识到了文档的标准以及开发者之间、开发者与用户之间的交流方式的重要性。一些重要文档格式的标准被确定下来,包括变量、符号的命名规则以及原代码的规范式。

1969年UNIX出现

1969年12月,Internet 的前身——美国的ARPA网投入运行,它标志着我们常称的计算机网络的兴起。

1969年,提出了结构化程序设计方法,

1970年,第一个结构化程序设计语言—Pascal语言出现,标志着结构化程序设计时期的开始,即PO(面向过程的开发或结构化方法)以及结构化的分析、设计和相应的测试方法。

1971年

大、超大规模集成电路计算机,应用更加广泛,出现了微型计算机。

1972 C语言出现

1975年的第六版 UNIX才开始走出贝尔实验室

1979年Oracle公司引入了第一个商用SQL关系数据库管理系统。

70年代末至90年代的第三代计算机网络(见图3-3)是具有统一的网络体系结构并遵循国际标准的开放式和标准化的网络。

1983年 C++出现

1983年IBM DB2数据库产品推出的。

由于各种各样的应用软件需要在各种平台之间进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协同性得以保证。这些,都需要一种构筑于软、硬件平台之上,同时对更上层的应用软件提供支持的软件系统,而中间件正是在这个环境下应运而生。

1984年Tuxedo作为第一个严格意义上的中间件产品由AT&T的贝尔实验室开发完成

1985年Windows 1.0正式推出的

之前软件结构体系也是Mainframe结构,该结构下客户、数据和程序被集中在主机上。

随着PC个人微机应用的推广,PC联网的需求也随之增大,各种基于PC互联的微机局域网纷纷出台。基于文件服务器的微机网络对网内计算机进行了分工:PC 机面向用户,微机服务器专用于提供共享文件资源。

20世纪80年代中期出现了Client/Server结构,此结构把数据库内容放在远程的服务器上,而在客户机上安装相应软件。C/S软件一般采用两层结构。

1986年 Eiffel出现

80年代末面向对象的分析、设计方法(OOA和OOD)的出现,随之而来的是面向对象建模语言(以UML为代表)、软件复用、基于组件的软件开发等新的方法和领域。与之相应的是从企业管理的角度提出的软件过程管理

相关文档
最新文档