對(duì)幾種常見(jiàn)軟件體系結(jié)構(gòu)模型的思考_第1頁(yè)
對(duì)幾種常見(jiàn)軟件體系結(jié)構(gòu)模型的思考_第2頁(yè)
對(duì)幾種常見(jiàn)軟件體系結(jié)構(gòu)模型的思考_第3頁(yè)
對(duì)幾種常見(jiàn)軟件體系結(jié)構(gòu)模型的思考_第4頁(yè)
對(duì)幾種常見(jiàn)軟件體系結(jié)構(gòu)模型的思考_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、    對(duì)幾種常見(jiàn)軟件體系結(jié)構(gòu)模型的思考    陳巖本文通過(guò)介紹幾種軟件開發(fā)中常見(jiàn)軟件體系結(jié)構(gòu)模型,以及對(duì)幾種模型進(jìn)行分析比較,從而為軟件開發(fā)過(guò)程中軟件體系結(jié)構(gòu)的選擇提供一些思路,并減少一些開發(fā)軟件過(guò)程中的風(fēng)險(xiǎn)?!娟P(guān)鍵詞】軟件體系結(jié)構(gòu) 結(jié)構(gòu)模型 管道過(guò)濾器 mvc模型計(jì)算機(jī)應(yīng)用越來(lái)越廣泛和深入,計(jì)算機(jī)軟件規(guī)模和種類也變得更為復(fù)雜和多樣化。在軟件開發(fā)過(guò)程中,設(shè)計(jì)開發(fā)人員所要考慮的,不僅僅是系統(tǒng)的功能需求,還要更多的考慮軟件后期維護(hù)和升級(jí)等問(wèn)題,因此軟件體系結(jié)構(gòu)的設(shè)計(jì)選擇對(duì)于一個(gè)軟件開發(fā)過(guò)程十分重要。自軟件體系機(jī)構(gòu)出現(xiàn)以來(lái),其結(jié)構(gòu)、模式也在不斷變化與發(fā)展,目

2、前,有幾種比較常見(jiàn)的軟件體系結(jié)構(gòu)模型,本文就對(duì)這幾種常見(jiàn)的結(jié)構(gòu)模型進(jìn)行介紹以及對(duì)它們進(jìn)行簡(jiǎn)單的比較分析。1 層次體系結(jié)構(gòu)模型層次體系結(jié)構(gòu)模型是一種非常常見(jiàn)的體系結(jié)構(gòu)模型,它的基本思想是將系統(tǒng)在水平方向上劃分為多個(gè)抽象層次,中間層(第一層和最后一層除外)既服務(wù)于上層,又被下層服務(wù)。此外,層次之間的通信既可以相鄰層次間進(jìn)行,也可以通過(guò)協(xié)議隔層進(jìn)行。使用最為廣泛的分層體系結(jié)構(gòu)是分層通信協(xié)議,我們常用的tcp/ip網(wǎng)絡(luò)就是這種模型。這種結(jié)構(gòu)下,與上層的通信都依靠于每一層的一個(gè)抽象功能,低層通信定義在低層次上,一般來(lái)講,最底層與物理層次相連,其他常見(jiàn)的和最底層連接的有底層數(shù)據(jù)庫(kù)連接或者操作系統(tǒng)連接。分層

3、體系結(jié)構(gòu)非常常見(jiàn),優(yōu)點(diǎn)也非常明顯,有以下幾點(diǎn):(1)抽象程度遞增。分層體系結(jié)構(gòu)中每層的抽象程度不一樣,遞增的設(shè)計(jì)能夠使得系統(tǒng)的復(fù)雜程度更為容易被軟件開發(fā)設(shè)計(jì)人員理解和掌握,從而按照復(fù)雜程度分解其功能。(2)支持系統(tǒng)功能增強(qiáng)。由于通信交互通常發(fā)生在每層和上下層之間,對(duì)于軟件的全局相對(duì)來(lái)說(shuō)更容易把握,因此在面對(duì)需求變化或者軟件需要升級(jí)時(shí),就可以通過(guò)在某一層修改功能或者增加功能來(lái)實(shí)現(xiàn)。(3)支持功能復(fù)用。一般來(lái)說(shuō),對(duì)于服務(wù)接口的定義不會(huì)變,因此,不同接口實(shí)現(xiàn)之間交換使用就可以在同一層進(jìn)行。通常,會(huì)定義一個(gè)標(biāo)準(zhǔn)接口的不同實(shí)現(xiàn)方法。層次結(jié)構(gòu)模型也有以下幾個(gè)缺點(diǎn):(1)更改層麻煩。修改底層對(duì)高層產(chǎn)生影響時(shí)

