軟件體系結(jié)構(gòu)風(fēng)格論文_第1頁
軟件體系結(jié)構(gòu)風(fēng)格論文_第2頁
軟件體系結(jié)構(gòu)風(fēng)格論文_第3頁
軟件體系結(jié)構(gòu)風(fēng)格論文_第4頁
軟件體系結(jié)構(gòu)風(fēng)格論文_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件體系結(jié)構(gòu)課程設(shè)計學(xué)院:班級:學(xué)號:姓名:指導(dǎo)教師:一.軟件體系結(jié)構(gòu)的定義:軟件體系結(jié)構(gòu)是具有一定形式的結(jié)構(gòu)化元素,即構(gòu)件的集合,包括處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件。處理構(gòu)件負責(zé)X®蝴進行加工,數(shù)據(jù)構(gòu)件是被加工的信息,連接構(gòu)件把體系結(jié)構(gòu)的不同部分組組合連接起來。這一定義注重區(qū)分處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件,這一方法在其他的定義和方法中基本上得到保持。二.軟件體系結(jié)構(gòu)的分類一個小型的軟件可能具有一種軟件體系結(jié)構(gòu),而大型的軟件一般由多種軟件體系結(jié)構(gòu)組成,軟件體系結(jié)構(gòu)沒有定性的說只有幾種風(fēng)格,但是經(jīng)過長期的大型軟件設(shè)計與分析,人們總結(jié)出了一些最為常用的軟件體系結(jié)構(gòu)風(fēng)格,分別是:(1).數(shù)據(jù)

2、流風(fēng)格:批處理風(fēng)格;管道過濾器。(2),調(diào)用返回風(fēng)格:主程序子程序;面向?qū)ο箫L(fēng)格;分層風(fēng)格。(3),獨立構(gòu)件風(fēng)格:進程通訊;事件系統(tǒng)。(4).虛擬機風(fēng)格:解釋器;基于規(guī)則的系統(tǒng)。(5),倉庫風(fēng)格:數(shù)據(jù)庫系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)。1 .數(shù)據(jù)流風(fēng)格:數(shù)據(jù)流風(fēng)格的體系結(jié)構(gòu)中,我們可以在系統(tǒng)中找到非常明顯的數(shù)據(jù)流,處理過程通常在數(shù)據(jù)流的路線上自頂向下、逐步求精”,并且,處理過程依賴于執(zhí)行過程,而不是數(shù)據(jù)到來的順序。1.1 批處理風(fēng)格:批處理風(fēng)格。批處理序列的每一步處理都是獨立的,并且每一步是順序執(zhí)行的,只有當前一步處理完后,后一步處理才能開始,數(shù)據(jù)傳送在步與步之間作為一個整體。批處理的典型應(yīng)用是經(jīng)典

3、數(shù)據(jù)處理和程序開發(fā)。批處理風(fēng)格與管道過濾器風(fēng)格的共同點是把任務(wù)分解成一系列固定J順序的計算單元(組件),組件間只通過數(shù)據(jù)傳遞交互。區(qū)別表現(xiàn)在以下幾個方面:批處理是全部的、高潛伏性的、輸入時可隨機存取、無合作性、無交互性,管道過、濾器是遞增的、數(shù)據(jù)結(jié)果延遲小、輸入時處理局部化、有反饋、可交互。1.2 管道過濾器:在管道/過濾器風(fēng)格的軟件體系結(jié)構(gòu)中,每個組件都有一組輸入和輸出,組件讀輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。這個過程通常通過對輸入流的變換及增吊計算來完成,所以在輸入被完全消費之前,輸出便產(chǎn)生了。因此,這里的組件被稱為過濾器,這種風(fēng)格的連接器就象是數(shù)據(jù)流傳輸?shù)墓艿?將一個過濾器

4、的輸出傳到另濾器的輸入。此風(fēng)格特別重要的過濾器必須是獨立的實體,它不能與其它的過濾器共享數(shù)據(jù),而且一個過濾器不知道它上游和下游的標識。一個管道/過濾器網(wǎng)絡(luò)輸出的正確性并不依賴于過濾器進行增吊計算過程的順序。編譯器系統(tǒng)就具備典型的管道系統(tǒng)風(fēng)格的體系結(jié)構(gòu)。在該系統(tǒng)中,一個階段(包括詞法分析、語法分析、語義分析和代碼生成)的輸出是另一個階段的輸入。管逾a濾器風(fēng)格的軟件體系結(jié)構(gòu)具有許多很好的特點:使得軟組件具有良好的隱蔽性和高內(nèi)聚、低耦合的特點;允許設(shè)乃將整個系統(tǒng)的輸入/輸出行為看成是多個過濾器的行為的簡單合成;(3)支持軟件復(fù)用。(4)系統(tǒng)維護和增強系統(tǒng)性能簡單。新的過濾器可以添加到現(xiàn)有系統(tǒng)中來;舊

