1 软件工程产生背景
1.1 历史发展
1960s的个体作坊式软件开发带来的问题
1.2 软件开发需要解决的问题
代码规模增长带来的影响:
1.3 软件开发面临的挑战
指挥信息系统中的软件:规模大、质量要求高
装备中嵌入式软件系统:规模大、质量要求高
信息化需要多样化和高质量的软件!使命伟大!责任重大!
1.4 软件危机的出现
- 开发成本高:软件成本高,软硬件投资比发生急剧变化
- 进度难以控制:项目延期比比皆是,由于进度问题而取消的软件项目较常见,只有一小部分的项目能够按期完成
- 质量难以保证:人总是会犯错误的,软件开发的错误表现为多种形式(软件开发的错误表现为多种形式,编写的代码在功能上存在错误,实现了功能但是性能达不到要求,所开发的软件交互界面用户不喜欢),有些软件错误可能是致命的
- 软件维护困难:读懂程序比较困难,尤其是他人程序,程序非常脆弱,牵一发而动全身,改了以后易引入错误,有了错误后难以发现
- 失败风险很大
1.4.1 软件危机产生的根源
2 软件工程基本内涵
2.1 软件工程的诞生
提出了软件工程的概念及思想,标志着软件工程的诞生
2.2 软件工程产生的动机
解决软件危机。开发快速,高效,低成本,高质量的软件产品
2.3 何为软件工程
2.3.1 软件工程对软件开发的新认识
2.3.2 软件开发方式的改变
2.4 软件工程的三要素
2.4.1 过程(Process)
2.4.2 方法学(Methodology)
2.4.3 工具(Tool)
2.5 计算机辅助软件工程(CASE)
2.5.1 CASE定义
2.5.2 CASE工具和环境
2.6 软件开发的本质
理解:智慧+规范
2.7 软件工程的目标
在成本、进度等约束下,指导软件开发和运维,开发出满足用户要求的足够好软件。
2.8 软件工程原则
2.8.1 抽象和建模
2.8.2 模块化
2.8.3 软件重用
2.8.4 信息隐藏
2.8.5 关注点分离
2.8.6 分而治之
2.8.7 双向追踪原则
2.8.8 工具辅助
3 软件工程发展历程
3.1 总体发展历程
- 20世纪50-60年代
- 20世纪70年代
- 20世纪80年代
- 20世纪90年代
- 21世纪前十年
- 近十年