第1章 软件工程的内容与方法 1
1.1 软件工程的定义 2
1.2 软件工程的作用 5
1.3 软件的开发方法 7
1.3.1 面向过程的方法 7
1.3.2 面向对象的方法 8
1.3.3 面向数据的方法 9
1.3.4 软件工程的形式化方法 10
1.3.5 四种开发方法的对比 15
1.4 软件工程的五个面向理论 16
1.5 软件的支持过程 17
1.6 软件的管理过程 17
1.6.1 ISO 9000体系 18
1.6.2 微软企业文化模式 23
1.6.3 CMM/CMMI模型 25
1.6.4 敏捷文化现象 29
1.7 软件工程与信息系统工程 34
1.7.1 信息系统的定义 35
1.7.2 信息系统的建设方法 36
1.8 信息系统建设案例 38
1.9 本章小结 39
习题1 40
第2章 软件生存周期及开发模型 41
2.1 软件生存周期概论 42
2.2 瀑布模型 42
2.3 增量模型 44
2.4 迭代模型 45
2.5 原型模型 48
2.6 本章小结 50
习题2 51
第3章 软件立项与合同 52
3.1 立项方法 53
3.2 立项文档 53
3.3 签订合同的方法与合同文档 58
3.4 下达任务的方法与相关文档 59
3.5 任务书案例 60
3.6 本章小结 63
习题3 63
第4章 软件需求 65
4.1 需求分析的重要性 66
4.2 需求分析的理论基础 67
4.3 需求分析的任务 70
4.4 需求分析的目的 75
4.5 需求分析的方法 75
4.6 需求的分类 80
4.7 需求的描述工具 80
4.7.1 描述工具概述 80
4.7.2 实体-联系模型 81
4.7.3 数据流图 81
4.7.4 用例图 83
4.7.5 活动图 85
4.8 需求的管理过程 86
4.9.1 需求报告和需求规格说明书的差异 89
4.9 需求分析的文档 89
4.9.2 用户需求报告 90
4.9.3 需求规格说明书 95
4.9.4 需求管理文档 100
4.10 本章小结 101
习题4 102
第5章 软件策划 103
5.1 软件策划概论 104
5.2 软件策划方法 105
5.3 软件策划文档 110
5.4 策划管理方法与文档 114
习题5 115
5.5 本章小结 115
第6章 软件设计 117
6.1 软件设计概论 118
6.2 软件设计原理 119
6.3 软件架构设计 121
6.4 软件详细设计 123
6.4.1 面向过程详细设计 123
6.4.2 面向数据详细设计 125
6.4.3 面向对象详细设计 127
6.4.4 软件详细设计方法总结 136
6.5 软件属性和度量 137
6.5.1 设计属性 137
6.5.2 设计度量 140
6.6 软件设计文档 142
6.6.1 概要设计说明书 142
6.6.2 详细设计说明书 147
6.6.3 设计管理文档 151
6.7 本章小结 151
习题6 152
第7章 软件建模 154
7.1 三个模型的建模思想 155
7.1.1 三个模型概论 155
7.1.2 业务模型 156
7.1.3 功能模型 157
7.1.4 数据模型 157
7.2 数据模型设计概论 158
7.2.1 数据库与数据库管理系统 159
7.2.2 数据库的组成 159
7.2.3 数据库设计的内容与步骤 160
7.3 数据库设计的理论与方法 162
7.4 信息系统建模实例分析 170
7.5 三个模型建模思想总结 173
7.6 UML的建模思想 175
7.6.1 UML对软件工程的重大影响 175
7.6.2 UML的概念模型 176
7.6.3 UML的建模思想 179
7.6.4 UML的缺点与不足 181
7.7 本章小结 185
习题7 185
第8章 软件实现 187
8.1 软件实现概论 188
8.2 软件实现原则 190
8.3 编程语言 190
8.4 编码技术 192
8.5 软件实现管理 196
8.6 屏幕界面设计 198
8.6.1 控件级定义 198
8.6.2 窗口级定义 201
8.6.3 系统级定义 203
8.7 帮助信息 204
8.7.1 在线帮助 204
8.7.2 提示信息 205
8.7.3 其他规定 207
8.8 软件实现文档 208
8.9 本章小结 212
习题8 213
第9章 软件测试 214
9.1 软件测试概论 215
9.2 软件测试理论基础 216
9.2.1 软件测试 216
9.2.2 进行软件测试的原因 217
9.2.3 软件测试的发展历史 218
9.2.4 软件测试的目的和目标 219
9.2.5 软件测试的原则 220
9.2.6 软件测试模型 222
9.2.7 软件测试的分类 224
9.2.8 软件质量定义与软件测试标准 226
9.2.9 软件测试工具 227
9.2.10 软件测试文档 227
9.3 测试流程和测试技术 231
9.3.1 理解、验证和分解需求 231
9.3.2 编写测试计划 232
9.3.3 测试执行 238
9.3.4 专项测试 238
9.3.5 编写测试报告 240
9.4 测试案例分析 245
9.5 软件测试职业素质培养 246
9.6 本章小结 247
习题9 248
第10章 软件发布与实施 249
10.1 软件产品分类 250
10.2 软件产品发布 251
10.3 软件产品实施 253
10.4 本章小结 254
习题10 254
第11章 软件维护 255
11.1 软件维护的传统方法 256
11.2 软件维护的最新方法 258
11.3 软件维护文档 261
11.4 本章小结 262
习题11 263
第12章 软件过程管理 264
12.1 CMM/CMMI的基本概念 265
12.2 SW-CMM介绍 269
12.3 CMM/CMMI实施思路 274
12.5 CMMI内容简介 278
12.6 CMMI阶段式模型成熟度等级2的过程域介绍 281
12.7 成熟度等级2的解释 291
12.8 本章小结 292
习题12 293
第13章 软件配置管理 295
13.1 配置管理的重要性 296
13.2 配置管理的定义与范围 297
13.3 配置管理的基本概念 299
13.4 配置管理员的职责 301
13.5 配置管理工具VSS 302
13.6 配置管理工具ClearCase 304
13.7 本章小结 306
习题13 307
第14章 软件质量保证 308
14.1 软件质量的基本概念 309
14.2 软件质量的保证方法 310
14.3 评审在质量保证中的作用 313
14.4 软件质量保证文档 315
14.4.1 质量保证文档 315
14.4.2 质量保证管理文档 318
14.5 本章小结 318
习题14 319
第15章 软件培训 320
15.1 软件培训方法 321
15.1.1 公司集中培训 321
15.1.2 项目组分散培训 322
15.1.3 对客户的培训 322
15.2 软件培训文档 322
15.2.1 培训技术文档 322
15.2.2 培训管理文档 323
15.3 本章小结 324
习题15 324
第16章 软件项目管理 325
16.2 项目管理的重要性 326
16.1 项目管理定义 326
16.3 项目管理认证体系 328
16.4 项目经理职责及工作程序 330
16.5 项目经理对程序员的九条要求 332
16.6 项目经理谈项目管理七条经验 334
16.7 高层经理谈项目管理十大原则 337
16.8 从大学生到职业人再到项目经理 340
16.9 软件企业架构及工作流 341
16.10 本章小结 344
习题16 345
附录A 文档编写指南索引表 347
附录B 案例索引表 348
附录C 英文缩略词英汉对照表 349
参考文献 354