第1章 软件工程概述 1
1.1软件工程学科由来 1
1.2软件危机表现 1
1.3软件工程 3
1.4软件生命周期 3
1.5软件开发过程 4
1.6软件开发过程模型 6
1.6.1瀑布模型 6
1.6.2 V模型 7
1.6.3原型模型 8
1.6.4螺旋模型 9
1.6.5增量模型 11
1.6.6 RAD模型 11
1.6.7软件包模型 12
1.7软件开发过程模型选择 13
第2章 软件开发可行性研究 14
2.1可行性研究概述 14
2.1.1可行性研究的含义 14
2.1.2可行性研究的作用 15
2.2可行性研究的内容 16
2.2.1技术可行性 16
2.2.2经济可行性 17
2.2.3社会可行性 18
2.3可行性研究的工作阶段 18
2.3.1机会研究 19
2.3.2初步可行性研究 20
2.3.3可行性研究 20
2.3.4项目评估决策 21
2.4成本/效益分析 21
2.4.1资金的时间价值 22
2.4.2投资回收期 23
2.4.3投资收益率 25
2.5方案选择与决策 27
2.5.1极线图法 27
2.5.2确定型决策 28
2.5.3非确定型决策 29
2.5.4风险型决策 30
2.6可行性研究报告的描述方法 32
2.6.1系统流程图 33
2.6.2数据流图 34
2.6.3数据字典 39
2.7可行性研究报告的主要内容 41
第3章 软件开发需求分析 43
3.1需求分析概述 43
3.1.1需求与需求分析 43
3.1.2需求分析的重要性 44
3.1.3需求分析的任务 45
3.2需求分析的过程 46
3.2.1获取用户需求 46
3.2.2分析用户需求 48
3.2.3需求文档编写 48
3.2.4需求分析评审 49
3.3需求分析的内容 49
3.4需求分析的方法 50
3.4.1结构化方法 50
3.4.2面向对象方法 53
3.4.3原型方法 57
3.5需求分析验证 59
3.5.1需求分析验证的方法 59
3.5.2需求分析验证的内容 60
第4章 软件开发系统规划 62
4.1计算机应用系统的计算模式 62
4.1.1单主机计算模式 62
4.1.2客户/服务器计算模式 63
4.1.3浏览器/服务器计算模式 63
4.2系统规划任务 65
4.3系统规划的主要方法 66
4.3.1关键成功因素法 66
4.3.2战略目标集转化法 68
4.3.3企业系统规划法 68
4.3.4企业流程再造 72
第5章 软件系统分析 74
5.1组织机构及其任务描述 75
5.1.1组织机构图 75
5.1.2业务过程描述 75
5.1.3组织机构/业务联系描述 77
5.2数据分析及数据流程分析 78
5.2.1数据流程分析 78
5.2.2数据分析 79
5.2.3业务(功能)/数据分析 81
5.3新系统逻辑方案的建立 82
第6章 软件系统设计 83
6.1系统软件结构的设计 84
6.1.1操作系统的选择 84
6.1.2数据库服务器系统软件的选择 84
6.1.3应用服务器系统软件及开发工具的选择 84
6.2数据处理流程及数据类的设计 85
6.3概要设计 87
6.3.1设计任务 87
6.3.2设计原则 88
6.3.3图形工具 90
6.3.4设计方法 91
6.3.5启发式设计策略 97
6.4接口设计 99
6.5概要设计与详细设计的衔接 99
6.6详细设计 100
6.6.1设计任务 100
6.6.2结构程序设计 101
6.6.3表示工具 102
6.6.4面向数据结构的设计方法 108
6.6.5程序复杂性度量 111
第7章 数据库设计 114
7.1设计方法 114
7.2设计步骤 114
7.3概念结构设计 116
7.4逻辑结构设计 118
7.5物理结构设计 121
7.6数据字典设计 123
7.7编码设计 125
7.7.1编码要求 126
7.7.2编码方式 126
7.7.3编码的设计和使用 127
7.8安全保密设计 128
第8章 软件实现 135
8.1输入设计 135
8.1.1输入设计的原则 135
8.1.2输入方式 136
8.1.3输入格式 136
8.1.4输入校验 137
8.2输出设计 138
8.2.1输出设计的内容 138
8.2.2报表方式输出 139
8.2.3图形方式输出 140
8.3屏幕界面设计 141
8.3.1界面设计规则 141
8.3.2界面设计要素 143
8.3.3界面设计内容 144
8.4程序设计语言 147
8.4.1程序设计语言的分类 147
8.4.2程序设计语言的特性 148
8.4.3程序设计语言的选择 150
8.5编程风格 151
8.5.1源程序文档化 151
8.5.2标识符命名 153
8.5.3语句构造与程序书写 154
8.6软件调试 155
8.7程序效率 158
8.8程序安全性 159
8.8.1冗余程序设计 160
8.8.2防错程序设计 160
8.9当前流行的软件开发工具简介 161
8.9.1 Java简介 161
8.9.2 .NET简介 165
8.9.3 SQL Server 2000数据库 167
第9章 软件测试 180
9.1软件测试概述 180
9.1.1软件测试过程 180
9.1.2软件测试原则 181
9.2软件测试方法 183
9.2.1静态测试与动态测试 183
9.2.2黑盒测试与白盒测试 184
9.3测试用例设计技术 186
9.3.1黑盒测试用例设计 187
9.3.2白盒测试用例设计 189
9.4单元测试 190
9.4.1测试环境 190
9.4.2测试内容 191
9.5集成测试 192
9.5.1测试过程 193
9.5.2集成策略 194
9.6确认测试 196
9.6.1测试步骤 196
9.6.2测试内容 197
9.7系统测试 198
9.7.1特点与方法 199
9.7.2外部接口测试 199
9.7.3其他测试类型 200
第10章 软件维护 202
10.1软件维护概述 202
10.1.1软件维护的内容 202
10.1.2软件维护的分类 203
10.1.3软件维护的要求 204
10.2软件维护过程模型 205
10.2.1快速修改模型 205
10.2.2 Boehm模型 206
10.2.3 IEEE模型 206
10.2.4迭代增强模型 208
10.2.5维护模型分析 208
10.3软件维护技术 208
10.4软件维护过程 210
10.5软件维护控制 217
10.6软件维护组织管理 217
10.6.1组织模式 217
10.6.2人员管理 219
10.7软件再工程 220
10.7.1认识软件再工程 220
10.7.2软件再工程模型 220
10.7.3软件再工程技术 222
第11章 文档管理 224
11.1文档管理概述 224
11.1.1文档管理的概念 224
11.1.2文档管理工具 225
11.1.3文档与软件规模 225
11.2文档的分类与作用 226
11.2.1文档分类 226
11.2.2文档作用 227
11.3文档编制要求 228
11.4文档编制过程 230
11.4.1材料准备 230
11.4.2文档计划 231
11.4.3文档编号 231
11.4.4文档评审 232
11.4.5文档签署 234
11.4.6文档归档 234
11.4.7文档保管 234
11.4.8文档维护 235
11.5文档编制 235
11.5.1编制策略 235
11.5.2文档标准 236
11.5.3质量等级 237
11.5.4质量要求 237
11.5.5书写风格 239
第12章 数据仓库 242
12.1数据仓库概述 242
12.2数据仓库的产生 242
12.3数据仓库的含义 243
12.4数据仓库的特征 244
12.5操作型数据库系统与数据仓库 246
12.6数据仓库的基本结构 247
12.7数据仓库相关概念 248
12.7.1主题 248
12.7.2粒度 249
12.7.3维度 250
12.7.4数据立方体 251
12.7.5联机分析处理 253
12.7.6数据集市 255
12.8多维数据模型 256
12.8.1实体-关系模型 256
12.8.2多维数据模型 257
12.8.3多维数据模型的优势 258
12.8.4星型模式 259
12.8.5星型模式的种类 263
12.9数据仓库的总线型结构 267
12.9.1总线型结构的含义 267
12.9.2统一的维 267
12.9.3统一的事实 268
12.9.4数据仓库的总线 269
第13章 数据挖掘概述 270
13.1 KDD与数据挖掘 270
13.2 KDD过程 271
13.3数据挖掘的任务 272
13.4数据仓库与数据挖掘 273
附录A可行性分析(研究)报告 275
附录B软件需求规格说明 278
附录C软件(结构)设计说明 284
附录D计算机编程手册 288
附录E软件测试报告 290
附录F软件质量保证计划 293
附录G软件配置管理计划 297
参考文献 302