理论教育 解读软件开发的复杂性

解读软件开发的复杂性

时间:2023-11-09 理论教育 版权反馈
【摘要】:20世纪60—70年代,西方计算机科学家把软件开发和维护过程中遇到的一系列严重问题统称为“软件危机”,软件开发的复杂性表现在如下几个方面。由上述的现象可以看出,所谓的“软件危机”并不仅仅表现在不能开发出完成预定功能的软件,更麻烦的是还包含那些如何开发软件、如何维护大量已经存在的软件以及开发速度如何匹配目前对软件越来越多的需求等相关的问题。为了克服“软件危机”,人们进行了不断的探索。

解读软件开发的复杂性

由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术和管理方法,软件开发也进入了软件工程时代。

随着微电子学技术的进步,计算机硬件性能价格比平均每十年提高两个数量级,而且质量稳步提高;与此同时,计算机软件成本却在逐年上升且质量没有可靠的保证,软件开发的生产率也远远跟不上普及计算机应用的要求。可以说软件已经成为限制计算机系统发展的关键因素。20世纪60—70年代,西方计算机科学家把软件开发和维护过程中遇到的一系列严重问题统称为“软件危机”,软件开发的复杂性表现在如下几个方面。

①软件开发的生产率远远不能满足客观需要,使得人们不能充分利用现代计算机硬件所提供的巨大潜力。

②开发的软件产品往往与用户的实际需要相差甚远。软件开发过程中不能很好地了解并理解用户的需求,也不能适应用户需求的变化。

③软件产品质量与可维护性差。软件的质量管理没有贯穿到软件开发的全过程,直接导致所提交的软件存在很多难以改正的错误。软件的开发基本没有实现软件的可重用,软件也不能适应硬件环境的变化,也很难在原有软件中增加一些新的功能。再加之软件的文档资料通常既不完整也不合格,使得软件的维护变得非常困难。(www.daowen.com)

④软件开发的进度计划与成本的估计很不准确。实际成本可能会比估计成本高出一个数级,而实际进度却比计划进度延迟几个月甚至几年。开发商为了赶进度与节约成本会采取一些权宜之计,这往往会使软件的质量大大降低。这些现象极大地损害了软件开发商的信誉。

由上述的现象可以看出,所谓的“软件危机”并不仅仅表现在不能开发出完成预定功能的软件,更麻烦的是还包含那些如何开发软件、如何维护大量已经存在的软件以及开发速度如何匹配目前对软件越来越多的需求等相关的问题。

为了克服“软件危机”,人们进行了不断的探索。有人从制造机器和建筑楼房的过程中得到启示,无论是制造机器还是建造楼房都必须按照规划→设计→评审→施工(制造)→验收→交付的过程来进行,那么在软件开发中是否也可以像制造机器与建造楼房那样有计划、有步骤、有规范地开展软件的开发工作呢?答案是肯定的。于是20世纪60年代末用工程学的基本原理和方法来组织和管理软件开发全过程的一门新兴的工程学科诞生了,这就是计算机软件工程学,通常简称为软件工程。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