第一部分 軟件架構導論
第1章 成為軟件架構師 3
1.1 軟件架構師要做什麼 4
1.2 什麼是軟件架構 7
1.3 成為團隊的架構師 11
1.4 開發齣色的軟件 13
1.5 案例分析:Lionheart項目 14
1.6 預告 14
第2章 設計思維基礎 15
2.1 設計思維的四條原則 15
2.2 運用思維模式 18
2.3 思考、動手、檢查 21
2.4 預告 24
第二部分 架構設計原理
第3章 製定設計策略 27
3.1 找到夠用的設計 27
3.2 決定前期做多少架構設計 29
3.3 用風險做嚮導 32
3.4 製訂設計計劃 36
3.5 Lionheart項目:目前的進展 37
3.6 預告 38
第4章 換位思考 39
4.1 找閤適的人交談 39
4.2 創建利益相關方關係圖 40
4.3 瞭解業務目標 43
4.4 Lionheart項目:目前的進展 46
4.5 預告 47
第5章 挖掘關鍵架構需求 49
5.1 用約束限製設計選擇 50
5.2 定義質量屬性 51
5.3 對功能需求分類 56
5.4 找齣其他影響架構的因素 57
5.5 挖掘關鍵架構需求 59
5.6 創建ASR工作簿 60
5.7 Lionheart項目:目前的進展 62
5.8 預告 62
第6章 主動選擇架構 63
6.1 發散探索,聚閤決策 63
6.2 接受約束 66
6.3 提升質量屬性 67
6.4 為架構元素分配功能 72
6.5 設計,應變而生 74
6.6 Lionheart項目:目前的進展 75
6.7 預告 76
第7章 架構模式 77
7.1 什麼是架構模式 77
7.2 分層模式 78
7.3 端口適配器模式 80
7.4 管道過濾器模式 81
7.5 麵嚮服務架構模式 83
7.6 發布訂閱模式 85
7.7 共享數據模式 86
7.8 多層模式 88
7.9 能力中心模式 89
7.10 開源貢獻模式 91
7.11 大泥球模式 92
7.12 發現新架構模式 92
7.13 Lionheart項目:目前的進展 93
7.14 預告 93
第8章 建立模型,化繁為簡 95
8.1 推演架構 96
8.2 設計元模型 97
8.3 讓模型融入代碼 104
8.4 Lionheart項目:目前的進展 108
8.5 預告 108
第9章 召開架構設計研討會 109
9.1 籌劃架構設計研討會 110
9.2 挑選設計方法 115
9.3 挑選參與者 116
9.4 會議管理 118
9.5 與遠程團隊協作 121
9.6 Lionheart項目:目前的進展 122
9.7 預告 122
第10章 展示設計決策 123
10.1 用不同的視圖展現架構 124
10.2 繪製齣色的圖錶 132
10.3 Lionheart項目:目前的進展 138
10.4 預告 139
第11章 描述架構 139
11.1 講述完整的故事 140
11.2 因地製宜,選擇描述方法 141
11.3 尊重受眾 145
11.4 圍繞利益相關方關注點組織視圖 148
11.5 闡述決策的邏輯依據 151
11.6 Lionheart項目:目前的進展 152
11.7 預告 153
第12章 架構評估 153
12.1 評估得真知 154
12.2 檢驗設計 154
12.3 舉辦評估研討會 160
12.4 盡早評估,反復評估,持續評估 164
12.5 Lionheart 項目:目前的進展 168
12.6 預告 168
第13章 鼓勵團隊參與架構設計 169
13.1 提倡架構師思維 170
13.2 傳授技能,輔助決策 171
13.3 為團隊創造實踐機會 172
13.4 設計下放 173
13.5 共同設計架構 177
13.6 Lionheart項目:大結局 178
13.7 預告 179
第三部分 架構師的工具箱
第14章 理解問題的常用方法 183
14.1 方法1:二選一 184
14.2 方法2:移情圖 186
14.3 方法3:GQM研討會 189
14.4 方法4:利益相關方訪談 191
14.5 方法5:假設清單 194
14.6 方法6:質量屬性網絡 195
14.7 方法7:微型質量屬性研討會 197
14.8 方法8:觀點填空 202
14.9 方法9:響應度量稻草人 205
14.10 方法10:利益相關方關係圖 207
第15章 探索解決方案的常用方法 209
15.1 方法11:架構擬人化 210
15.2 方法12:架構演變記錄 212
15.3 方法13:組件-功能-協作者卡片 215
15.4 方法14:概念圖 219
15.5 方法15:分而治之 221
15.6 方法16:事件風暴 225
15.7 方法17:團隊海報 228
15.8 方法18:循環設計 230
15.9 方法19:白闆塗鴉 233
第16章 展示設計的常用方法 235
16.1 方法20:架構決策記錄 236
16.2 方法21:架構主旨 239
16.3 方法22:背景圖 241
16.4 方法23:精選閱讀列錶 242
16.5 方法24:啓動計劃書 243
16.6 方法25:模塊化分解圖 246
16.7 方法26:未采納的決策 248
16.8 方法27:製作原型,用於學習或決策 250
16.9 方法28:時序圖 251
16.10 方法29:係統隱喻 254
第17章 評估設計方案的常用方法 257
17.1 方法30:架構簡報 258
17.2 方法31:代碼評審 260
17.3 方法32:決策矩陣 263
17.4 方法33:觀察係統錶現 265
17.5 方法34:問題-評論-關注事項 267
17.6 方法35:風險風暴 269
17.7 方法36:閤理性檢查 271
17.8 方法37:場景排查 273
17.9 方法38:畫草圖做比較 277
附錄 貢獻者簡介 279
索引 281
緻謝 296
· · · · · · (
收起)