動態(tài)軟件體系結(jié)構(gòu)的描述_第1頁
動態(tài)軟件體系結(jié)構(gòu)的描述_第2頁
動態(tài)軟件體系結(jié)構(gòu)的描述_第3頁
動態(tài)軟件體系結(jié)構(gòu)的描述_第4頁
動態(tài)軟件體系結(jié)構(gòu)的描述_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件體系結(jié)構(gòu)課程題目:動態(tài)軟件體系結(jié)構(gòu)的描述1. 動態(tài)軟件體系結(jié)構(gòu)概述軟件體系結(jié)構(gòu)(Software Architecture,簡稱:SA)是對軟件系統(tǒng)整體組織結(jié)構(gòu)和控制結(jié)構(gòu)的刻畫,包括系統(tǒng)中各計算單元(構(gòu)件)的功能分配、各單元之間的高層交互說明(連接件)以及SA的約束。當(dāng)前, SA研究主要集中在靜態(tài)體系結(jié)構(gòu)上,這種體系結(jié)構(gòu)在運行時不能發(fā)生改變。而對于一些需要長期運行且具有特殊使命的系統(tǒng)(如航空航天、生命維持、金融、交通等),如果系統(tǒng)需求或環(huán)境發(fā)生了變化,此時停止系統(tǒng)運行進(jìn)行更新或維護(hù),將會產(chǎn)生高額的費用和巨大的風(fēng)險,對系統(tǒng)的安全性也會產(chǎn)生很大的影響。靜態(tài)體系結(jié)構(gòu)缺乏表示動態(tài)更新的機制,很難用

2、其分析、描述這樣的系統(tǒng),更不能用它來指導(dǎo)系統(tǒng)進(jìn)行動態(tài)演化。因此,動態(tài)軟件體系結(jié)構(gòu)(Dynamic Software Architecture,簡稱:DSA)的研究應(yīng)運而生。允許在系統(tǒng)運行時發(fā)生更新的軟件體系結(jié)構(gòu)稱為動態(tài)軟件體系結(jié)構(gòu),動態(tài)體系結(jié)構(gòu)在系統(tǒng)創(chuàng)建后可以動態(tài)更新。其動態(tài)性主要分為三類:交互式動態(tài)性,結(jié)構(gòu)化動態(tài)性和體系結(jié)構(gòu)動態(tài)性。目前,DSA的研究主要集中在以下幾個方面,一是體系結(jié)構(gòu)的動態(tài)演化,二是研究模擬和描述體系結(jié)構(gòu)動態(tài)更新語言,三是研究支持體系結(jié)構(gòu)動態(tài)更新的執(zhí)行工具。對于DSA動態(tài)演化的研究主要圍繞動態(tài)演化的需求來源、動態(tài)演化時期、動態(tài)演化類型、動態(tài)演化方法等方面;模擬和描述動態(tài)體系

3、結(jié)構(gòu)的研究主要集中在對現(xiàn)有的一些ADL擴(kuò)展以支持體系結(jié)構(gòu)的動態(tài)性;動態(tài)演化執(zhí)行工具有加州大學(xué)Irwine分校提出的ArchStudio工具集,倫敦皇家學(xué)院提出的SAA(Software Architecture Assistant),北京大學(xué)提出的PKUAS等。當(dāng)前主流的體系結(jié)構(gòu)模型CORBA、COM/DCOM、EJB等,都不支持體系結(jié)構(gòu)的動態(tài)更新。同時,由于動態(tài)體系結(jié)構(gòu)本身的復(fù)雜性,又缺乏通用的結(jié)構(gòu)模型和有效的形式化描述機制及分析工具,使得學(xué)術(shù)界對DSA的研究還不成熟,實際應(yīng)用較少,因而解決軟件的演化問題將成為DSA應(yīng)用研究領(lǐng)域的一個重要方向。其次,對于與DSA研究相關(guān)概念的統(tǒng)一、通用性支持

