軟件體系結(jié)構(gòu)57843_第1頁(yè)
軟件體系結(jié)構(gòu)57843_第2頁(yè)
軟件體系結(jié)構(gòu)57843_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(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)(架構(gòu)) 軟件體系結(jié)構(gòu)的定義通常,軟件體系結(jié)構(gòu)通常被稱(chēng)為架構(gòu),指可以預(yù)制和可重構(gòu)的軟件框架結(jié)構(gòu)。架 構(gòu)尚處在發(fā)展期,對(duì)于其定義,學(xué)術(shù)界尚未形成一個(gè)統(tǒng)一的意見(jiàn),而不同角度的 視點(diǎn)也會(huì)造成軟件體系結(jié)構(gòu)的不同理解。比如,ansi/ieee 610. 12-1990軟件工 程標(biāo)準(zhǔn)詞匯對(duì)于體系結(jié)構(gòu)定義是“體系架構(gòu)是以構(gòu)件、構(gòu)件之間的關(guān)系、構(gòu)件與 環(huán)境之間的關(guān)系為內(nèi)容的某一系統(tǒng)的基本組織結(jié)構(gòu)以及知道上述內(nèi)容設(shè)計(jì)與演 化的原理(principle) v ;而garlan & shaw模型的基本思想是:軟件體系結(jié)構(gòu) 二構(gòu)件(component),連接件(connector),約束(c

2、onstrain)。對(duì)于軟 件項(xiàng)目的開(kāi)發(fā)來(lái)說(shuō),一個(gè)清晰的軟件體系結(jié)構(gòu)是首要的。傳統(tǒng)的軟件開(kāi) 發(fā)過(guò)程可以劃分為從概念到實(shí)現(xiàn)的若干個(gè)階段,包括問(wèn)題定義、需求分析、軟件 設(shè)計(jì)、軟件實(shí)現(xiàn)及軟件測(cè)試等。軟件體系結(jié)構(gòu)的建立就位于需求分析之后,軟 件設(shè)計(jì)之前。在建立軟件體系結(jié)構(gòu)時(shí)系統(tǒng)設(shè)計(jì)師主要從結(jié)構(gòu)的角度對(duì)整個(gè)系統(tǒng)進(jìn) 行分析,選擇恰當(dāng)?shù)臉?gòu)件(component) 構(gòu)件間的相互作用以及它們的約束, 最后形成一個(gè)系統(tǒng)框架(fzmework)以滿(mǎn)足用戶(hù)的需求,為軟件設(shè)計(jì)奠定基礎(chǔ)。 軟件體系結(jié)構(gòu)風(fēng)格軟件體系結(jié)構(gòu)設(shè)計(jì)的一個(gè)核心問(wèn)題是能否使用重復(fù)的體系結(jié)構(gòu)模式,即能否達(dá)到 結(jié)構(gòu)級(jí)的軟件重用。也就是說(shuō),能否在不同的軟件體

3、系中,使用同一體系結(jié)構(gòu)。 基于這個(gè)目的,學(xué)者們開(kāi)始研究和實(shí)踐軟件體系結(jié)構(gòu)的風(fēng)格問(wèn)題。軟件體系結(jié)構(gòu)風(fēng)格(software architecture style)是描述某一特定應(yīng)用領(lǐng)域 系統(tǒng)組織方式的慣用模式。它反映了領(lǐng)域中眾多系統(tǒng)所有的結(jié)構(gòu)和語(yǔ)義特性,并 指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效地組織成一個(gè)完整的系統(tǒng)。對(duì)軟件體系結(jié)構(gòu) 風(fēng)格的研究和實(shí)踐促進(jìn)了對(duì)設(shè)計(jì)的復(fù)用,一些經(jīng)過(guò)實(shí)踐證明的解決方案也可以可 靠地用于解決新的問(wèn)題。體系結(jié)構(gòu)風(fēng)格的不變部分使不同的系統(tǒng)可以共享一個(gè) 實(shí)現(xiàn)代碼。只要系統(tǒng)是使用常用的、規(guī)范的方法來(lái)組織,就可使別的設(shè)計(jì)者很容 易地理解系統(tǒng)結(jié)構(gòu)。garlan和shaw對(duì)通用體系結(jié)構(gòu)風(fēng)格進(jìn)行

