届NAT0(北大西洋公约组织的计算机科学家的国际会议)
会议,“软件工程”的慨念作为一种有效解决“软件危机”的途径被正式提出。
什么是软件危机?软件危机有什么典型表现?为什么会产生软件危机?怎么解决软件危机?
§1软件危机§111软件危机介绍什么是软件危机?
软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。软件危机主要包括的问题(两方面)①如何开发软件②如何维护软件
软件危机有什么典型表现?(1)开发费用和进度难以估算和控制,大大超过预期的资金和规定日期;软件需求分析不够充分,用户不满意“已经完成”的软件系统。软件质量难于保证;软件维护困难;
难以改正程序中的错误;难以根据用户的需要在原有程序中增加一些新的功能。
软件危机有什么典型表现?通常没有保留适当的文档资料。文档的作用:
软件开发管理人员:用于管理和评价软件开发工程的进展状况软件开发人员:用于开发人员对各个阶段的工作都进行周密思考、全盘权衡、从而减少返工。并且可在开发早期发现错误和不一致性,便于及时加以纠正软件维护人员软件维护的依据
f开发成本逐年上升,软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
几个软件危机的著名案例①1966年,IBM360机的操作系统。花费5000人一年的工作量,写了近1万行代码。错误百出,每次的新版本就是从前一版本中找1000个程序错误而修正的结果。②1963年,美国用于控制火星探测器的计算机软件中的一个“”号被误写为“”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失。③美国丹佛新国际机场自动化行李系统软件。投资193亿美元,计划1993年万圣节启用。但开发人员一直为系统错误困扰,屡次推后启用时间,直到1994年6月,机场计划者承认无法预测何时能启用。④1996年,欧洲阿里亚纳5型运载火箭坠毁,造成5亿美元损失。原因是控制软件中的一个错误。
§112产生软件危机的原因主要两个原因:1、与软件本身的特点有关2、与软件开发与维护的方法不正确有关。一、软件本身的特点(1)
软件与硬件、一般程序存在很多不同之处。
f1、软件与硬件不同抽象性。软件生产没有明显的制造过程,难以衡量开发进展,也难以控制软件质量。问题的隐蔽性。没有硬件的磨损、老化问题,但存在开发早期在分析、设计阶段的错误,修改难度较大。
失效率蜘线
改正一个问题需付出的代价
2、软件与一般程序不同(1)r