第7章 軟件體系結(jié)構(gòu)風(fēng)格與設(shè)計(jì)模式.ppt_第1頁(yè)
第7章 軟件體系結(jié)構(gòu)風(fēng)格與設(shè)計(jì)模式.ppt_第2頁(yè)
第7章 軟件體系結(jié)構(gòu)風(fēng)格與設(shè)計(jì)模式.ppt_第3頁(yè)
第7章 軟件體系結(jié)構(gòu)風(fēng)格與設(shè)計(jì)模式.ppt_第4頁(yè)
第7章 軟件體系結(jié)構(gòu)風(fēng)格與設(shè)計(jì)模式.ppt_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第七章軟件體系結(jié)構(gòu)樣式和設(shè)計(jì)模式、1、前言、1、軟件體系結(jié)構(gòu)是軟件工程的重要研究?jī)?nèi)容2、軟件體系結(jié)構(gòu)設(shè)計(jì)是軟件開(kāi)發(fā)的核心部分,是軟件質(zhì)量的重要保證。3.軟件體系結(jié)構(gòu)已經(jīng)成為一個(gè)重要的研究方向和獨(dú)立的科系分支。4、軟件體系結(jié)構(gòu)明確說(shuō)明和分析軟件的整體結(jié)構(gòu),并用于指導(dǎo)軟件的后續(xù)開(kāi)發(fā)。5.模式的本質(zhì):可解決和重復(fù)使用的解決方案、內(nèi)容、7.1基本概念7.2軟件體系結(jié)構(gòu)說(shuō)明語(yǔ)言7.3軟件體系結(jié)構(gòu)樣式7.4設(shè)計(jì)模式、基本概念、軟件設(shè)計(jì)模式:廣義定義:可解決和重復(fù)使用軟件問(wèn)題的軟件設(shè)計(jì)方案的狹義定義:設(shè)計(jì)模式是在特定方案中用于解決一般設(shè)計(jì)問(wèn)題的類(lèi)和對(duì)象級(jí)別說(shuō)明的可重復(fù)使用的軟件設(shè)計(jì)問(wèn)題解決方案?;靖拍?,軟

2、件體系結(jié)構(gòu)樣式:組件和連接器層中介紹的可重復(fù)使用的軟件設(shè)計(jì)問(wèn)題解決方案。基本概念,共性和差異:差異:1,設(shè)計(jì)模式在類(lèi)和對(duì)象級(jí)別說(shuō)明問(wèn)題,粒度較小。2、體系結(jié)構(gòu)風(fēng)格是在組件和連接器級(jí)別說(shuō)明問(wèn)題,粒度大。建筑風(fēng)格是廣泛的設(shè)計(jì)模式。通用性:全部可重復(fù)使用的軟件設(shè)計(jì)問(wèn)題解決、內(nèi)容、1.1基本概念1.2軟件體系結(jié)構(gòu)說(shuō)明語(yǔ)言1.3軟件體系結(jié)構(gòu)樣式1.4設(shè)計(jì)模式、軟件體系結(jié)構(gòu)說(shuō)明語(yǔ)言、軟件體系結(jié)構(gòu)說(shuō)明語(yǔ)言體系結(jié)構(gòu)說(shuō)明語(yǔ)言architectural description language,ADL是描述軟件密集型系統(tǒng)的完整體系結(jié)構(gòu)說(shuō)明語(yǔ)言、寫(xiě)意圖Wright ADL“組件”(Component)“連接器”(c

3、onnector)“通信端口”(Ports)“組件規(guī)范”(Component-spec)“計(jì)算”(Computation)“配置”(Connector) 圖形體系結(jié)構(gòu)說(shuō)明語(yǔ)言GADL調(diào)用實(shí)例的GADL體系結(jié)構(gòu)說(shuō)明協(xié)議類(lèi)圖和序列圖表GADL語(yǔ)言使用組件、類(lèi)圖表、序列圖表等說(shuō)明系統(tǒng)的軟件體系結(jié)構(gòu),行為的說(shuō)明GADL使用順序圖,而Wright使用代數(shù)CSP。內(nèi)容,1.1基本概念1.2軟件體系結(jié)構(gòu)說(shuō)明語(yǔ)言1.3軟件體系結(jié)構(gòu)樣式1.4設(shè)計(jì)模式、軟件體系結(jié)構(gòu)樣式、組件和連接器層中介紹的可重用軟件設(shè)計(jì)問(wèn)題解決管道/過(guò)濾器樣式層次結(jié)構(gòu)樣式客戶(hù)/服務(wù)器樣式、核心特征、應(yīng)用的場(chǎng)景、需要注意的問(wèn)題、(1)管道/過(guò)濾

