第7組 軟件體系結(jié)構(gòu)研究報(bào)告_第1頁(yè)
第7組 軟件體系結(jié)構(gòu)研究報(bào)告_第2頁(yè)
第7組 軟件體系結(jié)構(gòu)研究報(bào)告_第3頁(yè)
第7組 軟件體系結(jié)構(gòu)研究報(bào)告_第4頁(yè)
第7組 軟件體系結(jié)構(gòu)研究報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件體系結(jié)構(gòu)研究報(bào)告 第一章 引言隨著計(jì)算機(jī)技術(shù)的發(fā)展和應(yīng)用的不斷深入,軟件系統(tǒng)的規(guī)模和復(fù)雜度日益增加,在軟件設(shè)計(jì)過(guò)程中人們所面臨的問(wèn)題不僅僅是考慮軟件系統(tǒng)的功能問(wèn)題,而是面臨要解決更難處理的可修改性,性能,可靠性等非功能性問(wèn)題。特別是80年代以來(lái),對(duì)軟件適應(yīng)變更的要求越來(lái)越高,所以對(duì)軟件整體的設(shè)計(jì)已經(jīng)超過(guò)了算法和數(shù)據(jù)結(jié)構(gòu),成為系統(tǒng)開(kāi)發(fā)關(guān)注的主要問(wèn)題。軟件開(kāi)發(fā)最大的風(fēng)險(xiǎn)來(lái)自需求變更,但一蹴而就搞定需求不現(xiàn)實(shí),好的體系結(jié)構(gòu)是易改動(dòng)的基礎(chǔ)。 能否復(fù)用很重要,設(shè)計(jì)復(fù)用比代碼復(fù)用更有用更難。因此,研究軟件體系結(jié)構(gòu)研究的能提高軟件生產(chǎn)率和簡(jiǎn)化維護(hù)。提高軟件生產(chǎn)率的關(guān)鍵在于軟件相關(guān)部分的復(fù)用,而簡(jiǎn)化維護(hù)的

2、關(guān)鍵是減少軟件理解的成本和提高軟件的質(zhì)量,這就是研究軟件體系結(jié)構(gòu)的目的。第二章 軟件體系結(jié)構(gòu)的概念軟件系統(tǒng)的規(guī)模在迅速增大的同時(shí),軟件開(kāi)發(fā)方法也經(jīng)歷了一系列的變革.在此過(guò)程中,軟件體系結(jié)構(gòu)也由最初模糊的概念發(fā)展到一個(gè)漸趨成熟的技術(shù)。1) 1992年P(guān)erry 和Wo1f 在他們?cè)缙陉P(guān)于軟件體系結(jié)構(gòu)的論文中指出:軟件體系結(jié)構(gòu)是一組具有一定形式的結(jié)構(gòu)化元素或稱為設(shè)計(jì)元素組成。2) 1993年Shaw 和Garlan 認(rèn)為軟件體系結(jié)構(gòu)是軟件設(shè)計(jì)過(guò)程中的一個(gè)層次,這一層次超越計(jì)算過(guò)程中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。3) 1994年Hayes Roth 則認(rèn)為軟件體系結(jié)構(gòu)是一個(gè)抽象的系統(tǒng)規(guī)范,主要包括用其行

3、為來(lái)描述的功能構(gòu)件和構(gòu)件之間的相互連接、接口和關(guān)系。4) 1995年Garlan 和Perry 在IEEE 軟件工程學(xué)報(bào)上又采用如下的定義:軟件體系結(jié)構(gòu)是一個(gè)程序各構(gòu)件的結(jié)構(gòu)、它們之間的相互關(guān)系以及進(jìn)行設(shè)計(jì)的原則和隨時(shí)間進(jìn)化的指導(dǎo)方針。5) 1996年Boehm 和他的學(xué)生提出,一個(gè)軟件體系結(jié)構(gòu)包括一個(gè)軟件和系統(tǒng)構(gòu)件,互聯(lián)及約束的集合。6) 1997年Ctements 和Kazman在使用軟件體系結(jié)構(gòu)一書(shū)中給出如下的定義:一個(gè)程序或計(jì)算機(jī)系統(tǒng)的軟件體系結(jié)構(gòu)包括一個(gè)或一組軟件構(gòu)件、軟件構(gòu)件的外部的可見(jiàn)特性及其相互關(guān)系。第三章 軟件體系結(jié)構(gòu)的現(xiàn)狀下面介紹幾種常見(jiàn)的體系結(jié)構(gòu)。 模型-視圖-控制結(jié)構(gòu)是

