首页 理论教育 软件危机及解决策略-软件系统分析与体系结构设计

软件危机及解决策略-软件系统分析与体系结构设计

时间:2023-10-16 理论教育 版权反馈
【摘要】:图1-1硬件失效率曲线图1-2软件失效率曲线具体地说,软件危机主要体现在如下方面:软件开发成本日益增长;软件开发进度难以控制;软件质量难以保证;软件维护困难。图1-3软件技术发展5个阶段的典型技术比较要解决软件危机,技术和必要的组织管理不可或缺。

软件危机及解决策略-软件系统分析与体系结构设计

软件危机泛指软件开发和维护过程中遇到的一系列严重的问题,概括来说包含两个方面:

(1)如何开发软件,以满足不断增长的、日趋复杂的要求;

(2)如何维护规模不断庞大的软件产品。

软件和硬件的开发、运行、维护过程有着本质的不同。从软件本身的特点来看,只要应用环境和应用需求没有发生改变,其运行和使用期间不会出现硬件那样的机械磨损、老化问题。如图1-1所示的是硬件失效率随时间变化的曲线,可以看到在硬件使用初期和磨损一段相当长的时间后,失效率较高,而在中间时间段,硬件工作状态稳定,失效率较低。如图1-2所示的是软件的理想失效率曲线和实际失效率曲线。在绝对理想情况下,虽然软件在其生命周期初期的失效率较高(这往往是由于用户对软件不够熟悉导致),但随着时间的推移,软件故障不断排除,失效率逐渐趋近于零,并且可以持续使用,永不失效;而实际中,软件在其生命周期内是需要根据应用环境和需求变化不断维护和更新的,因此故障曲线呈现锯齿状,并依然呈现上升的态势。

图1-1 硬件失效率曲线

图1-2 软件失效率曲线

具体地说,软件危机主要体现在如下方面:

(1)软件开发成本日益增长;

(2)软件开发进度难以控制;

(3)软件质量难以保证;(www.xing528.com)

(4)软件维护困难。

案例学习

丹佛新国际机场行李传送控制系统:该机场是美国面积最大及全世界面积第二大的机场,拥有美国最长的跑道。该机场计划投资1.93亿美元建立一个地下行李传送系统,总长21英里,有4 000台遥控车,可按不同线路在20家不同的航空公司柜台、登机门和行李领取处之间发送和传递行李;支持该系统的是5 000个电子眼、400台无线电接收机、56台条形码扫描仪和100台计算机。按原定计划要在1993年万圣节前启用,但一直到1994年6月,机场的计划者还无法预测行李系统何时能达到可使机场开放的稳定程度。

◎IBM公司经典软件危机案例:该公司开发OS/360系统,共有4 000多个模块,约100万条指令,投入5 000人/年,耗资数亿美元,结果还是延期交付。在交付使用后的系统中仍发现大量(2 000个以上)的错误

造成软件危机的原因有很多,例如:软件本身的复杂性、软件产品的特殊性、人们认识的局限性等。其中软件本身的复杂性是核心原因,它主要包括以下两点:

(1)开发结构的逐渐复杂性。例如,Windows 95有1 000万行代码,Windows XP达到了4 000万行代码,而Windows 7使用了20多个开发小组、近千名程序员,即使经过代码复用和优化,代码总行数也超过了5 000万行。甚至以内核简洁著称的Linux在2.6.27版之后,其源代码也超过了1 000万行。

(2)软件技术的发展复杂性。如图1-3所示,软件技术发展5个阶段的典型技术比较显示了软件技术逐渐复杂化的发展过程。

图1-3 软件技术发展5个阶段的典型技术比较

要解决软件危机,技术(包括方法和工具)和必要的组织管理不可或缺。软件工程正是从技术和管理两方面,研究如何更好地开发和维护计算机软件的实践科学

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

我要反馈