4、器樣式、案例分析:計(jì)算a.txt中的字?jǐn)?shù),打?。簊hell命令:“cat a.txt |計(jì)算輸入流中的字?jǐn)?shù),輸出3配置圖表命令用于組件,管道用于連接器,(1)管道/過(guò)濾器樣式,實(shí)例解析:shell命令:“CAT a.txt | WC-實(shí)例解析:shell命令:”cat a.txt | WC-w | lpr”其他常見(jiàn)應(yīng)用節(jié)目:編譯器、信號(hào)處理等其他說(shuō)明:牙齒模型在實(shí)施中可能會(huì)有很多其他變化,如主動(dòng)和被動(dòng)、多出口管道等。、(2)層次結(jié)構(gòu)樣式;實(shí)例解析:數(shù)據(jù)庫(kù)系統(tǒng);(2)層次結(jié)構(gòu)樣式;實(shí)例解析:數(shù)據(jù)庫(kù)系統(tǒng);數(shù)據(jù)庫(kù)服務(wù)通信端口db;(2)層次結(jié)構(gòu)樣式;特征:從外部提供服務(wù)的組件開(kāi)始;牙齒設(shè)計(jì)風(fēng)格容易分

5、解復(fù)雜的系統(tǒng)。此外,更換零部件也很容易。只要界面保持一致,就可以更換一個(gè)級(jí)別的軟件,而不會(huì)影響系統(tǒng)的其他部分。、(2)分層樣式,其他常見(jiàn)應(yīng)用程序:開(kāi)放系統(tǒng)互連(OSI) 7層網(wǎng)絡(luò)模型,Windows NT操作系統(tǒng)的內(nèi)核結(jié)構(gòu)。、(2)分層樣式,其他說(shuō)明:優(yōu)點(diǎn)是結(jié)構(gòu)明確、可替換性好、易于控制復(fù)雜性。但是也有缺點(diǎn),例如效率低下。換句話(huà)說(shuō),分層中較高層的數(shù)據(jù)將分層傳遞和傳遞,從而降低系統(tǒng)效率。、(3)客戶(hù)/服務(wù)器樣式,案例分析:FTP系統(tǒng)、(3)客戶(hù)/服務(wù)器樣式,特征這些樣式被廣泛使用,因?yàn)樗鼈兗辛朔?wù)功能的實(shí)現(xiàn)并促進(jìn)了系統(tǒng)的實(shí)現(xiàn)。(3)客戶(hù)/服務(wù)器樣式和其他常見(jiàn)應(yīng)用程序:電子郵件系統(tǒng)、WWW系統(tǒng)、

