软件危机的主要表现是软件需求增加(软件危机的主要表现是软件需求增加 软件价格上升)

软件危机的主要表现是软件需求增加(软件危机的主要表现是软件需求增加 软件价格上升)缩略图

软件危机的主要表现

软件危机的主要表现

软件开发进度难以预测

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

软件开发成本难以控制

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

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

用户对产品功能难以满足

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

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

软件产品质量无法保证

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

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

软件产品难以维护

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

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

软件缺少适当的文档资料

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

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

什么是软件危机?

什么是软件危机?

软件危机

软件危机的形成

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. 用户对产品功能难以满足

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

在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这

软件危机产生的原因

软件危机产生的原因

软件工程研究结果表明 ,软件危机的原因主要有两方面:

①与软件本身的特点有关。

软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件;软件样品即是产品,试制过程也就是生产过程;软件不会因使用时间过长而“老化”或“用坏”;软件具有可运行的行为特性,在写出程序代码并在计算机上试运行之前,软件开发过程的进展情况较难衡量,软件质量也较难评价,因此管理和控制软件开发过程十分困难;软件质量不是根据大量制造的相同实体的质量来度量,而是与每一个组成部分的不同实体的质量紧密相关,因此,在运行时所出现的软件错误几乎都是在开发时期就存在而一直未被发现的,改正这类错误通常意味着改正或修改原来的设计,这就在客观上使得软件维护远比硬件维护困难;软件是一种信息产品,具有可延展性,属于柔性生产,与通用性强的硬件相比,软件更具有多样化的特点,更加接近人们的应用问题。

随着计算机应用领域的扩大,99%的软件应用需求已不再是定义良好的数值计算问题,而是难以精确描述且富于变化的非数值型应用问题。因此,当人们的应用需求变化发展的时候,往往要求通过改变软件来使计算机系统满足新的需求,维护用户业务的延续性。

②危机原因来自于软件开发人员的如下弱点:

其一,软件产品是人的思维结果,因此软件生产水平最终在相当程度上取决于软件人员的教育、训练和经验的积累;

其二,对于大型软件往往需要许多人合作开发,甚至要求软件开发人员深入应用领域的问题研究,这样就需要在用户与软件人员之间以及软件开发人员之间相互通讯,在此过程中难免发生理解的差异,从而导致后续错误的设计或实现,而要消除这些误解和错误往往需要付出巨大的代价;

其三,由于计算机技术和应用发展迅速,知识更新周期加快,软件开发人员经常处在变化之中,不仅需要适应硬件更新的变化,而且还要涉及日益扩大的应用领域问题研究;软件开发人员所进行的每一项软件开发几乎都必须调整自身的知识结构以适应新的问题求解的需要,而这种调整是人所固有的学习行为,难以用工具来代替。

软件生产的这种知识密集和人力密集的特点是造成软件危机的根源所在。

从软件开发危机的种种表现和软件开发作为逻辑产品的特殊性可以发现软件开发危机的原因:

(1)用户需求不明确

在软件开发过程中,用户需求不明确问题主要体现在四个方面:

在软件开发出来之前,用户自己也不清楚软件开发的具体需求;

用户对软件开发需求的描述不精确,可能有遗漏、有二义性、甚至有错误;

在软件开发过程中,用户还提出修改软件开发功能、界面、支撑环境等方面的要求;

软件开发人员对用户需求的理解与用户本来愿望有差异。

(2)缺乏正确的理论指导

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

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

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

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

软件开发不仅仅是在规模上快速地发展扩大,而且其复杂性也急剧地增加。软件开发产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。所谓“复杂问题”的概念是相对的,一旦人们采用先进的组织形式、开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前。这个只是原因,有一些解决的方法,我不想打字了 累死我了!你要是想知道再说吧。

软件危机形成的原因!!!

软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但软件开发技术的进步一直未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现在以下几个方面:

a.经费预算经常突破,完成时间一再拖延。

b.开发的软件不通满足用户要求。

c.开发的软件可维护性差。

d. 开发的软件可靠性差。

软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:

a.软件的规模越来越大,结构越来越复杂。

b.软件开发管理困难而复杂。

c.软件开发费用不断增加。

d.软件开发技术落后。

e.生产方式落后。

f.开发工具落后,生产率提高缓慢。

什么是软件危机

软件危机指,随着计算机工业的发展,在软件开发过程中逐渐形成了一些矛盾.比如:软件开发没有计划性;软件前期需求分析不足;软件开发过程没有规范等等.这些矛盾表现在软件开发中导致了一系列问题,如开发计划无法顺利执行,成本昂贵,开发的软件错误百出等等.正是这种软件危机才促使人们寻求解决方法,也就产生了软件工程.