零基础学电脑第二十四课:计算机软件危机(网络尖刀电脑基础教程)

2012-5-8 19:19 发布者: admin 阅读:2000

2.5 软件危机

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些严重的问题阻碍着软件生产的规模化、商品化以及生产效率。使得软件的开发和生产成为制约软件产业发展的“瓶径”。

1.软件危机的由来

(1)硬件生产率大幅提高

如今,计算机的发展已进入一个新的历史阶段。硬件产品已系列化、标准化,“即插即用”。硬件产品的生产可以采用最高精尖的现代化工具和手段、自动成批生产。生产效率几百万倍的提高。生产能力过剩。

(2)软件生产复杂度随规模增大

以美国宇航局的软件系统为例:

1963年 水星计划系统        200万条指令

1967年 双子星座计划系统    400万条指令

1973年 阿波罗计划系统      1000万条指令

1979年哥伦比亚航天飞机系统 4000万条指令

假设1个人一年生产一万条有效指令,那么是否4000人生产一年,或400人生产10年就能完成任务呢?答案是否定的。一万条指令的复杂度决不仅仅是100条指令复杂度的100倍。

(3)软件生产率很低

伴随计算机的普及,整个社会对计算机应用的需求越来越大。但软件的生产却还沿用“手工作坊”的生产方式,人工编程生产。生产效率仅提高了几倍。生产能力极其低下。

(4)硬、软件供需失衡

社会大量需求,生产成本高,生产过程控制复杂,生产效率低等等因素构成软件生产的恶性循环。

2.软件危机的具体体现

⑴ 软件开发进度难以预测

拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。

⑵ 软件开发成本难以控制

投资一再追加,令人难于置信。往往是实际成本比预算成本高出一个数量级。

而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。

⑶ 用户对产品功能难以满足

开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。

在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种“闭门造车”的开发方式必然导致最终的产品不符合用户的实际需要。

⑷ 软件产品质量无法保证

系统中的错误难以消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。

软件产品并不是没有错误,而是盲目检测很难发现错误,而隐藏下来的错误往往是造成重大事故的隐患。

⑸ 软件产品难以维护

软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。

为使系统适应新的硬件环境,或根据用户的需要在原系统中增加一些新的功能,又有可能增加系统中的错误。

⑹ 软件缺少适当的文档资料

文档资料是软件的重要组成部分。

实际上,软件的文档资料是开发组织和用户的之间权利和义务的合同书,是系统管理者、总体设计者向开发人员下达的任务书,是系统维护人员的技术指导手册,是用户的操作说明书。

缺乏必要的文档资料或者文档资料不合格,将给软件开发和维护带来许多严重的困难和问题。


关注公众号:拾黑(shiheibook)了解更多!

关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接