书籍详情
软件工程(第3版)
作者:陆惠恩 著
出版社:人民邮电出版社
出版时间:2017-12-01
ISBN:9787115469687
定价:¥49.80
购买这本书可以去
内容简介
本书从实用的角度,介绍软件工程的基础知识和软件工程技术方法。本书的编写力求做到结合实际、注重应用、便于教学,体现内容的新颖性和系统性。本书内容包括软件工程概述,可行性研究与软件开发计划,需求分析,概要设计,详细设计,软件实现,软件维护,面向对象方法学与UML,面向对象技术与UML应用,WebApp软件工程,软件重用和再工程,软件工程管理等。每章都有小结,并配有适量的例题和习题,有些例题贯穿于各章,按软件工程的各个阶段分别就这些例题的实际处理方法、步骤等进行介绍,可作为实践环节的样例,有助于读者学习和掌握有关知识。
作者简介
陆惠恩,从事高校计算机软件专业教学三十余年、指导学生毕业设计二十多年,有丰富的教学、科研经验。编写《软件工程》教材多年,书中有不少实例有利于读者对内容的理解和掌握,并根据计算机软件工程发展的情况更新了教材的内容,因而所编写的教材深受广大高校师生的欢迎。
目录
第1章 概述 1
1.1 软件工程的产生 1
1.1.1 软件生产的发展 1
1.1.2 软件危机 2
1.2 软件工程 4
1.2.1 软件工程定义 4
1.2.2 软件工程学的内容 4
1.2.3 软件工程的基本原理 7
1.3 软件生命周期 7
1.4 软件过程模型 9
1.4.1 瀑布模型 9
1.4.2 快速原型模型 10
1.4.3 增量模型 11
1.4.4 喷泉模型 12
1.4.5 统一过程 13
本章小结 14
习题1 15
第2章 可行性研究与软件开发计划 16
2.1 软件定义与可行性研究 16
2.1.1 软件定义 16
2.1.2 可行性研究 18
2.2 软件工程开发计划的制定 19
2.2.1 软件工程项目概述和实施计划 20
2.2.2 Gantt图 20
2.2.3 工程网络图 21
2.2.4 软件工程开发计划的复审 25
2.2.5 软件工程开发计划实例 26
本章小结 31
习题2 31
第3章 需求分析 32
3.1 需求分析的任务 32
3.1.1 确定目标系统的具体要求 33
3.1.2 建立目标系统的逻辑模型 35
3.2 结构化分析步骤 35
3.2.1 进行调查研究 35
3.2.2 分析和描述系统的逻辑模型 36
3.2.3 需求分析的复审 37
3.3 需求分析图形工具 38
3.3.1 实体—关系图 38
3.3.2 数据流图 40
3.3.3 状态转换图 42
3.3.4 IPO图 43
3.4 数据字典 44
3.4.1 数据字典的内容 44
3.4.2 数据字典使用的符号 45
3.4.3 数据字典与图形工具 47
3.5 软件需求分析举例 48
3.5.1 系统管理 48
3.5.2 商品信息管理 48
3.5.3 商品供销存管理 49
3.5.4 商品销售数据流图 50
3.5.5 数据字典 50
3.6 需求分析文档 51
3.6.1 软件需求规格说明 51
3.6.2 用户手册编写提示 52
3.6.3 编写需求分析文档的步骤 52
本章小结 53
习题3 53
第4章 概要设计 55
4.1 概要设计步骤 55
4.1.1 软件结构设计 55
4.1.2 数据结构设计及数据库设计 56
4.1.3 系统接口设计 57
4.1.4 设计测试方案 57
4.2 软件结构设计的基本原理 57
4.2.1 模块与模块化 57
4.2.2 模块的耦合和内聚 60
4.2.3 软件结构设计优化准则 63
4.3 软件结构设计的图形工具 64
4.3.1 层次图 64
4.3.2 结构图 66
4.4 概要设计方法 67
4.4.1 结构化方法 67
4.4.2 面向数据结构设计方法 69
4.5 概要设计文档与复审 73
4.5.1 概要设计说明书 73
4.5.2 概要设计复审 74
4.5.3 数据库设计说明书 74
本章小结 75
习题4 75
第5章 详细设计 77
5.1 过程设计 77
5.1.1 流程图 78
5.1.2 盒图 82
5.1.3 PAD 84
5.1.4 判定表 85
5.1.5 判定树 86
5.1.6 过程设计语言 86
5.2 用户界面设计 88
5.2.1 用户界面设计问题 88
5.2.2 用户界面设计过程 90
5.2.3 用户界面设计的基本原则 90
5.2.4 用户界面设计指南 90
5.3 数据代码设计 92
5.3.1 数据代码设计原则 93
5.3.2 代码种类 93
5.3.3 数据代码设计方法 95
5.4 数据输入 输出设计 96
5.4.1 输入设计 96
5.4.2 输出设计 96
5.5 数据安全设计 97
5.6 详细设计文档与复审 98
5.6.1 详细设计说明书 98
5.6.2 操作手册编写提示 99
5.6.3 详细设计的复审 100
本章小结 100
习题5 100
第6章 软件实现 102
6.1 结构化程序设计 102
6.2 选择程序设计语言 103
6.3 程序设计风格 105
6.4 程序设计质量评价 106
6.5 程序设计文档 107
6.6 软件测试目标和原则 107
6.6.1 软件测试目标 107
6.6.2 软件测试原则 108
6.7 软件测试方法 108
6.7.1 静态分析与动态测试 109
6.7.2 黑盒法与白盒法 109
6.8 软件测试步骤 110
6.8.1 模块测试 110
6.8.2 集成测试 110
6.8.3 程序审查会和人工运行 111
6.8.4 确认测试 112
6.8.5 平行运行 113
6.9 设计测试方案 113
6.9.1 等价类划分法 113
6.9.2 边界值分析法 114
6.9.3 错误推测法 115
6.9.4 逻辑覆盖法 115
6.9.5 实用测试策略 118
6.10 软件调试、验证与确认 119
6.10.1 软件调试 119
6.10.2 软件验证 120
6.10.3 软件确认 121
6.11 软件测试计划和分析报告 121
本章小结 122
习题6 123
第7章 软件维护 127
7.1 软件维护过程 127
7.1.1 软件维护的种类 127
7.1.2 软件维护的困难 128
7.1.3 软件维护的实施 129
7.1.4 软件维护的副作用 131
7.2 软件的可维护性 131
7.2.1 决定可维护性的因素 132
7.2.2 可维护性的度量 132
7.2.3 提高软件的可维护性 133
本章小结 134
习题7 134
第8章 面向对象方法学与UML 136
8.1 面向对象方法概述 136
8.1.1 面向对象方法学的主要优点 137
8.1.2 面向对象的概念 138
8.2 UML概述 140
8.2.1 UML的发展 140
8.2.2 UML设计目标和内容 141
8.2.3 UML的语义 142
8.2.4 UML的扩展机制 143
8.3 UML图 144
8.3.1 用例图 144
8.3.2 类图和包 145
8.3.3 对象图 150
8.3.4 状态图 150
8.3.5 顺序图 152
8.3.6 活动图 152
8.3.7 协作图 153
8.3.8 构件图 154
8.3.9 部署图 154
本章小结 155
习题8 156
第9章 面向对象技术与UML应用 157
9.1 面向对象分析 157
9.1.1 面向对象分析过程 157
9.1.2 面向对象分析原则 158
9.2 建立对象模型 158
9.2.1 确定对象和类 159
9.2.2 确定类的相互关系 159
9.2.3 划分主题 161
9.3 建立动态模型 163
9.3.1 编写脚本 164
9.3.2 设计用户界面 164
9.3.3 画UML顺序图或活动图 165
9.3.4 画状态转换图 165
9.4 建立功能模型 166
9.5 面向对象设计 167
9.5.1 系统设计 168
9.5.2 对象设计 171
9.5.3 面向对象设计的准则和启发式规则 172
9.6 面向对象系统的实现 173
9.6.1 选择程序设计语言 173
9.6.2 面向对象程序设计 174
9.7 面向对象的测试 174
9.7.1 面向对象测试策略 175
9.7.2 面向对象的测试步骤 177
9.8 UML的应用 180
9.8.1 UML模型 181
9.8.2 UML视图 182
9.8.3 UML使用准则 183
9.8.4 UML的应用领域 184
9.9 统一过程 184
9.9.1 RUP的开发模式 185
9.9.2 RUP的特点 186
9.9.3 RUP的要素 186
9.10 Rational Rose 187
9.10.1 Rational Rose简介 187
9.10.2 Rational Rose的界面 189
9.10.3 Rational Rose模型的4个视图 189
9.10.4 Rational Rose的使用 191
本章小结 191
习题9 192
第10章 WebApp软件工程 194
10.1 网页软件的特性 194
10.2 网络系统的层次结构 196
10.2.1 二层C S结构 196
10.2.2 三层C S结构 197
10.2.3 四层C S结构 199
10.2.4 B S结构 199
10.3 客户端层可用的技术 201
10.3.1 基本HTML 201
10.3.2 脚本语言 202
10.3.3 Applet 203
10.3.4 AJAX 203
10.4 网络服务器层使用的技术 204
10.4.1 Servlet 204
10.4.2 JSP 205
10.5 WebApp的设计模式 206
10.5.1 观察者模式 206
10.5.2 组合模式 208
10.5.3 工厂方法模式和策略模式 209
10.5.4 模型—视图—控制器模式 210
10.5.5 装饰者模式 211
10.6 WebApp的设计 212
10.6.1 WebApp的特点及应用类型 212
10.6.2 WebApp的需求分析 213
10.6.3 WebApp需求分析过程 217
10.6.4 WebApp设计过程 219
10.6.5 WebApp体系结构设计 223
10.6.6 WebApp导航设计 224
10.7 WebApp测试 226
10.7.1 WebApp测试过程概述 226
10.7.2 WebApp内容测试 226
10.7.3 WebApp界面测试 227
10.7.4 WebApp导航测试 228
10.7.5 WebApp配置测试 228
10.7.6 WebApp安全性测试 229
10.7.7 WebApp性能测试 229
本章小结 230
习题10 231
第11章 软件重用和再工程 232
11.1 可重用的软件成分 232
11.2 软件重用过程 233
11.2.1 软件重用过程模型 233
11.2.2 开发可重用的软件构件 235
11.2.3 分类和检索软件构件 236
11.2.4 软件重用环境 236
11.3 软件逆向工程 237
11.4 软件再工程 238
本章小结 239
习题11 240
第12章 软件工程管理 241
12.1 软件工程管理概述 241
12.2 软件规模估算 242
12.2.1 软件开发成本估算方法 242
12.2.2 代码行技术和任务估算技术 243
12.2.3 COCOMO2模型 244
12.2.4 程序环行复杂程度的度量 246
12.3 软件工程人员组织 247
12.4 软件配置管理 249
12.5 软件质量保证 252
12.5.1 软件质量的特性 252
12.5.2 软件质量保证措施 253
12.6 软件开发风险管理 254
12.6.1 软件开发风险的分类 254
12.6.2 软件开发风险的识别 255
12.6.3 软件开发风险的预测 256
12.6.4 处理软件开发风险的策略 257
12.7 软件工程标准与软件工程文档 258
12.7.1 软件工程标准 258
12.7.2 软件工程文档的编写 260
12.8 CASE技术 262
本章小结 263
习题12 264
附录A 部分习题参考答案 265
附录B 试题类型举例 271
参考文献 273
1.1 软件工程的产生 1
1.1.1 软件生产的发展 1
1.1.2 软件危机 2
1.2 软件工程 4
1.2.1 软件工程定义 4
1.2.2 软件工程学的内容 4
1.2.3 软件工程的基本原理 7
1.3 软件生命周期 7
1.4 软件过程模型 9
1.4.1 瀑布模型 9
1.4.2 快速原型模型 10
1.4.3 增量模型 11
1.4.4 喷泉模型 12
1.4.5 统一过程 13
本章小结 14
习题1 15
第2章 可行性研究与软件开发计划 16
2.1 软件定义与可行性研究 16
2.1.1 软件定义 16
2.1.2 可行性研究 18
2.2 软件工程开发计划的制定 19
2.2.1 软件工程项目概述和实施计划 20
2.2.2 Gantt图 20
2.2.3 工程网络图 21
2.2.4 软件工程开发计划的复审 25
2.2.5 软件工程开发计划实例 26
本章小结 31
习题2 31
第3章 需求分析 32
3.1 需求分析的任务 32
3.1.1 确定目标系统的具体要求 33
3.1.2 建立目标系统的逻辑模型 35
3.2 结构化分析步骤 35
3.2.1 进行调查研究 35
3.2.2 分析和描述系统的逻辑模型 36
3.2.3 需求分析的复审 37
3.3 需求分析图形工具 38
3.3.1 实体—关系图 38
3.3.2 数据流图 40
3.3.3 状态转换图 42
3.3.4 IPO图 43
3.4 数据字典 44
3.4.1 数据字典的内容 44
3.4.2 数据字典使用的符号 45
3.4.3 数据字典与图形工具 47
3.5 软件需求分析举例 48
3.5.1 系统管理 48
3.5.2 商品信息管理 48
3.5.3 商品供销存管理 49
3.5.4 商品销售数据流图 50
3.5.5 数据字典 50
3.6 需求分析文档 51
3.6.1 软件需求规格说明 51
3.6.2 用户手册编写提示 52
3.6.3 编写需求分析文档的步骤 52
本章小结 53
习题3 53
第4章 概要设计 55
4.1 概要设计步骤 55
4.1.1 软件结构设计 55
4.1.2 数据结构设计及数据库设计 56
4.1.3 系统接口设计 57
4.1.4 设计测试方案 57
4.2 软件结构设计的基本原理 57
4.2.1 模块与模块化 57
4.2.2 模块的耦合和内聚 60
4.2.3 软件结构设计优化准则 63
4.3 软件结构设计的图形工具 64
4.3.1 层次图 64
4.3.2 结构图 66
4.4 概要设计方法 67
4.4.1 结构化方法 67
4.4.2 面向数据结构设计方法 69
4.5 概要设计文档与复审 73
4.5.1 概要设计说明书 73
4.5.2 概要设计复审 74
4.5.3 数据库设计说明书 74
本章小结 75
习题4 75
第5章 详细设计 77
5.1 过程设计 77
5.1.1 流程图 78
5.1.2 盒图 82
5.1.3 PAD 84
5.1.4 判定表 85
5.1.5 判定树 86
5.1.6 过程设计语言 86
5.2 用户界面设计 88
5.2.1 用户界面设计问题 88
5.2.2 用户界面设计过程 90
5.2.3 用户界面设计的基本原则 90
5.2.4 用户界面设计指南 90
5.3 数据代码设计 92
5.3.1 数据代码设计原则 93
5.3.2 代码种类 93
5.3.3 数据代码设计方法 95
5.4 数据输入 输出设计 96
5.4.1 输入设计 96
5.4.2 输出设计 96
5.5 数据安全设计 97
5.6 详细设计文档与复审 98
5.6.1 详细设计说明书 98
5.6.2 操作手册编写提示 99
5.6.3 详细设计的复审 100
本章小结 100
习题5 100
第6章 软件实现 102
6.1 结构化程序设计 102
6.2 选择程序设计语言 103
6.3 程序设计风格 105
6.4 程序设计质量评价 106
6.5 程序设计文档 107
6.6 软件测试目标和原则 107
6.6.1 软件测试目标 107
6.6.2 软件测试原则 108
6.7 软件测试方法 108
6.7.1 静态分析与动态测试 109
6.7.2 黑盒法与白盒法 109
6.8 软件测试步骤 110
6.8.1 模块测试 110
6.8.2 集成测试 110
6.8.3 程序审查会和人工运行 111
6.8.4 确认测试 112
6.8.5 平行运行 113
6.9 设计测试方案 113
6.9.1 等价类划分法 113
6.9.2 边界值分析法 114
6.9.3 错误推测法 115
6.9.4 逻辑覆盖法 115
6.9.5 实用测试策略 118
6.10 软件调试、验证与确认 119
6.10.1 软件调试 119
6.10.2 软件验证 120
6.10.3 软件确认 121
6.11 软件测试计划和分析报告 121
本章小结 122
习题6 123
第7章 软件维护 127
7.1 软件维护过程 127
7.1.1 软件维护的种类 127
7.1.2 软件维护的困难 128
7.1.3 软件维护的实施 129
7.1.4 软件维护的副作用 131
7.2 软件的可维护性 131
7.2.1 决定可维护性的因素 132
7.2.2 可维护性的度量 132
7.2.3 提高软件的可维护性 133
本章小结 134
习题7 134
第8章 面向对象方法学与UML 136
8.1 面向对象方法概述 136
8.1.1 面向对象方法学的主要优点 137
8.1.2 面向对象的概念 138
8.2 UML概述 140
8.2.1 UML的发展 140
8.2.2 UML设计目标和内容 141
8.2.3 UML的语义 142
8.2.4 UML的扩展机制 143
8.3 UML图 144
8.3.1 用例图 144
8.3.2 类图和包 145
8.3.3 对象图 150
8.3.4 状态图 150
8.3.5 顺序图 152
8.3.6 活动图 152
8.3.7 协作图 153
8.3.8 构件图 154
8.3.9 部署图 154
本章小结 155
习题8 156
第9章 面向对象技术与UML应用 157
9.1 面向对象分析 157
9.1.1 面向对象分析过程 157
9.1.2 面向对象分析原则 158
9.2 建立对象模型 158
9.2.1 确定对象和类 159
9.2.2 确定类的相互关系 159
9.2.3 划分主题 161
9.3 建立动态模型 163
9.3.1 编写脚本 164
9.3.2 设计用户界面 164
9.3.3 画UML顺序图或活动图 165
9.3.4 画状态转换图 165
9.4 建立功能模型 166
9.5 面向对象设计 167
9.5.1 系统设计 168
9.5.2 对象设计 171
9.5.3 面向对象设计的准则和启发式规则 172
9.6 面向对象系统的实现 173
9.6.1 选择程序设计语言 173
9.6.2 面向对象程序设计 174
9.7 面向对象的测试 174
9.7.1 面向对象测试策略 175
9.7.2 面向对象的测试步骤 177
9.8 UML的应用 180
9.8.1 UML模型 181
9.8.2 UML视图 182
9.8.3 UML使用准则 183
9.8.4 UML的应用领域 184
9.9 统一过程 184
9.9.1 RUP的开发模式 185
9.9.2 RUP的特点 186
9.9.3 RUP的要素 186
9.10 Rational Rose 187
9.10.1 Rational Rose简介 187
9.10.2 Rational Rose的界面 189
9.10.3 Rational Rose模型的4个视图 189
9.10.4 Rational Rose的使用 191
本章小结 191
习题9 192
第10章 WebApp软件工程 194
10.1 网页软件的特性 194
10.2 网络系统的层次结构 196
10.2.1 二层C S结构 196
10.2.2 三层C S结构 197
10.2.3 四层C S结构 199
10.2.4 B S结构 199
10.3 客户端层可用的技术 201
10.3.1 基本HTML 201
10.3.2 脚本语言 202
10.3.3 Applet 203
10.3.4 AJAX 203
10.4 网络服务器层使用的技术 204
10.4.1 Servlet 204
10.4.2 JSP 205
10.5 WebApp的设计模式 206
10.5.1 观察者模式 206
10.5.2 组合模式 208
10.5.3 工厂方法模式和策略模式 209
10.5.4 模型—视图—控制器模式 210
10.5.5 装饰者模式 211
10.6 WebApp的设计 212
10.6.1 WebApp的特点及应用类型 212
10.6.2 WebApp的需求分析 213
10.6.3 WebApp需求分析过程 217
10.6.4 WebApp设计过程 219
10.6.5 WebApp体系结构设计 223
10.6.6 WebApp导航设计 224
10.7 WebApp测试 226
10.7.1 WebApp测试过程概述 226
10.7.2 WebApp内容测试 226
10.7.3 WebApp界面测试 227
10.7.4 WebApp导航测试 228
10.7.5 WebApp配置测试 228
10.7.6 WebApp安全性测试 229
10.7.7 WebApp性能测试 229
本章小结 230
习题10 231
第11章 软件重用和再工程 232
11.1 可重用的软件成分 232
11.2 软件重用过程 233
11.2.1 软件重用过程模型 233
11.2.2 开发可重用的软件构件 235
11.2.3 分类和检索软件构件 236
11.2.4 软件重用环境 236
11.3 软件逆向工程 237
11.4 软件再工程 238
本章小结 239
习题11 240
第12章 软件工程管理 241
12.1 软件工程管理概述 241
12.2 软件规模估算 242
12.2.1 软件开发成本估算方法 242
12.2.2 代码行技术和任务估算技术 243
12.2.3 COCOMO2模型 244
12.2.4 程序环行复杂程度的度量 246
12.3 软件工程人员组织 247
12.4 软件配置管理 249
12.5 软件质量保证 252
12.5.1 软件质量的特性 252
12.5.2 软件质量保证措施 253
12.6 软件开发风险管理 254
12.6.1 软件开发风险的分类 254
12.6.2 软件开发风险的识别 255
12.6.3 软件开发风险的预测 256
12.6.4 处理软件开发风险的策略 257
12.7 软件工程标准与软件工程文档 258
12.7.1 软件工程标准 258
12.7.2 软件工程文档的编写 260
12.8 CASE技术 262
本章小结 263
习题12 264
附录A 部分习题参考答案 265
附录B 试题类型举例 271
参考文献 273
猜您喜欢