4、工具、動態(tài)演化完整性、一致性、追溯性等問題都有待進(jìn)一步深入。此外,隨著DSA研究的深入,基于DSA的一些新興軟件體系結(jié)構(gòu)的研究,如自適應(yīng)軟件體系結(jié)構(gòu)、正交軟件體系結(jié)構(gòu)、自省動態(tài)軟件體系結(jié)構(gòu)、網(wǎng)格動態(tài)體系結(jié)構(gòu)等,將會成為DSA研究的發(fā)展方向。2. 動態(tài)體系結(jié)構(gòu)的描述與靜態(tài)體系結(jié)構(gòu)的描述一樣,動態(tài)體系結(jié)構(gòu)的描述既可以使用描述語言,也可以使用形式化的描述;既可以使用UML建模機制,也可以使用XML建模機制。2.1 DSA的描述語言軟件體系結(jié)構(gòu)描述語言(Architecture Description Language,簡稱:ADL)是SA領(lǐng)域的一個重要研究成果,ADL從較高抽象層次上描述構(gòu)件接口的語

5、法和語義、系統(tǒng)中的構(gòu)件和連接子以及它們之間的交互關(guān)系、構(gòu)件的非功能屬性以及構(gòu)件間協(xié)議,從而建立系統(tǒng)的體系結(jié)構(gòu)模型。但是大多數(shù)ADL只描述系統(tǒng)的靜態(tài)結(jié)構(gòu),不支持對體系結(jié)構(gòu)動態(tài)性的描述。UML作為體系結(jié)構(gòu)建模工具,它不是一種體系結(jié)構(gòu)的描述語言,而是一種設(shè)計語言。因此開發(fā)動態(tài)軟件ADL是很有必要的。近年來,已經(jīng)開發(fā)出了很多動態(tài)體系結(jié)構(gòu)描述語言,如Darwin、Dynamic ACMED、Dynamic Wright、Rapide等。(1) Dynamic WrightDynamic Wright是體系結(jié)構(gòu)描述語言Wright的一個擴(kuò)展,Dynamic Wright的主要目的是試圖模擬或標(biāo)記已解決軟件

6、系統(tǒng)的動態(tài)性。采用Dynamic Wright具有較多的良好特性,其中之一就是能夠很容易地描述軟件的動態(tài)環(huán)境。在客戶-服務(wù)器的體系結(jié)構(gòu)中,如果設(shè)計師想要對客戶(Client)的每一步工作所依賴的服務(wù)器(Server)進(jìn)行說明,比如Client最初是依賴于Server1的,當(dāng)且僅當(dāng)Server1出現(xiàn)問題時,Client將與Server2進(jìn)行交互。因此,設(shè)計師必須用一個符號來表示每一個接觸點L。圖2-1是上述問題的靜態(tài)描述,它圖2-1 靜態(tài)描述并不能清楚的反映出設(shè)計師對體系結(jié)構(gòu)的動態(tài)依賴關(guān)系,這樣有可能導(dǎo)致設(shè)計師把一些關(guān)鍵的方面遺漏,它還需要一些額外的文本對體系結(jié)構(gòu)的行為進(jìn)行說明。如果采用Dyna

7、mic Wright來描述客戶-服務(wù)器的體系結(jié)構(gòu),就用一個動態(tài)變化的新符號,即配置“configuror(C)”。通過增加一個configuror到Wright的標(biāo)記中,設(shè)計師就能很好的闡述控制行為,使得設(shè)計師能更好地描述系統(tǒng)體系結(jié)構(gòu)?!癈onfiguror”主要涉及這些問題:什么時候軟件體系結(jié)構(gòu)應(yīng)該重新配置?什么原因使得軟件體系結(jié)構(gòu)需要進(jìn)行重新配置?重新配置應(yīng)該怎樣進(jìn)行?圖2-2是上述問題的動態(tài)描述,通過引入虛線和配置C來動態(tài)描述該系統(tǒng)的動態(tài)特征。這樣設(shè)計師就能很容易地把系統(tǒng)的動態(tài)環(huán)境表述清楚。因此,Dynamic Wright是非常適合動態(tài)軟件體系結(jié)構(gòu)的環(huán)境描述。圖2-2 動態(tài)描述(2)

