首页 理论教育 软件危机:计算机软件开发与应用研究成果

软件危机:计算机软件开发与应用研究成果

时间:2023-10-17 理论教育 版权反馈
【摘要】:软件成本在计算机系统成本中所占的比例逐年上升。导致人类无力处理“复杂问题”。“复杂问题”的概念是相对的,一旦人们采用先进的组织形式,开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前,所以“复杂问题”的解决需要诸多学科知识及技术的协同发展。以上举例的仅仅是软件危机的一些典型表现,与软件开发和维护有关的问题远不止这些。

软件危机:计算机软件开发与应用研究成果

广义上讲,所谓软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

狭义上讲,所谓软件危机主要有以下一些典型表现:

(1)对软件开发成本和进度的估计常常很不准确。实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的(信誉)。而为了赶进度和节约成本所采取的一些权宜之计又往往降低软件产品的质量,从而会引起用户的不满。

(2)开发人员和用户之间很难沟通,矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种“闭门造车”的开发方式必然导致最终的产品不符合用户的实际需要。

(3)大型软件项目需要组织一定的研发人力共同完成。软件项目管理人员缺乏开发大型软件系统的经验及软件开发各类人员的信息交流不及时、不准确,有时还会产生误解,这些都会导致软件质量无法得到保证。

(4)软件系统中的错误难以消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。软件产品并不是没有错误,而是盲目检测很难发现错误,而隐藏下来的错误往往是造成重大事故的隐患,这些都会导致软件产品出现质量问题。

(5)软件常常是不可维护的。很多程序中的错误是非常难改正的,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需求在原有程序中增加一些新的功能。“可重用的软件”还是一个没有完全做到的、正在努力追求的目标,人们仍然在重复开发类似的或基本类似的软件。(www.xing528.com)

(6)软件通常没有适当的文档资料。错误的观点经常认为:软件就是程序。程序代码写完软件也就设计完了。实际上软件不仅仅是程序,还应该有一整套文档资料。这些文档资料应该是软件开发过程中产生出来的,而且应该是和程序代码完全一致的。软件开发过程中,基线是软件文档和源代码的一个稳定版本,它是进一步开发的基础。软件开发组织的管理人员可以使用这些文档资料作为“里程碑”,来管理和评价软件开发工程的进展状况;软件开发人员可以利用它们作为通信工具,在软件开发过程中准确地交流信息,对于软件维护人员而言,这些文档资料更是必不可少的。[2]缺乏必要的文档资料或者文档资料不合格,必然给软件开发和维护带来许多严重的困难和问题。

(7)软件成本在计算机系统成本中所占的比例逐年上升。随着互联网时代的到来,电子商务、移动互联网兴起,软件经济已经影响到社会经济的方方面面。硬件成本逐年下降,然而软件开发需要大量人力,软件成本随着软件规模和数量的不断扩大而持续上升。

(8)软件开发生产率跟不上计算机应用系统迅速普及深入的速度。软件开发是种高强度的脑力劳动,理论性和实践性都很强,软件开发人员的生产效率也对开发的周期和质量有很大影响。特别是软件工程,对软件开发的成功(按质按量,按期完成)有决定性作用。

(9)软件产品的特殊性和人类智力的局限性。导致人类无力处理“复杂问题”。“复杂问题”的概念是相对的,一旦人们采用先进的组织形式,开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前,所以“复杂问题”的解决需要诸多学科知识及技术的协同发展。

以上举例的仅仅是软件危机的一些典型表现,与软件开发和维护有关的问题远不止这些。

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

我要反馈