4、,則此底層的上層都需要進(jìn)行修改。(2)效率低。層次之間的通信需要進(jìn)行各種參數(shù)的傳遞與轉(zhuǎn)換;高層對(duì)于底層的一些執(zhí)行并不需要等。(3)層次的粒度難以確定。2 管道與過(guò)濾器結(jié)構(gòu)模型過(guò)濾器為功能模塊,功能模塊之間的連接(數(shù)據(jù)流的輸入輸出)為通道,兩者共同組成了管道與過(guò)濾器結(jié)構(gòu)模型。功能模塊間相互獨(dú)立,即過(guò)濾器不需要進(jìn)行狀態(tài)之間的交互為管道過(guò)濾器模型的一個(gè)重要的特性,其中,若輸入輸出發(fā)生在任兩個(gè)過(guò)濾器之間則兩個(gè)過(guò)濾器可以連接使用。管道過(guò)濾器結(jié)構(gòu)同時(shí)也限制了輸入輸出格式,因此在交互式應(yīng)用中,這種模式是不適用的。其中,常見(jiàn)的管道過(guò)濾器模型應(yīng)用之一就是編譯器系統(tǒng)。管道過(guò)濾器模型有以下幾個(gè)優(yōu)點(diǎn):(1)中間件可以

5、不再使用,同時(shí)也支持使用中間件。(2)靈活性增加。過(guò)濾器之間可以進(jìn)行靈活的連接使用,組件的重用性提高。(3)效率提高??梢赃M(jìn)行并行處理。管道與過(guò)濾器結(jié)構(gòu)模型也有以下幾個(gè)缺點(diǎn):(1)信息共享問(wèn)題。組件之間狀態(tài)共享信息代價(jià)較大。(2)效率高假象。并行處理并沒(méi)有真正提高效率。(3)數(shù)據(jù)轉(zhuǎn)換增加開銷。3 面向?qū)ο蠼Y(jié)構(gòu)模型對(duì)于處理面向現(xiàn)實(shí)世界問(wèn)題的系統(tǒng),面向?qū)ο蠼Y(jié)構(gòu)模型是最為合理的選擇。在使用面向?qū)ο蟮能浖校岩磺腥鐢?shù)據(jù)、組件模塊都作為對(duì)象來(lái)處理。對(duì)象包括對(duì)象的狀態(tài)即數(shù)據(jù)以及對(duì)象的行為即操作方法,對(duì)象之間通信通過(guò)信息傳遞實(shí)現(xiàn)。在面向?qū)ο竽P椭?,?duì)用戶透明,即用戶不需要知道對(duì)象內(nèi)部狀態(tài),只需要知道功能及

