第1章 概述 1
1.1 软件工程概述 1
1.1.1 软件工程的定义 3
1.1.2 软件工程的范畴 3
1.1.3 软件开发的几个模型 6
1.1.4 软件生命周期 10
1.1.5 软件工程的目标 12
1.2 项目管理概述 13
1.2.1 项目管理的术语 13
1.2.2 软件项目管理的特点 14
1.2.3 软件工程项目管理的目标 15
1.3 项目经理与项目管理 16
1.3.1 合格的项目经理 16
1.3.2 合格的项目管理 18
1.3.3 影响项目成功的因素 20
本章小结 23
习题与思考题 23
第2章 项目启动管理 24
2.1 项目工作计划 24
2.2 人力资源计划 26
2.2.1 项目管理的组织模式 26
2.2.2 团队建立的重要内容 27
2.3 硬件资源规划 27
2.4 软件资源规划 28
2.5 可行性研究 28
2.5.1 可行性研究的内容 29
2.5.2 可行性研究的步骤 29
2.5.3 项目效益评价 31
2.6 项目启动管理 33
2.6.1 项目立项 33
2.6.2 项目组织的成立 33
2.7 实训案例 35
本章小结 39
习题与思考题 39
第3章 软件需求分析管理 43
3.1 软件需求分析概述 43
3.1.1 软件需求分析的目标 43
3.1.2 软件需求分析的原则 44
3.1.3 软件需求分析的过程 46
3.2 结构化分析方法 49
3.2.1 结构化分析方法概述 49
3.2.2 数据流程图 51
3.2.3 数据字典 54
3.2.4 处理说明 58
3.3 软件快速原型化开发方法 63
3.3.1 软件原型化方法概述 63
3.3.2 快速原型开发模型 64
3.4 如何做好需求分析 66
3.5 实训案例 71
本章小结 76
习题与思考题 77
第4章 概要设计 79
4.1 概要设计的任务和过程 79
4.1.1 概要设计的任务 79
4.1.2 概要设计的过程 80
4.2 概要设计原则 81
4.2.1 模块化 81
4.2.2 自顶向下逐步求精 82
4.2.3 模块的高内聚性和低耦合性 82
4.3 软件结构的设计方法 86
4.3.1 IPO图 86
4.3.2 模块结构图 88
4.3.3 结构化设计方法 92
4.4 实训案例 96
本章小结 99
习题与思考题 99
第5章 详细设计 101
5.1 详细设计的目标和原则 101
5.1.1 详细设计的任务和目标 101
5.1.2 详细设计的原则 101
5.2 详细设计的内容 102
5.2.1 代码设计原则 102
5.2.2 数据库设计 103
5.2.3 界面设计 109
5.2.4 网络结构设计 112
5.3 程序流程图设计 114
5.3.1 N-S图 116
5.3.2 PAD 118
5.3.3 PDL(结构化语言) 119
5.4 实训案例 120
本章小结 127
习题与思考题 127
第6章 软件编程 129
6.1 结构化程序设计方法 129
6.1.1 结构化程序设计的原则 129
6.1.2 逐步求精设计法 130
6.1.3 结构化程序设计风格 130
6.2 程序设计算法与效率 132
6.2.1 程序设计算法 132
6.2.2 程序的运行效率 134
6.3 程序设计语言的特点与应用范围 134
6.3.1 程序设计语言的发展与分类 134
6.3.2 程序设计语言的选择 137
6.4 冗余程序设计与防错程序设计 138
6.4.1 冗余程序设计 138
6.4.2 防错程序设计 138
6.5 软件编码管理 139
6.5.1 软件编码过程的管理 139
6.5.2 编码后的管理 140
6.6 案例:C/C++代码规范 140
6.6.1 文件结构 141
6.6.2 程序版式 142
6.6.3 命名规则 147
6.6.4 表达式和基本语句 149
6.6.5 常量 152
6.6.6 函数设计 152
6.6.7 重载和内联 155
6.6.8 内存管理 155
6.6.9 类的构造函数、析构函数、成员函数与赋值函数 156
6.6.10 类的继承和组合 156
6.6.11 其他规范及建议 157
本章小结 158
习题与思考题 158
第7章 软件项目评审 159
7.1 项目评审概论 159
7.1.1 评审的目的 159
7.1.2 评审人员及其职责 160
7.1.3 评审的基本要求和评审依据 160
7.1.4 评审内容 160
7.1.5 评审方式 160
7.1.6 评审工作程序 161
7.2 各阶段的评审内容和要点 164
7.2.1 需求分析的评审 165
7.2.2 概要设计的评审 166
7.2.3 详细设计的评审 167
7.3 实训案例 169
本章小结 170
习题与思考题 171
第8章 软件测试技术 172
8.1 软件测试的基本概念 172
8.1.1 软件测试的重要性 172
8.1.2 软件测试的定义 174
8.1.3 软件测试与软件调试的区别 174
8.1.4 软件测试的基本原则 175
8.1.5 软件测试的目标 177
8.1.6 软件测试过程 177
8.2 软件测试与软件开发的关系 178
8.3 测试团队的组织 179
8.3.1 测试组织者 179
8.3.2 专业测试人员 179
8.3.3 测试配置管理人员 179
8.3.4 测试相关人员 179
8.4 软件测试技术及其用例设计 180
8.4.1 软件测试的分类 180
8.4.2 白盒子测试及其用例设计 181
8.4.3 黑盒子测试及其用例设计 184
8.4.4 静态测试 188
8.4.5 动态测试 189
8.5 软件测试策略 189
8.5.1 单元测试 190
8.5.2 集成测试 191
8.5.3 确认测试 192
8.5.4 系统测试 193
8.5.5 验收测试 194
8.6 软件测试工具 195
8.7 实训案例 196
本章小结 199
习题与思考题 201
第9章 软件质量保证与软件配置管理 203
9.1 软件质量与SQA 203
9.1.1 SQA的目标 203
9.1.2 质量保证计划 204
9.2 软件配置管理(SCM) 206
9.2.1 软件配置的重要性 207
9.2.2 基线管理 208
9.2.3 软件配置项 208
9.2.4 软件配置方法 209
9.3 案例——某公司软件配置计划 211
9.3.1 介绍 211
9.3.2 组织 211
9.3.3 配置项与基线 212
9.3.4 变更控制 212
9.3.5 状态统计 213
9.3.6 配置审计 213
9.3.7 估计时间表 214
9.3.8 资源 214
本章小结 215
习题与思考题 215
第10章 软件文档的管理 217
10.1 软件文档的作用 217
10.1.1 什么是软件文档 217
10.1.2 软件文档的作用 217
10.2 软件文档的分类 218
10.2.1 开发文档 218
10.2.2 管理文档 218
10.2.3 用户文档 218
10.3 软件文档格式 219
10.3.1 软件开发类文档格式 219
10.3.2 项目管理类文档格式 220
10.3.3 软件用户文档类格式 220
本章小结 259
习题与思考题 259
第11章 CMM软件成熟度模型基础简介 260
11.1 CMM简介 260
11.2 CMM的五个等级 261
11.2.1 初始级 261
11.2.2 可重复级 263
11.2.3 已定义级 263
11.2.4 定量管理级 263
11.2.5 优化级 264
11.3 CMM的模型框架 264
11.4 CMM的关键过程域 264
11.4.1 等级2中的关键过程域 265
11.4.2 等级3中的关键过程域 265
11.4.3 等级4中的关键过程域 266
11.4.4 等级5中的关键过程域 266
11.5 CMM在国内外的应用 266
11.5.1 CMM在美国的应用 267
11.5.2 CMM在印度的应用 267
11.5.3 CMM在中国的应用 268
11.6 中国软件企业CMM的发展 269
11.7 CMM、ISO9000与项目管理之间的关系 271
本章小结 272
习题与思考题 273
第12章 PMI项目管理体系简介 274
12.1 项目总体管理 275
12.1.1 项目计划的制定 275
12.1.2 项目计划的实施 276
12.1.3 综合变更控制 276
12.2 项目工作范围的管理 276
12.2.1 项目范围计划的编制 277
12.2.2 项目范围的定义 277
12.2.3 范围变更的控制 279
12.3 项目时间管理 279
12.3.1 项目活动的排序 279
12.3.2 项目工期的估算 281
12.3.3 项目进度计划的制定和控制 282
12.4 项目成本管理 282
12.4.1 项目资源计划编制 282
12.4.2 项目成本预算 282
12.4.3 项目成本控制 283
12.5 项目质量管理 283
12.5.1 项目质量计划的编制 283
12.5.2 项目质量保证 283
12.5.3 项目质量控制 283
12.6 项目沟通管理 284
12.7 项目人力资源的管理 284
12.8 项目风险管理 288
12.8.1 风险的分类 288
12.8.2 项目风险的识别 289
12.8.3 风险的分析 291
12.8.4 风险的应对措施 293
12.9 项目采购管理 294
12.10 实训案例 296
本章小结 299
习题与思考题 299
部分思考题与习题答案 300