5、的可以被改進的過濾器替換掉;(5)允許對一些如吞吐量、死鎖等屬性的分析;(6)支持并行執(zhí)行。每個過濾器是作為一個單獨的任務(wù)完成,因此可與其它任務(wù)并行執(zhí)行。這比下面將要闡述的一種主-子程序風(fēng)格”的單線程操作要靈活得多。這種系統(tǒng)結(jié)構(gòu)的弱點是:(1)通常導(dǎo)致進程成為批處理的結(jié)構(gòu)。這是因為雖然過濾器可增量式地處理數(shù)據(jù),但它們是獨立的,所以設(shè)計者必須將每個過濾器看成一個完整的從輸入到輸出的轉(zhuǎn)換。(2)不適合處理交互的應(yīng)用。當需要增量地顯示改變時,這個問題尤為嚴重。(3)因為在數(shù)據(jù)傳輸上沒有通用的標準,每個過濾器都增加了解析和合成數(shù)據(jù)的工作,這樣就導(dǎo)致了系統(tǒng)性能下降,并增加了編寫過濾器的復(fù)雜性。2.調(diào)用返

6、回風(fēng)格:調(diào)用/返回風(fēng)格的體系結(jié)構(gòu)在過去的30年之間占有重要的地位,是大型軟件開發(fā)中的主流風(fēng)格的體系結(jié)構(gòu)。這類系統(tǒng)中呈現(xiàn)出比較明顯的調(diào)用感回的關(guān)系。主程序子程序主-子程序風(fēng)格的體系結(jié)構(gòu)是一種經(jīng)典的編程范型,主要應(yīng)用在結(jié)構(gòu)化程序設(shè)計當中。這種風(fēng)格的主要目的是將程序劃分為若干個小片段,從而使程序的可更改性大大提高。主-子程序體系結(jié)構(gòu)風(fēng)格有一定的層次性,主程序位于一層,下面可以再劃級子程序,二級子程序甚至更多。需要特別注意的是主-子程序體系結(jié)構(gòu)風(fēng)格是單線程控制的。同一時刻只有一個孩子結(jié)點的子程序可以得到父親結(jié)點的控制。其特點如下:(1)由于單線程控制,計算的順序得以保障。(2)并且有用的計算結(jié)果在同一

7、時刻只會產(chǎn)生一個。(3)單線程的控制可以直接由程序設(shè)計語言來支持(4)分層推理機制:子程序的正確性與它調(diào)用的子程序的正確性有關(guān)。2.2面向?qū)ο箫L(fēng)格:目前軟件界已普遍轉(zhuǎn)向使用面向?qū)ο笙到y(tǒng),抽象數(shù)據(jù)類型概念對軟件系統(tǒng)有著重要作用。這種風(fēng)格的構(gòu)件是對象,或者說是抽象數(shù)據(jù)類型的實例。對象是一種被稱作管理者的構(gòu)件,因為它負責(zé)保持資源的完整性。對象是通過函數(shù)和過程的調(diào)用來交互的。對象風(fēng)格的體系結(jié)構(gòu)具有以下的特點:(1)對象抽象使得組件和組件之間的操作以黑箱的方式進行。(2)封裝性使得細節(jié)內(nèi)容對外部環(huán)境得以良好的隱藏。對象之間的訪問是通過方法調(diào)用來實現(xiàn)的。(3)考慮操作和屬性的關(guān)聯(lián)性,封裝完成了相關(guān)功能和屬

8、性的包裝,并由對象來對它們進行管理。(4)使用某個對象提供的服務(wù)并不需要知道W務(wù)內(nèi)部是如何實現(xiàn)的。面向?qū)ο篌w系結(jié)構(gòu)存在的問題:(1)對象之間的耦合度比較緊:為了使一個對象和另一個對象通過過程調(diào)用等進行交互,必須知道對象的標識。只要一個對象的標識改變了,就必須修改所有其他明確調(diào)用它的對象。(2)必須修改所有顯式調(diào)用它的其它對象,并消除由此帶來的一些副作用。例如A使用了對象B,C也使用了對象B,那么,C對B的使用所造成的對A的影響可能是不可預(yù)測的。分層風(fēng)格的體系結(jié)構(gòu)是斗繇統(tǒng)組織成一個層次結(jié)構(gòu),每一層為上層提供服務(wù),并作為下層的客戶端。在分層風(fēng)格的體系結(jié)構(gòu)中,一般內(nèi)部的層只對相鄰的層可見。層之間的連