4、交互式應(yīng)用程序廣泛使用的一種體系結(jié)構(gòu)。它有效地在存儲(chǔ)和展示數(shù)據(jù)的對(duì)象中區(qū)分功能模塊以降低它們之間的連接度,這種體系結(jié)構(gòu)將傳統(tǒng)的輸入、處理和輸入模型轉(zhuǎn)化為圖形顯示的用戶交互模型,或者換一種說(shuō)法,是多層次的Web商業(yè)應(yīng)用;MVC體系結(jié)構(gòu)具有三個(gè)層面:模型(Model)、視圖(View)和控制(Controller),每個(gè)層面有其各自的功能作用。模型層負(fù)責(zé)表達(dá)和訪問(wèn)商業(yè)數(shù)據(jù),執(zhí)行商業(yè)邏輯和操作。也就是說(shuō),這一層就是現(xiàn)實(shí)生活中功能的軟件模擬;在模型層變化的時(shí)候,它將通知視圖層并提供后者訪問(wèn)自身狀態(tài)的能力,同時(shí)控制層也可以訪問(wèn)其功能函數(shù)以完成相關(guān)的任務(wù)。視圖層負(fù)責(zé)顯示模型層的內(nèi)容。它從模型層取得數(shù)據(jù)并指

5、定這些數(shù)據(jù)如何被顯示出來(lái)。在模型層變化的時(shí)候,它將自動(dòng)更新。另外視圖層也會(huì)將用戶的輸入傳送給控制器??刂茖迂?fù)責(zé)定義應(yīng)用程序的行為。它可以分派用戶的請(qǐng)求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時(shí)它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作;在一個(gè)圖形界面中,常見(jiàn)的用戶輸入包括點(diǎn)擊按鈕和菜單選擇。在Web應(yīng)用中,它包括對(duì)Web層的HTTP GET和POST的請(qǐng)求;控制層可以基于用戶的交互和模型層的操作結(jié)果來(lái)選擇下一個(gè)可以顯示的視圖,一個(gè)應(yīng)用程序通常會(huì)基于一組相關(guān)功能設(shè)定一個(gè)控制層的模塊,甚至一些應(yīng)用程序會(huì)根據(jù)不同的用戶類型具有不同的控制層設(shè)定,這主要是由于不同用戶的視圖交互和選擇也是不同的。在模型

6、層、視圖層和控制層之間劃分責(zé)任可以減少代碼的重復(fù)度,并使應(yīng)用程序維護(hù)起來(lái)更簡(jiǎn)單。同時(shí)由于數(shù)據(jù)和商務(wù)邏輯的分開(kāi),在新的數(shù)據(jù)源加入和數(shù)據(jù)顯示變化的時(shí)候,數(shù)據(jù)處理也會(huì)變得更簡(jiǎn)單。軟件體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。它反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語(yǔ)義特性,并指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效地組織成一個(gè)完整的系統(tǒng)。按這種方式理解,軟件體系結(jié)構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語(yǔ)表和一組指導(dǎo)構(gòu)件系統(tǒng)的規(guī)則。 對(duì)軟件體系結(jié)構(gòu)風(fēng)格的研究和實(shí)踐促進(jìn)了對(duì)設(shè)計(jì)的復(fù)用,一些經(jīng)過(guò)實(shí)踐證實(shí)的解決方案也可以可靠地用于解決新的問(wèn)題。體系結(jié)構(gòu)風(fēng)格的不變部分使不同的系統(tǒng)可以共享同一個(gè)實(shí)現(xiàn)代碼。只要系統(tǒng)是使

