第一篇 软件工程引论
第1章 软件工程概述
1.1 软件的概念与特点
1.2 软件的分类
1.3 软件的发展和软件危机
1.4 软件工程的目标和原则
1.5 软件过程及其模型
1.5.1 软件过程
1.5.2 软件过程模型
1.6 软件开发工具
1.7 未来之路
小结
习题
第2章 软件工程管理
2.1 软件项目管理
2.1.1 软件项目产品的特点
2.1.2 软件项目管理的内容
2.2 IT项目范围管理
2.2.1 IT项目范围变更
2.2.2 IT项目范围变更原因
2.2.3 范围变更控制过程
2.2.4 实施范围变更管理原则
2.2.5 IT项目范围变更控制
2.3 IT项目估算、计划与进度管理
2.3.1 影响IT项目进度的因素
2.3.2 IT项目进度控制
2.4 配置管理
2.4.1 配置管理的意义
2.4.2 配置管理的实施过程
2.4.3 配置控制
2.4.4 配置管理报表
2.5 组织管理
2.5.1 民主制程序员组
2.5.2 主程序员组
2.5.3 现代程序员组
2.5.4 软件项目组
2.5.5 IT组织管理
2.6 质量管理
2.6.1 软件质量概述
2.6.2 软件质量因素
2.6.3 质量认证
2.6.4 测试管理
2.7 风险管理
2.7.1 风险的分类
2.7.2 风险的识别
2.7.3 风险评估
2.7.4 风险的驾驭和监控
小结
习题
第二篇 传统软件工程方法
第3章 需求工程
3.1 概述
3.1.1 需求的类型
3.1.2 需求开发目标
3.1.3 需求开发过程
3.2 需求获取
3.2.1 需求获取方法
3.2.2 分析人员与用户的合作关系
3.2.3 需求获取的重要性
3.3 需求分析
3.3.1 软件需求分析
3.3.2 需求和系统模型之间的关系
3.4 结构化分析方法
3.4.1 结构化分析
3.4.2 使用PDL描述需求
3.4.3 接口描述
3.5 需求描述与评审
3.5.1 分析建模
3.5.2 软件需求规约
3.6 需求验证与评审
3.6.1 需求有效性验证
3.6.2 需求评审
3.7 需求管理
3.7.1 需求跟踪表
3.7.2 需求变更管理
小结
习题
第4章 软件设计
4.1 软件设计概述
4.1.1 软件设计的目的
4.1.2 软件设计的原理
4.1.3 软件设计的原则
4.2 软件设计的过程
4.2.1 概要设计
4.2.2 详细设计
4.3 软件设计的内容
4.3.1 体系结构设计
4.3.2 数据设计
4.3.3 用户界面设计
4.4 结构化设计的方法
4.4.1 概要设计
4.4.2 详细设计
小结
习题
第5章 软件实现
5.1 软件实现的概述
5.2 软件实现的编码
5.2.1 编程语言的种类与选择
5.2.2 编程风格
5.2.3 编程的规范
5.2.4 编程的基本原则
5.3 软件实现的流程
小结
习题
第6章 软件测试
6.1 软件测试的概述
6.2 软件测试的目的和原则
6.3 软件测试与软件开发各阶段的关系
6.4 软件测试的过程
6.4.1 单元测试
6.4.2 集成测试
6.4.3 确认测试
6.4.4 系统测试
6.4.5 验收测试
6.5 软件测试的方法
6.6 白盒测试
6.6.1 逻辑覆盖
6.6.2 基本路径覆盖
6.7 黑盒测试
6.7.1 等价类划分
6.7.2 边界值分析法
6.7.3 错误推测法
6.7.4 因果图法
6.8 软件可靠性
小结
习题
第7章 软件维护
7.1 软件维护的概念及分类
7.2 软件维护的过程
7.3 软件维护的成本
7.4 影响软件维护成本的主要因素
7.5 再生工程
小结
习题
第三篇 面向对象软件工程
第8章 面向对象技术概述
8.1 常见的软件工程方法三论
8.2 结构化方法与面向对象方法的比较
8.3 面向对象的基本概念
8.4 面向对象方法的总结
8.5 面向对象建模(UML)
小结
习题
第9章 面向对象软件开发过程模型
9.1 迭代开发与瀑布式开发
9.2 迭代开发与快速原型法
9.3 迭代的适用范围
9.4 Rational统一过程模型
9.4.1 RUP软件开发过程模型
……
第10章 启动项目
第11章 获取功能性需求
第12章 构建领域模型
第13章 体系结构设计
第14章 系统的动态模型
参考文献