书籍详情
软件架构实践(英文版·原书第4版)
作者:[美] 伦·巴斯(Len Bass),[美] 保罗·克莱门茨,[美] 瑞克·凯兹曼 著
出版社:机械工业出版社
出版时间:2022-03-01
ISBN:9787111699156
定价:¥139.00
购买这本书可以去
内容简介
三位著名的软件架构师的新版著作,阐述了软件架构师如何管理和优化现有体系结构,转换它们以解决新问题,并构建可重用的体系结构,使之成为战略业务资产。更新了移动,云,能源管理,DevOps,量子计算等新内容
作者简介
伦·巴斯(Len Bass),一位获奖作者和讲演者,拥有超过50年的高级软件经验,其中包括在卡内基一梅隆大学软件工程研究所(SEI)的25年。目前在卡内基一梅隆大学兼职讲授DevOps。保罗·克莱门茨(Paul Clements),BigLeverSoftware公司的副总裁,帮助组织从产品线工程(PLE)中获得价值。作为SEI的高级技术人员,他领导了PLE和软件架构方面的高级项目。瑞克·凯兹曼(Rick Kazman),夏威夷大学的教授,也是SEI的访问研究员。他的兴趣包括软件架构、可视化、设计、分析和经济学。他参与创造了有影响力的架构分析方法和工具,包括SAAM、ATAM、CBAM、Dali和Titan。
目录
部分 入门介绍
第1章 什么是软件架构 1
1.1 什么是软件架构,什么不是软件架构 2
1.2 架构结构与视图 5
1.3 什么是“好的”架构 19
1.4 总结 21
1.5 进一步阅读 21
1.6 问题讨论 22
第2章 软件架构的重要性 25
2.1 抑制或支持系统的质量属性 26
2.2 关于变更的推理和管理 27
2.3 预测系统质量 28
2.4 利益相关者之间的沟通 28
2.5 早期设计决策 31
2.6 实现约束 31
2.7 对组织结构的影响 32
2.8 赋能增量开发 33
2.9 成本和进度估算 33
2.10 可转移、可重用模型 34
2.11 架构允许合并独立开发的元素 34
2.12 限制设计方案的术语 35
2.13 培训的基础 36
2.14 总结 36
2.15 进一步阅读 37
2.16 问题讨论 37
第二部分 质量属性
第3章 理解质量属性 39
3.1 功能性 40
3.2 质量属性注意事项 41
3.3 明确质量属性需求:质量属性场景 42
3.4 通过架构模式和战术实现质量属性 45
3.5 用战术设计 46
3.6 分析质量属性的设计决策:基于战术的调查问卷 48
3.7 总结 49
3.8 进一步阅读 49
3.9 问题讨论 50
第4章 可用性 51
4.1 可用性通用场景 53
4.2 可用性战术 55
4.3 基于战术的可用性调查问卷 62
4.4 可用性模式 66
4.5 进一步阅读 68
4.6 问题讨论 69
第5章 可部署性 71
5.1 持续部署 72
5.2 可部署性 75
5.3 可部署性通用场景 76
5.4 可部署性战术 78
5.5 基于战术的可部署性调查问卷 80
5.6 可部署性模式 81
5.7 进一步阅读 87
5.8 问题讨论 87
第6章 能源效率 89
6.1 能源效率通用场景 90
6.2 能源效率战术 92
6.3 基于战术的能源效率调查问卷 95
6.4 模式 97
6.5 进一步阅读 98
6.6 问题讨论 99
第7章 可集成性 101
7.1 评估架构的可集成性 102
7.2 可集成性通用场景 104
7.3 可集成性战术 105
7.4 基于战术的可集成性调查问卷 110
7.5 模式 112
7.6 进一步阅读 114
7.7 问题讨论 115
第8章 可修改性 117
8.1 可修改性通用场景 120
8.2 可修改性战术 121
8.3 基于战术的可修改性调查问卷 125
8.4 模式 126
8.5 进一步阅读 130
8.6 问题讨论 131
第9章 性能 133
9.1 性能通用场景 134
9.2 性能战术 137
9.3 基于战术的性能调查问卷 145
9.4 性能模式 146
9.5 进一步阅读 149
9.6 问题讨论 150
第10章 安全性 151
10.1 安全性通用场景 154
10.2 安全性战术 156
10.3 基于战术的安全性调查问卷 160
10.4 安全性模式 163
10.5 进一步阅读 165
10.6 问题讨论 166
第11章 防护性 169
11.1 防护性通用场景 170
11.2 防护性战术 172
11.3 基于战术的防护性调查问卷 176
11.4 防护性模式 179
11.5 进一步阅读 180
11.6 问题讨论 180
第12章 可测试性 183
12.1 可测试性通用场景 186
12.2 可测试性战术 187
12.3 基于战术的可测试性调查问卷 192
12.4 可测试性模式 192
12.5 进一步阅读 194
12.6 问题讨论 195
第13章 易用性 197
13.1 易用性通用场景 198
13.2 易用性战术 200
13.3 基于战术的易用性调查问卷 202
13.4 易用性模式 203
13.5 进一步阅读 205
13.6 问题讨论 205
第14章 使用其他质量属性 207
14.1 其他质量属性 207
14.2 是否使用标准质量属性清单 209
14.3 处理“X能力”:引入新的QA 212
14.4 进一步阅读 215
14.5 问题讨论 215
第三部分 架构解决方案
第15章 软件接口 217
15.1 接口的概念 218
15.2 设计一个接口 222
15.3 接口文档编制 228
15.4 总结 230
15.5 进一步阅读 230
15.6 问题讨论 231
第16章 虚拟化 233
16.1 共享资源 234
16.2 虚拟机 235
16.3 虚拟机映像 238
16.4 容器 239
16.5 容器和虚拟机 241
16.6 容器可移植性 242
16.7 Pod 242
16.8 无服务器架构 243
16.9 总结 244
16.10 进一步阅读 245
16.11 问题讨论 245
第17章 云和分布式计算 247
17.1 云基础 248
17.2 云中失效 251
17.3 使用多个实例提高性能和可用性 253
17.4 总结 261
17.5 进一步阅读 262
17.6 问题讨论 262
第18章 移动系统 263
18.1 能源 264
18.2 网络连通性 266
18.3 传感器和执行器 267
18.4 资源 268
18.5 生命周期 270
18.6 总结 273
18.7 进一步阅读 274
18.8 问题讨论 275
第四部分 可扩展架构实践
第19章 架构上的重要需求 277
19.1 从需求文档中收集ASR 278
19.2 通过访
第1章 什么是软件架构 1
1.1 什么是软件架构,什么不是软件架构 2
1.2 架构结构与视图 5
1.3 什么是“好的”架构 19
1.4 总结 21
1.5 进一步阅读 21
1.6 问题讨论 22
第2章 软件架构的重要性 25
2.1 抑制或支持系统的质量属性 26
2.2 关于变更的推理和管理 27
2.3 预测系统质量 28
2.4 利益相关者之间的沟通 28
2.5 早期设计决策 31
2.6 实现约束 31
2.7 对组织结构的影响 32
2.8 赋能增量开发 33
2.9 成本和进度估算 33
2.10 可转移、可重用模型 34
2.11 架构允许合并独立开发的元素 34
2.12 限制设计方案的术语 35
2.13 培训的基础 36
2.14 总结 36
2.15 进一步阅读 37
2.16 问题讨论 37
第二部分 质量属性
第3章 理解质量属性 39
3.1 功能性 40
3.2 质量属性注意事项 41
3.3 明确质量属性需求:质量属性场景 42
3.4 通过架构模式和战术实现质量属性 45
3.5 用战术设计 46
3.6 分析质量属性的设计决策:基于战术的调查问卷 48
3.7 总结 49
3.8 进一步阅读 49
3.9 问题讨论 50
第4章 可用性 51
4.1 可用性通用场景 53
4.2 可用性战术 55
4.3 基于战术的可用性调查问卷 62
4.4 可用性模式 66
4.5 进一步阅读 68
4.6 问题讨论 69
第5章 可部署性 71
5.1 持续部署 72
5.2 可部署性 75
5.3 可部署性通用场景 76
5.4 可部署性战术 78
5.5 基于战术的可部署性调查问卷 80
5.6 可部署性模式 81
5.7 进一步阅读 87
5.8 问题讨论 87
第6章 能源效率 89
6.1 能源效率通用场景 90
6.2 能源效率战术 92
6.3 基于战术的能源效率调查问卷 95
6.4 模式 97
6.5 进一步阅读 98
6.6 问题讨论 99
第7章 可集成性 101
7.1 评估架构的可集成性 102
7.2 可集成性通用场景 104
7.3 可集成性战术 105
7.4 基于战术的可集成性调查问卷 110
7.5 模式 112
7.6 进一步阅读 114
7.7 问题讨论 115
第8章 可修改性 117
8.1 可修改性通用场景 120
8.2 可修改性战术 121
8.3 基于战术的可修改性调查问卷 125
8.4 模式 126
8.5 进一步阅读 130
8.6 问题讨论 131
第9章 性能 133
9.1 性能通用场景 134
9.2 性能战术 137
9.3 基于战术的性能调查问卷 145
9.4 性能模式 146
9.5 进一步阅读 149
9.6 问题讨论 150
第10章 安全性 151
10.1 安全性通用场景 154
10.2 安全性战术 156
10.3 基于战术的安全性调查问卷 160
10.4 安全性模式 163
10.5 进一步阅读 165
10.6 问题讨论 166
第11章 防护性 169
11.1 防护性通用场景 170
11.2 防护性战术 172
11.3 基于战术的防护性调查问卷 176
11.4 防护性模式 179
11.5 进一步阅读 180
11.6 问题讨论 180
第12章 可测试性 183
12.1 可测试性通用场景 186
12.2 可测试性战术 187
12.3 基于战术的可测试性调查问卷 192
12.4 可测试性模式 192
12.5 进一步阅读 194
12.6 问题讨论 195
第13章 易用性 197
13.1 易用性通用场景 198
13.2 易用性战术 200
13.3 基于战术的易用性调查问卷 202
13.4 易用性模式 203
13.5 进一步阅读 205
13.6 问题讨论 205
第14章 使用其他质量属性 207
14.1 其他质量属性 207
14.2 是否使用标准质量属性清单 209
14.3 处理“X能力”:引入新的QA 212
14.4 进一步阅读 215
14.5 问题讨论 215
第三部分 架构解决方案
第15章 软件接口 217
15.1 接口的概念 218
15.2 设计一个接口 222
15.3 接口文档编制 228
15.4 总结 230
15.5 进一步阅读 230
15.6 问题讨论 231
第16章 虚拟化 233
16.1 共享资源 234
16.2 虚拟机 235
16.3 虚拟机映像 238
16.4 容器 239
16.5 容器和虚拟机 241
16.6 容器可移植性 242
16.7 Pod 242
16.8 无服务器架构 243
16.9 总结 244
16.10 进一步阅读 245
16.11 问题讨论 245
第17章 云和分布式计算 247
17.1 云基础 248
17.2 云中失效 251
17.3 使用多个实例提高性能和可用性 253
17.4 总结 261
17.5 进一步阅读 262
17.6 问题讨论 262
第18章 移动系统 263
18.1 能源 264
18.2 网络连通性 266
18.3 传感器和执行器 267
18.4 资源 268
18.5 生命周期 270
18.6 总结 273
18.7 进一步阅读 274
18.8 问题讨论 275
第四部分 可扩展架构实践
第19章 架构上的重要需求 277
19.1 从需求文档中收集ASR 278
19.2 通过访
猜您喜欢