恰如其分的軟件架構(gòu)

出版時(shí)間:2013-9-1  出版社:華中科技大學(xué)出版社  作者:George Fairbanks  譯者:張逸,倪健,高翌翔  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

本書(shū)描述了一種恰如其分的軟件架構(gòu)設(shè)計(jì)方法。作者建議根據(jù)項(xiàng)目面臨的風(fēng)險(xiǎn)來(lái)調(diào)整架構(gòu)設(shè)計(jì)的成本,并從多個(gè)視角闡述了軟件架構(gòu)的建模過(guò)程和方法,包括用例模型、概念模型、域模型、設(shè)計(jì)模型和代碼模型等。本書(shū)不僅介紹方法,而且還對(duì)方法和概念進(jìn)行了歸類和闡述,將軟件架構(gòu)設(shè)計(jì)融入開(kāi)發(fā)實(shí)踐中,與 敏捷開(kāi)發(fā)方法有機(jī)地結(jié)合在一起,適合普通程序員閱讀。
.
這是一本超值的書(shū),案例豐富有趣,言簡(jiǎn)意賅,閱讀輕松。當(dāng)年如果讀到這樣的書(shū),我可以少犯許多錯(cuò)誤!渴望成為更為優(yōu)秀軟件設(shè)計(jì)師的讀者,這本書(shū)絕對(duì)值得在你的書(shū)架上占有一席之地。
——Timothy J. Halloran博士,SureLogic Inc.工程總監(jiān)
.
本書(shū)提出的獨(dú)特視角讓軟件架構(gòu)設(shè)計(jì)變得不再難以捉摸。恰如其分的軟件架構(gòu)概念及風(fēng)險(xiǎn)驅(qū)動(dòng)的設(shè)計(jì)理念讓人耳目一新。作者將架構(gòu)設(shè)計(jì)原則與現(xiàn)實(shí)問(wèn)題有機(jī)地結(jié)合起來(lái),值得所有從事軟件開(kāi)發(fā)工作的人士閱讀。
——Marcus Fontoura博士,Yahoo! Research首席科學(xué)家兼架構(gòu)師
.
Fairbanks把筆墨聚集在“恰如其分”的軟件架構(gòu)上,這對(duì)于每一位想要使架構(gòu)過(guò)程變得更容易的開(kāi)發(fā)人員來(lái)說(shuō),都是極具吸引力的。本書(shū)通過(guò)詳細(xì)的案例和建議,展示了如何用風(fēng)險(xiǎn)驅(qū)動(dòng)來(lái)管理架構(gòu)的建設(shè)和范圍,重點(diǎn)突出,易于理解。同時(shí),作者提供了軟件架構(gòu)學(xué)術(shù)方面的很多細(xì)節(jié),這對(duì)那些對(duì)理論和實(shí)踐都很感興趣的開(kāi)發(fā)人員非常有益。
——Bradley Schmerl博士,卡耐基梅隆大學(xué)計(jì)算機(jī)科學(xué)院資深系統(tǒng)科學(xué)家
.
George Fairbanks的《恰如其分的軟件架構(gòu)》一書(shū)中的風(fēng)險(xiǎn)驅(qū)動(dòng)建模方法已經(jīng)被NASA Johnson Space Center(JSC)成功地應(yīng)用于eXtensible Information Modeler (XIM) 項(xiàng)目。項(xiàng)目的所有成員,從項(xiàng)目管理人員到開(kāi)發(fā)人員,都必須遵循。實(shí)際上,這本書(shū)應(yīng)該是每一位開(kāi)發(fā)人員的必備工具。僅僅是講述(代碼模型和反模式)的部分,就值回書(shū)價(jià)了。
——Christopher Dean,
美國(guó)國(guó)家航空航天局約翰遜空間中心工程科學(xué)團(tuán)隊(duì)XIM首席架構(gòu)師
.
《恰如其分的軟件架構(gòu)》教你如何在戰(zhàn)略和戰(zhàn)術(shù)上使用工具,以及如何為你的軟件項(xiàng)目選擇架構(gòu)策略。無(wú)論你是一位開(kāi)發(fā)人員還是架構(gòu)師,本書(shū)都是你在架構(gòu)過(guò)程中的必備參考資料。
——Nicholas Sherman,微軟項(xiàng)目經(jīng)理
.
作者將過(guò)程、生命周期、架構(gòu)、建模及服務(wù)質(zhì)量方面的最新理念集成在一個(gè)條理清楚的框架中。這個(gè)框架可以立即應(yīng)用于你的 IT應(yīng)用。Fairbanks的寫(xiě)作異常清晰、精確,同時(shí)具有很高的可讀性和趣味性?!肚∪缙浞值能浖軜?gòu)》是IT應(yīng)用架構(gòu)方面一個(gè)具有重要貢獻(xiàn)的文獻(xiàn),對(duì)于企業(yè)應(yīng)用架構(gòu)師來(lái)說(shuō),也許會(huì)成為他們的標(biāo)準(zhǔn)參考資料。
——Ian Maung博士,花旗企業(yè)架構(gòu)部門(mén)資深副總裁,Covance前企業(yè)架構(gòu)總監(jiān)
.
本書(shū)完全滿足了那些軟件開(kāi)發(fā)實(shí)踐者的關(guān)鍵需求,即如何有效地創(chuàng)建更加實(shí)際的系統(tǒng)。George常常運(yùn)用自己的經(jīng)驗(yàn),并與學(xué)術(shù)理論相結(jié)合,為我們提供一個(gè)又一個(gè)概念模型、領(lǐng)域(或更廣范圍)內(nèi)的最佳實(shí)踐,以及在軟件架構(gòu)方面(如何更有用更現(xiàn)實(shí))非常實(shí)用的指導(dǎo)。他在書(shū)中提出了基于風(fēng)險(xiǎn)的架構(gòu)方法,并幫助我們認(rèn)識(shí)到怎樣才是“恰如其分”的。本書(shū)的問(wèn)世為軟件架構(gòu)領(lǐng)域又增添了一份重要的文獻(xiàn)。
——Desmond D’Souza, 《MAp and Catalysis》一書(shū)的作者,Kinetium, Inc.
.
很多系統(tǒng)和軟件開(kāi)發(fā)人員常常追問(wèn)為什么要做,以及針對(duì)什么做軟件架構(gòu),他們一定會(huì)感謝本書(shū)的作者在這本書(shū)中呈現(xiàn)了清晰的論證和精彩的推理;對(duì)于糾結(jié)何時(shí),以及如何做架構(gòu)的開(kāi)發(fā)人員,也會(huì)在本書(shū)中找到恰如其分的指導(dǎo),當(dāng)然還有很多概念和思想??傊?,本書(shū)簡(jiǎn)潔易懂,還有很多可供參考的內(nèi)容——的確是一本架構(gòu)精到、設(shè)計(jì)精心的好書(shū)!
——Shang-Wen Cheng博士,航空軟件工程師
.
如果你打算閱讀一本關(guān)于軟件架構(gòu)的書(shū),那就選擇這一本吧?!肚∪缙浞值能浖軜?gòu)》覆蓋了每一位程序員、開(kāi)發(fā)人員、測(cè)試人員、架構(gòu)師、經(jīng)理都必須知道的軟件架構(gòu)的基本概念,它提供了很多在實(shí)戰(zhàn)中非常實(shí)用的建議,而這只需要你花幾個(gè)小時(shí)去閱讀!
——Michael Keeling,專業(yè)軟件工程師
.
本書(shū)展現(xiàn)了軟件架構(gòu)將如何幫助你來(lái)構(gòu)建軟件,而不會(huì)阻礙軟件的構(gòu)建;本書(shū)能夠讓你關(guān)注那些真正值得關(guān)注的關(guān)鍵性架構(gòu)工作,從而避免影響編碼工作。
——Kevin Bierhoff博士,專業(yè)軟件工程師