4、如下分類(lèi):(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)等。近年來(lái),出現(xiàn)了許多新的體系結(jié)構(gòu)風(fēng)格,例如客戶(hù)/服務(wù)器(client /server) 結(jié)構(gòu)、瀏覽器/服務(wù)器(browser/server)結(jié)構(gòu)、正交(orthogonal)結(jié)構(gòu)、三 層c/s結(jié)構(gòu)等。軟件體系結(jié)構(gòu)的建模研究研究軟件體系結(jié)構(gòu)的首要問(wèn)題是如何表示軟件體系結(jié)構(gòu),即如何對(duì)軟件體系結(jié)構(gòu) 建模。根據(jù)建模的側(cè)重點(diǎn)的不同,可以將軟件

5、體系結(jié)構(gòu)的模型分為5種:結(jié)構(gòu)模 型、框架模型、動(dòng)態(tài)模型、過(guò)程模型和功能模型。其中,最常用的是結(jié)構(gòu)模型和 動(dòng)態(tài)模型。研究熱點(diǎn)當(dāng)前本系結(jié)構(gòu)仍是一個(gè)非常新的研究領(lǐng)域,其概念還相當(dāng)模糊。但軟件體系結(jié) 構(gòu)作為軟件工程領(lǐng)域屮的一個(gè)組成部分,已經(jīng)取得了長(zhǎng)足的發(fā)展,受到大多數(shù)軟 件系統(tǒng)設(shè)計(jì)和研究人員的重視。軟件體系結(jié)構(gòu)目前較活躍的研究方向包括:(1)軟件體系結(jié)構(gòu)形式基礎(chǔ)的研究;(2)針對(duì)軟件體系結(jié)構(gòu)描述中特有的問(wèn)題研究新的專(zhuān)門(mén)的高級(jí)語(yǔ)言;(3)建立 用于度量和評(píng)價(jià)軟件體系結(jié)構(gòu)的模型和方法;(4)建立面向?qū)iT(mén)領(lǐng)域的軟件體 系結(jié)構(gòu)范型庫(kù)。(5)把軟件體系結(jié)構(gòu)從冃前的直覺(jué)和經(jīng)驗(yàn)狀態(tài)過(guò)渡到理論。二. 模式模 式(pa

6、ttern)的概念最早由建筑大師christopher alexander于二十世紀(jì)七 十年代提出,應(yīng)用于建筑領(lǐng)域,八十年代中期由ward cunningham 11 kent beck 將其思想引入到軟件領(lǐng)域,christopher alexander將模式分為三個(gè)部分:(1) 周境(context,也可以稱(chēng)著上下文),指模式在何種狀況下發(fā)生作用;(2) 動(dòng)機(jī)(system of forces),意指問(wèn)題或預(yù)期的目標(biāo);(3) 解決方案(solution),指平衡各動(dòng)機(jī)或解決所闡述問(wèn)題的一個(gè)構(gòu)造或配置 (configuration)。他提出,模式是表示周境、動(dòng)機(jī)、解決方案三個(gè)方面關(guān)系的一個(gè)規(guī)則

7、,每個(gè)模 式描述了一個(gè)在某種周境下不斷重復(fù)發(fā)生的問(wèn)題,以及該問(wèn)題解決方案的核心所 在,模式 即是一個(gè)事物(thing)又是一個(gè)過(guò)程(process),不僅描述該事物本 身,而且提出了通過(guò)怎樣的過(guò)程來(lái)產(chǎn)生該事物。這一定義已被軟件界廣為接受。 軟件模式的應(yīng)用對(duì)軟件開(kāi)發(fā)產(chǎn)生了重大的作用,主要表現(xiàn)在:(1)軟件模式是人們?cè)陂L(zhǎng)期的設(shè)計(jì)軟件、管理組織軟件開(kāi)發(fā)等實(shí)踐中大量經(jīng)驗(yàn) 的提煉和抽彖,是復(fù)用軟件設(shè)計(jì)方法、過(guò)程管理經(jīng)驗(yàn)的有力工具。模式類(lèi)似于拳 擊屮的組合拳,它提供了一系列軟件開(kāi)發(fā)屮的思維套路。如,通過(guò)模式的使用, 有利于在復(fù)雜的系統(tǒng)屮產(chǎn)生簡(jiǎn)潔、精巧的設(shè)計(jì)。(2)軟件模式為我們提供了一套簡(jiǎn)潔通用的設(shè)計(jì)、管