9、接器(conectOr通過決定層間如何交互的協(xié)議來定義。2.3分層風(fēng)格分層風(fēng)格的體系結(jié)構(gòu):(1)支持基于抽象程度遞增的系統(tǒng)設(shè)計:使設(shè)出阿以把一個復(fù)雜系統(tǒng)按遞增的步驟進行分解;(2)支持功能增強:因為每一層至多和相鄰的上下層交互,因此功能的改變最多影響相鄰的上下層;(3)支持復(fù)用:只要提供的服務(wù)接口定義不變,同一層的不同實現(xiàn)可以交換使用。這樣,就可以定義一組標準的接口,而允許各種不同的實現(xiàn)方法。但是,分層風(fēng)格的體系結(jié)構(gòu)也有其不足之處:(1)并不是每個系統(tǒng)都可以很容易地劃分為分層風(fēng)格的體系結(jié)構(gòu),甚至即使一個系統(tǒng)的邏輯結(jié)構(gòu)是層次化的,出于對系統(tǒng)性能的考慮,系統(tǒng)設(shè)計師不得不把一些低級或高級的功育線合起

10、來;(2)很難找到一個合適的、正確的層次抽象方法。總、結(jié)一下調(diào)用/返回風(fēng)格的軟件體系結(jié)構(gòu):這類架構(gòu)中的組件就是各種不同的操作單元(例如,子程序、對象、層次),而連接器則是這些對象之間的調(diào)用關(guān)系(例如,主-子程序調(diào)用,或者對象的方法以及層次體系結(jié)構(gòu)中的協(xié)議)。調(diào)用-返回結(jié)構(gòu)的優(yōu)點在于,容易將大的架構(gòu)分解為一種層次模型,在較高的層次,隱藏那些比較具體的細節(jié),而在較低的層次,又能夠表現(xiàn)出實現(xiàn)細節(jié)。在這類體系結(jié)構(gòu)中,調(diào)用者和被調(diào)用者之間的關(guān)系往往比較緊密。在這樣的情況下,架構(gòu)的擴充通常需要被調(diào)用者和所有調(diào)用者都進行適當?shù)男薷摹?獨立構(gòu)件風(fēng)格:進程通訊:進程間通信就是在不同進程之間通過共享內(nèi)存或其他外設(shè)

11、傳播或交換信凱事件系統(tǒng):事件系統(tǒng)風(fēng)格是獨立組件風(fēng)格的一個子風(fēng)格。其中的每一個獨立組件在它們的相關(guān)環(huán)境中聲明它們希望共享的數(shù)據(jù),這個環(huán)境便是未指定的參與項。事件系統(tǒng)會充分利用消息管理器(messagemana痢消息傳遞到消息管理器的時候來管理組件之間的交互,和調(diào)用組件。組件會注冊它們希望提供或者希望收到的信息的類型。隨后它們會發(fā)送這個注冊的類型給消息管理器,這個消息管理器可能是一個對象引用。通信處理風(fēng)格也是獨立組件風(fēng)格的一個子風(fēng)格。這是一個多處理系統(tǒng)。.虛擬機風(fēng)格:虛擬機風(fēng)格的體系結(jié)構(gòu)設(shè)計的初衷主要是考慮體系結(jié)構(gòu)的可移植性。這種體系結(jié)構(gòu)力圖模擬它運行于其上的軟件或者硬件的功能。解釋器:解釋器是能

12、夠執(zhí)行用其他計算機語言編寫的程序的系統(tǒng)軟件,它是一種翻譯程序。它的執(zhí)行方式是一邊翻譯一邊執(zhí)行,因此其執(zhí)行效率T殳偏低,但是解釋器的實現(xiàn)較為簡單?;谝?guī)則的系統(tǒng):基于規(guī)則的系統(tǒng)或者成為專家系統(tǒng)、生產(chǎn)式系統(tǒng),是一種重要的應(yīng)用系統(tǒng),他廣泛用于醫(yī)療診斷、航空航天、實時監(jiān)控和輔助決策等領(lǐng)域中。.倉庫風(fēng)格:在倉庫風(fēng)格中,有兩種不同的組件:中央數(shù)據(jù)結(jié)構(gòu)(用于說明當前狀態(tài)),和獨立組件(在中央數(shù)據(jù)存貯h執(zhí)行),倉庫與外組件間的相互作用在系統(tǒng)中會有大的變化。倉庫風(fēng)格的體系結(jié)構(gòu)控制原則的選取產(chǎn)生兩個主要的子類。若輸入流中某類時間觸發(fā)進程執(zhí)行的選擇,則倉庫是一個傳統(tǒng)型數(shù)據(jù)庫;系統(tǒng)中的組件通常包括數(shù)據(jù)存儲區(qū),以及與這