6、telnet系統(tǒng)、CVS版本控制系統(tǒng)等;數(shù)據(jù)庫(kù)服務(wù)器可以為多個(gè)瀏覽器實(shí)例提供服務(wù),并為CVS系統(tǒng)提供服務(wù)。(3)客戶(hù)/服務(wù)器風(fēng)格,其他說(shuō)明:在客戶(hù)/服務(wù)器風(fēng)格系統(tǒng)中,服務(wù)器通過(guò)集中資源和計(jì)算,很容易成為存儲(chǔ)和計(jì)算瓶頸,實(shí)際應(yīng)用程序可以采用群集處理,以提高服務(wù)器性能。與此同時(shí),這些系統(tǒng)容易受到拒絕服務(wù)攻擊,因此必須針對(duì)設(shè)計(jì)和應(yīng)用程序的用途進(jìn)行考慮。(David assell、Northern Exposure(美國(guó)電視電視劇)、Northern Exposure(美國(guó)電視電視劇)、Northern Exposure(電視),牙齒風(fēng)格的系統(tǒng)經(jīng)常需要在服務(wù)器中存儲(chǔ)更多客戶(hù)的狀態(tài)信息,因此大量使用并行

7、執(zhí)行技術(shù),如多進(jìn)程、多線(xiàn)程等。)。這還包括進(jìn)程、線(xiàn)程的動(dòng)態(tài)生成、調(diào)度、刪除等問(wèn)題。這些問(wèn)題的好壞直接影響服務(wù)器的性能。內(nèi)容、1.1基本概念1.2軟件體系結(jié)構(gòu)說(shuō)明語(yǔ)言1.3軟件體系結(jié)構(gòu)樣式1.4設(shè)計(jì)模式、設(shè)計(jì)模式、文檔7-2中的23種設(shè)計(jì)模式,并將它們分為三種茄子類(lèi)型:生成設(shè)計(jì)模式、結(jié)構(gòu)設(shè)計(jì)模式和行為設(shè)計(jì)模式。,設(shè)計(jì)模式,工廠(chǎng)方法Abstract Factory Singleton Composite Proxy Iterator(1)Factory Method,動(dòng)機(jī)和示例:“龍珠”游戲,魔術(shù)管道:彈球(,(1) Factory Method,動(dòng)機(jī)和案例:“龍珠”游戲-設(shè)計(jì)2,newball動(dòng)

8、作包虛擬函數(shù)MakeBallFactoryMethod子類(lèi)(描述各種馬力管道)此時(shí),如果每種類(lèi)型的小實(shí)體的說(shuō)明構(gòu)成了類(lèi)層次結(jié)構(gòu),則可以使用工廠(chǎng)方法模式將每種類(lèi)型的大實(shí)體也描述為類(lèi)層次結(jié)構(gòu)。(1)工廠(chǎng)方法;結(jié)構(gòu):(1)工廠(chǎng)方法;核心思想摘要:將父類(lèi)中的對(duì)象創(chuàng)建任務(wù)打包為虛擬函數(shù)。通過(guò)在子類(lèi)中復(fù)蓋虛擬函數(shù)創(chuàng)建的對(duì)象,間接自定義公共行為。虛擬函數(shù)的多態(tài)機(jī)制允許父類(lèi)集中描述公共行為,并從子類(lèi)中提取特殊行為(其他對(duì)象的創(chuàng)建)。(2) Abstract Factory、動(dòng)機(jī)和示例:魔法管線(xiàn)。在前面的設(shè)計(jì)中,三個(gè)MakeBallFactoryMethod工廠(chǎng)方法分布在三個(gè)MagicPipe類(lèi)中。為了降低復(fù)雜

9、性,可以單獨(dú)考慮所有生成行為。換句話(huà)說(shuō),創(chuàng)建球的行為是通過(guò)形成單獨(dú)的工廠(chǎng)類(lèi)來(lái)創(chuàng)建對(duì)象。(2) Abstract Factory、動(dòng)機(jī)和實(shí)例:設(shè)計(jì)3、(2) Abstract Factory、動(dòng)機(jī)和實(shí)例:設(shè)計(jì)4、球、長(zhǎng)方體和其他小實(shí)體,抽象工廠(chǎng)類(lèi)專(zhuān)門(mén)創(chuàng)建各種小實(shí)體(2) Abstract Factory,如果適用:如果需要?jiǎng)?chuàng)建多種樣式的小實(shí)體集,并且可以靈活地調(diào)整特定的創(chuàng)建方法,則可以使用Abstract Factory方案將公共創(chuàng)建行為描述為抽象類(lèi),并將特定創(chuàng)建方法描述為該抽象類(lèi)的子類(lèi)。(2) Abstract Factory,結(jié)構(gòu):(2) Abstract Factory,核心思想摘要:提取

10、需要?jiǎng)?chuàng)建以提供靈活性的同一樣式的小型實(shí)體組的一般特征,并將其描述為一組抽象產(chǎn)品類(lèi),從而使BigEntity和特定產(chǎn)品特性具有特定的生成行為和特定的產(chǎn)品特性、(3) Singleton、動(dòng)機(jī)和實(shí)例:日志記錄功能,通常應(yīng)用程序節(jié)目中只需要一個(gè)日志實(shí)例。實(shí)施方案1,(3) Singleton,實(shí)施方案1,(3) Singleton,實(shí)施方案1,(3) Singleton,實(shí)施方案1:通常只需要兩個(gè)茄子缺陷(如果只有一個(gè)日志文件),這樣做g,(3) Singleton,實(shí)施方案2:使用Singleton模式,(3) Singleton,實(shí)施方案2:使用Singleton模式,(3) Singleton