8、理、組織方面的詞匯,同吋 模式也為我們提供了一個(gè)描述抽象事物的規(guī)范標(biāo)準(zhǔn),可大大促進(jìn)軟件開(kāi)發(fā)過(guò)程中 人與人之間的交流,而軟件開(kāi)發(fā)中的交流是至關(guān)重要的,“軟件項(xiàng)目失敗的原 因最終都可追溯到信息沒(méi)有及時(shí)準(zhǔn)確地傳遞到應(yīng)該接收它的人”。三. 架構(gòu)和模式的關(guān)系架構(gòu)(architecture)和模式(pattern)在當(dāng)前的軟件開(kāi)發(fā)中經(jīng)常地被提及,這兩 個(gè)術(shù)語(yǔ)非常容易混淆,而且學(xué)術(shù)界也沒(méi)有一個(gè)非常統(tǒng)一的定義。架構(gòu)和模式應(yīng)該是一個(gè)屬于相互涵蓋的過(guò)程,但是總體來(lái)說(shuō)architecture更加 關(guān)注的是所謂的high-level design,而模式關(guān)注的重點(diǎn)在于通過(guò)經(jīng)驗(yàn)提取的“準(zhǔn)則或指導(dǎo)方案”在設(shè)計(jì)中的應(yīng)用,因

9、此在不同層面考慮問(wèn)題的時(shí)候就形成了 不同問(wèn)題域上的pattern。模式的目標(biāo)是,把共通問(wèn)題中的不變部分和變化部分 分離出來(lái)。不變的部分,就構(gòu)成了模式,因此,模式是一個(gè)經(jīng)驗(yàn)提取的“準(zhǔn)則”, 并且在一次一次的實(shí)踐屮得到驗(yàn)證,在不同的層次有不同的模式,小到語(yǔ)言實(shí) 現(xiàn)(如singleton)大到架構(gòu)。在不同的層面上,模式提供不同層面的指導(dǎo)。根據(jù) 處理問(wèn)題的粒度不同,從高到低,模式分為3個(gè)層次:(1)架構(gòu)模式(architectural pattern) > 設(shè)計(jì)模式(design pattern) > 實(shí)現(xiàn)模 式(implementation pattern).架構(gòu)模式是模式中的最高層次,

10、描述軟件系統(tǒng)里 的基本的結(jié)構(gòu)組織或綱要,通常提供一組事先定義好的子系統(tǒng),指定它們的責(zé)任, 并給出把它們 組織在一起的法則和指南。比如,用戶(hù)和文件系統(tǒng)安全策略模型, n-層結(jié)構(gòu),組件對(duì)彖服務(wù)等,我們熟知的mvc結(jié)構(gòu)也屬于架構(gòu)模式的層次。一個(gè) 架構(gòu)模式常??梢苑纸獬珊芏鄠€(gè)設(shè)計(jì)模式的聯(lián)合使用。(2)設(shè)計(jì)模式是模式屮的第二層次,用來(lái)處理程序設(shè)計(jì)屮反復(fù)出現(xiàn)的問(wèn)題。例如,設(shè)計(jì)模式一可復(fù)用面向?qū)ο筌浖幕A(chǔ)一書(shū)屮總結(jié)的23個(gè)基本設(shè)計(jì)模 式factory pat tern, observer patt ern 等。(3)實(shí)現(xiàn)模式是最低也是最具體的層次,處理具體到編程語(yǔ)言的問(wèn)題。比如, 類(lèi)名,變量名,函數(shù)名的命名規(guī)則;異常處理的規(guī)則等等。相 對(duì)于系統(tǒng)分析或者設(shè)計(jì)模式來(lái)說(shuō),體系結(jié)構(gòu)從更高的層而去考慮問(wèn)題,所以 關(guān)注的問(wèn)題就體現(xiàn)在“不變”因素上,比如系統(tǒng)部署中,更加關(guān)心應(yīng)用程序的分 層分級(jí)設(shè)計(jì),而在這個(gè)基礎(chǔ)之上提出的部署方案,才是架構(gòu)考慮的重點(diǎn)。體系 結(jié)構(gòu)關(guān)心應(yīng)用程序模式,更加體現(xiàn)在通過(guò)技術(shù)去解決這些業(yè)務(wù)差異帶來(lái)的影響, 關(guān)心是否是分布式應(yīng)用程序,關(guān)心系統(tǒng)分層是如何設(shè)計(jì),也關(guān)心性能和安全, 因此在這樣的情況之下,會(huì)考慮集群,負(fù)載平衡,故障遷移等等一系列技術(shù)。 總之,希望通過(guò)定義的方式來(lái)區(qū)分架構(gòu)和模式是不太可能的,因?yàn)楸緛?lái)就是交 互交叉和提供服務(wù)的,它實(shí)際上是架構(gòu)模式,而不是設(shè)計(jì)模式。在大部

溫馨提示

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