作者簡(jiǎn)介

George Fairbanks在卡內(nèi)基?梅隆大學(xué)獲得軟件工程專業(yè)博士學(xué)位,現(xiàn)任Rhino Research公司董事長(zhǎng)。Rhino Research是一家專門(mén)提供軟件開(kāi)發(fā)培訓(xùn)及咨詢的公司,總部設(shè)在美國(guó)科羅拉多州博爾德市。Georg還是軟件體系結(jié)構(gòu)工作會(huì)議WISCA(Working International Conference on Software Architecture)、國(guó)際軟件維護(hù)大 會(huì)ICSM(International Conference on Software Maintenance)以及歐洲軟件架構(gòu)會(huì)議的委員會(huì)成員。他還是IEEE軟件工程匯刊和IEEE軟件的仲裁委員。
.
張逸是ThoughtWorks高級(jí)咨詢師,程 序員。InfoQ中文站編輯。著譯作包括《軟件設(shè)計(jì)精要與模式》《WCF服務(wù)編程》《Java設(shè)計(jì)模式》以及評(píng)注版《重構(gòu):改善既有代碼的設(shè)計(jì)》。目前居住于成都。
.
倪健是eBaoTech應(yīng)用架構(gòu)師,程序員。著作包括《簡(jiǎn)單之美:軟件開(kāi)發(fā)實(shí)踐者的思考》《IT項(xiàng)目管理那些事兒》(與人合著)。目前居住于上海。

書(shū)籍目錄

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

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    恰如其分的軟件架構(gòu) PDF格式下載


用戶評(píng)論 (總計(jì)0條)

 
 

 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7