第1章软件项目与管理 1
1.1项目 1
1.1.1项目的定义 1
1.1.2项目的特征与属性 2
1.1.3项目的生命周期 3
1.1.4项目生命周期的重要概念 4
1.2管理 5
1.2.1管理的意义 5
1.2.2管理的应用范围 6
1.2.3管理者的知识结构和技能 7
1.3项目管理 8
1.3.1项目管理的定义 8
1.3.2项目管理的相关内容 9
1.4软件项目管理 11
1.4.1软件项目难于管理的原因 11
1.4.2软件项目管理的内容与知识体系 12
1.4.3软件项目管理的原则 13
1.4.4常见的项目管理工具 16
思考题 17
第2章软件开发过程模型 19
2.1软件生命周期 19
2.2软件过程 19
2.3软件开发过程 21
2.4软件开发过程模型 23
2.4.1瀑布模型 23
2.4.2V模型 24
2.4.3原型模型 26
2.4.4螺旋模型 27
2.4.5增量模型 29
2.4.6RAD模型 31
2.4.7软件包模型 32
2.4.8遗留系统维护模型 33
2.5软件开发过程模型选择 33
思考题 34
第3章可行性研究 35
3.1可行性研究的含义 35
3.2可行性研究的内容 36
3.2.1技术可行性 36
3.2.2经济可行性 37
3.2.3社会可行性 38
3.3可行性研究的阶段 38
3.3.1机会研究 39
3.3.2初步可行性研究 40
3.3.3可行性研究 40
3.3.4项目评估决策 41
3.4成本/效益分析 41
3.4.1投资回收期 41
3.4.2投资收益率 44
3.5方案选择与决策 45
3.5.1确定型决策 45
3.5.2非确定型决策 46
3.6可行性研究报告的描述方法 47
3.6.1数据流图 48
3.6.2数据字典 51
思考题 53
第4章需求分析 54
4.1需求分析概述 54
4.1.1需求与需求分析 54
4.1.2需求分析的重要性 55
4.1.3需求分析的任务 56
4.2需求分析的过程 57
4.2.1获取用户需求 57
4.2.2分析用户需求 58
4.2.3需求文档编写 58
4.2.4需求分析评审 59
4.3需求分析的内容 60
4.4需求分析的方法 60
4.4.1结构化方法 61
4.4.2面向对象方法 64
4.4.3原型方法 68
4.5需求分析变更 70
4.5.1需求变更的原因 71
4.5.2相应对策 71
4.6需求分析验证 72
4.6.1需求分析验证的方法 72
4.6.2需求分析验证的内容 73
思考题 73
第5章软件设计 75
5.1软件设计概述 75
5.2概要设计 76
5.2.1设计任务 76
5.2.2设计原则 76
5.2.3图形工具 79
5.2.4设计方法 80
5.2.5启发式设计策略 86
5.3接口设计 87
5.4详细设计 88
5.4.1设计任务 88
5.4.2结构程序设计 89
5.4.3表示工具 90
5.4.4Jackson设计方法 96
思考题 98
第6章软件实现 99
6.1输入设计 99
6.1.1输入设计的原则 99
6.1.2输入设计的内容 100
6.2输出设计 102
6.2.1输出设计的内容 102
6.2.2报表方式输出 103
6.2.3图形方式输出 104
6.3屏幕界面设计 105
6.3.1界面设计规则 105
6.3.2界面设计要素 106
6.3.3界面设计内容 107
6.4程序设计语言 110
6.4.1程序设计语言的分类 110
6.4.2程序设计语言的选择 111
6.5编程风格 112
6.5.1源程序文档化 113
6.5.2标识符命名 114
6.5.3语句构造与程序书写 115
6.6软件调试 116
思考题 119
第7章软件测试 120
7.1软件测试概述 120
7.1.1软件测试过程 120
7.1.2软件测试原则 121
7.2软件测试方法 122
7.2.1静态测试与动态测试 122
7.2.2黑盒测试与白盒测试 124
7.3测试用例设计技术 126
7.3.1黑盒测试用例设计 126
7.3.2白盒测试用例设计 128
7.4单元测试 129
7.4.1测试环境 129
7.4.2测试内容 130
7.5集成测试 132
7.5.1测试过程 132
7.5.2集成策略 133
7.6确认测试 135
7.6.1测试步骤 135
7.6.2测试内容 136
7.7系统测试 138
7.7.1特点与方法 138
7.7.2外部接口测试 138
7.7.3其他测试类型 139
思考题 140
第8章软件维护 141
8.1软件维护概述 141
8.1.1软件维护的内容 141
8.1.2软件维护的分类 141
8.1.3软件维护的要求 142
8.2软件维护过程模型 144
8.2.1快速修改模型 144
8.2.2Boehm模型 144
8.2.3IEEE模型 145
8.2.4迭代增强模型 146
8.2.5维护模型分析 146
8.3软件维护技术 147
8.4软件维护过程 148
8.5软件维护控制 154
8.6软件维护组织管理 155
8.6.1组织模式 155
8.6.2人员管理 156
8.7软件再工程 157
8.7.1认识软件再工程 157
8.7.2软件再工程模型 158
8.7.3软件再工程技术 160
思考题 160
第9章质量管理 162
9.1质量与软件质量管理 162
9.1.1质量 162
9.1.2软件质量 163
9.1.3软件质量管理 164
9.2软件质量策划 165
9.3软件质量计划 166
9.3.1质量计划的主要内容 166
9.3.2质量计划的制定原则 168
9.4软件质量保证 169
9.4.1质量保证活动 169
9.4.2质量保证内容 171
9.4.3质量保证关键技术 172
9.5软件质量控制 173
9.5.1实施质量控制 173
9.5.2质量控制模型 174
9.5.3质量控制方法与技术 176
9.6软件质量改进 178
9.7软件评审 179
9.7.1评审内容 180
9.7.2评审方法 181
思考题 182
第10章配置管理 184
10.1配置管理概述 184
10.1.1配置管理定义 184
10.1.2配置管理需求分析 185
10.1.3配置管理的作用 186
10.2配置管理的相关概念 188
10.2.1软件配置项 188
10.2.2基线 189
10.2.3版本 191
10.2.4配置数据库 192
10.3配置管理的组织 192
10.4配置管理计划 194
10.5配置管理的主要活动 195
10.5.1配置标识 197
10.5.2版本控制 198
10.5.3变更控制 199
10.5.4状态报告 203
10.5.5配置审核 204
思考题 205
第11章文档管理 207
11.1文档管理概述 207
11.1.1文档管理的概念 207
11.1.2文档管理工具 208
11.1.3文档与软件规模 208
11.2文档的分类与作用 209
11.2.1文档分类 209
11.2.2文档作用 210
11.3文档编制要求 211
11.4文档编制过程 213
11.4.1材料准备 213
11.4.2文档计划 214
11.4.3文档编号 214
11.4.4文档评审 215
11.4.5文档签署 217
11.4.6文档归档 217
11.4.7文档保管 218
11.4.8文档维护 218
11.5文档编制 218
11.5.1编制策略 218
11.5.2文档标准 219
11.5.3质量等级 220
11.5.4质量要求 221
11.5.5书写风格 222
思考题 224
第12章人力资源管理 225
12.1软件项目人力资源管理概述 225
12.1.1人力资源的特征 225
12.1.2软件项目人力资源的特征 226
12.1.3人力资源管理的主要内容 227
12.1.4人员流动给项目造成的损失 228
12.2人员的组织与分工 229
12.2.1项目的组织模式 229
12.2.2项目组的组织形式 230
12.2.3项目组的人员配备 231
12.2.4各阶段人员需求 232
12.3人力资源计划 234
12.3.1人力资源计划理论基础 234
12.3.2人力资源计划实例 235
12.4项目经理 237
12.4.1项目经理的领导能力与领导风格 238
12.4.2项目经理的技能要求 239
12.4.3项目经理的素质与职责 239
12.5团队建设 240
12.5.1团队建设的重要性 240
12.5.2团队建设过程 241
12.5.3团队的沟通交流 242
12.5.4打造高效团队的策略 245
12.6软件企业人力资源管理的主要措施 245
思考题 250
附录A可行性分析(研究)报告 251
附录B软件需求规格说明 254
附录C软件(结构)设计说明 259
附录D计算机编程手册 263
附录E软件测试报告 265
附录F软件质量保证计划 268
附录G软件配置管理计划 272
参考文献 277