关于软件工程的历史与发展趋势
论文摘要:软件是一种特殊的产品,随着其规模和复杂性的提高、使用范围的扩
大,需要从技术和管理两方面对软件的开发过程进行控制。从软件工程这门学科
和技术出现的背景出发,回顾了软件工程在近
40 年来理论、方法和实践中的成
果。最后结合
Internet 技术和平台的挑战,初步讨论了软件工程需要面对的新
挑战。
论文关键词:软件危机;构件;体系结构;软件项目管理;中间件
1
软件工程的出现
1.1
软件危机
20 世纪中期,
家的创作。当时的计算机硬件非常昂贵,编程人员追求的是如
何在有限的处理器能力和存储器空间约束下,编写出执行速度快、体积小的程序
程序中充满了各种各样让人迷惑的技巧。这时的软件生产非常依赖于开发人员的
聪明才智。
到了
20 世纪 60 年代,计算机的应用范围得到较大扩展,对软件系统的需求和
软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面
“
”
对软件的需求。这就是所谓的 软件危机 。
为解决这个问题,
1968 年 NATO
“
会议上首次提出 软件工
”
程
(SotfwraeEngineeirng)
“
” “
”
的概念,提出把软件开发从 艺术 和 个体行为
“
” “
”
向 工程 和 群体协同工作 转化。其基本思想是应用计算机
工程管理原则和方法,按照预算和进度,实现满用户要求的软件产品的定义、开
——
发、发布和维护的工程。从此也诞生了一门新的学科
软件工程。
迄今为之,为了达到最初设定的目标,软件工程界已经提出了一系列的理
论、方法、语言和工具,解决了软件开发过程中的若干问题。但是,由于软件固有
的复杂性、易变性和不可见性,软件开发周期长、代价高和质量低的问题依然存
在。
IEEE 在 2002 年发表的报告指出,即使是 IT 产业最发达的美国,在 2001
年美国本土公司开发的软件产品中平均每
1000 行代码中有 0.37 个错误,对
于美国之外的其他国家,这个比例更高。
1.2
软件与其他产品的差异
软件是一种特殊的产品,人们通常看到的是它的载体,而真正具有意义的
是载体上的计算机或信息。
软件既不同于通常的精神产品,也不同于常见的物质产品。作家的作品是一
种精神产品,它没有使用价值却可以供人阅读欣赏。若把软件也看成是一种作品
却发现其价值在于供人们使用,无人喜欢读它的源代码。
软件也与传统的
产品不同。工业产品在设计好之后,主要的成本是原材
料成本、生产过程的开销等,但生产任何软件的主要成本是设计、实现软件时的
成本,以及软件投入使用后的维护成本,在生产线上制造软件的成本非常低。用
户购买某种商品后,就拥有了该商品的所有权和使用权。可是用户买来的软件却
“
”
只拥有它的有限 使用权 。工业产品会随着使用而磨损、报废,但软件在使用过
程不会有任何磨损,在相同的硬件条件下用户
1 年前使用的软件和 5 年后使用
该软件无任何差别。传统的工业产品在车间里生产,生产过程可见、可触摸,也
容易衡量生产过程中的消耗和进展。可是软件的开发过程在人的大脑里,很难度