體系結(jié)構(gòu)第5章架構(gòu)設(shè)計(jì)ppt課件
5.1 生命期中的構(gòu)架 5.2 良好架構(gòu)的評(píng)判原則 5.3 架構(gòu)設(shè)計(jì)的質(zhì)量驅(qū)動(dòng)方法 5.4 創(chuàng)建骨架系統(tǒng) 5.5 團(tuán)隊(duì)結(jié)構(gòu)的形成 5.6 架構(gòu)師的職責(zé) 5.7 小結(jié),第 5 章 設(shè)計(jì)構(gòu)架,1,5.1 生命期中的構(gòu)架,軟件過(guò)程對(duì)軟件開(kāi)發(fā)活動(dòng)的組織、規(guī)范和管理 基于構(gòu)架的開(kāi)發(fā)步驟 為軟件系統(tǒng)構(gòu)建一個(gè)商業(yè)案例 弄清系統(tǒng)需求 構(gòu)建或選用構(gòu)架 正確表述此構(gòu)架,并與有關(guān)各方進(jìn)行交流 對(duì)此構(gòu)架進(jìn)行分析和評(píng)價(jià) 實(shí)現(xiàn)基于構(gòu)架的系統(tǒng)并保證與構(gòu)架相一致 系統(tǒng)維護(hù)時(shí),構(gòu)架文檔應(yīng)同步維護(hù),2,下圖的演變交付生命期模型表明了構(gòu)架所應(yīng)處的位置。,3,何時(shí)可以開(kāi)始設(shè)計(jì)? 對(duì)需求有了初步了解就可以開(kāi)始設(shè)計(jì)。 構(gòu)架驅(qū)動(dòng)因素的組成: 比較重要的功能、質(zhì)量屬性、限制條件構(gòu)成的某個(gè)子集 如何確定構(gòu)架驅(qū)動(dòng)因素? 業(yè)務(wù)目標(biāo)優(yōu)先級(jí)較高的要求,4,5.2 良好架構(gòu)的評(píng)判原則,設(shè)計(jì)構(gòu)架過(guò)程的建議: 構(gòu)架的設(shè)計(jì)應(yīng)該由一位設(shè)計(jì)師來(lái)完成 設(shè)計(jì)師應(yīng)全面掌握對(duì)系統(tǒng)的技術(shù)需求,以及對(duì)各項(xiàng)定性指標(biāo)優(yōu)先級(jí)的清單 構(gòu)架的文檔完備,并采用所有人員認(rèn)可的文檔形式 構(gòu)架設(shè)計(jì)方案應(yīng)讓各風(fēng)險(xiǎn)承擔(dān)者積極參與評(píng)估 通過(guò)對(duì)構(gòu)架分析,得出明確的定性與定量指標(biāo) 構(gòu)架設(shè)計(jì)應(yīng)有助于具體實(shí)現(xiàn) 允許構(gòu)架帶來(lái)一定的資源爭(zhēng)用,并給出可行的解決方案,5,關(guān)于構(gòu)架的結(jié)構(gòu)的建議: 構(gòu)架由定義良好的模塊組成,各模塊的功能劃分應(yīng)基于信息隱藏 模塊的劃分應(yīng)體現(xiàn)出相互獨(dú)立的原則 把計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)的特性封裝在一定的模塊中 構(gòu)架盡量不依賴于某個(gè)特定版本的商用產(chǎn)品或工具 產(chǎn)生數(shù)據(jù)的功能和使用數(shù)據(jù)的功能應(yīng)分屬于不同的模塊 對(duì)并發(fā)系統(tǒng),構(gòu)架應(yīng)充分考慮進(jìn)程與模塊結(jié)構(gòu)的不對(duì)應(yīng) 進(jìn)程編寫(xiě)要考慮到與特定處理器的關(guān)系,并容易改變關(guān)系 構(gòu)架應(yīng)盡量采用一些已知的設(shè)計(jì)模式。,6,5.3 架構(gòu)設(shè)計(jì)的質(zhì)量驅(qū)動(dòng)方法,你作為設(shè)計(jì)師對(duì)構(gòu)架的設(shè)計(jì)和評(píng)價(jià)就如同一個(gè)足球教練對(duì)一場(chǎng)比賽的球隊(duì)組織,你首先要了解自身和對(duì)手的情況,明確你這場(chǎng)比賽想打輸、打贏或打平(質(zhì)量目標(biāo)),然后根據(jù)該目標(biāo)設(shè)計(jì)比賽陣型,如攻擊或防守陣型,再確定相關(guān)戰(zhàn)術(shù)和人員組織(構(gòu)架設(shè)計(jì)、戰(zhàn)術(shù)選用),最后將你的設(shè)計(jì)和隊(duì)員溝通,取得全體隊(duì)員的共識(shí)(構(gòu)架評(píng)價(jià)),7,屬性驅(qū)動(dòng)的設(shè)計(jì)(Attribute Driven Design, ADD)把一組質(zhì)量屬性場(chǎng)景作為輸入,利用對(duì)質(zhì)量屬性實(shí)現(xiàn)與構(gòu)架設(shè)計(jì)之間的關(guān)系的了解,對(duì)構(gòu)架進(jìn)行設(shè)計(jì)。 ADD是一種定義軟件構(gòu)架的方法,該方法將模塊分解過(guò)程建立在軟件必須滿足的質(zhì)量屬性之上。它是一個(gè)遞歸的分解過(guò)程,其中在每個(gè)階段都選擇構(gòu)架模式和戰(zhàn)術(shù)來(lái)滿足一組質(zhì)量屬性場(chǎng)景,然后對(duì)功能進(jìn)行分配,以實(shí)例化有該模式所提供的模塊類型。 ADD的結(jié)果是粗粒度的, ADD的結(jié)果是構(gòu)架的模塊分解視圖和其他視圖的最初的幾個(gè)層次,不是視圖的所有細(xì)節(jié)都是通過(guò)ADD得到。 由ADD得到的構(gòu)架和已經(jīng)為實(shí)現(xiàn)做好準(zhǔn)備的構(gòu)架之間的區(qū)別是,需要做出更詳細(xì)的設(shè)計(jì)決策。,8,ADD構(gòu)架設(shè)計(jì)的步驟如下: 樣本輸入。 選擇要分解的模塊。 根據(jù)下列步驟對(duì)模塊進(jìn)行求精: a. 從具體的質(zhì)量場(chǎng)景和功能需求集合中選擇構(gòu)架驅(qū)動(dòng)因素。 b. 選擇滿足構(gòu)架驅(qū)動(dòng)因素的構(gòu)架模式。 c. 實(shí)例化模塊并根據(jù)用例分配功能,使用多個(gè)視圖進(jìn)行表示。 d. 定義子模塊的接口。 e. 驗(yàn)證用例和質(zhì)量場(chǎng)景并對(duì)其進(jìn)行求精,使它們成為子模塊的限制。 對(duì)需要進(jìn)一步分解的每個(gè)模塊重復(fù)上述步驟。,9,5.4 創(chuàng)建骨架系統(tǒng),提高開(kāi)發(fā)效率,鼓舞士氣。 能更早發(fā)現(xiàn)復(fù)雜的依賴關(guān)系。 使開(kāi)發(fā)人員更多關(guān)注在設(shè)想中最難以實(shí)現(xiàn)的部分。 能夠縮短系統(tǒng)集成時(shí)間,降低其成本,并使集成成本更明確。 便于評(píng)審和測(cè)試。,創(chuàng)建骨架系統(tǒng)的思想是提供一種基本能力,以一種對(duì)項(xiàng)目有力的順序?qū)崿F(xiàn)系統(tǒng)的功能。 在系統(tǒng)開(kāi)發(fā)的最初階段創(chuàng)建整個(gè)系統(tǒng)的骨架系統(tǒng)是非常重要的,主要原因包括:,10,創(chuàng)建骨架系統(tǒng)的步驟: 實(shí)現(xiàn)處理構(gòu)架組件交互的軟件部分。 選擇組件逐步添加到系統(tǒng)中。 逐步進(jìn)行測(cè)試。,11,5.6 團(tuán)隊(duì)結(jié)構(gòu)的形成,開(kāi)發(fā)小組的結(jié)構(gòu)反映了構(gòu)架的模塊結(jié)構(gòu)??梢园涯K看作一個(gè)小領(lǐng)域,再根據(jù)開(kāi)發(fā)人員的專長(zhǎng)進(jìn)行安排。 開(kāi)發(fā)小組要做到松耦合,高內(nèi)聚,即小組內(nèi)需要有非常便于溝通的機(jī)制,小組間的溝通盡可能少。 開(kāi)發(fā)組織對(duì)構(gòu)架也會(huì)有影響。,12,5.5 架構(gòu)師的職責(zé),架構(gòu)師要和多個(gè)部門(mén)和多種人溝通,如要指導(dǎo)以架構(gòu)為核心形成開(kāi)發(fā)團(tuán)隊(duì),協(xié)調(diào)團(tuán)隊(duì)之間的合作,解決他們之間的沖突;架構(gòu)師要支持項(xiàng)目經(jīng)理的工作,要知道開(kāi)發(fā)團(tuán)隊(duì)的技術(shù)水平;為明確組織的業(yè)務(wù)目標(biāo),架構(gòu)師需要和售前、售后部門(mén)交流,拜訪客戶。因此,架構(gòu)師必須縱觀軟件過(guò)程的全局,并對(duì)不同角色相互合作的接口和時(shí)機(jī)有清晰的把握。架構(gòu)師的職責(zé)包括: 1 了解所在組織的業(yè)務(wù)目標(biāo),使架構(gòu)更好地支持業(yè)務(wù)目標(biāo) 2 規(guī)劃產(chǎn)品的開(kāi)發(fā)與演進(jìn) 3 規(guī)劃和建設(shè)架構(gòu)級(jí)的重用,如產(chǎn)品線等 4 領(lǐng)導(dǎo)并負(fù)責(zé)架構(gòu)設(shè)計(jì),定義系統(tǒng)的高層結(jié)構(gòu)和接口 5 為項(xiàng)目管理提供支持,如技術(shù)可行性、任務(wù)劃分、人員招聘,13,6 領(lǐng)導(dǎo)和協(xié)調(diào)項(xiàng)目組的主要技術(shù)活動(dòng),對(duì)主要技術(shù)產(chǎn)品負(fù)責(zé)實(shí)際參與架構(gòu)原型的開(kāi)發(fā)實(shí)現(xiàn) 7 講解架構(gòu)、指導(dǎo)詳細(xì)設(shè)計(jì)和開(kāi)發(fā)、協(xié)調(diào)沖突以實(shí)現(xiàn)既定的構(gòu)架目標(biāo) 8 規(guī)劃和協(xié)助軟件架構(gòu)的評(píng)審 9 評(píng)估新技術(shù)并提出采用建議,14,5.7 小結(jié),15,