譯者序
前言
第1章 引言 1
1.1 寫作動機 1
1.2 軟件架構 2
1.2.1 軟件架構的重要性 2
1.2.2 生命周期活動 3
1.3 架構師的角色 5
1.4 ADD發(fā)展史 6
1.5 小結 7
1.6 擴展閱讀 8
第2章 架構設計 9
2.1 通用設計 9
2.2 軟件架構中的設計 10
2.2.1 架構設計 11
2.2.2 元素交互設計 11
2.2.3 元素內部設計 12
2.3 為什么架構設計如此重要 13
2.4 架構驅動因子 13
2.4.1 設計目的 14
2.4.2 質量屬性 15
2.4.3 主要功能 19
2.4.4 架構關注點 20
2.4.5 約束條件 21
2.5 設計概念:用于創(chuàng)建結構的構建塊 22
2.5.1 參考架構 22
2.5.2 架構的設計模式 24
2.5.3 部署模式 25
2.5.4 策略 26
2.5.5 外部開發(fā)組件 27
2.6 架構設計決策 30
2.7 小結 31
2.8 擴展閱讀 32
第3章 架構設計過程 34
3.1 原理性方法的必要性 34
3.2 屬性驅動設計 3.0 34
3.2.1 步驟1:評審輸入 35
3.2.2 步驟2:通過選擇驅動因子建立迭代目標 36
3.2.3 步驟3:選擇一個或多個系統(tǒng)元素來細化 37
3.2.4 步驟4:選擇一個或多個設計概念以滿足選中的驅動因子 37
3.2.5 步驟5:實例化架構元素、分配職責和定義接口 37
3.2.6 步驟6:草擬視圖和記錄設計決策 38
3.2.7 步驟7:分析當前設計、評審迭代目標、實現(xiàn)設計目的 38
3.2.8 按需迭代 39
3.3 根據系統(tǒng)類型遵循設計路線圖 39
3.3.1 成熟領域的綠地系統(tǒng)設計 39
3.3.2 新興領域的綠地系統(tǒng)設計 41
3.3.3 現(xiàn)存系統(tǒng)的設計(棕地) 42
3.4 識別和選擇設計概念 42
3.4.1 識別設計概念 42
3.4.2 選擇設計概念 43
3.5 結構生成 46
3.5.1 元素實例化 47
3.5.2 劃分職責和識別屬性 47
3.5.3 建立元素間的關系 48
3.6 定義接口 48
3.6.1 外部接口 48
3.6.2 內部接口 48
3.7 在設計中創(chuàng)建概要文檔 51
3.7.1 記錄視圖的草圖 51
3.7.2 記錄設計決策 53
3.8 追蹤設計進度 55
3.8.1 使用架構待辦事項清單 55
3.8.2 使用設計看板 55
3.9 小結 57
3.10 擴展閱讀 57
第4章 案例研究:FCAPS系統(tǒng) 59
4.1 商用案例 59
4.2 系統(tǒng)需求 60
4.2.1 用例模型 60
4.2.2 質量屬性場景 62
4.2.3 約束條件 62
4.2.4 架構關注點 62
4.3 設計過程 63
4.3.1 ADD 步驟1:評審輸入 63
4.3.2 迭代1:建立一個完整的系統(tǒng)架構 63
4.3.3 迭代2:識別支持基本功能的架構 70
4.3.4 迭代3:解決質量屬性場景的驅動因子(質量屬性-3) 77
4.4 小結 80
4.5 擴展閱讀 81
第5章 案例研究:大數據系統(tǒng) 82
5.1 商用案例 82
5.2 系統(tǒng)需求 83
5.2.1 用例模型 83
5.2.2 質量屬性場景 83
5.2.3 約束條件 84
5.2.4 架構關注點 84
5.3 設計過程 84
5.3.1 ADD方法的步驟1:評審輸入 85
5.3.2 迭代1:參考架構和系統(tǒng)整體結構 85
5.3.3 迭代2:技術選擇 91
5.3.4 迭代3:數據流元素的細化 99
5.3.5 迭代4:服務層的細化 104
5.4 小結 107
5.5 擴展閱讀 107
第6章 案例研究:銀行系統(tǒng) 109
6.1 商用案例 109
6.1.1 用例模型 110
6.1.2 質量屬性場景 111
6.1.3 約束條件 111
6.1.4 架構關注點 111
6.2 現(xiàn)有的架構文檔 112
6.2.1 模塊視圖 112
6.2.2 分配視圖 113
6.3 設計過程 114
6.3.1 ADD方法的步驟1:評審輸入 114
6.3.2 迭代1:支持新的驅動因子 114
6.4 小結 118
6.5 擴展閱讀 119
第7章 其他設計方法 120
7.1 一種軟件架構設計的通用模型 120
7.2 以架構為中心的設計方法 121
7.3 RUP中的架構活動 123
7.4 軟件架構設計的過程 124
7.5 一種實現(xiàn)架構與設計的方法 126
7.6 視點與視角方法 127
7.7 小結 129
7.8 擴展閱讀 129
第8章 設計過程中的分析 131
8.1 分析和設計 131
8.2 為何分析 133
8.3 分析方法 134
8.4 基于策略的分析 135
8.5 值得反思的問題 137
8.6 基于場景的設計評審 138
8.7 架構描述語言 141
8.8 小結 142
8.9 擴展閱讀 142
第9章 組織中的架構設計過程 144
9.1 架構設計與開發(fā)生命周期 144
9.1.1 售前階段的架構設計 145
9.1.2 開發(fā)運維階段的架構設計 146
9.2 組織方面的問題 150
9.2.1 個人設計還是團隊設計 150
9.2.2 在組織中應用一套設計概念目錄 151
9.3 小結 152
9.4 擴展閱讀 152
第10章 結束語 154
10.1 方法的必要性 154
10.2 下一步 155
10.3 擴展閱讀 156
附錄A 設計概念目錄 157
附錄B 基于策略的問卷調查 184
術語表 196