8、DarwinDarwin是一個用于描述系統(tǒng)配置規(guī)劃的ADL,它把一個程序看成是由不同級別的構(gòu)件進(jìn)行相應(yīng)的配置。相對于其他的ADL,老程序員在使用Darwin上顯得更容易些。Darwin具有很多其他ADL的圖形表示和文本表示的特點,Darwin與其他的ADL的主要不同之處在于:Darwin具有一個用于對構(gòu)件所需要的和提供的服務(wù)進(jìn)行指定的規(guī)則。圖2-3是一個采用Darwin對filter構(gòu)件的圖形化和文本化的描述。圖2-3 構(gòu)件filter的Darwin描述在Darwin中,服務(wù)的命名是局部命名(如next和output),每一個服務(wù)需要被局部地指定,也就是說每一個構(gòu)件能夠從系統(tǒng)中分離出來并且進(jìn)行

9、獨立測試。Darwin對于表示體系結(jié)構(gòu)構(gòu)件的開發(fā)和設(shè)計是一個相當(dāng)成熟的工具,但是Darwin在其他方面的描述上并不是完美的。(3) Z語言Z語言是一種基于集合理論和一階謂詞邏輯的形式語言或方法,支持軟件的形式化規(guī)格的推理及求精,是迄今為止應(yīng)用最為廣泛的形式語言之一。模式是語言的基本描述單位,一個軟件系統(tǒng)的主要是由若干個模式構(gòu)成,這些模式刻畫了系統(tǒng)的靜態(tài)性質(zhì)和動態(tài)行為。采用擴(kuò)展的Z語言來描述軟件體系結(jié)構(gòu)的動態(tài)特性,其描述規(guī)則如下:規(guī)則1:構(gòu)件可以表示一個數(shù)據(jù)類型,接口同樣可以表示一個數(shù)據(jù)類型同樣,連接件和接口也可以表示數(shù)據(jù)類型規(guī)則2:接口是用來表示接收還是發(fā)出請求的,其接口應(yīng)該是屬于 recei

10、ve,send 兩種類型,定義了接口的具體行為規(guī)則3:模式名字可以定義一個具體的接口構(gòu)件或系統(tǒng),其模式可包括其他的模式來表示其結(jié)構(gòu)和行為規(guī)則4:構(gòu)件之間的連接是通過連接件來實現(xiàn)的,其連接行為也可以定義是一個類型擴(kuò)展的Z 語言從語義與語法上描述了體系結(jié)構(gòu)中構(gòu)件連接件和配置,如圖2-4所示圖2-4 擴(kuò)展Z語言描述DSA2.1 DSA的形式化描述動態(tài)軟件系統(tǒng)的形式化描述包括軟件體系結(jié)構(gòu)的描述、體系結(jié)構(gòu)的重新配置和系統(tǒng)行為的描述。對DSA的形式化描述,通??梢圆捎脠D形化方法、進(jìn)程代數(shù)方法、邏輯方法等。(1) 圖形化方法由于圖能夠直觀地描述系統(tǒng)體系結(jié)構(gòu)及其風(fēng)格,所以用圖形化方法描述軟件體系結(jié)構(gòu)是很自然的

