什么是软件危机?
发布网友
发布时间:2022-03-24 01:16
我来回答
共4个回答
懂视网
时间:2022-03-24 05:37
软件危机的具体表现有:
1、软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。
2、软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人。
3、生产出来的软件难以维护。很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。进入80年代以来,尽管软件工程研究与实践取得了可喜的成就,软件技术水平有了长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。
4、用户对“已完成”的系统不满意现象经常发生。一方面,许多用户在软件开发的初期不能准确完整的向开发人员表达他们的需求;另一方面,软件开发人员常常在对用户需求还没有正确全面认识的情况下,就急于编写程序。
热心网友
时间:2022-03-24 02:45
软件危机指,随着计算机工业的发展,在软件开发过程中逐渐形成了一些矛盾。比如:软件开发没有计划性;软件前期需求分析不足;软件开发过程没有规范等等。这些矛盾表现在软件开发中导致了一系列问题,如开发计划无法顺利执行,成本昂贵,开发的软件错误百出等等。正是这种软件危机才促使人们寻求解决方法,也就产生了软件工程。
热心网友
时间:2022-03-24 04:03
在1960年代,软件规模的不断增长,但在开发中没有把软件开发作为一个系统工程来考虑,认为软件开发就是写程序并设法使之运行,忽视软件分析的重要性,轻视软件维护,最终导致软件危机。
软件危机的主要表现有:
1)对软件开发成本和进度的估计不准确;
2)产品不符合用户的实际需要;
3)软件产品的质量往往靠不住;
4)软件常常是不可维护的。
热心网友
时间:2022-03-24 05:38
软件危机
软件危机的形成
1.硬件生产率大幅提高
如今,计算机的发展已进入一个新的历史阶段;
硬件产品已系列化、标准化,"即插即用"。
硬件产品的生产可以采用最高精尖的现代化工具和手段、自动成批生产。生产效率几百万倍的提高。
生产能力过剩。
2. 软件生产随规模增大复杂度增大
以美国宇航局的软件系统为例:
1963年 水星计划系统 200万条指令
1967年 双子星座计划系统 400万条指令
1973年 阿波罗计划系统 1000万条指令
1979年 哥伦比亚航天飞机系统 4000万条指令
假设1个人一年生产一万条有效指令,那么是否4000人生产一年,或400人生产10年就能完成任务呢?答案是否定的。一万条指令的复杂度决不仅仅是100条指令复杂度的100倍。
3. 软件生产率很低
伴随计算机的普及,整个社会对计算机应用的需求越来越大。
但软件的生产却还沿用"手工作坊"的生产方式,人工编程生产。生产效率仅提高了几倍。
生产能力极其低下。
4. 硬、软件供需失衡
社会大量需求,生产成本高,生产过程控制复杂,生产效率低等等因素构成软件生产的恶性循环。
由此产生"软件危机"。
5. 矛盾引发"软件危机"
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
为了研究、解决软件危机,诞生了一门新兴学科--软件工程学。它把软件作为工程对象,从技术措施和组织管理两个方面来研究、解决软件危机。
软件危机的具体体现
1. 软件开发进度难以预测
拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。以丹佛新国际机场为例:
该机场规模是曼哈顿机场的两倍,宽为希思机场的10倍,可以全天侯同时起降三架喷气式客机;投资1.93亿美元建立了一个地下行李传送系统,总长21英里,有4,000台遥控车,可按不同线路在20家不同的航空公司柜台、登机门和行李领取处之间发送和传递行李;支持该系统的是5,000个电子眼、400 台无线电接受机、56台条形码扫描仪和100台计算机。按原定计划要在1993年万圣节前启用,但一直到1994年6月,机场的计划者还无法预测行李系统何时能达到可使机场开放的稳定程度。
2. 软件开发成本难以控制
投资一再追加,令人难于置信。往往是实际成本比预算成本高出一个数量级。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。
3. 用户对产品功能难以满足
开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。
在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这�"闭门造车"的开发方式必然导致最终的产品不符合用户的实际需要。�
4. 软件产品质量无法保证
系统中的错误难以消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。
软件产品并不是没有错误,而是盲目检测很难发现错误,而隐藏下来的错误往往是造成重大事故的隐患。
5. 软件产品难以维护
软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。
为使系统适应新的硬件环境,或根据用户的需要在原系统中增加一些新的功能,又有可能增加系统中的错误。 6. 软件缺少适当的文档资料
文档资料是软件必不可少的重要组成部分。
实际上,软件的文档资料是开发组织和用户的之间权利和义务的合同书,是系统管理者、总体设计者向开发人员下达的任务书,是系统维护人员的技术指导手册,是用户的操作说明书。
缺乏必要的文档资料或者文档资料不合格,将给软件开发和维护带来许多严重的困难和问题。最典型失败系统的例子是:
IBM公司开发OS/360系统,共有4000多个模块,约100万条指令,投入5000人年,耗资数亿美元,结果还是延期交付。在交付使用后的系统中仍发现大量(2000个以上)的错误。
参考资料:西安交通大学软件开发技术基础多媒体网络课件