文档介绍:<<计算机科学导论>> -- Part 6. 软件工程概论
胡军
南京航空航天大学
@
2010,10
10/5/2018
1
南京航空航天大学胡军
本章概要
软件工程的基本概念
几个实例,历史发展(软件危机),
基本概念
软件工程中生命周期模型
瀑布模型
软件开发方法学
UML(统一建模语言)介绍
软件过程管理和质量控制
CMM介绍
相关资源
经典书籍,网络资源
10/5/2018
2
南京航空航天大学胡军
几个例子– IBM的OS/360
上世纪60年代,IBM公司开发OS/360系统,共有4000多个模块,约100万条指令,投入5000人年,耗资数亿美元,结果还是延期交付;并且在交付使用后的系统中仍发现大量(2000个以上)的错误。
“陷入沼泽地的大象”
10/5/2018
3
南京航空航天大学胡军
几个例子– BOA的信息管理系统
上个世纪的80年代初,美利坚银行(Bank of America: BOA)系统失败噩梦:
1982年秋天,BOA决定建立一套业务和客户管理的软件系统;18个月的详尽研究分析,2000万美元的计划,项目截止时间是1984年12月31日;
直到1986年6月,银行才得以向客户演示一个还有着太多漏洞的系统。 
1987年3月,系统在晚了27个月投入正式工作。
美利坚银行的IT噩梦开始了; 银行在晚了3个月才能发布会计报表,直接导致客户的信任开始丧失,企业客户抽走了价值40亿美元的基金。
最后,美利坚银行的管理层放弃了这个项目。
10/5/2018
4
南京航空航天大学胡军
几个例子–欧洲阿丽亚娜火箭
1996年6月4日,阿丽亚娜(Ariane)5型火箭在法属圭亚那库鲁航天中心首次发射。当火箭离开发射台升空30秒时,发生爆炸。与阿丽亚娜5型火箭一同化为灰烬的还有4颗太阳风观察卫星。
原因: 阿丽亚娜5型火箭采用了阿丽亚娜4型火箭导航定位软件模块, 但是加速度值的浮点数转换出现溢出,导致惯性导航系统对火箭控制失效,控制程序只得进入异常处理模块,引爆自毁。箭载两套计算机系统由于硬件、软件完全相同,没有达到软件容错的目的。
10/5/2018
5
南京航空航天大学胡军
几个例子–丹佛新国际机场
美国丹佛新国际机场的地下行李传送系统:
该机场规模是曼哈顿机场的两倍,宽为希思机场的10倍,可以全天侯同时起降三架喷气式客机;
;总长21英里,4,000台遥控车,可按不同线路在20家不同航空公司柜台、登机门和行李领取处之间发送和传递行李;支持该系统的是5,000个电子眼、400台无线电接受机、56台条形码扫描仪和100台计算机;
原定计划要在1993年万圣节前启用,但一直到1994年6月,该系统还无法正常运行。
10/5/2018
6
南京航空航天大学胡军
表现形式:
工期超出、成本失控: 软件开发没有真正的计划性,对软件开发进度和软件开发成本的估计常常很不准确,计划的制定带有很大的盲目因素;
对于软件需求信息的获取常常不充分,软件产品往往不能真正地满足用户的实际需求;
“我知道你相信你明白了你认为我所说的是什么,但是我不能肯定你是否意识到你听到的并不是我所指的意思...…”
缺乏良好的软件质量评测手段,从而导致软件产品的质量常常得不到保证。
软件危机(Software Crisis)
10/5/2018
7
南京航空航天大学胡军
软件的可复用性、可维护性不如人意;
软件开发过程没有实现“规范化”,
缺乏必要的文档资料或者文档资料不合格、不准确,难以进行专业维护;
软件开发的人力成本持续上升。
软件危机
计算机系统硬件、软件成本比例变化
10/5/2018
8
南京航空航天大学胡军
软件技术的发展落后于需求
软件危机
10/5/2018
9
南京航空航天大学胡军
什么是软件(Software)?
“软件是程序以及开发、使用、维护程序所需要的所有文档”。
-- Prof. Barry W. Boehm (加州州立大学教授)
主要的文档应当包括:
“需求规格说明书”、
“体系结构设计说明书”、
“详细设计说明书”、
“安装手册”、“操作手册”、
“系统管理员手册”等。
“缺乏必要的配置文档,将严重影响软件的可理解性,从而给软件的维护造成严重障碍”
软件工程的基本概念
10/5/2018
10
南京航空航天大学胡军