软件工程:实践者的研究方法(本科教学版·原书第9版)

作者
[美]罗杰·S.普莱斯曼(Roger S. Pressman),[美]布鲁斯·R. 马克西姆(Bruce R. Maxim)
丛书名
计算机科学丛书
出版社
机械工业出版社
ISBN
9787111690702
简要
简介
内容简介书籍计算机书籍 本书自第1版出版至今,近40年来在软件工程界产生了巨大而深远的影响。第9版继承了之前版本的风格与优势,全面系统地讲解软件过程、建模、质量与安全、软件项目管理等知识,涵盖相关的概念、原则、方法和工具,并且提供了丰富的扩展阅读资源和网络资源。同时,本书调整了篇章结构,使内容更加简洁,更适于教学。本书是面向本科生的版本,保留了完整版中的基础内容,压缩或删除了一些高级内容,更加适合作为高等院校计算机、软件工程及相关专业的软件工程课程教材。
目录
改编者序
译者序
前言
作者简介
第1章 软件与软件工程 1
1.1 软件的本质 3
1.1.1 定义软件 4
1.1.2 软件应用领域 5
1.1.3 遗留软件 6
1.2 定义软件工程学科 6
1.3 软件过程 7
1.3.1 过程框架 7
1.3.2 普适性活动 8
1.3.3 过程的适应性调整 9
1.4 软件工程实践 9
1.4.1 实践的精髓 9
1.4.2 通用原则 10
1.5 这一切是如何开始的 12
1.6 小结 13
习题与思考题 13
第一部分 软件过程
第2章 过程模型 16
2.1 通用过程模型 16
2.2 定义框架活动 18
2.3 明确任务集 19
2.4 惯用过程模型 19
2.4.1 瀑布模型 20
2.4.2 原型开发过程模型 21
2.4.3 演化过程模型 22
2.4.4 统一过程模型24
2.5 产品和过程 26
2.6 小结 27
习题与思考题 27
第3章 敏捷和敏捷过程 29
3.1 什么是敏捷 30
3.2 敏捷及变更成本 30
3.3 什么是敏捷过程 31
3.3.1 敏捷原则 31
3.3.2 敏捷开发战略 32
3.4 Scrum 32
3.4.1 Scrum团队和制品 34
3.4.2 冲刺规划会议 34
3.4.3 每日Scrum会议 34
3.4.4 冲刺评审会议 35
3.4.5 冲刺回顾 35
3.5 其他敏捷框架 35
3.5.1 XP框架 36
3.5.2 看板法 37
3.5.3 DevOps 38
3.6 小结 39
习题与思考题 40
第4章 推荐的过程模型 41
4.1 需求定义 44
4.2 初步体系结构设计 44
4.3 资源估算 45
4.4 首次原型构建 46
4.5 原型评价 48
4.6 继续与否的决策 49
4.7 原型演化 50
4.7.1 新原型范围 51
4.7.2 构建新原型 51
4.7.3 测试新原型 51
4.8 原型发布 52
4.9 维护发布软件 52
4.10 小结 54
习题与思考题 55
第5章 软件工程的人员方面 56
5.1 软件工程师的特质 56
5.2 软件工程心理学 57
5.3 软件团队 58
5.4 团队结构 59
5.5 社交媒体的影响 60
5.6 全球化团队 60
5.7 小结 61
习题与思考题 61
第二部分 建模
第6章 理解需求 64
6.1 需求工程 65
6.1.1 起始 65
6.1.2 获取 65
6.1.3 细化 66
6.1.4 协商 66
6.1.5 规格说明 66
6.1.6 确认 67
6.1.7 需求管理 67
6.2 建立根基 68
6.2.1 确认利益相关者 68
6.2.2 识别多重观点 68
6.2.3 协作 68
6.2.4 首次提问 69
6.2.5 非功能需求 70
6.2.6 可追溯性 70
6.3 获取需求 70
6.3.1 协作收集需求 70
6.3.2 使用场景 73
6.3.3 获取工作产品 74
6.4 开发用例 74
6.5 构建分析模型 77
6.5.1 分析模型的元素 78
6.5.2 分析模式 79
6.6 协商需求 80
6.7 需求监控 81
6.8 确认需求 81
6.9 小结 81
习题与思考题 82
第7章 需求建模——一种推荐的方法 83
7.1 需求分析 84
7.1.1 总体目标和原理 84
7.1.2 分析的经验原则 85
7.1.3 需求建模原则 85
7.2 基于场景建模 86
7.2.1 参与者和用户概要文件 86
7.2.2 创建用例 86
7.2.3 编写用例 89
7.3 基于类建模 91
7.3.1 识别分析类 91
7.3.2 定义属性和操作 93
7.3.3 UML类模型 94
7.3.4 类–职责–协作者建模 96
7.4 功能建模 98
7.4.1 过程视图 98
7.4.2 UML顺序图 99
7.5 行为建模 100
7.5.1 识别用例事件 100
7.5.2 UML状态图 101
7.5.3 UML活动图 102
7.6 小结 104
习题与思考题 105
第8章 设计概念 106
8.1 软件工程中的设计 107
8.2 设计过程 109
8.2.1 软件质量指导原则和属性 109
8.2.2 软件设计的演化 110
8.3 设计概念 111
8.3.1 抽象 111
8.3.2 体系结构 112
8.3.3 模式 112
8.3.4 关注点分离 113
8.3.5 模块化 113
8.3.6 信息隐蔽 114
8.3.7 功能独立 114
8.3.8 逐步求精 115
8.3.9 重构 115
8.3.10 设计类 116
8.4 设计模型 118
8.4.1 设计建模原则 119
8.4.2 数据设计元素 120
8.4.3 体系结构设计元素 120
8.4.4 接口设计元素 120
8.4.5 构件级设计元素 122
8.4.6 部署级设计元素 122
8.5 小结 123
习题与思考题 124
第9章 体系结构设计——一种推荐的方法 125
9.1 软件体系结构 126
9.1.1 什么是体系结构 126
9.1.2 体系结构的重要性 126
9.1.3 体系结构描述 127
9.1.4 体系结构决策 127
9.2 敏捷性和体系结构 128
9.3 体系结构风格 129
9.3.1 体系结构风格的简单分类 130
9.3.2 体系结构模式 133
9.3.3 组织和求精 134
9.4 体系结构考虑要素 134
9.5 体系结构决策 135
9.6 体系结构设计 136
9.6.1 系统在上下文中的表示 136
9.6.2 定义体系结构原型 137
9.6.3 将体系结构细化为构件 138
9.6.4 描述系统实例 139
9.7 评估候选的体系结构设计 139
9.7.1 体系结构评审 141
9.7.2 基于模式的体系结构评审 141
9.7.3 体系结构的一致性检查 142
9.8 小结 142
习题与思考题 143
第10章 构件级设计 144
10.1 什么是构件 144
10.1.1 面向对象的观点 145
10.1.2 传统的观点 145
10.1.3 过程相关的观点 147
10.2 设计基于类的构件 148
10.2.1 基本设计原则 148
10.2.2 构件级设计指导方针 151
10.2.3 内聚性 151
10.2.4 耦合 153
10.3 实施构件级设计 154
10.4 专用的构件级设计 159
10.4.1 设计传统构件 159
10.4.2 基于构件的开发 159
10.5 构件重构 161
10.6 小结 161
习题与思考题 162
第11章 用户体验设计 163
11.1 用户体验设计元素 164
11.1.1 信息体系结构 164
11.1.2 用户交互设计 165
11.1.3 可用性工程 165
11.1.4 可视化设计 166
11.2 黄金规则 166
11.2.1 把控制权交给用户 167
11.2.2 减轻用户的记忆负担 167
11.2.3 保持界面一致 168
11.3 用户界面的分析和设计 169
11.3.1 用户界面分析和设计模型 169
11.3.2 过程 170
11.4 用户体验分析 171
11.4.1 用户研究 171
11.4.2 用户建模 172
11.4.3 任务分析 174
11.4.4 工作环境分析 175
11.5 用户体验设计 175
11.6 用户界面设计 176
11.6.1 应用界面设计步骤 176
11.6.2 用户界面设计模式 178
11.7 设计评估 178
11.7.1 原型审查 178
11.7.2 用户测试 180
11.8 小结 180
习题与思考题 180
第三部分 质量与安全
第12章 质量概念 184
12.1 什么是质量 184
12.2 软件质量 185
12.2.1 质量因素 186
12.2.2 定性质量评估 187
12.2.3 定量质量评估 187
12.3 软件质量困境 188
12.3.1 “足够好”的软件 188
12.3.2 质量的成本 189
12.3.3 风险 191
12.3.4 疏忽和责任 192
12.3.5 管理活动的影响 192
12.4 实现软件质量 192
12.4.1 软件工程方法 193
12.4.2 项目管理技术 193
12.4.3 质量控制 193
12.4.4 质量保证 193
12.5 小结 193
习题与思考题 194
第13章 评审——一种推荐的方法 195
13.1 软件缺陷对成本的影响 196
13.2 缺陷的放大和消除 196
13.3 评审度量及其应用 197
13.4 不同形式评审的标准 199
13.5 非正式评审 199
13.6 正式技术评审 200
13.6.1 评审会议 201
13.6.2 评审报告和记录保存 201
13.6.3 评审指导原则 202
13.7 产品完成后评估 203
13.8 敏捷评审 203
13.9 小结 204
习题与思考题 204
第14章 软件质量保证 206
14.1 背景问题 207
14.2 软件质量保证的要素 207
14.3 软件质量保证的过程和产品特征 208
14.4 软件质量保证的任务、目标和度量 209
14.4.1 软件质量保证的任务 209
14.4.2 目标、属性和度量 210
14.5 统计软件质量保证 211
14.5.1 一个普通的例子 212
14.5.2 软件工程的六西格玛 213
14.6 ISO 9000质量标准 214
14.7 软件质量保证计划 215
14.8 小结 215
习题与思考题 215
第15章 软件测试——构件级 216
15.1 软件测试的策略性方法 216
15.1.1 验证与确认 217
15.1.2 软件测试组织 217
15.1.3 宏观 218
15.1.4 测试完成的标准 220
15.2 规划和记录保存 220
15.2.1 “脚手架”的作用 221
15.2.2 高效测试 222
15.3 测试用例设计 222
15.3.1 需求和用例 224
15.3.2 可追溯性 224
15.4 白盒测试 224
15.4.1 基本路径测试 224
15.4.2 控制结构测试 227
15.5 黑盒测试 227
15.5.1 接口测试 228
15.5.2 等价类划分 228
15.5.3 边界值分析 229
15.6 面向对象测试 229
15.6.1 类测试 229
15.6.2 行为测试 231
15.7 小结 232
习题与思考题 232
第16章 软件测试——集成级 233
16.1 软件测试基础 234
16.1.1 黑盒测试 234
16.1.2 白盒测试 234
16.2 集成测试 235
16.2.1 自顶向下集成 235
16.2.2 自底向上集成 236
16.2.3 持续集成 237
16.2.4 集成测试工作产品 238
16.3 人工智能与回归测试 238
16.4 面向对象环境中的集成测试 239
16.4.1 基于故障的测试用例设计 240
16.4.2 基于场景的测试用例设计 241
16.5 确认测试 242
16.6 小结 243
习题与思考题 243
第17章 软件配置管理 245
17.1 软件配置管理概述 246
17.1.1 SCM场景 246
17.1.2 配置管理系统的元素 247
17.1.3 基线 248
17.1.4 软件配置项 249
17.1.5 依赖性和变更管理 249
17.2 SCM中心存储库 250
17.2.1 一般特征和内容 250
17.2.2 SCM特征 251
17.3 版本控制系统 251
17.4 持续集成 252
17.5 变更管理过程 252
17.5.1 变更控制 253
17.5.2 影响管理 255
17.5.3 配置审核 256
17.5.4 状态报告 256
17.6 小结 256
习题与思考题 257
第18章 软件度量和分析 258
18.1 软件测量 259
18.1.1 测度、度量和指标 259
18.1.2 有效软件度量的属性 259
18.2 软件分析 259
18.3 产品指标 260
18.3.1 需求模型的度量 261
18.3.2 常规软件的设计度量 262
18.3.3 面向对象软件的设计度量 264
18.3.4 用户界面的设计度量 266
18.3.5 源代码的度量 267
18.4 过程和项目度量 268
18.5 软件度量 271
18.6 软件质量的度量 272
18.7 小结 275
习题与思考题 275
第四部分 软件项目管理
第19章 项目管理概念 278
19.1 管理涉及的范围 279
19.1.1 人员 279
19.1.2 产品 279
19.1.3 过程 279
19.1.4 项目 280
19.2 人员 280
19.2.1 利益相关者 280
19.2.2 团队负责人 280
19.2.3 软件团队 281
19.2.4 协调和沟通问题 282
19.3 产品 283
19.3.1 软件范围  283
19.3.2 问题分解 284
19.4 过程 284
19.4.1 合并产品和过程 284
19.4.2 过程分解 285
19.5 项目 286
19.6 W5HH原则 287
19.7 关键实践 287
19.8 小结 287
习题与思考题 288
第20章 制定可行的软件计划 289
20.1 对估算的看法 290
20.2 项目计划过程 291
20.3 软件范围和可行性 291
20.4 资源 291
20.4.1 人力资源 292
20.4.2 可复用软件资源 292
20.4.3 环境资源 293
20.5 项目进度安排 293
20.5.1 基本原则 294
20.5.2 人员与工作量之间的关系 295
20.6 定义项目任务集 296
20.6.1 任务集举例 296
20.6.2 主要任务的细化 297
20.7 定义任务网络 298
20.8 进度安排 298
20.8.1 时序图 298
20.8.2 跟踪进度 299
20.9 小结 301
习题与思考题 301
第21章 风险管理 302
21.1 被动风险策略和主动风险策略 303
21.2 软件风险 303
21.3 风险识别 304
21.3.1 评估整体项目风险 305
21.3.2 风险因素和驱动因子 306
21.4 风险预测 306
21.4.1 建立风险表 306
21.4.2 评估风险影响 308
21.5 风险细化 309
21.6 风险缓解、监测和管理 310
21.7 RMMM计划 312
21.8 小结 313
习题与思考题 313
第22章 软件支持策略 315
22.1 软件支持 316
22.2 软件维护 317
22.2.1 维护类型 318
22.2.2 维护任务 318
22.2.3 逆向工程 319
22.3 主动软件支持 321
22.3.1 软件分析的使用 321
22.3.2 社交媒体的作用 322
22.3.3 支持成本 322
22.4 重构 323
22.4.1 数据重构 323
22.4.2 代码重构 324
22.4.3 体系结构重构 324
22.5 软件演化 324
22.5.1 库存分析 325
22.5.2 文档重构 326
22.5.3 逆向工程 326
22.5.4 代码重构 326
22.5.5 数据重构 326
22.5.6 正向工程 326
22.6 小结 327
习题与思考题 327
在线资源
附录1 UML 简介
参考文献


相关资源(PDF,TXT,电子书)

村网 国学鼎 数字追踪 车牌号查询 生活分享
桂ICP备20004708号-2