13、些存儲區(qū)進行交流的進程或處理單元,而連接器則是對于存儲區(qū)的訪問。這類系統(tǒng)中,數(shù)據(jù)處理進程往往并不直接發(fā)生聯(lián)系,它們之間的聯(lián)系主要是通過共享的數(shù)據(jù)存儲區(qū)來完成的。這種現(xiàn)象非常類似于在獨立組件架構(gòu)中的情況。另一方面,若中央數(shù)據(jù)結(jié)構(gòu)的當前狀態(tài)觸發(fā)進程執(zhí)行的選擇,則倉庫是一黑板系統(tǒng)。三.案例分析:這里以本學(xué)期的作業(yè)圖書管理系統(tǒng)來說:我們的小組設(shè)計的圖書管理系統(tǒng)是把C/S和B/S模式綜合運用的體系結(jié)構(gòu)。其中以C/S模式為主,輔助以B/S模式。C/S(Client/Server結(jié)構(gòu),即客戶機和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Serve

14、r端來實現(xiàn),降低了系統(tǒng)的通訊開銷。B/S(Browser/Server結(jié)構(gòu),即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器(Browse。來實現(xiàn),而主要事務(wù)邏輯放在服務(wù)器端(Server)去實現(xiàn),形成所渭三層結(jié)構(gòu)(客戶層,應(yīng)用服務(wù)層,數(shù)據(jù)層)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本。學(xué)校圖書館使用B/S體系結(jié)構(gòu),完成圖書借閱人員遠程對借閱信息查詢。借書者通過瀏覽器訪問圖書管理系統(tǒng),使用借書證號進入系統(tǒng),里面能查詢到讀者基本資料,未還圖書列表,查看我的借

15、閱歷史等等。由于在網(wǎng)上就能查詢,方便借閱者對自己所借圖書情況進行了解。使用C/S體系結(jié)構(gòu),如圖:客戶層用戶操作界面返回操作結(jié)果業(yè)務(wù)處理層執(zhí)行業(yè)務(wù)處理返回操作結(jié)果業(yè)務(wù)邏輯處理類執(zhí)行數(shù)據(jù)操作IZ數(shù)據(jù)訪問層C/S模式的三層架構(gòu)通過C/S結(jié)構(gòu),完成圖書的入庫,借閱,歸還,圖書信息查詢等功能。用戶通過客戶端進入圖書管理系統(tǒng),在此段完成“借書”、“還書”、“查詢借閱信息”等操作,發(fā)出相應(yīng)操作請求,即用戶界面層;連接組件將該操作請求發(fā)送到服務(wù)器端,服務(wù)器端通過業(yè)務(wù)邏輯組件進行相應(yīng)的業(yè)務(wù)處理,即業(yè)務(wù)處理層;業(yè)務(wù)處理完畢后,將處理更新后的信息保存到數(shù)據(jù)庫,完成數(shù)據(jù)的存取過程,即數(shù)據(jù)訪問層;數(shù)據(jù)存儲完畢后,系統(tǒng)返

16、回操作結(jié)果,直到用戶界面。完成用戶通過客戶端發(fā)送業(yè)務(wù)處理請求然后服務(wù)器端進行相應(yīng)處理并最終把處理結(jié)果返回到客戶端的一次業(yè)務(wù)處理過程。圖書館采用以C/S模式為主,B/S模式為輔的體系結(jié)構(gòu),其主要優(yōu)點有下:1,應(yīng)用服務(wù)器運行負荷輕。由于采用了C/S模式為主的體系結(jié)構(gòu),在客戶端較少(只有圖書管理員安裝)的情況下,客戶端完成接受數(shù)據(jù)輸入,校驗數(shù)據(jù)有效性,向后臺數(shù)據(jù)庫發(fā)請求,接受返回結(jié)果,處理應(yīng)用邏輯等的操作,把應(yīng)用邏輯主要放在客戶端,減少服務(wù)器的應(yīng)用邏輯操作,降低了服務(wù)器的運行負荷。使系統(tǒng)運行速度在低成本下也能大大提高。2成本低。T殳的以c/s模式為主的系統(tǒng)其成本都相對高,這是由于胖客戶端瘦W務(wù)器的緣故,由于客戶端安裝使用成本較高,當客戶端多時,往往會造成成本的增加,而圖書管理系統(tǒng)卻不同,由于客戶端較少,用戶面相對固定,使得因為客戶端的過多而造成的成本高昂不復(fù)存在,相應(yīng)的反而由于相XtB/S模式的瘦W務(wù)器,減少了服務(wù)器購置的成本投入,反而比B/S模式成本更低。3相對于只用C/SJI式方便性大大提高。由于

溫馨提示

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

最新文檔

評論

0/150

提交評論