文档介绍:计算机导论 1第11章软件工程计算机导论 2 软件工程概述?软件危机?概念: 大型软件开发和维护过程中遇到的一系列严重问题。概括地说,主要包含两方面的问题: 1) 如何开发软件,怎样满足对软件日益增长的需求; 2) 如何维护数量不断膨胀的已有软件?表现形式: 质量难以保证、开发成本和开发进度难以控制、维护非常困难、用户不满意。计算机导论 3 软件危机的主要表现: 软件危机的主要表现: ?1. 对软件开发成本和进度的估计常常很不准确。实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。这种现象降低了开发组织的信誉。为赶进度和节约成本所采取的权宜之计往往又损害了软件产品的质量,从而不可避免地引起用户的不满。计算机导论 4 软件危机的主要表现: 软件危机的主要表现: ?2. 用户对“已完成的”软件系统不满意的现象经常发生。软件开发人员常常在对用户需求只有模糊的了解, 甚至对所要解决的问题还没有确切认识的情况下, 就仓促上阵匆忙着手编写程序。软件开发人员和用户之间的交流往往很不充分, “闭门造车”必然导致最终产品不符合用户实际的需要计算机导论 5 软件危机的主要表现: 软件危机的主要表现: ?3. 软件产品的质量常常靠不住。软件可靠性和质量保证的确切定量概念刚刚出现, 软件质量保证技术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都会导致软件产品发生质量问题。计算机导论 6 软件危机的主要表现: 软件危机的主要表现: ?4. 软件常常是不可维护的。程序中的错误很难改正,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需求在原有程序中增加新的功能?。软件不仅是程序,还应该有一整套文档资料。这些文档资料是在软件开发过程中产生出来的,而且应该是“最新的”(与代码完全一致)。缺乏文档必然给软件的开发和维护带来许多严重的困难和问题软件软件= =程序程序+ +文档文档计算机导论 7 ??6. 6. 软件成本在计算机系统总成本中所占比例逐年软件成本在计算机系统总成本中所占比例逐年上升。上升。随着微电子技术的进步和生产自动化程度的提高, 随着微电子技术的进步和生产自动化程度的提高, 硬件成本逐年下降,然而软件开发需要大量的人硬件成本逐年下降,然而软件开发需要大量的人力,软件成本随着通货膨胀以及软件规模和数量力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而逐年上升。美国在的不断扩大而逐年上升。美国在 1995 1995 年的调查表年的调查表明,软件成本大约已占计算机系统总成本的明,软件成本大约已占计算机系统总成本的 90% 90% 。。软件危机的主要表现: 软件危机的主要表现: 计算机导论 8 软件危机的例子软件危机的例子??最为突出的例子是最为突出的例子是美国美国 IBM IBM 公司于公司于 1963 1963 年~ 年~ 1966 1966 年开发的年开发的 IBM360 IBM360 系系列机的列机的操作系统操作系统。该软件系统花了大约。该软件系统花了大约 5 000 5 000 人一年的工作量,最人一年的工作量,最多时,有多时,有 1000 1000 人投入开发工作,写出近人投入开发工作,写出近 100 100 万行的源程序。尽管投万行的源程序。尽管投入了这么多的人力和物力,得到的结果却极其糟糕。据统计,这个入了这么多的人力和物力,得到的结果却极其糟糕。据统计,这个操作系统每次发行的新版本都是从前一版本中找出操作系统每次发行的新版本都是从前一版本中找出 1000 1000 个程序错误个程序错误而修正的结果。可想而知,这样的软件质量糟到了什么地步而修正的结果。可想而知,这样的软件质量糟到了什么地步。该。该项目的负责人项目的负责人 F F· ·D D· ·布罗克斯在总结该项目时无比沉痛地说: 布罗克斯在总结该项目时无比沉痛地说: ““…………正像一只逃亡的野兽落到泥潭中作垂死挣扎,越是挣扎,陷正像一只逃亡的野兽落到泥潭中作垂死挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难, 得越深,最后无法逃脱灭顶的灾难, …………程序设计工作正像这样一程序设计工作正像这样一个泥潭个泥潭…………一批批程序员被迫在泥潭中拼命挣扎, 一批批程序员被迫在泥潭中拼命挣扎, …………,谁也没有,谁也没有料到问题竟会陷入这样的困境料到问题竟会陷入这样的困境…………。。””IBM360 IBM360 操作系统的历史教操作系统的历史教训已成为软件开发项目中的典型事例被记入历史史册。训已成为软件开发项目中的典型事例被记入历史史册。计算机导论 9 软件危机的例子软件危机的例子??如果开发的软件隐含错误,可靠性得不到保证,那么在运如果开发的软件隐含错误,可靠性得不