1
 软件工程
1.3.2.3 1.2.3 软件危机产生的原因

1.2.3 软件危机产生的原因

20世纪60年代,计算机已经应用在很多行业,解决问题的规模及难度逐渐增加,由于软件本身的特点及软件开发方法等多方面问题,软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难,导致20世纪60年代末软件危机的爆发。导致软件危机爆发的原因主要可以概括为以下几点。

1)用户需求不明确

在软件被开发出来之前,用户自己也不清楚软件开发的具体需求;用户对软件开发需求的描述不精确,可能有遗漏、有二义性甚至有错误;在软件开发过程中,用户还会提出修改软件开发功能、界面、支撑环境等方面的要求;软件开发人员对用户需求的理解与用户的本来愿望有差异。

2)缺乏正确的理论指导

由于软件开发不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品很大程度上依赖于开发人员高度的智力投入。过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧了软件开发产品的个性化,这也是发生软件危机的一个重要原因。

3)软件开发规模越来越大

随着软件开发应用范围的扩大,软件开发规模越来越大。大型软件开发项目需要组织一定的人力共同完成,然而多数管理人员缺乏开发大型软件系统的经验,多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确,有时还会产生误解。软件开发人员不能有效地、独立自主地处理大型软件开发的全部关系和各个分支,因此容易产生疏漏和错误。

4)软件开发复杂度越来越高

软件开发不仅仅是在规模上快速地发展扩大,而且其复杂性也急剧地增加。软件开发产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。所谓“复杂问题”的概念是相对的,一旦人们采用的先进组织形式、开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又会摆在人们面前。