6、其使用,因而將軟件系統(tǒng)開發(fā)周期和難度盡量減少。面向?qū)ο蠼Y(jié)構(gòu)模型有以下優(yōu)點(diǎn):(1)對(duì)象封裝。用戶不必完全了解對(duì)象的數(shù)據(jù)狀態(tài),開發(fā)中可以減少難度和減少時(shí)間周期。(2)對(duì)象繼承。繼承提高了為代碼的復(fù)用性,減少開發(fā)人員工作量和后期維護(hù)等工作量。(3)錯(cuò)誤修改方便。對(duì)象出現(xiàn)錯(cuò)誤,修改此對(duì)象即可,不需要對(duì)其他對(duì)象進(jìn)行修改。面向?qū)ο蠼Y(jié)構(gòu)模型有以下缺點(diǎn):(1)交互要求高。對(duì)象間進(jìn)行交互通過(guò)過(guò)程調(diào)用進(jìn)行,調(diào)用對(duì)象則是通過(guò)對(duì)象標(biāo)識(shí)來(lái)作為通信媒介。(2)修改繁瑣。對(duì)象通過(guò)標(biāo)識(shí)符標(biāo)識(shí),若對(duì)象的標(biāo)識(shí)符修改了,則必須修改對(duì)對(duì)象的所有實(shí)例,同時(shí)需要解決標(biāo)識(shí)符修改帶來(lái)的副作用。4 mvc體系結(jié)構(gòu)模型mvc體系結(jié)構(gòu)(model

7、visualcontroller即模型視圖控制器體系結(jié)構(gòu))也是當(dāng)今應(yīng)用十分廣泛的交互界面結(jié)構(gòu)模型。模型、視圖和控制器是mvc結(jié)構(gòu)模型的三個(gè)組成部分,它強(qiáng)制性地將軟件的輸入輸出以及處理三個(gè)部分分開進(jìn)行,每個(gè)部分相互獨(dú)立,從而使得圖形化用戶交互更為方便。比如,可以使用mvc結(jié)構(gòu)模型構(gòu)建拍賣系統(tǒng),使得處理結(jié)果更為直觀。mvc體系結(jié)構(gòu)模型的優(yōu)點(diǎn)如下:(1)模式復(fù)用性。對(duì)于同一個(gè)模型,可以有多個(gè)視圖進(jìn)行任務(wù)處理。同一個(gè)模式可以開發(fā)多個(gè)應(yīng)用程序框架。(2)視圖靈活??梢詫⒁晥D同步化,同時(shí)可以將視圖和控制器插入。(3)控制器和視圖聯(lián)系緊密。mvc體系結(jié)構(gòu)模型的缺點(diǎn)如下:(1)系統(tǒng)開發(fā)復(fù)雜性增加。同時(shí)增加了后

8、期維護(hù)以及升級(jí)更多的更新因素。(2)高耦合。模型、視圖和控制器之間耦合過(guò)于緊密,修改維護(hù)工作量大。(3)效率低。視圖中的數(shù)據(jù)訪問(wèn)效率較低。5 結(jié)束語(yǔ)軟件開發(fā)與以往相比,軟件算法和數(shù)據(jù)結(jié)構(gòu)已經(jīng)不再是最為重要的部分,軟件開發(fā)中軟件體系結(jié)構(gòu)模型的選擇才是目前適應(yīng)軟件開發(fā)最重要的關(guān)注點(diǎn)。軟件體系結(jié)構(gòu)模型的選擇已經(jīng)成為整個(gè)軟件系統(tǒng)是否能成功開發(fā)的基礎(chǔ),通過(guò)軟件體系結(jié)構(gòu)模型,可以對(duì)系統(tǒng)開發(fā)中項(xiàng)目可行性、開發(fā)周期、功能需求分析、項(xiàng)目復(fù)雜程度和風(fēng)險(xiǎn)預(yù)測(cè)等進(jìn)行估計(jì)預(yù)測(cè)。從上文對(duì)層次體系結(jié)構(gòu)模型、管道與過(guò)濾器結(jié)構(gòu)模型、面向?qū)ο蠼Y(jié)構(gòu)模型和mvc體系結(jié)構(gòu)模型四種軟件體系結(jié)構(gòu)模型進(jìn)行簡(jiǎn)單的總結(jié)介紹以及對(duì)其優(yōu)缺點(diǎn)分析,可以發(fā)現(xiàn)每種體系結(jié)構(gòu)都不可避免的在不同方面有強(qiáng)點(diǎn)或者弱點(diǎn),在實(shí)際軟件開發(fā)中,需要根據(jù)項(xiàng)目實(shí)際情況綜合分析,從而選用恰當(dāng)合理的軟件體系結(jié)構(gòu)模型,使得軟件開效率和質(zhì)量都有所提高。參考文獻(xiàn)1楊志明.幾種常見(jiàn)軟件體系結(jié)構(gòu)模型的分析j.計(jì)算機(jī)工程與設(shè)計(jì),2004(08):1326-1328.2田潤(rùn)芙,楊旭.常見(jiàn)軟件體系結(jié)構(gòu)分析j.網(wǎng)絡(luò)財(cái)富,2010(01):160-161.3侯彬,張立臣.基于中間層的軟件體系結(jié)構(gòu)模型j.電子設(shè)計(jì)工程,2010(11):1-3.作者單位安徽電子工程學(xué)校 安徽省蚌埠市 233010 電子技

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論