11、,實(shí)施方案2:,(3) Singleton,結(jié)構(gòu):如果需要確定只有一個(gè)實(shí)例的類(lèi)是否為Singleton,則類(lèi)Singleton將設(shè)置靜態(tài)成員函數(shù),以創(chuàng)建自己的實(shí)例,并提供外部訪(fǎng)問(wèn)接口。(4) Composite、動(dòng)機(jī)和案例:幻燈片制作軟件。一張幻燈片可以有多種元對(duì)象,如文本框、圖形、圖像、影片和聲音。圖元具有重復(fù)組合性質(zhì)。(4) Composite,如果適用:如果需要說(shuō)明的對(duì)象具有“重復(fù)組合”要素,并且您希望用戶(hù)忽略主對(duì)象和合并對(duì)象之間的差異,則適用此選項(xiàng)。結(jié)構(gòu):(4) Composite,核心思想摘要:提供表示基礎(chǔ)對(duì)象和組合對(duì)象中所有對(duì)象的公共抽象超類(lèi),并通過(guò)建立從該抽象超類(lèi)到組合對(duì)象類(lèi)的聚

12、集關(guān)聯(lián)間接設(shè)置“遞歸組合”特性。(5)代理、動(dòng)機(jī)和實(shí)例:網(wǎng)絡(luò)中間件。在這些程序中,實(shí)際工作的對(duì)象可以在與客戶(hù)端應(yīng)用程序不同的地址空間中在遠(yuǎn)程主機(jī)上運(yùn)行。為了方便編程,使用了很多代理模式。設(shè)定代理主機(jī)物件:與Server物件相同的介面,與Client物件位于相同的系統(tǒng)、相同的位址空間,而且所有傳送的工作要求最終都會(huì)傳送Server物件。使客戶(hù)端對(duì)象的設(shè)計(jì)開(kāi)發(fā)變得容易。與本地編程一樣,網(wǎng)絡(luò)交互的許多細(xì)節(jié)集中在代理對(duì)象實(shí)現(xiàn)上。(5)代理,如果適用:在上例中,代理模式屬于“遠(yuǎn)程代理”,因?yàn)樵撃J接糜谧柚咕W(wǎng)絡(luò)交互細(xì)節(jié)和使遠(yuǎn)程訪(fǎng)問(wèn)透明。為了提高性能和減少開(kāi)銷(xiāo),有時(shí)會(huì)設(shè)置“虛擬代理”,例如文檔文件的圖像代理

13、。牙齒代理僅說(shuō)明有關(guān)映像位置、大小等的基本信息。特定圖像檔案詳細(xì)信息僅在需要時(shí)創(chuàng)建和描述實(shí)際圖像對(duì)象。此外,如果訪(fǎng)問(wèn)的目標(biāo)的內(nèi)部結(jié)構(gòu)復(fù)雜,需要智能分析、決策和協(xié)調(diào),則可以使用“智能代理”來(lái)阻止智能醫(yī)生決策(如“調(diào)度”代理)的細(xì)節(jié)。也就是說(shuō),根據(jù)多家航空公司的預(yù)訂服務(wù),可以智能地選擇符合用戶(hù)要求的預(yù)訂體系。(5)代理、結(jié)構(gòu)、(5)代理、核心思想摘要:創(chuàng)建具有相同接口的代理對(duì)象,然后將操作請(qǐng)求轉(zhuǎn)發(fā)給實(shí)際對(duì)象,以便向客戶(hù)隱藏“轉(zhuǎn)發(fā)流程”詳細(xì)信息(如遠(yuǎn)程網(wǎng)絡(luò)交互、智能),設(shè)計(jì)方案1,(6) Iterator、動(dòng)機(jī)和實(shí)例:橫向支持列表設(shè)計(jì)。設(shè)計(jì)情景1問(wèn)題:首先,牙齒設(shè)計(jì)只能說(shuō)明一種茄子橫移方法,例如向前或向后橫移,但不能同時(shí)說(shuō)明多種橫移方法。也許你認(rèn)為列

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論