background image

关于软件工程的历史与发展趋势

论文摘要:软件是一种特殊的产品,随着其规模和复杂性的提高、使用范围的扩
大,需要从技术和管理两方面对软件的开发过程进行控制。从软件工程这门学科
和技术出现的背景出发,回顾了软件工程在近

40 年来理论、方法和实践中的成

果。最后结合

Internet 技术和平台的挑战,初步讨论了软件工程需要面对的新

 

挑战。

 

  论文关键词:软件危机;构件;体系结构;软件项目管理;中间件

  

1

 

软件工程的出现

  

1.1

 

软件危机

  

20 世纪中期,

计算

机刚被从军用领域转向民用领域使用,那时编写程序的

工作被视同为

艺术

家的创作。当时的计算机硬件非常昂贵,编程人员追求的是如

何在有限的处理器能力和存储器空间约束下,编写出执行速度快、体积小的程序
程序中充满了各种各样让人迷惑的技巧。这时的软件生产非常依赖于开发人员的

 

聪明才智。
到了

20 世纪 60 年代,计算机的应用范围得到较大扩展,对软件系统的需求和

软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面

”  

对软件的需求。这就是所谓的 软件危机 。
  为解决这个问题,

1968 年 NATO

会议上首次提出 软件工

(SotfwraeEngineeirng)

” “

的概念,提出把软件开发从 艺术 和 个体行为

” “

向 工程 和 群体协同工作 转化。其基本思想是应用计算机

科学

理论和技术以及

工程管理原则和方法,按照预算和进度,实现满用户要求的软件产品的定义、开

——

 

发、发布和维护的工程。从此也诞生了一门新的学科

软件工程。

  迄今为之,为了达到最初设定的目标,软件工程界已经提出了一系列的理
论、方法、语言和工具,解决了软件开发过程中的若干问题。但是,由于软件固有
的复杂性、易变性和不可见性,软件开发周期长、代价高和质量低的问题依然存
在。

IEEE 在 2002 年发表的报告指出,即使是 IT 产业最发达的美国,在 2001

年美国本土公司开发的软件产品中平均每

1000 行代码中有 0.37 个错误,对

 

于美国之外的其他国家,这个比例更高。
  

1.2

 

软件与其他产品的差异

  软件是一种特殊的产品,人们通常看到的是它的载体,而真正具有意义的

 

是载体上的计算机或信息。
  软件既不同于通常的精神产品,也不同于常见的物质产品。作家的作品是一
种精神产品,它没有使用价值却可以供人阅读欣赏。若把软件也看成是一种作品

 

却发现其价值在于供人们使用,无人喜欢读它的源代码。
  软件也与传统的

工业

产品不同。工业产品在设计好之后,主要的成本是原材

料成本、生产过程的开销等,但生产任何软件的主要成本是设计、实现软件时的
成本,以及软件投入使用后的维护成本,在生产线上制造软件的成本非常低。用
户购买某种商品后,就拥有了该商品的所有权和使用权。可是用户买来的软件却

只拥有它的有限 使用权 。工业产品会随着使用而磨损、报废,但软件在使用过
程不会有任何磨损,在相同的硬件条件下用户

1 年前使用的软件和 5 年后使用

该软件无任何差别。传统的工业产品在车间里生产,生产过程可见、可触摸,也
容易衡量生产过程中的消耗和进展。可是软件的开发过程在人的大脑里,很难度