第1章 软件工程概述 1
1.1 软件 1
1.1.1 软件的发展 1
1.1.2 软件定义 3
1.1.3 软件的特点 3
1.1.4 软件的分类 4
1.2 软件工程概念 6
1.2.1 软件危机与软件工程的定义 6
1.2.2 软件工程的原则 8
1.3.1 软件生存周期 9
1.3 软件生存周期与软件开发模型 9
1.3.2 软件开发模型 10
1.4 小结 16
习题 16
第2章 可行性研究 18
2.1 可行性研究的任务 18
2.2 可行性研究的步骤 19
2.3 系统流程图 21
2.4 成本-效益分析 22
2.4.1 成本估计 23
2.4.2 费用估计 24
2.4.3 几种度量效益的方法 25
2.5 小结 26
习题 26
第3章 需求分析 27
3.1 需求分析的任务与步骤 27
3.1.1 需求分析的任务 27
3.1.2 需求分析的步骤 29
3.1.3 需求分析的原则 31
3.2 需求分析的方法 32
3.2.1 面向数据流的需求分析方法 32
3.2.2 数据流图 33
3.2.3 数据字典 39
3.3 图形 44
3.3.1 层次方框图 44
3.3.2 Warnier图 44
3.3.3 IPO图 45
3.4 需求规格说明与评审 46
3.4.1 需求规格说明的主要内容 46
3.4.2 需求分析的评审 47
3.4.3 需求分析评审的方法 48
3.5 小结 49
习题 49
4.1.2 概要设计步骤 50
4.1.1 概要设计任务 50
4.1 概要设计的任务与步骤 50
第4章 概要设计 50
4.2 软件设计的原则 52
4.2.1 模块化 52
4.2.2 抽象与逐步求精 53
4.2.3 信息隐蔽和局部化 53
4.2.4 模块独立性 53
4.2.5 结构设计原则 57
4.3 面向数据流的设计方法 60
4.3.1 基本概念 61
4.3.2 系统结构图(SC图)的组成 62
4.3.3 变换分析 64
4.3.4 事务分析 68
4.4 面向数据结构的设计方法 69
4.5 概要设计文档评审 78
4.6 小结 80
习题 80
第5章 详细设计 81
5.1 详细设计的任务与原则 81
5.1.1 详细设计的任务 81
5.2 详细设计的方法 82
5.2.1 程序流程图 82
5.1.2 详细设计的原则 82
5.2.2 N-S图 84
5.2.3 PAD图 85
5.2.4 PDL 87
5.3 详细设计规格说明与复审 89
5.3.1 详细设计说明书 89
5.3.2 设计复审 90
5.4 小结 91
习题 91
6.1 面向对象方法的基本概念和特征 92
6.1.1 面向对象方法概述 92
第6章 面向对象的分析和设计方法 92
6.1.2 面向对象的软件工程 94
6.1.3 面向对象的基本概念和特征 98
6.2 面向对象的分析 105
6.2.1 面向对象分析基本过程及原则 105
6.2.2 对象与类的确定 109
6.2.3 确定属性 112
6.2.4 定义服务 113
6.2.5 对象间通信 116
6.3 面向对象设计 122
6.3.1 面向对象设计的基本概念 122
6.3.2 面向对象设计的方法 124
6.4.1 UML的产生与发展 126
6.4 UML 126
6.4.2 UML的表示法 132
6.4.3 UML软件开发过程概述 145
6.5 小结 148
习题 148
第7章 编码 149
7.1 程序设计语言 149
7.1.1 程序设计语言分类 149
7.1.2 程序设计语言的特点 151
7.1.3 程序设计语言的选择 153
7.2 编码风格 154
7.2.1 源程序文档化 155
7.2.2 数据说明 157
7.2.3 语句结构 157
7.2.4 输入输出 159
7.3 程序效率及编程安全 160
7.3.1 有关程序效率的几条准则 160
7.3.2 算法对效率的影响 160
7.3.3 影响存储器效率的因素 160
7.3.4 影响输入输出的因素 161
7.3.5 编程安全 161
习题 162
7.4 小结 162
第8章 软件质量与质量保证 163
8.1 软件质量的定义 163
8.2 影响软件质量的因素 163
8.3 软件质量保证策略 165
8.4 软件质量保证活动 166
8.5 软件评审 166
8.5.1 设计质量的评审内容 167
8.5.2 程序质量的评审内容 168
8.6 软件质量保证的标准 170
8.7.1 软件测试的概念和原则 171
8.7 结构化的软件测试 171
8.7.2 软件测试技术 173
8.7.3 测试的步骤 180
8.7.4 软件纠错技术 182
8.8 面向对象的软件测试 184
8.8.1 面向对象分析和面向对象设计的模型测试 184
8.8.2 面向对象的测试策略 186
8.8.3 面向对象软件测试集设计 187
8.9 软件测试计划与测试分析报告 189
8.10 软件维护 190
8.10.1 软件维护的定义、分类与特点 190
8.10.2 软件维护步骤及组织 193
8.10.3 软件的可维护性 197
8.10.4 软件维护的副作用 198
8.10.5 逆向工程和再生工程 199
8.11 小结 199
习题 199
第9章 项目计划与管理 201
9.1 软件项目特点、管理的特殊性及软件管理功能 201
9.1.1 软件项目的特点 201
9.1.2 软件管理的功能 202
9.1.3 确定软件项目的工作范围 202
9.2 确定软硬件资源 202
9.2.3 软件 203
9.2.1 人力资源 203
9.2.2 硬件 203
9.3 人员的计划和组织 204
9.4 成本估计及控制 205
9.4.1 软件开发成本估计方法 205
9.4.2 专家判定技术 206
9.4.3 成本估算模型 207
9.5 进度计划 209
9.5.1 软件工作的特殊性 209
9.5.2 各阶段工作量的分配 210
9.6 软件配置管理 211
9.5.3 制定开发进度 211
9.6.1 基线 212
9.6.2 软件配置项 213
9.6.3 软件配置管理过程 214
9.7 软件管理方案 217
9.8 小结 219
习题 219
第10章 软件开发工具与环境概述 220
10.1 软件开发工具概述 220
10.2 软件开发工具的功能 221
10.3 软件开发工具的特性 222
10.4 软件开发工具的分类 223
10.5 软件开发环境 225
10.6 常用开发环境 226
10.6.1 Windows操作系统 226
10.6.2 UNIX程序开发环境 227
10.6.3 Linux开发环境 232
10.7 软件开发工具与环境的应用 234
10.8 CASE技术 235
10.9 小结 237
习题 237
参考文献 238