7、用常用的、規(guī)范的方法來(lái)組織,就可使別的設(shè)計(jì)者很容易地理解系統(tǒng)的體系結(jié)構(gòu)。例如,如果某人把系統(tǒng)描述為"客戶服務(wù)器"模式,則不必給出設(shè)計(jì)細(xì)節(jié),我們立刻就會(huì)明白系統(tǒng)是如何組織和工作的。 下面是Garlan和Shaw對(duì)通用體系結(jié)構(gòu)風(fēng)格的分類:1) 數(shù)據(jù)流風(fēng)格:批處理序列;管道/過(guò)濾器2) 調(diào)用/返回風(fēng)格:主程序/子程序;面向?qū)ο箫L(fēng)格;層次結(jié)構(gòu)3) 獨(dú)立構(gòu)件風(fēng)格:進(jìn)程通訊;事件系統(tǒng)4) 虛擬機(jī)風(fēng)格:解釋器;基于規(guī)則的系統(tǒng)5) 倉(cāng)庫(kù)風(fēng)格:數(shù)據(jù)庫(kù)系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)設(shè)計(jì)模式使人們可以更簡(jiǎn)單方便地復(fù)用成功地設(shè)計(jì)和體系架構(gòu)。將以證實(shí)的技術(shù)表述成設(shè)計(jì)模式也會(huì)使新系統(tǒng)開(kāi)發(fā)者更容易理解其設(shè)計(jì)

8、思路。設(shè)計(jì)模式幫助你做出有利于系統(tǒng)復(fù)用的選擇,避免設(shè)計(jì)損害了系統(tǒng)復(fù)用性。通過(guò)提供一個(gè)顯示類和對(duì)象作用關(guān)系以及它們之間潛在聯(lián)系的說(shuō)明規(guī)范,設(shè)計(jì)模式甚至能夠提高已有系統(tǒng)的文檔管理和系統(tǒng)維護(hù)的有效性。簡(jiǎn)而言之,設(shè)計(jì)模式可以幫助設(shè)計(jì)者更快更好地完成系統(tǒng)設(shè)計(jì)。一個(gè)設(shè)計(jì)模式描述了對(duì)于特定設(shè)計(jì)問(wèn)題被驗(yàn)證的解決方案,它綜合了所有開(kāi)發(fā)者對(duì)這個(gè)問(wèn)題所在領(lǐng)域的知識(shí)和見(jiàn)解;同時(shí)也是對(duì)于常見(jiàn)問(wèn)題的可重用方案,它們一般適用于單個(gè)問(wèn)題,但是組織在一起就可以提供整個(gè)企業(yè)系統(tǒng)的解決方案。J2EE平臺(tái)就用到很多設(shè)計(jì)模式,列舉如下:1) 前控制器。2) 控制器3) 視圖4) 視圖幫助5) 會(huì)話面6) 數(shù)據(jù)訪問(wèn)對(duì)象7) 值對(duì)象或傳輸

9、對(duì)象8) 截取過(guò)濾器隨著軟件體系結(jié)構(gòu)的不斷發(fā)展,出現(xiàn)了一種新型的體系結(jié)構(gòu)即SOA。SOA被稱為軟件體系結(jié)構(gòu)的劃時(shí)代革命。SOA是一種結(jié)構(gòu)模型,它可以根據(jù)需求通過(guò)網(wǎng)絡(luò)對(duì)松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。SOA的關(guān)鍵是“服務(wù)”的概念,W3C將服務(wù)定義為:“服務(wù)提供者完成一組工作,為服務(wù)使用者交付所需的最終結(jié)果。最終結(jié)果通常會(huì)使使用者的狀態(tài)發(fā)生變化,但也可能使提供者的狀態(tài)改變,或者雙方都產(chǎn)生變化”。Service-將SOA定義為:“本質(zhì)上是服務(wù)的集合。服務(wù)間彼此通信,這種通信可能是簡(jiǎn)單的數(shù)據(jù)傳送

10、,也可能是兩個(gè)或更多的服務(wù)協(xié)調(diào)進(jìn)行某些活動(dòng)。服務(wù)間需要某些方法進(jìn)行連接。所謂服務(wù)就是精確定義、封裝完善、獨(dú)立于其他服務(wù)所處環(huán)境和狀態(tài)的函數(shù)?!?L將SOA定義為:“按需連接資源的系統(tǒng)。在SOA中,資源被作為可通過(guò)標(biāo)準(zhǔn)方式訪問(wèn)的獨(dú)立服務(wù),提供給網(wǎng)絡(luò)中的其他成員。與傳統(tǒng)的系統(tǒng)結(jié)構(gòu)相比,SOA規(guī)定了資源間更為靈活的松散耦合關(guān)系。” Gartner則將SOA描述為:“客戶端/服務(wù)器的軟件設(shè)計(jì)方法,一項(xiàng)應(yīng)用由軟件服務(wù)和軟件服務(wù)使用者組成SOA與大多數(shù)通用的客戶端/服務(wù)器模型的不同之處,在于它著重強(qiáng)調(diào)軟件組件的松散耦合,并使用獨(dú)立的標(biāo)準(zhǔn)接口?!?Gartner相信BPM和SOA的結(jié)合對(duì)所有類型的應(yīng)用集成都

