三位著名的軟件架構師的新版著作,闡述了軟件架構師如何管理和優(yōu)化現有體系結構,轉換它們以解決新問題,并構建可重用的體系結構,使之成為戰(zhàn)略業(yè)務資產。更新了移動,云,能源管理,DevOps,量子計算等新內容
第一部分 入門介紹
第1章 什么是軟件架構 1
1.1 什么是軟件架構,什么不是軟件架構 2
1.2 架構結構與視圖 5
1.3 什么是“好的”架構 19
1.4 總結 21
1.5 進一步閱讀 21
1.6 問題討論 22
第2章 軟件架構的重要性 25
2.1 抑制或支持系統(tǒng)的質量屬性 26
2.2 關于變更的推理和管理 27
2.3 預測系統(tǒng)質量 28
2.4 利益相關者之間的溝通 28
2.5 早期設計決策 31
2.6 實現約束 31
2.7 對組織結構的影響 32
2.8 賦能增量開發(fā) 33
2.9 成本和進度估算 33
2.10 可轉移、可重用模型 34
2.11 架構允許合并獨立開發(fā)的元素 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 通過架構模式和戰(zhàn)術實現質量屬性 45
3.5 用戰(zhàn)術設計 46
3.6 分析質量屬性的設計決策:基于戰(zhàn)術的調查問卷 48
3.7 總結 49
3.8 進一步閱讀 49
3.9 問題討論 50
第4章 可用性 51
4.1 可用性通用場景 53
4.2 可用性戰(zhàn)術 55
4.3 基于戰(zhàn)術的可用性調查問卷 62
4.4 可用性模式 66
4.5 進一步閱讀 68
4.6 問題討論 69
第5章 可部署性 71
5.1 持續(xù)部署 72
5.2 可部署性 75
5.3 可部署性通用場景 76
5.4 可部署性戰(zhàn)術 78
5.5 基于戰(zhàn)術的可部署性調查問卷 80
5.6 可部署性模式 81
5.7 進一步閱讀 87
5.8 問題討論 87
第6章 能源效率 89
6.1 能源效率通用場景 90
6.2 能源效率戰(zhàn)術 92
6.3 基于戰(zhàn)術的能源效率調查問卷 95
6.4 模式 97
6.5 進一步閱讀 98
6.6 問題討論 99
第7章 可集成性 101
7.1 評估架構的可集成性 102
7.2 可集成性通用場景 104
7.3 可集成性戰(zhàn)術 105
7.4 基于戰(zhàn)術的可集成性調查問卷 110
7.5 模式 112
7.6 進一步閱讀 114
7.7 問題討論 115
第8章 可修改性 117
8.1 可修改性通用場景 120
8.2 可修改性戰(zhàn)術 121
8.3 基于戰(zhàn)術的可修改性調查問卷 125
8.4 模式 126
8.5 進一步閱讀 130
8.6 問題討論 131
第9章 性能 133
9.1 性能通用場景 134
9.2 性能戰(zhàn)術 137
9.3 基于戰(zhàn)術的性能調查問卷 145
9.4 性能模式 146
9.5 進一步閱讀 149
9.6 問題討論 150
第10章 安全性 151
10.1 安全性通用場景 154
10.2 安全性戰(zhàn)術 156
10.3 基于戰(zhàn)術的安全性調查問卷 160
10.4 安全性模式 163
10.5 進一步閱讀 165
10.6 問題討論 166
第11章 防護性 169
11.1 防護性通用場景 170
11.2 防護性戰(zhàn)術 172
11.3 基于戰(zhàn)術的防護性調查問卷 176
11.4 防護性模式 179
11.5 進一步閱讀 180
11.6 問題討論 180
第12章 可測試性 183
12.1 可測試性通用場景 186
12.2 可測試性戰(zhàn)術 187
12.3 基于戰(zhàn)術的可測試性調查問卷 192
12.4 可測試性模式 192
12.5 進一步閱讀 194
12.6 問題討論 195
第13章 易用性 197
13.1 易用性通用場景 198
13.2 易用性戰(zhàn)術 200
13.3 基于戰(zhàn)術的易用性調查問卷 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章 移動系統(tǒng) 263
18.1 能源 264
18.2 網絡連通性 266
18.3 傳感器和執(zhí)行器 267
18.4 資源 268
18.5 生命周期 270
18.6 總結 273
18.7 進一步閱讀 274
18.8 問題討論 275
第四部分 可擴展架構實踐
第19章 架構上的重要需求 277
19.1 從需求文檔中收集ASR 278
19.2 通過訪談利益相關者收集ASR 279
19.3 通過理解業(yè)務目標收集ASR 282
19.4 在工具樹中捕獲ASR 284
19.5 發(fā)生了變化 286
19.6 總結 286
19.7 進一步閱讀 287
19.8 問題討論 287
第20章 設計架構 289
20.1 屬性驅動的設計 289
20.2 ADD步驟 292
20.3 ADD步驟4的進一步說明:選擇一個或多個設計概念 295
20.4 ADD步驟5的進一步說明:生成結構 298
20.5 ADD步驟6的進一步說明:在設計過程中創(chuàng)建初步文檔 301
20.6 ADD步驟7的進一步說明:對當前設計進行分析并審查迭代目標和設計目的實現情況 304
20.7 總結 306
20.8 進一步閱讀 306
20.9 問題討論 307
第21章 架構評估 309
21.1 評估作為一項降低風險的活動 309
21.2 主要的評估活動 310
21.3 誰能執(zhí)行評估 311
21.4 環(huán)境因素 312
21.5 架構權衡分析方法 313
21.6 輕量級架構評估 324
21.7 總結 326
21.8 進一步閱讀 327
21.9 問題討論 327
第22章 記錄一個架構 329
22.1 架構文檔的用途和受眾 330
22.2 符號 331
22.3 視圖 332
22.4 合并視圖 339
22.5 記錄的行為 340
22.6 視圖以外 345
22.7 記錄基本原理 346
22.8 架構利益相關者 347
22.9 實際問題 350
22.10 總結 353
22.11 進一步閱讀 353
22.12 問題討論 354
第23章 管理架構債 355
23.1 確定是否存在架構債問題 356
23.2 發(fā)現熱點 358
23.3 示例 362
23.4 自動化 363
23.5 總結 364
23.6 進一步閱讀 364
23.7 問題討論 365
第五部分 架構和組織
第24章 架構師在項目中的角色 367
24.1 架構師和項目經理 367
24.2 增量架構和利益相關者 369
24.3 架構和敏捷開發(fā) 370
24.4 架構和分布式開發(fā) 373
24.5 總結 376
24.6 進一步閱讀 376
24.7 問題討論 377
第25章 架構能力 379
25.1 個人能力:架構師的職責、技能和知識 379
25.2 軟件架構組織的能力 386
25.3 成為更好的架構師 387
25.4 總結 388
25.5 進一步閱讀 388
25.6 問題討論 389
第六部分 結論
第26章 展望未來:量子計算 391
26.1 單量子位 392
26.2 量子隱形傳態(tài) 394
26.3 量子計算和加密 394
26.4 其他算法 395
26.5 潛在應用 396
26.6 后的想法 397
26.7 進一步閱讀 398
參考資料 399