第一章 绪论 1
1.1 软件工程概念的提出与发展 1
1.2 软件开发的本质 2
1.3 本章小结 5
习题一 5
第二章 软件过程 6
2.1 软件生存周期过程 6
2.1.1 基本过程 6
2.1.2 支持过程 19
2.1.3 组织过程 27
2.1.4 软件生存周期过程以及角色和关系 32
2.2 软件生存周期模型 35
2.2.1 引言 35
2.2.2 瀑布模型 36
2.2.3 增量模型 38
2.2.4 演化模型 39
2.2.5 螺旋模型 40
2.2.6 喷泉模型 42
2.3 软件项目生存周期过程的规划与控制 42
2.3.1 概念:软件项目生存周期过程 42
2.3.2 软件项目生存周期过程的规划 43
2.3.3 软件项目生存周期过程的监控 54
2.4 本章小结 56
习题二 57
第三章 软件需求与软件需求规约 58
3.1 需求与需求获取 58
3.1.1 需求定义 58
3.1.2 需求分类 59
3.1.3 需求发现技术 61
3.2 需求规约(SRS)及其格式 63
3.2.1 定义 63
3.2.2 基本性质 63
3.2.3 需求规约(草案)格式 63
3.2.4 表达需求规约(规格说明书)的三种风格 64
3.2.5 需求规约的作用 65
3.3 本章小结 66
习题三 66
第四章 结构化分析方法 67
4.1 基本术语 68
4.2 模型表示 70
4.3 建模过程 70
4.4 实例研究 76
4.5 应用中注意的问题 80
4.6 需求分析的输出 81
4.7 需求验证 83
4.8 本章小结 84
习题四 84
第五章 结构化设计 86
5.1 总体设计的目标及其表示 86
5.2 总体设计 89
5.2.1 数据流图的类型 89
5.2.2 变换设计与事务设计 91
5.2.3 模块化及启发式规则 98
5.2.4 实例研究 105
5.3 详细设计 108
5.3.1 结构化程序设计 108
5.3.2 详细设计工具 110
5.4 结构化方法小结 116
习题五 119
第六章 面向对象方法——UML 121
6.1 表达客观事物的术语 123
6.1.1 类与对象 123
6.1.2 接口 133
6.1.3 协作 135
6.1.4 用况 135
6.1.5 主动类 135
6.1.6 构件 136
6.1.7 制品 136
6.1.8 节点 136
6.2 表达关系的术语 137
6.2.1 关联 137
6.2.2 泛化 142
6.2.3 细化 144
6.2.4 依赖 145
6.3 组织信息的一种通用机制——包 148
6.4 模型表达工具 149
6.4.1 类图 150
6.4.2 用况图 151
6.4.3 状态图 156
6.4.4 顺序图 165
6.5 UML小结 167
习题六 169
第七章 面向对象方法——RUP 170
7.1 RUP的作用和特点 170
7.2 核心工作流 173
7.2.1 需求获取 174
7.2.2 需求分析 184
7.2.3 设计 199
7.2.4 RUP的实现和测试 220
7.3 RUP小结 222
习题七 225
第八章 软件测试 226
8.1 软件测试目标与软件测试过程模型 226
8.1.1 软件测试目标 226
8.1.2 测试过程模型 227
8.2 软件测试技术 228
8.2.1 路径测试技术 228
8.2.2 基于事务流的测试技术 234
8.2.3 其他功能测试技术简述 238
8.3 静态分析技术——程序正确性证明 242
8.4 软件测试步骤 246
8.4.1 单元测试 246
8.4.2 集成测试 247
8.4.3 有效性测试 249
8.5 本章小结 249
习题八 250
第九章 软件工程项目管理概述 253
9.1 软件工程管理活动 253
9.2 软件规模、成本和进度估算 258
9.2.1 软件系统/产品规模估算 258
9.2.2 成本和进度估算 262
9.3 能力成熟度模型CMM 268
9.3.1 CMM产生的背景 268
9.3.2 CMM的成熟度等级 268
9.3.3 CMM的结构 273
9.3.4 CMM的使用以及对相关标准的影响 279
9.4 ISO 9000系列标准简介 282
9.4.1 八项质量管理原则 283
9.4.2 质量管理体系基础 283
9.4.3 ISO 9001和ISO 9004标准的关系 287
9.5 CMM与ISO 9000系列标准的比较 287
9.6 本章小结 287
习题九 288
第十章 软件开发工具与环境 289
10.1 基本概念 289
10.2 工具集成模型 295
10.3 大型软件开发环境青鸟系统概述 301
10.4 本章小结 305
习题十 305
第十一章 内容总结 306
11.1 关于软件过程范型 307
11.1.1 软件生存周期过程 308
11.1.2 软件生存周期模型 314
11.1.3 软件项目生存周期过程规划 317
11.2 关于软件设计方法 322
11.2.1 结构化方法 322
11.2.2 面向对象方法 326
参考文献 352