第1章 概述 1<br>1.1 分治、知識與抽象 2<br>1.2
軟件架構的三個案例 3<br>1.3 反思 5<br>1.4 視角轉換
6<br>1.5 架構師構建架構 7<br>1.6 風險驅動的軟件架構
8<br>1.7 敏捷開發(fā)者的架構 9<br>1.8 關于本書
10<br>第2章 軟件架構 15<br>2.1 何為軟件架構?
16<br>2.2 軟件架構為何重要 18<br>2.3 架構何時重要?
22<br>2.4 推定架構 23<br>2.5 如何運用軟件架構?
24<br>2.6 架構無關的設計 25<br>2.7 專注架構的設計
26<br>2.8 提升架構的設計 27<br>2.9 大型組織中的架構
30<br>2.10 結論 31<br>2.11 延伸閱讀
32<br>第3章 風險驅動模型 35<br>3.1 風險驅動模型是什么?
37<br>3.2 你現在采用風險驅動了嗎? 38<br>3.3 風險
39<br>3.4 技術 42<br>3.5 選擇技術的指導原則
44<br>3.6 何時停止 47<br>3.7 計劃式設計與演進式設計
48<br>3.8 軟件開發(fā)過程 51<br>3.9 理解過程變化
53<br>3.10 風險驅動模型與軟件開發(fā)過程 55<br>3.11 應用于敏捷過程
56<br>3.12 風險與架構重構 58<br>3.13 風險驅動模型的替代方案
58<br>3.14 結論 60<br>3.15 延伸閱讀
61<br>第4章 實例:家庭媒體播放器 65<br>4.1 團隊溝通
67<br>4.2 COTS組件的集成 75<br>4.3 元數據一致性
81<br>4.4 結論 86<br>第5章 建模建議
89<br>5.1 專注于風險 89<br>5.2 理解你的架構
90<br>5.3 傳播架構技能 91<br>5.4 作出合理的架構決策
92<br>5.5 避免預先大量設計 93<br>5.6 避免自頂向下設計
95<br>5.7 余下的挑戰(zhàn) 95<br>5.8 特性和風險:一個故事
97<br>第6章 工程師使用模型 103<br>6.1 規(guī)模與復雜度需要抽象
104<br>6.2 抽象提供洞察力和解決手段 105<br>6.3 分析系統(tǒng)質量
105<br>6.4 模型忽略細節(jié) 106<br>6.5 模型能夠增強推理
107<br>6.6 提問在前,建模在后 108<br>6.7 小結
108<br>6.8 延伸閱讀 109<br>第7章 軟件架構的概念模型
111<br>7.1 規(guī)范化模型結構 114<br>7.2
領域模型、設計模型和代碼模型 115<br>7.3 指定與細化關系
116<br>7.4 主模型的視圖 118<br>7.5 組織模型的其他方式
121<br>7.6 業(yè)務建模 121<br>7.7 UML的用法
122<br>7.8 小結 123<br>7.9 延伸閱讀
123<br>第8章 領域模型 127<br>8.1 領域與架構的關系
128<br>8.2 信息模型 131<br>8.3 導航和不變量
133<br>8.4 快照 134<br>8.5 功能場景
135<br>8.6 小結 136<br>8.7 延伸閱讀
137<br>第9章 設計模型 139<br>9.1 設計模型
140<br>9.2 邊界模型 141<br>9.3 內部模型
141<br>9.4 質量屬性 142<br>9.5 Yinzer系統(tǒng)的設計之旅
143<br>9.6 視圖類型 157<br>9.7 動態(tài)架構模型
161<br>9.8 架構描述語言 162<br>9.9 小結
163<br>9.10 深入閱讀 164<br> <br>第10章
代碼模型 167<br>10.1 模型-代碼差異 167<br>10.2 一致性管理
171<br>10.3 架構明顯的編碼風格 174<br>10.4
在代碼中表達設計意圖 175<br>10.5 模型嵌入代碼原理 177<br>10.6
表達什么 178<br>10.7 在代碼中表達設計意圖的模式 180<br>10.8
電子郵件處理系統(tǒng)預演 187<br>10.9 小結 193<br>第11章 封裝和分割
195<br>11.1 多層級故事 195<br>11.2 層級和分割
197<br>11.3 分解策略 199<br>11.4 有效封裝
203<br>11.5 創(chuàng)建封裝接口 206<br>11.6 小結
210<br>11.7 深入閱讀 210<br>第12章 模型元素
213<br>12.1 和部署相關的元素 214<br>12.2 組件
215<br>12.3 組件裝配 219<br>12.4 連接器
223<br>12.5 設計決策 233<br>12.6 功能場景
234<br>12.7 (不變量(約束) 239<br>12.8 模塊
239<br>12.9 端口 241<br>12.10 質量屬性
246<br>12.11 質量屬性場景 249<br>12.12 職責
251<br>12.13 權衡 252<br>12.14 小結
253<br>第13章 模型關系 255<br>13.1 投影(視圖)關系
256<br>13.2 分割關系 261<br>13.3 組合關系
261<br>13.4 分類關系 261<br>13.5 泛化關系
262<br>13.6 指定關系 263<br>13.7 細化關系
264<br>13.8 綁定關系 268<br>13.9 依賴關系
269<br>13.10 使用關系 269<br>13.11 小結
270<br>13.12 深入閱讀 271<br>第14章 架構風格
273<br>14.1 優(yōu)勢 274<br>14.2 柏拉圖式風格對體驗式風格
275<br>14.3 約束和以架構為中心的設計 276<br>14.4 模式對風格
277<br>14.5 風格目錄 277<br>14.6 分層風格
277<br>14.7 大泥球風格 280<br>14.8 管道-過濾器風格
281<br>14.9 批量順序處理風格 283<br>14.10 以模型為中心的風格
285<br>14.11 分發(fā)-訂閱風格 286<br>14.12
客戶端-服務器風格和多層 288<br>14.13 對等風格 290<br>14.14
map-reduce風格 291<br>14.15 鏡像,支架和農場風格
293<br>14.16 小結 294<br>14.17 深入閱讀
295<br>第15章 使用架構模型 297<br>15.1 理想的模型特性
297<br>15.2 和視圖一起工作 303<br>15.3 改善視圖質量
306<br>15.4 提高圖的質量 310<br>15.5 測試和證明
312<br>15.6 分析架構模型 312<br>15.7 架構不匹配
318<br>15.8 選擇你的抽象級別 319<br>15.9 規(guī)劃用戶界面
320<br>15.10 指定性模型對描述性模型 320<br>15.11
對現有系統(tǒng)進行建模 320<br>15.12 小結 322<br>15.13 深入閱讀
323<br>第16章 結論 325<br>16.1 挑戰(zhàn)
326<br>16.2 聚焦質量屬性 330<br>16.3
解決問題,而不是僅僅對它們建模 331<br>16.4 使用導軌一樣的約束
332<br>16.5 使用標準架構抽象 333<br>術語表 335<br>文獻
347<br>索引 355