11、大有助益“SOA極大的得益于BPM技術(shù)和方法論,但是SOA面臨的真正問(wèn)題是確立正確的企業(yè)意識(shí),即:強(qiáng)化戰(zhàn)略化的SOA計(jì)劃(針對(duì)供應(yīng)和使用)并鼓勵(lì)重用。”雖然不同廠商或個(gè)人對(duì)SOA有著不同的理解,但是我們?nèi)匀豢梢詮纳鲜龅亩x中看到SOA的幾個(gè)關(guān)鍵特性:一種粗粒度、松耦合服務(wù)結(jié)構(gòu),服務(wù)之間通過(guò)簡(jiǎn)單、精確定義接口進(jìn)行通訊,不涉及底層編程接口和通訊模型。第四章 軟件體系結(jié)構(gòu)存在的不足盡管軟件體系結(jié)構(gòu)研究領(lǐng)域取得了若干成果,但在應(yīng)用方面,軟件體系結(jié)構(gòu)仍然有很多可以改進(jìn)的地方。N. Medvovonic認(rèn)為,目前對(duì)軟件體系結(jié)構(gòu)的理解還僅限于直觀、或當(dāng)作稀奇事、或當(dāng)作民間傳說(shuō);語(yǔ)義豐富但不嚴(yán)謹(jǐn)。體系結(jié)構(gòu)似乎

12、沒(méi)有解決實(shí)際問(wèn)題。由此可見(jiàn),若要有效地指導(dǎo)軟件工程實(shí)踐、為軟件開(kāi)發(fā)提供一個(gè)好的結(jié)構(gòu)及其設(shè)計(jì)結(jié)構(gòu)的指導(dǎo)原則,軟件體系結(jié)構(gòu)研究還有若干問(wèn)題需要解決。比如缺乏統(tǒng)一的軟件體系結(jié)構(gòu)的概念,各種軟件體系結(jié)構(gòu)的不易操作性,ADL繁多,缺乏統(tǒng)一的ADL支持等等。第五章 前景展望目前,軟件體系結(jié)構(gòu)領(lǐng)域研究非?;钴S。隨著研究的不斷深入,軟件復(fù)用的層次越來(lái)越高,人們?cè)陂_(kāi)發(fā)新的系統(tǒng)時(shí)不必總是重復(fù)別人已經(jīng)創(chuàng)造的東西,而是可在軟件開(kāi)發(fā)中復(fù)用已有成果,這樣可以把注意力投入到軟件新增功能上,提高軟件開(kāi)發(fā)效率。針對(duì)軟件體系結(jié)構(gòu)發(fā)展趨勢(shì),Clements預(yù)測(cè)在未來(lái)的510年內(nèi)軟件體系結(jié)構(gòu)研究將圍繞如下5個(gè)方向展開(kāi):體系結(jié)構(gòu)創(chuàng)建與

13、選擇;體系結(jié)構(gòu)表示;體系結(jié)構(gòu)分析;基于體系結(jié)構(gòu)開(kāi)發(fā);體系結(jié)構(gòu)演化.而Perry在IFIP 2000 年世界計(jì)算機(jī)大會(huì)主題演講中認(rèn)為,最為重要的3個(gè)研究方向是:體系結(jié)構(gòu)風(fēng)格、體系結(jié)構(gòu)連接件和動(dòng)態(tài)體系結(jié)構(gòu)。參考文獻(xiàn):1 王霞俊.淺談軟件體系結(jié)構(gòu)J.常州輕工職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007(1).2 鄧倫丹,羅丹,汪偉.幾種主要的軟件體系結(jié)構(gòu)風(fēng)格的分析J.科技信息,2007(32):102.3 孫昌愛(ài),金茂忠,劉超.軟件體系結(jié)構(gòu)研究綜述J.軟件學(xué)報(bào),2002(13)4 秦建超,杜友福,孟珍偉.淺談軟件體系結(jié)構(gòu)科技信息J,2007(2)5 Michale Kircher.面向模式的軟件體系結(jié)構(gòu)M.1版.北京:機(jī)械工業(yè)出版社,2005:5-6.6 The Boeing Company-Defense and Space Group.STARS conceptual framework for reuse processes,lo

溫馨提示

  • 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)論