文档介绍:软件工程基础
吴超英
北京航空航天大学软件工程研究所
电话:82316284
E-mail :******@. chaoying_wu@
办公室:茹心楼606
绪论
软件开发技术一直是软件工作者的主要研究方向。50多年来,随着计算机系统的发展,软件开发技术也发生着变化。软件工程首先是为了解决软件危机而提出的。其目的是用成功的、卓越的开发经验来指导,通过类似于工业化的管理,把一般程度的开发人员的水平提高到优秀水平。软件开发技术的巨大成就,已经使软件开发不再是少数逻辑天才或专家的专利,而是广大用户可以参与和直接开发自己的应用项目。因此,软件工程技术和设计方法将会受到更多人的关注。
第1章软件工程基本概念
软件危机与软件工程
软件工程定义
软件工程发展简史
软件工程的基本框架
软件工程的主要内容
软件生存周期模型
参考文献
本章练习
1. 软件危机与软件工程
软件代价高
难于控制开发进度
软件工作量估计困难
质量低
软件修改、维护困难
软件代价高
来自美国空军计算机统一数据表明,1995年,软件费用约占总费用的18%,1970年达到60%,1975年达到72%,1980年达到80%,1985年达到85%左右。这种增长的速度的确是惊人的。据M. L. 舒曼的估计,1979年美国的国防预算为1258亿美元,其中9%用于计算机领域,约113亿美元。在这113亿美元当中,91亿美元(约占80%)用于软件投资,仅有不到23亿美元用于硬件设备。
硬件和软件所占费用的比例图 下图大致表示了一个计算机系统中,硬件和软件所占费用的比例(美国)。
难于控制开发进度
软件是一种逻辑的系统元素。据有人估计,软件设计与硬件设计相比,使用的逻辑量要多10~100倍。
软件工作量估计困难
通常我们对一个任务根据其复杂性,工作量及进度要求安排人力。软件系统的结构很复杂,各部分附加联系极大。增加更多人工作往往不是缩短时间进度,而是会延缓进度。
软件质量问题仍然非常严重,例如:1988年美国银行取消了花费了60万美元的项目,原因是由于计算机资源问题而造成无法解决的缺陷;而日本第五代计算机计划,投入50亿美元,亦因软件原因于1993年下马。很多投入了巨大资金和人力的软件产品不能取得很好的成绩。
质量低
软件修改,维护困难
软件维护不是更换某种备件,而是要纠正逻辑缺陷。通常软件维护有三类工作:
改正性维护,约占20%左右;适应性维护,约占25%左右;提高性维护,约占50%左右工作量。