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