background image

                            

软件的发展

一、

“软件技术”发展历史

第一是软件技术发展早期(

20 世纪 50 和 60 年代);第二是结构化程序和对象

技术发展时期(

70 和 80 年代);第三是从 90 年代到现在,软件工程技术发展

新时期。
1、软件技术发展早期
在计算机发展早期,应用领域较窄,主要是科学与工程计算,处理对象是数值
数据。

1956 年在 J.Backus 领导下为 IBM 机器研制出第一个实用高级语言

Fortran 及其翻译程序。此后,相继又有多种高级语言问世,从而使设计和编制
程序的功效大为提高。这个时期计算机软件的巨大成就之一,就是在当时的水平
上成功地解决了两个问题:一方面从

Fortran 及 Algol60 开始设计出了具有高级

数据结构和控制结构的高级程序语言,另一方面又发明了将高级语言程序翻译
成机器语言程序的自动转换技术,即编译技术。然而,随着计算机应用领域的逐
步扩大,除了科学计算继续发展以外,出现了大量的数据处理和非数值计算问
题。为了充分利用系统资源,出现了操作系统;为了适应大量数据处理问题的需
要,开始出现数据库及其管理系统。软件规模与复杂性迅速增大。当程序复杂性
增加到一定程度以后,软件研制周期难以控制,正确性难以保证,可靠性问题
相当突出。为此,人们提出用结构化程序设计和软件工程方法来克服这一危机。
软件技术发展进入一个新的阶段。

2、结构化程序和对象技术发展时期

70 年代初开始,大型软件系统的出现给软件开发带来了新问题。大型软件系

统的研制需要花费大量的资金和人力,可是研制出来的产品却是可靠性差、错误
多、维护和修改也很困难。一个大型操作系统有时需要几千人年的工作量,而所
获得的系统又常常会隐藏着几百甚至几千个错误。程序可靠性很难保证,程序设
计工具的严重缺乏也使软件开发陷入困境。
结构程序设计的讨论导致产生了由

Pascal 到 Ada 这一系列的结构化语言。这些

语言具有较为清晰的控制结构,与原来常见的高级程序语言相比有一定的改进,
但在数据类型抽象方面仍显不足。面向对象技术的兴起是这一时期软件技术发展
的主要标志。

“面向对象”这一名词在 80 年代初由 Smalltalk 语言的设计者开始提

出,而后逐渐流行起来。
面向对象的程序结构将数据及其上作用的操作一起封装,组成抽象数据或者叫
做对象。具有相同结构属性和操作的一组对象构成对象类。对象系统就是由一组
相关的对象类组成,能够以更加自然的方式模拟外部世界现实系统的结构和行
为。对象的两大基本特征是信息封装和继承。通过信息封装,在对象数据的外围
好像构筑了一堵

“围墙”,外部只能通过围墙的“窗口”去观察和操作围墙内的数据,

这就保证了在复杂的环境条件下对象数据操作的安全性和一致性。通过对象继承
可实现对象类代码的可重用性和可扩充性。可重用性使能处理父、子类之间具有
相似结构的对象共同部分,避免代码一遍又一遍的重复。可扩充性使能处理对象
类在不同情况下的多样性,在原有代码的基础上进行扩充和具体化,以求适应
不同的需要。
传统的面向过程的软件系统以过程为中心。过程是一种系统功能的实现,而面向
对象的软件系统是以数据为中心。与系统功能相比,数据结构是软件系统中相对