11、事情,用圖的重寫規(guī)則來描述DSA的配置也是一種很自然的方法。采用圖形化方法描述DSA的主要有Le Metayer的描述方法、CHAM方法、Hirsh等的描述方法等。(2) 進(jìn)程代數(shù)方法進(jìn)程代數(shù)方法通常用于研究并發(fā)系統(tǒng),在并發(fā)系統(tǒng)中進(jìn)程通常用代數(shù)方法描述,用微分方法對描述進(jìn)行驗證。多進(jìn)程代數(shù)應(yīng)用于CCS,CSP和演算。常用的進(jìn)程代數(shù)方法有Dynamic Wright、Darwin、LEDA和PiLar等(3) 邏輯化描述方法邏輯化描述方法是DSA描述的形式化基礎(chǔ),常用的邏輯描述方法有Gerel、Aguirre-Maibaum方法和ZCL方法等表2-5是對DSA形式化描述方法的歸納與總結(jié),這些描述

12、方法各有其自身的優(yōu)點和缺點。表2-5 DSA形式化描述方法歸納與總結(jié)方法語言提出者具體技術(shù)特點圖形化法Le Metayer approachLe Metayer用HR圖文法、圖重寫能用圖重寫來規(guī)約體系結(jié)構(gòu)動態(tài)行為的途徑CHAMG. Berry和G.Boudol引入轉(zhuǎn)換規(guī)則及項重寫能夠描述、分析SA的動態(tài)行為,支持SA配置演化的研究進(jìn)程代數(shù)法DynamicWrightRober.JAllen等使用標(biāo)簽事件技術(shù)對Wright進(jìn)行擴(kuò)展支持動態(tài)的建模和分析,用于死鎖檢測、模型一致性驗證等工作DarwinMagee、Kramer等一階Pi演算對基于消息傳遞的分布式系統(tǒng)進(jìn)行描述和動態(tài)配置,支持預(yù)設(shè)的動態(tài)演

13、化Pi-ADLArchware基于高階Pi演算支持動態(tài)體系結(jié)構(gòu)建模和驗證圖形化和進(jìn)程代數(shù)SAAM模型的描述語言于振華等面向?qū)ο驪etri網(wǎng)OPN和Pi演算兩種互補的形式化方法適用于基于構(gòu)件的軟件系統(tǒng)的動態(tài)演化,支持動態(tài)體系結(jié)構(gòu)建模、分析與驗證JB /SADL張世琨等用偽碼刻畫構(gòu)件接口、構(gòu)件結(jié)構(gòu)、構(gòu)件實現(xiàn),采用Mealy機刻畫構(gòu)件的行為支持對JB /HMB風(fēng)格的系統(tǒng)進(jìn)行規(guī)范化描述,并可在工具的支持下進(jìn)行系統(tǒng)性質(zhì)分析、動態(tài)模擬運行、動態(tài)演化和代碼框架自動生成此外,徐洪珍等人提出用約束超圖表示軟件體系結(jié)構(gòu),用左右應(yīng)用條件刻畫軟件體系結(jié)構(gòu)動態(tài)演化的前斷言和后斷言,用條件超圖文法建模軟件體系結(jié)構(gòu)動態(tài)演化過程;汪玲等人提出用擴(kuò)展的Bigraph描述面向方面動態(tài)軟件體系結(jié)構(gòu)(AODSA)模型的結(jié)構(gòu);趙智坤等人提出用動態(tài)描述邏輯的方法描述DSA,都為DSA的描述與分析提出了新的方法,為DSA的發(fā)展奠定了理論基礎(chǔ)。參考文獻(xiàn):1 張友生.軟件體系結(jié)構(gòu)M. 2版.北京:清華大學(xué)出版社, 2014.2 李瓊,姜瑛. 動態(tài)軟件體系結(jié)構(gòu)研究綜述J.計算機應(yīng)用研究,2009.6.3 晏鄭勇.基于動態(tài)軟件體系結(jié)構(gòu)的軟件自適應(yīng)性研究碩士學(xué)位論文.2014.5.4 周緒川. 適用于動態(tài)軟件體系結(jié)構(gòu)的擴(kuò)展的Z描述語言J.計算機應(yīng)用研究,2012.9.5 徐洪珍, 曾國蓀, 陳波. 軟件體系結(jié)構(gòu)動態(tài)演化

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論