书籍详情
软件工程基础原理与应用
作者:丛飚
出版社:科学出版社
出版时间:2023-07-01
ISBN:9787030753892
定价:¥58.00
购买这本书可以去
内容简介
本书系统地介绍了软件工程的基础概念、基本原理、主要方法及其应用等,共分为12章。本书按照软件开发生命周期技术主线展开,涵盖IEEE制定的软件工程知识体系的主要知识点。主要内容包括软件工程概述、可行性研究与需求分析、软件设计工程、软件规模和工作量度量、软件质量管理、测试技术、测试策略、软件维护、面向对象程序设计、软件项目管理、软件风险分析和管理、软件开发主流工具。本书既可作为ISEC项目专用教材,又可作为高等院校计算机、软件工程等相关专业本科教材,还可作为软件工程技术人员的参考用书。
作者简介
暂缺《软件工程基础原理与应用》作者简介
目录
第1章 软件工程概述 1
1.1 软件 1
1.1.1 软件的定义 1
1.1.2 软件的特性 1
1.1.3 软件的分类 1
1.2 软件危机 3
1.2.1 软件危机的典型表现 3
1.2.2 软件危机产生的原因 4
1.2.3 软件危机的解决途径 5
1.3 软件工程的发展历程及基本原理 5
1.3.1 软件工程的发展历程 6
1.3.2 软件工程的基本原理 6
1.3.3 软件工程的未来发展 7
1.4 软件生命周期 8
1.5 软件过程模型 10
1.5.1 瀑布模型 10
1.5.2 快速原型模型 11
1.5.3 增量模型 12
1.5.4 螺旋模型 13
1.5.5 喷泉模型 14
1.5.6 统一过程 15
1.5.7 敏捷开发 15
1.5.8 极限编程 16
1.6 软件工程的道德规范 17
习题 22
第2章 可行性研究与需求分析 23
2.1 可行性研究 23
2.1.1 可行性研究内容 23
2.1.2 成本效益分析 24
2.1.3 可行性研究步骤 26
2.1.4 可行性研究报告 27
2.2 需求分析 28
2.2.1 软件需求的定义 28
2.2.2 需求分析的任务 28
2.2.3 需求分析的步骤 28
2.2.4 需求获取的过程 29
2.2.5 需求获取的途径 30
2.2.6 功能性需求和非功能性需求 30
2.2.7 结构化分析建模 31
2.3 数据流图 31
2.3.1 数据流图的定义 31
2.3.2 数据流图的基本要素 31
2.3.3 数据流图的命名 32
2.3.4 数据流图的优缺点 33
2.3.5 分层数据流图 33
2.3.6 数据流图实例 34
2.4 数据字典 36
2.4.1 数据字典的定义 37
2.4.2 数据库中的数据字典 37
2.4.3 数据字典的词条描述 38
2.4.4 数据字典的优缺点 40
2.5 状态转换图 40
2.6 软件需求规格说明书 42
2.6.1 软件需求规格说明书的定义 42
2.6.2 软件需求规格说明书的结构 42
2.6.3 软件需求说明书的目标及作用 43
习题 44
第3章 软件设计工程 45
3.1 设计工程简介 45
3.2 设计过程和质量 45
3.3 设计技术 46
3.3.1 抽象 46
3.3.2 信息隐藏和局部化 47
3.3.3 模块化和模块独立性 48
3.3.4 设计模式 51
3.3.5 软件设计规则 52
3.4 结构化设计工具与方法 53
3.4.1 软件结构图 53
3.4.2 结构化设计方法 54
3.4.3 软件结构图的设计过程 55
3.4.4 设计优化 56
3.5 软件详细设计及实现 57
3.5.1 结构化程序设计 57
3.5.2 过程设计的工具 59
3.5.3 程序复杂程度的McCabe方法 64
3.5.4 程序设计语言及风格 66
3.6 用户界面设计 70
3.6.1 用户类型分析 70
3.6.2 用户界面设计的基本原则 70
习题 72
第4章 软件规模和工作量度量 74
4.1 软件规模和工作量度量简介 74
4.2 软件项目估算的基本内容 75
4.3 估算方法 76
4.4 软件规模估算方法 77
4.4.1 LOC 77
4.4.2 FP 78
4.4.3 德尔菲法 81
4.4.4 类比估算法 82
4.4.5 标准构件法 82
4.5 工作量估算方法 83
4.5.1 参数模型估算方法——静态单变量模型 83
4.5.2 参数模型估算方法——动态多变量模型 84
4.5.3 参数模型估算方法——COCOMO方法 84
4.5.4 基于用例的工作量估算法 87
4.5.5 扑克估算方法 89
4.6 估算方法综合讨论 90
习题 91
第5章 软件质量管理 92
5.1 软件质量简介 92
5.1.1 软件质量的定义 92
5.1.2 软件质量模型 93
5.1.3 软件质量控制 95
5.1.4 软件质量成本 97
5.2 软件质量保证 98
5.2.1 软件质量保证的定义 98
5.2.2 软件质量保证活动 98
5.2.3 软件可靠性 100
5.3 软件审查 100
习题 103
第6章 测试技术 104
6.1 测试简介 104
6.1.1 测试的目的 104
6.1.2 测试的分类 105
6.2 软件缺陷管理 107
6.2.1 软件缺陷的概念 107
6.2.2 软件缺陷的属性 108
6.2.3 软件缺陷的生命周期 109
6.3 测试技术简介 110
6.3.1 测试覆盖率 110
6.3.2 黑盒测试 111
6.3.3 白盒测试 118
6.3.4 黑盒测试与白盒测试的比较 122
习题 123
第7章 测试策略 124
7.1 测试策略简介 124
7.2 单元测试 125
7.2.1 单元测试概述 125
7.2.2 单元测试流程 126
7.3 集成测试 128
7.3.1 集成测试概述 128
7.3.2 集成测试方法 128
7.4 系统测试 131
7.4.1 系统测试概述 131
7.4.2 性能测试 132
7.5 验收测试 134
习题 134
第8章 软件维护 135
8.1 软件维护基础 135
8.1.1 软件维护概述 135
8.1.2 软件可维护性 136
8.2 维护过程 137
8.3 软件再工程 139
8.3.1 软件再工程概述 139
8.3.2 重用和重构 140
8.3.3 软件再工程流程 141
8.3.4 再工程的成本/效益分析 143
习题 143
第9章 面向对象程序设计 144
9.1 面向对象方法的相关概念 144
9.1.1 对象 144
9.1.2 类 145
9.1.3 消息与消息通信 145
9.1.4 方法 145
9.1.5 继承 146
9.1.6 封装 146
9.1.7 重载 146
9.1.8 多态性与动态绑定 146
9.2 面向对象方法的特点 147
9.3 面向对象开发方法 147
9.4 UML建模 148
9.4.1 UML的模型元素 148
9.4.2 UML模型及建模规则 150
9.4.3 UML的特点与应用 150
9.4.4 用例图 150
9.4.5 类图 153
9.4.6 包图 157
9.4.7 构件图 157
9.4.8 部署图 158
9.4.9 顺序图 159
9.4.10 协作图 160
9.4.11 状态图 161
9.4.12 活动图 162
9.5 面向对象分析 164
9.5.1 面向对象分析的主要原则 164
9.5.2 面向对象分析的主要工作 164
9.6 面向对象设计 167
9.6.1 面向对象设计的概念 167
9.6.2 面向对象设计的准则 167
9.6.3 系统设计的过程 167
习题 168
0章 软件项目管理 169
10.1 软件项目管理概述 169
10.1.1 软件项目管理的概念 169
10.1.2 软件项目管理的特点 169
10.2 项目管理知识体系 170
10.3 项目整合管理(集成管理) 171
10.3.1 项目整合管理的定义 171
10.3.2 项目章程制定的方法 171
10.3.3 项目管理计划制订 172
10.3.4 项目指导与管理 172
10.3.5 项目监控 172
10.3.6 项目整体变 控制 173
10.3.7 项目收尾 173
10.4 项目范围管理 173
10.4.1 范围管理概述 173
10.4.2 需求管理 174
10.4.3 工作分解结构 175
10.5 项目进度管理 177
10.5.1 活动概述 177
10.5.2 活动历时估算 178
10.5.3 进度安排方法 179
10.6 项目人力资源管理 182
10.6.1 项目团队管理概述 182
10.6.2 项目团队组建 183
10.6.3 项目团队管理 184
10.6.4 项目团队激励 184
10.6.5 绩效管理 186
10.7 项目沟通管理 187
10.7.1 沟通管理概述 187
10.7.2 沟通方式 187
10.7.3 冲突管理 188
10.8 项目干系人管理 189
10.8.1 干系人识别 189
10.8.2 干系人参与规划 189
10.8.3 干系人参与管理 190
10.8.4 干系人参与监督 190
10.9 项目采购管理 191
10.9.1 项目采购规划 191
10.9.2 项目采购实施 191
10.9.3 项目采购控制 192
习题 193
1章 软件风险分析和管理 194
11.1 软件风险管理概述 194
11.1.1 风险的定义 194
11.1.2 风险的分类 194
11.1.3 风险的性质 195
11.1.4 风险管理 196
11.2 风险规划 197
11.3 风险识别 197
11.3.1 风险识别的方法 198
11.3.2 风险识别的结果 199
11.4 风险评估 200
11.4.1 定性风险分析 200
11.4.2 定量风险分析 202
11.5 风险应对策略 204
11.5.1 风险规避 204
11.5.2 风险转移 205
11.5.3 损失控制 205
11.5.4 自留风险 206
11.6 风险监控 206
习题 208
2章 软件开发主流工具 209
12.1 需求设计工具 209
12.1.1 流程绘制工具——Visio 2019 209
12.1.2 快速原型设计工具——Axure RP 212
12.1.3 软件项目管理工具——Project 2019 215
12.2 软件集成开发环境 219
12.2.1 Eclipse集成开发环境 219
12.2.2 Android集成开发环境 222
12.2.3 iOS集成开发环境 226
12.3 软件测试工具 229
12.3.1 负载测试工具——LoadRunner 229
12.3.2 缺陷跟踪系统——Bugzilla 232
12.3.3 测试管理工具——TestLink 233
12.4 软件维护工具——Subversion 235
习题 237
参考文献 238
1.1 软件 1
1.1.1 软件的定义 1
1.1.2 软件的特性 1
1.1.3 软件的分类 1
1.2 软件危机 3
1.2.1 软件危机的典型表现 3
1.2.2 软件危机产生的原因 4
1.2.3 软件危机的解决途径 5
1.3 软件工程的发展历程及基本原理 5
1.3.1 软件工程的发展历程 6
1.3.2 软件工程的基本原理 6
1.3.3 软件工程的未来发展 7
1.4 软件生命周期 8
1.5 软件过程模型 10
1.5.1 瀑布模型 10
1.5.2 快速原型模型 11
1.5.3 增量模型 12
1.5.4 螺旋模型 13
1.5.5 喷泉模型 14
1.5.6 统一过程 15
1.5.7 敏捷开发 15
1.5.8 极限编程 16
1.6 软件工程的道德规范 17
习题 22
第2章 可行性研究与需求分析 23
2.1 可行性研究 23
2.1.1 可行性研究内容 23
2.1.2 成本效益分析 24
2.1.3 可行性研究步骤 26
2.1.4 可行性研究报告 27
2.2 需求分析 28
2.2.1 软件需求的定义 28
2.2.2 需求分析的任务 28
2.2.3 需求分析的步骤 28
2.2.4 需求获取的过程 29
2.2.5 需求获取的途径 30
2.2.6 功能性需求和非功能性需求 30
2.2.7 结构化分析建模 31
2.3 数据流图 31
2.3.1 数据流图的定义 31
2.3.2 数据流图的基本要素 31
2.3.3 数据流图的命名 32
2.3.4 数据流图的优缺点 33
2.3.5 分层数据流图 33
2.3.6 数据流图实例 34
2.4 数据字典 36
2.4.1 数据字典的定义 37
2.4.2 数据库中的数据字典 37
2.4.3 数据字典的词条描述 38
2.4.4 数据字典的优缺点 40
2.5 状态转换图 40
2.6 软件需求规格说明书 42
2.6.1 软件需求规格说明书的定义 42
2.6.2 软件需求规格说明书的结构 42
2.6.3 软件需求说明书的目标及作用 43
习题 44
第3章 软件设计工程 45
3.1 设计工程简介 45
3.2 设计过程和质量 45
3.3 设计技术 46
3.3.1 抽象 46
3.3.2 信息隐藏和局部化 47
3.3.3 模块化和模块独立性 48
3.3.4 设计模式 51
3.3.5 软件设计规则 52
3.4 结构化设计工具与方法 53
3.4.1 软件结构图 53
3.4.2 结构化设计方法 54
3.4.3 软件结构图的设计过程 55
3.4.4 设计优化 56
3.5 软件详细设计及实现 57
3.5.1 结构化程序设计 57
3.5.2 过程设计的工具 59
3.5.3 程序复杂程度的McCabe方法 64
3.5.4 程序设计语言及风格 66
3.6 用户界面设计 70
3.6.1 用户类型分析 70
3.6.2 用户界面设计的基本原则 70
习题 72
第4章 软件规模和工作量度量 74
4.1 软件规模和工作量度量简介 74
4.2 软件项目估算的基本内容 75
4.3 估算方法 76
4.4 软件规模估算方法 77
4.4.1 LOC 77
4.4.2 FP 78
4.4.3 德尔菲法 81
4.4.4 类比估算法 82
4.4.5 标准构件法 82
4.5 工作量估算方法 83
4.5.1 参数模型估算方法——静态单变量模型 83
4.5.2 参数模型估算方法——动态多变量模型 84
4.5.3 参数模型估算方法——COCOMO方法 84
4.5.4 基于用例的工作量估算法 87
4.5.5 扑克估算方法 89
4.6 估算方法综合讨论 90
习题 91
第5章 软件质量管理 92
5.1 软件质量简介 92
5.1.1 软件质量的定义 92
5.1.2 软件质量模型 93
5.1.3 软件质量控制 95
5.1.4 软件质量成本 97
5.2 软件质量保证 98
5.2.1 软件质量保证的定义 98
5.2.2 软件质量保证活动 98
5.2.3 软件可靠性 100
5.3 软件审查 100
习题 103
第6章 测试技术 104
6.1 测试简介 104
6.1.1 测试的目的 104
6.1.2 测试的分类 105
6.2 软件缺陷管理 107
6.2.1 软件缺陷的概念 107
6.2.2 软件缺陷的属性 108
6.2.3 软件缺陷的生命周期 109
6.3 测试技术简介 110
6.3.1 测试覆盖率 110
6.3.2 黑盒测试 111
6.3.3 白盒测试 118
6.3.4 黑盒测试与白盒测试的比较 122
习题 123
第7章 测试策略 124
7.1 测试策略简介 124
7.2 单元测试 125
7.2.1 单元测试概述 125
7.2.2 单元测试流程 126
7.3 集成测试 128
7.3.1 集成测试概述 128
7.3.2 集成测试方法 128
7.4 系统测试 131
7.4.1 系统测试概述 131
7.4.2 性能测试 132
7.5 验收测试 134
习题 134
第8章 软件维护 135
8.1 软件维护基础 135
8.1.1 软件维护概述 135
8.1.2 软件可维护性 136
8.2 维护过程 137
8.3 软件再工程 139
8.3.1 软件再工程概述 139
8.3.2 重用和重构 140
8.3.3 软件再工程流程 141
8.3.4 再工程的成本/效益分析 143
习题 143
第9章 面向对象程序设计 144
9.1 面向对象方法的相关概念 144
9.1.1 对象 144
9.1.2 类 145
9.1.3 消息与消息通信 145
9.1.4 方法 145
9.1.5 继承 146
9.1.6 封装 146
9.1.7 重载 146
9.1.8 多态性与动态绑定 146
9.2 面向对象方法的特点 147
9.3 面向对象开发方法 147
9.4 UML建模 148
9.4.1 UML的模型元素 148
9.4.2 UML模型及建模规则 150
9.4.3 UML的特点与应用 150
9.4.4 用例图 150
9.4.5 类图 153
9.4.6 包图 157
9.4.7 构件图 157
9.4.8 部署图 158
9.4.9 顺序图 159
9.4.10 协作图 160
9.4.11 状态图 161
9.4.12 活动图 162
9.5 面向对象分析 164
9.5.1 面向对象分析的主要原则 164
9.5.2 面向对象分析的主要工作 164
9.6 面向对象设计 167
9.6.1 面向对象设计的概念 167
9.6.2 面向对象设计的准则 167
9.6.3 系统设计的过程 167
习题 168
0章 软件项目管理 169
10.1 软件项目管理概述 169
10.1.1 软件项目管理的概念 169
10.1.2 软件项目管理的特点 169
10.2 项目管理知识体系 170
10.3 项目整合管理(集成管理) 171
10.3.1 项目整合管理的定义 171
10.3.2 项目章程制定的方法 171
10.3.3 项目管理计划制订 172
10.3.4 项目指导与管理 172
10.3.5 项目监控 172
10.3.6 项目整体变 控制 173
10.3.7 项目收尾 173
10.4 项目范围管理 173
10.4.1 范围管理概述 173
10.4.2 需求管理 174
10.4.3 工作分解结构 175
10.5 项目进度管理 177
10.5.1 活动概述 177
10.5.2 活动历时估算 178
10.5.3 进度安排方法 179
10.6 项目人力资源管理 182
10.6.1 项目团队管理概述 182
10.6.2 项目团队组建 183
10.6.3 项目团队管理 184
10.6.4 项目团队激励 184
10.6.5 绩效管理 186
10.7 项目沟通管理 187
10.7.1 沟通管理概述 187
10.7.2 沟通方式 187
10.7.3 冲突管理 188
10.8 项目干系人管理 189
10.8.1 干系人识别 189
10.8.2 干系人参与规划 189
10.8.3 干系人参与管理 190
10.8.4 干系人参与监督 190
10.9 项目采购管理 191
10.9.1 项目采购规划 191
10.9.2 项目采购实施 191
10.9.3 项目采购控制 192
习题 193
1章 软件风险分析和管理 194
11.1 软件风险管理概述 194
11.1.1 风险的定义 194
11.1.2 风险的分类 194
11.1.3 风险的性质 195
11.1.4 风险管理 196
11.2 风险规划 197
11.3 风险识别 197
11.3.1 风险识别的方法 198
11.3.2 风险识别的结果 199
11.4 风险评估 200
11.4.1 定性风险分析 200
11.4.2 定量风险分析 202
11.5 风险应对策略 204
11.5.1 风险规避 204
11.5.2 风险转移 205
11.5.3 损失控制 205
11.5.4 自留风险 206
11.6 风险监控 206
习题 208
2章 软件开发主流工具 209
12.1 需求设计工具 209
12.1.1 流程绘制工具——Visio 2019 209
12.1.2 快速原型设计工具——Axure RP 212
12.1.3 软件项目管理工具——Project 2019 215
12.2 软件集成开发环境 219
12.2.1 Eclipse集成开发环境 219
12.2.2 Android集成开发环境 222
12.2.3 iOS集成开发环境 226
12.3 软件测试工具 229
12.3.1 负载测试工具——LoadRunner 229
12.3.2 缺陷跟踪系统——Bugzilla 232
12.3.3 测试管理工具——TestLink 233
12.4 软件维护工具——Subversion 235
习题 237
参考文献 238
猜您喜欢