《现代软件工程:面向软件产品:an introduction to modern software engineering》(英)伊恩・萨默维尔(Ian Somme | PDF下载|ePub下载
现代软件工程:面向软件产品:an introduction to modern software engineering 版权信息
- 出版社:机械工业出版社
- 出版时间:2021-02-01
- ISBN:9787111674641
- 条形码:9787111674641 ; 978-7-111-67464-1
现代软件工程:面向软件产品:an introduction to modern software engineering 本书特色
从软件产品工程化的视角全面讨论软件产品开发所需的方法和技术。涵盖同类书籍较少涉及的主题,如人物角色和场景、云计算、微服务、安全和DevOps等。内容组织灵活,每章都包含大量的示例、图表、要点分析、推荐阅读和习题等。
现代软件工程:面向软件产品:an introduction to modern software engineering 内容简介
本书由国际知名的软件工程专家伊恩·萨默维尔撰写,系统地介绍了软件产品工程化的基本思想、原理和方法。与同类书籍不同的是,本书重点关注与软件产品相关的工程化过程和技术,而不是传统的以过程为基础的项目驱动型软件工程技术。本书的核心内容包括软件产品、软件架构、敏捷软件工程、人物角色、场景、用户故事、基于云的软件、微服务架构、安全和隐私以及DevOps等。建议读者具有一定的Java或Python等面向对象语言的编程经验,在学习过程中注重从产品工程化的视角来理解软件工程技术,从而为开发高质量、高安全性、高可靠性的软件产品打好基础。
现代软件工程:面向软件产品:an introduction to modern software engineering 目录
Engineering Software Products: An Introduction to Modern Software Engineering
出版者的话
译者序
前言
第1章 软件产品 1
1.1 产品愿景 6
1.2 软件产品管理 9
1.2.1 产品愿景管理 11
1.2.2 产品路线图管理 11
1.2.3 用户故事和场景开发 11
1.2.4 产品待定项管理 12
1.2.5 验收测试 12
1.2.6 客户测试 12
1.2.7 用户界面设计 12
1.3 产品原型设计 13
要点 14
推荐阅读 15
习题 16
第2章 敏捷软件工程 17
2.1 敏捷方法 17
2.2 极限编程 20
2.3 Scrum争球模型 22
2.3.1 产品待定项 27
2.3.2 限时冲刺 30
2.3.3 自组织团队 35
要点 39
推荐阅读 39
习题 40
第3章 特征、场景和用户故事 42
3.1 人物角色 46
3.2 场景 50
3.3 用户故事 55
3.4 特征识别 59
3.4.1 特征推导 62
3.4.2 特征列表 64
要点 67
推荐阅读 67
习题 68
第4章 软件架构 69
4.1 为什么架构很重要 71
4.2 架构设计 74
4.3 系统分解 77
4.4 分布架构 86
4.5 技术议题 91
4.5.1 数据库 92
4.5.2 传播平台 93
4.5.3 服务器 93
4.5.4 开源 94
4.5.5 开发技术 95
要点 95
推荐阅读 96
习题 97
第5章 基于云的软件 98
5.1 虚拟化和容器 100
5.2 一切即服务 104
5.3 软件即服务 107
5.4 多租户系统和多实例系统 111
5.4.1 多租户系统 111
5.4.2 多实例系统 116
5.5 云软件架构 118
5.5.1 数据库组织 118
5.5.2 可扩展性和可恢复性 120
5.5.3 软件结构 121
5.5.4 云平台 122
要点 124
推荐阅读 125
习题 126
第6章 微服务架构 127
6.1 微服务 130
6.2 微服务架构 133
6.2.1 架构设计决策 135
6.2.2 服务通信 136
6.2.3 数据分发与共享 139
6.2.4 服务协调 142
6.2.5 故障管理 144
6.3 RESTful服务 147
6.4 服务部署 151
要点 154
推荐阅读 155
习题 156
第7章 安全和隐私 157
7.1 攻击和防范 159
7.1.1 注入攻击 160
7.1.2 跨站点脚本攻击 161
7.1.3 会话劫持攻击 162
7.1.4 拒绝服务攻击 163
7.1.5 暴力攻击 164
7.2 认证 165
7.2.1 联合身份 167
7.2.2 移动设备认证 169
7.3 授权 170
7.4 加密 172
7.4.1 对称和非对称加密 173
7.4.2 TLS和数字签名 176
7.4.3 数据加密 177
7.4.4 密钥管理 179
7.5 隐私 181
要点 184
推荐阅读 184
习题 186
第8章 可信赖编程 187
8.1 避免错误 189
8.1.1 程序复杂度 190
8.1.2 设计模式 198
8.1.3 重构 202
8.2 输入验证 204
8.2.1 正则表达式 206
8.2.2 数字检查 209
8.3 失效管理 210
要点 216
推荐阅读 216
习题 217
第9章 测试 219
9.1 功能测试 221
9.1.1 单元测试 223
9.1.2 特征测试 226
9.1.3 系统和发布测试 227
9.2 自动化测试 230
9.3 测试驱动开发 238
9.4 安全测试 241
9.5 代码评审 243
要点 246
推荐阅读 247
习题 248
第10章 DevOps和代码管理 250
10.1 代码管理 253
10.1.1 源代码管理基础 254
10.1.2 使用Git 259
10.2 DevOps自动化 263
10.2.1 持续集成 264
10.2.2 持续交付和部署 268
10.2.3 基础设施即代码 270
10.3 DevOps度量 272
要点 276
推荐阅读 276
习题 277
索引 279
现代软件工程:面向软件产品:an introduction to modern software engineering 作者简介
作者简介伊恩·萨默维尔(Ian Sommerville) 英国著名软件工程专家,曾任圣安德鲁斯大学软件工程系教授。他在软件工程的教学和科研方面有40多年的工作经验,研究领域包括需求工程、大规模复杂系统和系统可靠性等。他撰写的软件工程教材畅销全球,销量超过75万册。 主要译者简介李必信 东南大学计算机科学与工程学院教授,中国计算机学会软件工程专委会委员、容错计算专委会常务委员,江苏省计算机学会软件专委会副主任。主要研究方向是软件开发方法与技术、算法设计与分析、高级软件工程、软件架构建模/分析/测试与验证、软件系统演化及软件质量保证等。