廣東外語外貿(mào)大學(xué)軟件體系結(jié)構(gòu)復(fù)習(xí)資料終極版.doc_第1頁
廣東外語外貿(mào)大學(xué)軟件體系結(jié)構(gòu)復(fù)習(xí)資料終極版.doc_第2頁
廣東外語外貿(mào)大學(xué)軟件體系結(jié)構(gòu)復(fù)習(xí)資料終極版.doc_第3頁
廣東外語外貿(mào)大學(xué)軟件體系結(jié)構(gòu)復(fù)習(xí)資料終極版.doc_第4頁
廣東外語外貿(mào)大學(xué)軟件體系結(jié)構(gòu)復(fù)習(xí)資料終極版.doc_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

軟件危機(jī)的主要表現(xiàn)(書上說)1. 對軟件開發(fā)的成本和時(shí)間估計(jì)常常不準(zhǔn)確2. 用戶對完成的軟件產(chǎn)品不滿意;3. 軟件質(zhì)量常常不高;4. 軟件的質(zhì)量不可靠;5. 軟件開發(fā)常常缺乏適當(dāng)?shù)奈臋n資料;6. 軟件技術(shù)發(fā)展的速度遠(yuǎn)遠(yuǎn)趕不上形勢的需要。軟件開發(fā)語言的變遷機(jī)器語言匯編語言解釋型的高級語言模塊化的程序設(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)?當(dāng)前與未來軟件的特點(diǎn) 無統(tǒng)一控制的廣泛分布性高度自主性任務(wù)不可預(yù)測性人、設(shè)備和軟件的多重異構(gòu)性強(qiáng)個(gè)性化和靈活性 連接環(huán)境的多樣性好的軟件體系結(jié)構(gòu)的特征(評價(jià))1. 可伸縮性的2. 簡單3. 親切的4. 關(guān)系清楚明了5. 職責(zé)分布明確6. 效益和技術(shù)平衡軟件體系結(jié)構(gòu)的生命周期:軟件體系結(jié)構(gòu)的非形式化描述初始設(shè)計(jì),軟件設(shè)計(jì)師用非形式化的自然語言表示概念、原則;軟件體系結(jié)構(gòu)的規(guī)范描述和分析通過運(yùn)用合適的形式化數(shù)學(xué)理論模型對第一階段體系結(jié)構(gòu)的非形式化描述進(jìn)行規(guī)范定義;軟件體系結(jié)構(gòu)的求精及其驗(yàn)證大型系統(tǒng)的軟件體系結(jié)構(gòu)總是通過從抽象到具體,逐步求精而后得到的;軟件體系結(jié)構(gòu)的實(shí)施將求精后的軟件體系結(jié)構(gòu)實(shí)施于系統(tǒng)的設(shè)計(jì)中,并將軟件體系結(jié)構(gòu)的組件與連接件等有機(jī)地組織在一起,形成系統(tǒng)設(shè)計(jì)的框架;軟件體系結(jié)構(gòu)的演化和擴(kuò)展在實(shí)施軟件體系結(jié)構(gòu)時(shí),根據(jù)系統(tǒng)的需求,對軟件體系結(jié)構(gòu)的擴(kuò)展和改動(dòng);軟件體系結(jié)構(gòu)的提供、評價(jià)和度量;軟件體系結(jié)構(gòu)的終結(jié)不能達(dá)到系統(tǒng)設(shè)計(jì)的要求,不能適應(yīng)系統(tǒng)的發(fā)展。目前軟件體系結(jié)構(gòu)研究的熱點(diǎn)1. 軟件體系結(jié)構(gòu)風(fēng)格;2. 軟件體系結(jié)構(gòu)質(zhì)量評價(jià);3. 軟件體系結(jié)構(gòu)性能評價(jià);4. 軟件體系結(jié)構(gòu)描述語言;5. 軟件體系結(jié)構(gòu)基礎(chǔ)理論;6. 軟件體系結(jié)構(gòu)求精方法研究7. 軟件體系結(jié)構(gòu)設(shè)計(jì)方法;8. 軟件體系結(jié)構(gòu)抽象模型;9. 實(shí)用軟件體系結(jié)構(gòu)10. 基于軟件體系結(jié)構(gòu)的軟件開發(fā)方法。軟件體系結(jié)構(gòu)的重要性軟件體系結(jié)構(gòu)是軟件開發(fā)的基本的指導(dǎo)方針;軟件體系結(jié)構(gòu)是整個(gè)軟件開發(fā)的開端;軟件體系結(jié)構(gòu)給予后繼開發(fā)人員的指導(dǎo)和約束;軟件體系結(jié)構(gòu)是對軟件質(zhì)量的重大保證;軟件體系結(jié)構(gòu)是軟件修改、變動(dòng)的保證和約束;軟件體系結(jié)構(gòu)提供了軟件的可重用性。 什么是軟件體系結(jié)構(gòu)風(fēng)格與模式 軟件體系結(jié)構(gòu)風(fēng)格是描述應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。 體系結(jié)構(gòu)風(fēng)格定義了一個(gè)系統(tǒng)家族,即一個(gè)體系結(jié)構(gòu)定義一個(gè)詞匯表和一組約束。詞匯表中包含一些組件和連接件類型,而這組約束指出系統(tǒng)是如何將這些組件和連接件組合起來的。 體系結(jié)構(gòu)風(fēng)格反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語義特性,并指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效地組織成一個(gè)完整的系統(tǒng)。軟件體系結(jié)構(gòu)中最基本的構(gòu)件是:v 組件和連接器軟件組件與連接器概述 組件與連接器是軟件體系結(jié)構(gòu)的兩大構(gòu)成部分; 組件是軟件的組成單元,是軟件功能的設(shè)計(jì)和承載體; 連接器是專門承擔(dān)組件連接作用的部件,連接的本質(zhì)是實(shí)現(xiàn)連接機(jī)制和信息交換協(xié)議。組件(構(gòu)件,部件) 組件是軟件結(jié)構(gòu)塊單元,每個(gè)組件承擔(dān)著一定的功能,如中斷程序、設(shè)備驅(qū)動(dòng)程序、過程、功能庫、文件等; 組件是模塊、類、對象等相關(guān)功能的集合; 組件是封裝的實(shí)體,一個(gè)組件至少有一個(gè)接口,接口是組件與外界連接的窗口。組件的分類 根據(jù)組件的作用分類:B 負(fù)責(zé)系統(tǒng)運(yùn)行管理的控制組件; 如任務(wù)管理器、黑板系統(tǒng)中的黑板、網(wǎng)絡(luò)中的路由服務(wù)等B 負(fù)責(zé)組件之間協(xié)作關(guān)系的協(xié)調(diào)組件; 如:消息/消息管理,中斷控制,I/O控制等B 為其它組件提供服務(wù)功能的服務(wù)組件; 如:中間件,DLL等B 負(fù)責(zé)安全檢查和信息轉(zhuǎn)接的信息控制組件; 如:域名服務(wù)等,B 負(fù)責(zé)組件連接和轉(zhuǎn)換功能的連接組件。 如:解釋器,瀏覽器等。根據(jù)組件的概念層次分類:B 基礎(chǔ)組件;B 中層組件; B 高層組件;根據(jù)組件的應(yīng)用分類:B 通用組件; B 專用組件; 組件的特性 B 接口特性與其它組件通信F 完備性F 最小化F 正交性F 方便F 高效B 運(yùn)行特性完成組件的功能F 數(shù)據(jù)的采集、存儲、傳送、計(jì)算等F 調(diào)度:進(jìn)程的產(chǎn)生、撤消、通信、管理F 多任務(wù)并發(fā)處理,任務(wù)分配,并行計(jì)算B 遠(yuǎn)程服務(wù)特性多線程F 接受網(wǎng)絡(luò)上的多源請求F 服務(wù)代理F 信息交互B 關(guān)聯(lián)特性獲取相關(guān)組件的地址信息F 實(shí)地址F 路由地址F IP地址F MAC地址B 動(dòng)態(tài)特性F 組件的運(yùn)行調(diào)度資源分配、并行處理F 組件的生存期管理進(jìn)程的產(chǎn)生、撤消連接器 連接是組件之間建立和維護(hù)行為關(guān)聯(lián)和信息傳送的途徑;連接的兩個(gè)要件:B 連接機(jī)制硬件是連接的物質(zhì)基礎(chǔ) F 硬件層:中斷、存儲、棧、I/O、DMA等;F 基礎(chǔ)控制描述層:事件、流、文件等;F 資源和管理層:進(jìn)程、線程、同步、并發(fā)、消息、遠(yuǎn)程調(diào)用;F 系統(tǒng)結(jié)構(gòu)模式層:編譯器、解釋器、瀏覽器、中間件等。B 連接協(xié)議信息交換規(guī)則F 什么是協(xié)議?一種成文的公約集,相互通信系統(tǒng)間的信息交換格式、能被收/發(fā)雙方接受的傳送信息內(nèi)容的一組定義 。連接之所在,協(xié)議亦所在連接的特性 B 連接的方向性,如:發(fā)送、接收B 連接的角色,如發(fā)送者,接收者,客戶端,服務(wù)器B 連接的觸發(fā),如電話提機(jī),鼠標(biāo)操作B 連接的響應(yīng),被叫方的響應(yīng)時(shí)間、方式、處理的實(shí)時(shí)性、并發(fā)的能力等。B 連接的層次連接是嚴(yán)格接層次進(jìn)行的,如OSI模型 軟件體系結(jié)構(gòu)的風(fēng)格典型的體系結(jié)構(gòu)風(fēng)格有9種:1. 數(shù)據(jù)流風(fēng)格批處理、管道和過濾器2. 調(diào)用與返回風(fēng)格主/子程序、OOD、層次結(jié)構(gòu)3. 獨(dú)立組件風(fēng)格通信進(jìn)程、事件隱式調(diào)用4. 虛擬機(jī)風(fēng)格解釋器、規(guī)則基系統(tǒng)5. 以數(shù)據(jù)為中心風(fēng)格數(shù)據(jù)庫系統(tǒng)、黑板系統(tǒng)、超文本系統(tǒng)6. 過程控制風(fēng)格過程控制、模擬器7. 客戶服務(wù)器風(fēng)格8. C2風(fēng)格基于消息廣播且面向圖形用戶界面的Chiron2風(fēng)格9. 異構(gòu)風(fēng)格不同的風(fēng)格構(gòu)成數(shù)據(jù)流風(fēng)格 比較有代表性的是批作業(yè)序列風(fēng)格、管道/過濾器風(fēng)格在操作系統(tǒng)中可見。如:dir | sortB 操作系統(tǒng)中可以找到非常明顯的數(shù)據(jù)流,處理過程通常在數(shù)據(jù)流的路線上“自頂向下、逐步求精”,并且,處理過程依賴于執(zhí)行過程,而不是數(shù)據(jù)到來的順序;B 每個(gè)組件都有一組輸入和輸出,組件讀輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流數(shù)據(jù)流風(fēng)格 管道/過濾器風(fēng)格B 管道的本質(zhì)是多進(jìn)程共享文件,它有兩個(gè)描述符B 讀在管道的一端將信息不斷的讀出;B 寫在管道有另一端寫入B 管道的長度通常是受限的,那么對管道寫B(tài) 空間足夠時(shí),數(shù)據(jù)寫入后返回;B 空間不夠時(shí),將所能容納下的數(shù)據(jù)寫入,并暫停寫入(管道阻塞),直到管道空間有空余時(shí),再做寫入操作。B 對管道讀時(shí),只判斷管道是否為空,(空讀入阻塞)B 管道連接相鄰的過濾器,過濾器具有數(shù)據(jù)處理功能B 如:編譯器B 過濾器從管道上讀入數(shù)據(jù),數(shù)據(jù)處理后從管道上輸出數(shù)據(jù)B 一個(gè)過濾器的輸出是下一過濾器的輸入;B 數(shù)據(jù)源過濾器的輸入,如輸入流、文件等;B 數(shù)據(jù)池過濾器的輸出,如輸出流、文件等;B 過濾器的激活:B 前面組件向過濾器推入數(shù)據(jù)(被動(dòng),請舉例)B 后續(xù)組件從過濾器中拉出數(shù)據(jù)(被動(dòng),請舉例)B 不斷地從前面組件中拉出數(shù)據(jù),并向后續(xù)組件推入數(shù)據(jù)。B 管道/過濾器的實(shí)現(xiàn)以車牌識別技術(shù)為例,系統(tǒng)是以輸入圖像驅(qū)動(dòng)的。1.把系統(tǒng)任務(wù)分成幾個(gè)獨(dú)立的處理階段,前一階段的輸出是后一階段的輸入,所有階段用數(shù)據(jù)流連接起來;2.定義沿著管道傳輸?shù)臄?shù)據(jù)格式;3.定義管道的連接;4.設(shè)計(jì)和實(shí)現(xiàn)過濾器;5.設(shè)計(jì)出錯(cuò)處理策略;與人眼對比;或人機(jī)交互;與數(shù)據(jù)庫對比;機(jī)器學(xué)習(xí)。管道/過濾器的特性F 每一過濾器都是獨(dú)立的整體,相互之間互不影響;F 每一過濾器只關(guān)心輸入的數(shù)據(jù)、數(shù)據(jù)處理和數(shù)據(jù)的輸出;F 結(jié)果的正確性依賴于每級過濾器處理的結(jié)果。管道/過濾器風(fēng)格的軟件體系結(jié)構(gòu)具有許多很好的特點(diǎn): 1. 使得組件具有良好的隱蔽性和高內(nèi)聚、低耦合的特點(diǎn);2. 允許設(shè)計(jì)者將整個(gè)系統(tǒng)的輸入/輸出行為看成是多個(gè)過濾器的行為的簡單合成;3. 支持軟件復(fù)用。4. 系統(tǒng)維護(hù)和增強(qiáng)系統(tǒng)性能簡單。新的過濾器可以添加到現(xiàn)有系統(tǒng)中來;舊的可以被改進(jìn)的過濾器替換掉;5. 支持并行執(zhí)行。每個(gè)過濾器是作為一個(gè)單獨(dú)的任務(wù)完成,因此可與其它任務(wù)并行執(zhí)行。這比下面將要闡述的一種“主-子程序風(fēng)格”的單線程操作要靈活得多。6. 具有清晰的拓?fù)浣Y(jié)構(gòu),便于系統(tǒng)性能分析。管道/過濾器風(fēng)格的軟件體系結(jié)構(gòu)也有弱點(diǎn):1. 通常導(dǎo)致進(jìn)程成為批處理的結(jié)構(gòu)。這是因?yàn)殡m然過濾器可增量式地處理數(shù)據(jù),但它們是獨(dú)立的,所以設(shè)計(jì)者必須將每個(gè)過濾器看成一個(gè)完整的從輸入到輸出的轉(zhuǎn)換。2. 不適合處理交互的應(yīng)用。當(dāng)需要增量地顯示改變時(shí),這個(gè)問題尤為嚴(yán)重。3. 系統(tǒng)開銷大,復(fù)雜度高。因?yàn)樵跀?shù)據(jù)傳輸上沒有通用的標(biāo)準(zhǔn),每個(gè)過濾器都增加了解析和合成數(shù)據(jù)的工作,這樣就導(dǎo)致了系統(tǒng)性能下降,并增加了編寫過濾器的復(fù)雜性。4. 共享信息代價(jià)高,不靈活(?)5. 不能獲得并行處理的高效率(?)6. 難于進(jìn)行錯(cuò)誤處理(?)分層結(jié)構(gòu)分層結(jié)構(gòu)的特點(diǎn)1. 層次系統(tǒng)組織成一個(gè)層次結(jié)構(gòu),每一層為上層服務(wù),并作為下層客戶。2. 在一些層次系統(tǒng)中,除了一些精心挑選的輸出函數(shù)外,內(nèi)部的層只對相鄰的層可見。3. 層之間的連接器(connector)通過決定層間如何交互的協(xié)議來定義。4. 這種風(fēng)格支持基于可增加抽象層的設(shè)計(jì)。允許將一個(gè)復(fù)雜問題分解成一個(gè)增量步驟序列的實(shí)現(xiàn)。5. 由于每一層最多只影響兩層,同時(shí)只要給相鄰層提供相同的接口,允許每層用不同的方法實(shí)現(xiàn),同樣為軟件復(fù)用提供了強(qiáng)大的支持。 分層結(jié)構(gòu)的特性1. 如果發(fā)生了對第N層產(chǎn)生的請求,需要向下逐層調(diào)用,最終到第1層,請求響應(yīng)逐層上傳,最后到達(dá)第N層;2. 如果是從第1層鏈?zhǔn)讲僮?,?shù)據(jù)通過逐層處理,最后從第N層得到輸出結(jié)果;3. 如果第i層的請求第i-1層能完成,就不需要再向更下層傳遞請求。4. 如果第i層的通知只需要傳遞到第i+1層能完成,就不需要再向更高層傳遞。5. 兩個(gè)具有N層通信棧式結(jié)構(gòu),發(fā)生在一邊第N層的請求,一直傳送到第1層,再到另一邊的第1層,一直傳遞到這一邊的第N層分層結(jié)構(gòu)的實(shí)現(xiàn):1.定義合適的分層的標(biāo)準(zhǔn);2.根據(jù)標(biāo)準(zhǔn)定義合適的層數(shù);3.給每一層命名;4.并確定每一層的任務(wù);5.定義每層的接口;6.構(gòu)建每一層的各個(gè)組件;7.確定層之間的通信模式推模式、拉模式和組合模式8.降低層之間的耦合性;9.設(shè)計(jì)錯(cuò)誤處理策略。分層結(jié)構(gòu)的優(yōu)點(diǎn) 1.能夠?qū)崿F(xiàn)軟件的標(biāo)準(zhǔn)化;2.可替換性;3.可重用性;4.可移植性;分層結(jié)構(gòu)的缺點(diǎn): 1. 效率低數(shù)據(jù)的層層轉(zhuǎn)換、傳送、添加、刪減;2. 各層可能產(chǎn)生很多重復(fù)性的操作;3. 很難找到一個(gè)正確分層的方法;4. 出于對系統(tǒng)性能的考慮,不得不把一些低級或高級的功能綜合起來 ;知識庫(黑板)結(jié)構(gòu) 什么是黑板系統(tǒng)?是一種高度結(jié)構(gòu)化的機(jī)遇問題求解模型。機(jī)遇問題求解模型的主要特點(diǎn)是:問題求解的每一步,根據(jù)當(dāng)時(shí)的求解狀態(tài)及其變化情況,選擇最適宜的知識及問題求解方法,不斷逼近問題的最終解。 三個(gè)組成部分B 中心公共數(shù)據(jù)結(jié)構(gòu);F 保存系統(tǒng)的輸入;F 問題求解的中間結(jié)果;F 問題求解的狀態(tài)。B 知識庫F 領(lǐng)域知識被劃分成互相獨(dú)立的知識模塊,稱為知識源 ;F 每個(gè)知識源對應(yīng)于求解某個(gè)子問題或子子問題的特定知識 ;F 黑板是實(shí)現(xiàn)知識源之間通訊的唯一場所 。B 獨(dú)立程序集合F 程序相互獨(dú)立,獨(dú)立完成系統(tǒng)中的特定功能;F 由黑板狀態(tài)來確定調(diào)用順序。黑板系統(tǒng)動(dòng)態(tài)特性數(shù)據(jù)驅(qū)動(dòng)或狀態(tài)驅(qū)動(dòng) 黑板系統(tǒng)的實(shí)現(xiàn)(從系統(tǒng)開發(fā)的角度)1. 分析系統(tǒng)的需求和功能,定義黑板的數(shù)據(jù)結(jié)構(gòu),制定數(shù)據(jù)和知識詞典;2. 確定系統(tǒng)可能涉及的領(lǐng)域,確定可能涉及的領(lǐng)域知識,確定知識的表示;3. 建立知識庫,以及基于知識的操作;4. 確定系統(tǒng)的輸入與輸出;5. 制定黑板上的數(shù)據(jù)和狀態(tài)的分解方案,獲取知識條文;6. 設(shè)計(jì)系統(tǒng)控制程序。包括監(jiān)視黑板、組件調(diào)用、人機(jī)交互、知識更新、機(jī)器學(xué)習(xí)等。知識庫(黑板)結(jié)構(gòu)優(yōu)點(diǎn)1.可以應(yīng)用于無法統(tǒng)一建模的問題;2.易更改、易維護(hù);3.知識以及知識的驅(qū)動(dòng)可重用;4.容錯(cuò)性和健壯性較好。知識庫(黑板)結(jié)構(gòu)缺點(diǎn)1.無法保證求解方案是最優(yōu)方案;2.效率低,往往需要人機(jī)交互;3.知識的獲取、分解、表示、驅(qū)動(dòng)往往存在偏差,甚至是錯(cuò)誤;4.系統(tǒng)的測試與評價(jià)因人而異;5.知識庫的建立難度大,開發(fā)成本高。模式識別模式識別過程一般包括對待識別事物進(jìn)行樣本采集、信息的數(shù)字化、數(shù)據(jù)特征的提取、特征空間的壓縮以及提供識別的準(zhǔn)則等。問題求解 概念:指通過搜索的方法尋找問題求解操作的合適序列,以滿足問題的要求。 基本方法:狀態(tài)空間法和問題歸納法。 狀態(tài)空間法描述為:若定義S為被求解問題可能有的初始狀態(tài)的集合,F(xiàn)為求解過程中可使用的操作的集合,而G為目標(biāo)狀態(tài)的集合,那么問題求解的過程則是狀態(tài)空間中尋找從初始狀態(tài)x出發(fā),到達(dá)目標(biāo)狀態(tài)y的一個(gè)路徑。這個(gè)路徑稱為解路徑。 問題求解程序由三個(gè)部分組成: 1、數(shù)據(jù)庫 2、操作原則 3、控制策略 問題求解的狀態(tài)空間法通常是一種搜索技術(shù)?;舅阉鞑呗杂校荷疃葍?yōu)先法、廣度優(yōu)先法、爬山法、回溯策略、圖搜索策略、啟發(fā)式搜索策略、與或圖搜索策略、啟發(fā)式搜索策略和博弈樹搜索等。 例:計(jì)算機(jī)下棋自動(dòng)定理證明自動(dòng)定理證明的方法通常有:1、自動(dòng)演繹法它是自動(dòng)定理證明最早使用的一種方法。2、決策過程法3、定理證明器專家系統(tǒng)專家系統(tǒng)是當(dāng)前人工智能應(yīng)用中最成功的一個(gè)領(lǐng)域模型-視圖-控制器結(jié)構(gòu)(MVC結(jié)構(gòu))v MVC的設(shè)計(jì)思想1. MVC結(jié)構(gòu)提供了一種按功能對各種對象進(jìn)行分割的方法,其目的是為了將各對象間的耦合程度減至最?。?. MVC將應(yīng)用程序的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,即將計(jì)算模型和顯示模型獨(dú)立開來,因此,應(yīng)用程序被分成三個(gè)層模型層、視圖層、控制層;B 模型是系統(tǒng)處理問題的邏輯抽象,它封裝了問題的核心數(shù)據(jù)、邏輯和功能的計(jì)算關(guān)系。換言之,模型就是流程/狀態(tài)的處理以及規(guī)則的制定。模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。模型的設(shè)計(jì)是MVC最主要的核心。B 視圖是人機(jī)交互界面,即把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息以特定形式展示給用戶;B 控制從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求 ??刂茖邮莻€(gè)分發(fā)器,不做任何數(shù)據(jù)處理。例:用戶點(diǎn)擊一個(gè)連接,控制層接受請求后, 并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。 v MVC結(jié)構(gòu)關(guān)系與功能圖v MVC的動(dòng)態(tài)特性 1. 控制器接受事件輸入,解釋事件,啟動(dòng)模型;2. 模型執(zhí)行所請求的服務(wù),產(chǎn)生模型內(nèi)部數(shù)據(jù)和狀態(tài)的變化;3. 模型變化通過注冊表更新控制器;4. 控制器通知視圖更新;5. 控制器進(jìn)行下一輪控制。 v MVC結(jié)構(gòu)的優(yōu)點(diǎn) 1. 健壯性一個(gè)模型可有多個(gè)視圖;在用戶需求的快速變化下,可能滿足多種方式訪問應(yīng)用的要求 ;2. 擴(kuò)展性視圖與控制器的可接插性;3. 復(fù)用性可移植性,由于模型和視圖是獨(dú)立的,所以,模型和視圖都可以移植;4. 標(biāo)準(zhǔn)化可擴(kuò)展的人機(jī)交互框架結(jié)構(gòu)。v MVC結(jié)構(gòu)的缺點(diǎn) 1. 可能增加系統(tǒng)的復(fù)雜性。對于簡單的界面,嚴(yán)格遵循MVC,使模型、視圖與控制器分離,會(huì)增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過多的更新操作,降低運(yùn)行效率。 2. 視圖對模型數(shù)據(jù)的低效率訪問。依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù)。對未變化數(shù)據(jù)的不必要的頻繁訪問,也將損害操作性能。 3. 使用現(xiàn)代用戶界面工具困難?,F(xiàn)在高級的界面工具或構(gòu)造器不支持MVC模式。改造這些工具以適應(yīng)MVC需要和建立分離的部件的代價(jià)是很高的,從而造成使用MVC的困難。 表示-抽象-控制器結(jié)構(gòu)(PAC結(jié)構(gòu))v PAC與軟件Agent1. PAC是以相互協(xié)作的代理程序(Agent)組成的、樹型層次結(jié)構(gòu)的、交互式的軟件體系結(jié)構(gòu)。2. 軟件Agent技術(shù)是其組件的核心技術(shù);3. 軟件Agent程序由表示-抽象-控制(P-A-C)三個(gè)組件組成;v 軟件Agent的優(yōu)點(diǎn):1.對Agent組成的系統(tǒng)可以進(jìn)行自然的描述,有利于各有關(guān)人員對軟件系統(tǒng)的理解。比如在虛擬現(xiàn)實(shí)系統(tǒng)中,人物或其它角色可以自然地表示為自治的、具有個(gè)性化的和社會(huì)性的Agent. 2.Agent軟件系統(tǒng)具有靈活性,有利于現(xiàn)有軟件的集成。3.具有開放性和復(fù)雜性。v 軟件Agent的屬性:自主性Agent是指在協(xié)同工作環(huán)境中獨(dú)立自主的行為實(shí)體。Agent能夠根據(jù)自身內(nèi)部的狀態(tài)和外界環(huán)境中的各種事件來調(diào)節(jié)和控制自己的行為;適應(yīng)性Agent在某種程度上能夠響應(yīng)其它Agent或環(huán)境。 交互性Agent能不斷地監(jiān)測周圍的環(huán)境和其它Agent所發(fā)出的交互信息和服務(wù)請求。由Agent事件處理系統(tǒng)控制自身的行為,使其與其它Agent有效協(xié)同地工作,并能以類似人類的工作方式和人進(jìn)行交互。 主動(dòng)性Agent能自覺承擔(dān)某些事件,并能遵循承諾,利用內(nèi)部知識和能力持續(xù)主動(dòng)地產(chǎn)生面向靜態(tài)或動(dòng)態(tài)目標(biāo)的行為,直到完成整個(gè)任務(wù)。 獨(dú)立性Agent可以看成是一個(gè)“邏輯單位”的行為實(shí)體,如同面向?qū)ο笏枷胫械念惛拍?,對其?nèi)部狀態(tài)的信念、事實(shí)、過程及通訊信息進(jìn)行封裝,使Agent成為協(xié)同系統(tǒng)中界限明確、能夠被獨(dú)立調(diào)用的計(jì)算實(shí)體。反應(yīng)性指Agent利用其事件感知器感知周圍的物理環(huán)境、信息資源、各種事件的發(fā)生和變化,并能夠調(diào)整自身的內(nèi)部狀態(tài),做出最優(yōu)的適當(dāng)?shù)姆磻?yīng),使整個(gè)系統(tǒng)協(xié)調(diào)地工作。Agent也能對突發(fā)事件做出相應(yīng)的反應(yīng)。代理性若當(dāng)前內(nèi)部狀態(tài)和周圍事件適合某種條件,Agent就能代表用戶有效地執(zhí)行相應(yīng)的任務(wù),Agent還能對一些使用頻率較高的資源進(jìn)行“封裝”,引導(dǎo)用戶對這些資源進(jìn)行訪問,成為用戶通向這些資源的“中介”。例如,Agent能根據(jù)用戶自身的特點(diǎn)、愛好、習(xí)慣等自動(dòng)代替網(wǎng)絡(luò)用戶尋找、收集、存儲一些對用戶有用的信息資源,加強(qiáng)了用戶信息的完整性、全面性和實(shí)時(shí)性。此時(shí)Agent就充當(dāng)了人類助手的角色。協(xié)作性一個(gè)Agent所能實(shí)現(xiàn)的目標(biāo)往往是目標(biāo)集的一部分,因此它必須與其它Agent通過信息共享、觀點(diǎn)的互相激勵(lì)協(xié)商,幫助群體聚焦于待求解問題最相關(guān)的信息等手段合作最終來共同實(shí)現(xiàn)目標(biāo)。智能性 Agent根據(jù)內(nèi)部狀態(tài)針對外部環(huán)境,通過感知器和執(zhí)行器執(zhí)行感知一推理一動(dòng)作循環(huán),這可通過人工智能程序設(shè)計(jì)或機(jī)器學(xué)習(xí)兩種方式獲得。 移動(dòng)性Agent能夠?qū)⒆约簭囊粋€(gè)環(huán)境轉(zhuǎn)移到另一個(gè)環(huán)境。社交性具有友好與愉悅社會(huì)關(guān)系的交互,即Agent是和藹可親的、好交往的、友好的。競爭性能夠與其它Agent協(xié)作,除非一個(gè)Agent的成功意味著另一個(gè)Agent的失敗(合作的對立面)。繼承性沿用了面向?qū)ο笾械母拍睿瑢gent進(jìn)行分類,子Agent可以繼承其父Agent的信念、事實(shí)、屬性等。堅(jiān)實(shí)性能夠健壯地處理錯(cuò)誤與不完全的數(shù)據(jù)。理智性能夠根據(jù)內(nèi)部目標(biāo)與知識選擇行為,做出接近自己目標(biāo)行為。v 基于Agent的PAC樹型結(jié)構(gòu)1. 根部PAC代理程序提供系統(tǒng)的主要功能。B 抽象組件提供系統(tǒng)的全局?jǐn)?shù)據(jù)模型、數(shù)據(jù)模型的操作、信息檢索等,其數(shù)據(jù)表示采用自然表示法;與顯示媒體無關(guān)。B 控制組件有三個(gè)功能:F 允許下層代理程序使用根部代理程序;F 協(xié)調(diào)各級PAC代理之間的關(guān)系;F 保存用戶與系統(tǒng)的交互信息。B 表示組件包含一些用戶界面信息。2. 葉部PAC代理程序表達(dá)獨(dú)立語義概念的用戶界面,實(shí)現(xiàn)系統(tǒng)的各種服務(wù)功能。B 表示組件定義具體的視圖,提供用戶交互功能;B 抽象組件定義和保存葉部數(shù)據(jù);B 控制組件負(fù)責(zé)與上層代理通信、交換數(shù)據(jù)和事件。3. 干部PAC代理程序完成系統(tǒng)內(nèi)的合成與協(xié)作功能,維護(hù)葉部各代理程序的一致性,協(xié)調(diào)相同數(shù)據(jù)的多個(gè)視圖。B 表示組件實(shí)現(xiàn)干部的具體的視圖,即用戶界面,如Excel軟件的用戶界面;B 抽象組件定義和保存干部數(shù)據(jù);B 控制組件負(fù)責(zé)與上層代理通信、交換數(shù)據(jù)和事件。v PAC結(jié)構(gòu)的優(yōu)點(diǎn)1. 獨(dú)立的代理程序2. 易于維護(hù)和擴(kuò)展3. 支持多任務(wù)v PAC結(jié)構(gòu)的缺點(diǎn)1. 增加了系統(tǒng)設(shè)計(jì)的復(fù)雜性2. 代理程序之間的協(xié)調(diào)與控制難度大3. 代理程序之間的通信會(huì)影響系統(tǒng)效率客戶/服務(wù)器結(jié)構(gòu)一.C/S結(jié)構(gòu) C/S結(jié)構(gòu)是一種軟件系統(tǒng)體系結(jié)構(gòu),它充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實(shí)現(xiàn),其特點(diǎn)為:B 降低了系統(tǒng)的通訊開銷;B 應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕; B 數(shù)據(jù)的儲存管理功能透明 ;B C/S架構(gòu)的劣勢是高昂的維護(hù)成本且投資大 。服務(wù)器的任務(wù) (1)數(shù)據(jù)庫安全性的要求; (2)數(shù)據(jù)庫訪問并發(fā)性的控制; (3)數(shù)據(jù)庫前端的客戶應(yīng)用程序的全局?jǐn)?shù)據(jù)完整性規(guī)則; (4)數(shù)據(jù)庫的備份與恢復(fù)??蛻魬?yīng)用程序的任務(wù) (1)提供用戶與數(shù)據(jù)庫交互的界面; (2)向數(shù)據(jù)庫服務(wù)器提交用戶請求并接收來自數(shù)據(jù)庫服務(wù)器的信息; (3)利用客戶應(yīng)用程序?qū)Υ嬖谟诳蛻舳说臄?shù)據(jù)執(zhí)行應(yīng)用邏輯要求。C/S的的優(yōu)點(diǎn)F C/S 體系結(jié)構(gòu)具有強(qiáng)大的數(shù)據(jù)操作和事務(wù)處理能力,模型思想簡單,易于人們理解和接受。F 系統(tǒng)的客戶應(yīng)用程序和服務(wù)器構(gòu)件分別運(yùn)行在不同的計(jì)算機(jī)上,系統(tǒng)中每臺服務(wù)器都可以適合各構(gòu)件的要求,這對于硬件和軟件的變化顯示出極大的適應(yīng)性和靈活性,而且易于對系統(tǒng)進(jìn)行擴(kuò)充和縮小。F 在C/S體系結(jié)構(gòu)中,系統(tǒng)中的功能構(gòu)件充分隔離,客戶應(yīng)用程序的開發(fā)集中于數(shù)據(jù)的顯示和分析,而數(shù)據(jù)庫服務(wù)器的開發(fā)則集中于數(shù)據(jù)的管理,不必在每一個(gè)新的應(yīng)用程序中都要對一個(gè)DBMS進(jìn)行編碼。將大的應(yīng)用處理任務(wù)分布到許多通過網(wǎng)絡(luò)連接的低成本計(jì)算機(jī)上,以節(jié)約大量費(fèi)用。 C/S的的缺點(diǎn)F 開發(fā)成本較高F 客戶端程序設(shè)計(jì)復(fù)雜F 信息內(nèi)容和形式單一F 用戶界面風(fēng)格不一,使用繁雜,不利于推廣使用F 軟件移植困難F 軟件維護(hù)和升級困難(?)F 新技術(shù)不能輕易應(yīng)用二. B/S的三層結(jié)構(gòu)B 瀏覽器/服務(wù)器(B/S)風(fēng)格就是上述三層應(yīng)用結(jié)構(gòu)的一種實(shí)現(xiàn)方式,其具體結(jié)構(gòu)為:瀏覽器/Web服務(wù)器/數(shù)據(jù)庫服務(wù)器。B B/S結(jié)構(gòu)也是C/S結(jié)構(gòu)的一種變化,或者改進(jìn)的結(jié)構(gòu)。它的用戶工作界面是通過WWW瀏覽器來實(shí)現(xiàn),極少部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端,是“瘦”客戶機(jī),“胖”服務(wù)器結(jié)構(gòu)。而C/S結(jié)構(gòu)是“胖”客戶機(jī),“瘦”服務(wù)器結(jié)構(gòu) 其特點(diǎn)是:B 維護(hù)和升級方式簡單 ;B 成本降低,選擇更多 ;B 應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較重 ;B 數(shù)據(jù)安全性(哪一種更安全?)B/S結(jié)構(gòu)的優(yōu)點(diǎn):F 基于B/S體系結(jié)構(gòu)的軟件,系統(tǒng)安裝、修改和維護(hù)全在服務(wù)器端解決。用戶在使用系統(tǒng)時(shí),僅僅需要一個(gè)瀏覽器就可運(yùn)行全部的模塊,真正達(dá)到了“零客戶端”的功能,很容易在運(yùn)行時(shí)自動(dòng)升級。F B/S體系結(jié)構(gòu)還提供了異種機(jī)、異種網(wǎng)、異種應(yīng)用服務(wù)的聯(lián)機(jī)、聯(lián)網(wǎng)、統(tǒng)一服務(wù)的最現(xiàn)實(shí)的開放性基礎(chǔ)。B/S結(jié)構(gòu)的缺點(diǎn):F B/S體系結(jié)構(gòu)缺乏對動(dòng)態(tài)頁面的支持能力,沒有集成有效的數(shù)據(jù)庫處理功能。F B/S體系結(jié)構(gòu)的系統(tǒng)擴(kuò)展能力差,安全性難以控制。F 采用B/S體系結(jié)構(gòu)的應(yīng)用系統(tǒng),在數(shù)據(jù)查詢等響應(yīng)速度上,要遠(yuǎn)遠(yuǎn)地低于C/S體系結(jié)構(gòu)。F B/S體系結(jié)構(gòu)的數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動(dòng)態(tài)交互性不強(qiáng),不利于在線事務(wù)處理。 客戶/服務(wù)器的連接方式1. 遠(yuǎn)程調(diào)用2. 消息機(jī)制3. 進(jìn)程調(diào)度4. 線程調(diào)度5. 線程池調(diào)度 客戶/服務(wù)器風(fēng)格的優(yōu)點(diǎn)和缺點(diǎn)優(yōu)點(diǎn)1. 結(jié)構(gòu)簡單,系統(tǒng)中不同類型的任務(wù)分別由客戶和服務(wù)器承擔(dān),有利于發(fā)揮不同機(jī)器平臺的優(yōu)勢;2. 支持分布式、并發(fā)環(huán)境,特別是當(dāng)客戶和服務(wù)器之間的關(guān)系是多對多時(shí),可以有效地提高資源的利用率和共享程度;3. 服務(wù)器集中管理資源,有利于權(quán)限控制和系統(tǒng)安全。缺點(diǎn):在大多數(shù)client/server風(fēng)格的系統(tǒng)中,組件之間的連接通過(遠(yuǎn)程)過程調(diào)用,接近于代碼一級,表達(dá)能力較弱.COM/DCOM/COM+組件這種風(fēng)格的體系結(jié)構(gòu)的最大優(yōu)點(diǎn)是能夠?qū)崿F(xiàn)快速程序開發(fā)COM/DCOM/COM+的關(guān)系COM/DCOM的基本特征1. 類和對象2. COM/DCOM方法可通過網(wǎng)絡(luò)調(diào)用3. COM對象在世界上必須是唯一的4. COM是語言無關(guān)的5. 接口將客戶和服務(wù)器隔離開來COM+的幾個(gè)主要特性:1.真正的異步通訊。2.事件服務(wù)。3.可伸縮性。4.繼承并發(fā)展了MTS的特性。5.可管理和可配置性。6.易于開發(fā)。分布式系統(tǒng)的軟件體系結(jié)構(gòu) 1. 自治性 Autonomy2. 可靠性 Reliability3. 可接受性 Availability4. 可擴(kuò)展性 Scalability5. 互操作性 Interoperability分布式軟件體系結(jié)構(gòu)的三種模型:1. DNA:Distributed interNet Application Architecture2. OMA: Object Management Architecture3. EJB;Enterprise JavaBean采用云計(jì)算的 5 大理由 1. 提高現(xiàn)有資源的利用率:打破原有的“一臺服務(wù)器一個(gè)應(yīng)用程序”模式。 2. 通過縮減物理基礎(chǔ)架構(gòu)和提高服務(wù)器/管理員比率,降低數(shù)據(jù)中心成本。 3. 提高硬件和應(yīng)用程序的可用性,進(jìn)而提高業(yè)務(wù)連續(xù)性:可安全地備份和遷移整個(gè)虛擬環(huán)境而不會(huì)出現(xiàn)服務(wù)中斷。 4. 引入自動(dòng)化管理,實(shí)現(xiàn)運(yùn)營靈活性。 5. 提高桌面的可管理性和安全性。 代理者結(jié)構(gòu)(Broker)1. 代理者結(jié)構(gòu)主要用于構(gòu)建中間有隔離組件的分布式系統(tǒng);2. 代理者組件負(fù)責(zé)協(xié)調(diào)分布式系統(tǒng)中的異構(gòu)系統(tǒng)之間的通信;3. 使用代理者結(jié)構(gòu)的目的是分布式系統(tǒng)的變動(dòng),不會(huì)影響到客戶端的服務(wù).代理者體系結(jié)構(gòu)經(jīng)典CORBA目前分布式對象技術(shù)有3種主流技術(shù)COM+、Java和COBRACORBA的特點(diǎn)是大而全,互操作性和開放性非常好。COBRA標(biāo)準(zhǔn)主要分為3個(gè)層次:B 對象請求代理最底層是對象請求代理ORB,規(guī)定了分布對象的定義(接口)和語言映射,實(shí)現(xiàn)對象間的通訊和互操作,是分布對象系統(tǒng)中的“軟總線”;B 公共對象服務(wù)在ORB之上定義了很多公共服務(wù),可以提供諸如并發(fā)服務(wù)、名字服務(wù)、事務(wù)(交易)服務(wù)、安全服務(wù)等各種各樣的服務(wù);B 公共設(shè)施最上層的公共設(shè)施則定義了組件框架,提供可直接為業(yè)務(wù)對象使用的服務(wù),規(guī)定業(yè)務(wù)對象有效協(xié)作所需的協(xié)定規(guī)則。 CORBA技術(shù)規(guī)范 1. 接口定義語言(IDL)2. 接口池(IR)3. 動(dòng)態(tài)調(diào)用接口(DII)4. 對象適配器(OA)CORBA的優(yōu)點(diǎn) 1. 定義了一種面向?qū)ο蟮能浖?gòu)造方法,使不同的應(yīng)用可以共享由CORBA構(gòu)造出來的軟件。2. 每個(gè)對象都對其內(nèi)部操作細(xì)節(jié)封裝,向外部提供接口,降低了應(yīng)用系統(tǒng)的復(fù)雜性,也降低了應(yīng)用系統(tǒng)的開發(fā)費(fèi)用。3. CORBA的平臺無關(guān)性實(shí)現(xiàn)了對象的跨平臺引用。4. CORBA的語言無關(guān)性,使得軟件開發(fā)中能大量使用現(xiàn)有成果CORBA的缺點(diǎn) CORBA的缺點(diǎn)是龐大而復(fù)雜,并且技術(shù)和標(biāo)準(zhǔn)的更新相對較慢 。代理者體系結(jié)構(gòu)的優(yōu)點(diǎn)1. 定位的透明性客戶不用關(guān)心服務(wù)器的物理位置,服務(wù)器也不用關(guān)心客戶的物理位置。2. 組件的可變更和可擴(kuò)展性API不變,只改變內(nèi)部實(shí)現(xiàn)不會(huì)對調(diào)用者產(chǎn)生影響。3. 系統(tǒng)可移植性用戶API、網(wǎng)橋、代理保證了系統(tǒng)的移植性。4. 代理者系統(tǒng)間的互操作性網(wǎng)橋5. 可重用性用戶API、網(wǎng)橋、代理保證了可重用性代理者體系結(jié)構(gòu)的缺點(diǎn)1. 效率低中間層多。2. 容錯(cuò)性差一個(gè)程序失效,依賴此程序的功能模塊都失效。3. 測試和調(diào)試?yán)щy多層、多組件、透明等微核(MicroKernel)結(jié)構(gòu) 微核的結(jié)構(gòu)微核結(jié)構(gòu)定義了五個(gè)組件:1. 微核2. 內(nèi)部服務(wù)器3. 外部服務(wù)器4. 客戶程序5. 適配器微核結(jié)構(gòu)的優(yōu)點(diǎn)1. 適應(yīng)性2. 可靠性3. 透明性4. 可維護(hù)、可擴(kuò)展、可升級5. 可移植性微核結(jié)構(gòu)的缺點(diǎn)1.復(fù)雜性2.速度慢映像(Reflection)結(jié)構(gòu)映像結(jié)構(gòu)概述1. 隨著時(shí)間的變化,人們對軟件系統(tǒng)的要求也在變化,重新開發(fā)新的軟件會(huì)受到成本和時(shí)間的限制,因此要求已開發(fā)的軟件具有動(dòng)態(tài)改變的功能;2. 映像結(jié)構(gòu)就是為了解決上述問題而提出的一種軟件體系結(jié)構(gòu);3. 映像結(jié)構(gòu)支持動(dòng)態(tài)改變軟件結(jié)構(gòu)和行為,即支持類型結(jié)構(gòu)和函數(shù)調(diào)用機(jī)制的修改;4. 映像結(jié)構(gòu)可分成兩個(gè)層次:元層次和基本層次映象結(jié)構(gòu)的優(yōu)點(diǎn):1.應(yīng)用服務(wù)變更時(shí),不直接修改元對象和源(元)代碼,只是修改映象程序;2.元對象提供一個(gè)安全的、統(tǒng)一的軟件修改機(jī)制,使修改軟件變得容易了。3.元對象封裝系統(tǒng)的行為、狀態(tài)和調(diào)用機(jī)制等,因此,映象結(jié)構(gòu)能夠支持行為、狀態(tài)和調(diào)用機(jī)制等的修改。映象結(jié)構(gòu)的缺點(diǎn):1. 由于元層次與基本層次之間的耦合性較強(qiáng),軟件修改存在著隱患;2. 增加了很多的映象程序,組件數(shù)目增加;3. 軟件效率低;4. 并非能實(shí)現(xiàn)所有的改變;5. 并不是所有的程序設(shè)計(jì)語言都支持映象結(jié)構(gòu)異構(gòu)結(jié)構(gòu)(Heterogeneous Architecture)異構(gòu)結(jié)構(gòu)常用的方法 1. 層次組合組件可以分層進(jìn)行組合。2. 不同機(jī)制的組件間的接口對接通過接口形成異構(gòu)結(jié)構(gòu);3. 組件使用混合連接器如:CORBA4. 不同機(jī)制的融合系統(tǒng)包含文件、消息、調(diào)用等機(jī)制。軟件體系結(jié)構(gòu)的設(shè)計(jì)模式一個(gè)好的設(shè)計(jì)模式必須做到以下幾點(diǎn):1. 解決一個(gè)(類)問題:從模式可以得到解,而不僅僅是抽象的原則或策略。2. 是一個(gè)被證明了的概念,而不是通過理論或推測。3. 其解并不是顯然的:許多解決問題的方法(例如軟件設(shè)計(jì)范例或方法)是從最基本的原理得到解;而最好的方法是以非直接的方式得到解,對大多數(shù)比較困難的設(shè)計(jì)問題來說,這是必要的。4. 描述了一種關(guān)系:模式并不僅僅描述模塊,它給出更深層的系統(tǒng)結(jié)構(gòu)和機(jī)理。5. 模式有重要的人為因素:所有的軟件服務(wù)于人類的舒適或生活質(zhì)量,而最好的模式追求它的實(shí)用性和美學(xué)。設(shè)計(jì)模式的基本成分 1. 模式名稱 2. 針對的問題 3. 解決方案 4. 后果 a整體部分模式(1)概述整體部分模式是支持組件結(jié)構(gòu)化分解的設(shè)計(jì)模式;整體是完成某項(xiàng)功能的組件(部分)的封裝,整體對外提供接口,不允許直接訪問整體內(nèi)的組件(部分);整體部分模式的3種組織方式1. 組裝部分關(guān)系所有的組成部分根據(jù)組裝的內(nèi)部結(jié)構(gòu)集成在一起,部分之間強(qiáng)相關(guān);2. 容器內(nèi)容關(guān)系容器是對象的集合,部分之間弱相關(guān);3. 收集成員關(guān)系將相似的對象組合在一起。(2) 設(shè)計(jì)方法B “自頂而下”的方法F 首先設(shè)計(jì)整體功能,及其接口;F 將整體功能分解成若干個(gè)方法或功能模塊。B “自下而上”的方法F 每一項(xiàng)小的功能設(shè)計(jì)成一個(gè)方法或一個(gè)功能模塊;F 再設(shè)計(jì)一些組件使功能模塊連接起來,形成部分;F 將部分整合,并設(shè)計(jì)對外接口,形成整體。整體部分的優(yōu)點(diǎn)B 部分的可更改性;B 事務(wù)分離,實(shí)現(xiàn)復(fù)雜問題簡單化;B 可重用性。整體部分的缺點(diǎn)B 效率較低;B 分工協(xié)作困難;B 分解過程復(fù)雜。B主控從屬模式(1)概述B 主控從屬模式主要用于分布式系統(tǒng)或多CPU系統(tǒng);B 主控從屬模式是主控將總?cè)蝿?wù)分成若干個(gè)獨(dú)立的子任務(wù),分配給具有相同功能的從屬組件;B 主控提供基本的控制策略,從屬完成具體的功能;B 主控從屬模式的關(guān)鍵技術(shù)是任務(wù)的劃分和任務(wù)的分配算法(負(fù)載平衡)。B 主控從屬模式的任務(wù)的劃分和任務(wù)的分配對客戶透明;B 主控從屬模式主要應(yīng)用于如下領(lǐng)域:F 分布式系統(tǒng)F 并行計(jì)算F 精確計(jì)算(2)主控從屬模式的動(dòng)態(tài)行為 主控從屬模式的優(yōu)點(diǎn)B 可擴(kuò)充性B 可互換性B 高效率B 事務(wù)分離主控從屬模式的缺點(diǎn)B 可行性差B 過分依賴硬件B 算法設(shè)計(jì)困難c代理(Proxy)模式(1)概述B 代理模式是一種對組件進(jìn)行訪問控制和保護(hù)的模式;B 如果應(yīng)用程序不能直接訪問組件,代理程序在應(yīng)用程序和組件之間建立橋梁;B 如果組件需要保護(hù),代理程序在應(yīng)用程序和組件之間設(shè)置訪問控制;B 代理模式主要應(yīng)用于如下3種情況:F 被訪問對象的資源由于地域、運(yùn)行開銷、權(quán)限等因素的限制,不能對對象進(jìn)行操作;F 被訪問對象復(fù)雜多變,代理程序起到分析、決策、組織和協(xié)調(diào)作用,為應(yīng)用程序提供接口;F 解決安全問題。(2)代理模式的動(dòng)態(tài)行為代理模式的優(yōu)點(diǎn)B 將服務(wù)組件與客戶程序分離,安全,可靠,可擴(kuò)充,易變更;B 事務(wù)分離,減輕了客戶程序的負(fù)擔(dān),使客戶程序更為簡單;B 可重用,降低成本。代理模式的缺點(diǎn)B 降低了效率;B 增加了軟件的復(fù)雜性;B 降低了客戶程序的能力。D發(fā)送接收模式(1)概述B 發(fā)送接收模式是一種對等交互模型的軟件系統(tǒng)模式,這種模式提供位置透明、進(jìn)程透明的進(jìn)程間通信;B 發(fā)送接收模式引入發(fā)送器和接收器,使對等交互實(shí)體從低層通信機(jī)制中隔離出來;B 發(fā)送接收模式降低組件之間的耦合性;B 發(fā)送接收模式往往引入中間件,實(shí)現(xiàn)透明性。B 發(fā)送接收模式由3種構(gòu)件組成:F 對等體負(fù)責(zé)完成應(yīng)用任務(wù)F 發(fā)送器負(fù)責(zé)發(fā)送跨進(jìn)程的消息,IPC(Inter-process communication )接口,IPC機(jī)制F 接收器負(fù)責(zé)接收消息, IPC接口,IPC機(jī)制發(fā)送接收模式的優(yōu)點(diǎn)B 有效的進(jìn)程間的通信;B 可擴(kuò)充、可變更、可移植、可重用;B 透明性。發(fā)送接收模式的缺點(diǎn)B 可靠性差的無法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論