動態軟件體系結構的描述_第1頁
動態軟件體系結構的描述_第2頁
動態軟件體系結構的描述_第3頁
動態軟件體系結構的描述_第4頁
動態軟件體系結構的描述_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上軟件體系結構課程題目:動態軟件體系結構的描述1. 動態軟件體系結構概述軟件體系結構(Software Architecture,簡稱:SA)是對軟件系統整體組織結構和控制結構的刻畫,包括系統中各計算單元(構件)的功能分配、各單元之間的高層交互說明(連接件)以及SA的約束。當前, SA研究主要集中在靜態體系結構上,這種體系結構在運行時不能發生改變。而對于一些需要長期運行且具有特殊使命的系統(如航空航天、生命維持、金融、交通等),如果系統需求或環境發生了變化,此時停止系統運行進行更新或維護,將會產生高額的費用和巨大的風險,對系統的安全性也會產生很大的影響。靜態體系結構缺乏

2、表示動態更新的機制,很難用其分析、描述這樣的系統,更不能用它來指導系統進行動態演化。因此,動態軟件體系結構(Dynamic Software Architecture,簡稱:DSA)的研究應運而生。允許在系統運行時發生更新的軟件體系結構稱為動態軟件體系結構,動態體系結構在系統創建后可以動態更新。其動態性主要分為三類:交互式動態性,結構化動態性和體系結構動態性。目前,DSA的研究主要集中在以下幾個方面,一是體系結構的動態演化,二是研究模擬和描述體系結構動態更新語言,三是研究支持體系結構動態更新的執行工具。對于DSA動態演化的研究主要圍繞動態演化的需求來源、動態演化時期、動態演化類型、動態演化方法

3、等方面;模擬和描述動態體系結構的研究主要集中在對現有的一些ADL擴展以支持體系結構的動態性;動態演化執行工具有加州大學Irwine分校提出的ArchStudio工具集,倫敦皇家學院提出的SAA(Software Architecture Assistant),北京大學提出的PKUAS等。當前主流的體系結構模型CORBA、COM/DCOM、EJB等,都不支持體系結構的動態更新。同時,由于動態體系結構本身的復雜性,又缺乏通用的結構模型和有效的形式化描述機制及分析工具,使得學術界對DSA的研究還不成熟,實際應用較少,因而解決軟件的演化問題將成為DSA應用研究領域的一個重要方向。其次,對于與DSA研究

4、相關概念的統一、通用性支持工具、動態演化完整性、一致性、追溯性等問題都有待進一步深入。此外,隨著DSA研究的深入,基于DSA的一些新興軟件體系結構的研究,如自適應軟件體系結構、正交軟件體系結構、自省動態軟件體系結構、網格動態體系結構等,將會成為DSA研究的發展方向。2. 動態體系結構的描述與靜態體系結構的描述一樣,動態體系結構的描述既可以使用描述語言,也可以使用形式化的描述;既可以使用UML建模機制,也可以使用XML建模機制。2.1 DSA的描述語言軟件體系結構描述語言(Architecture Description Language,簡稱:ADL)是SA領域的一個重要研究成果,ADL從較高

5、抽象層次上描述構件接口的語法和語義、系統中的構件和連接子以及它們之間的交互關系、構件的非功能屬性以及構件間協議,從而建立系統的體系結構模型。但是大多數ADL只描述系統的靜態結構,不支持對體系結構動態性的描述。UML作為體系結構建模工具,它不是一種體系結構的描述語言,而是一種設計語言。因此開發動態軟件ADL是很有必要的。近年來,已經開發出了很多動態體系結構描述語言,如Darwin、Dynamic ACMED、Dynamic Wright、Rapide等。(1) Dynamic WrightDynamic Wright是體系結構描述語言Wright的一個擴展,Dynamic Wright的主要目的

6、是試圖模擬或標記已解決軟件系統的動態性。采用Dynamic Wright具有較多的良好特性,其中之一就是能夠很容易地描述軟件的動態環境。在客戶-服務器的體系結構中,如果設計師想要對客戶(Client)的每一步工作所依賴的服務器(Server)進行說明,比如Client最初是依賴于Server1的,當且僅當Server1出現問題時,Client將與Server2進行交互。因此,設計師必須用一個符號來表示每一個接觸點L。圖2-1是上述問題的靜態描述,它圖2-1 靜態描述并不能清楚的反映出設計師對體系結構的動態依賴關系,這樣有可能導致設計師把一些關鍵的方面遺漏,它還需要一些額外的文本對體系結構的行為

7、進行說明。如果采用Dynamic Wright來描述客戶-服務器的體系結構,就用一個動態變化的新符號,即配置“configuror(C)”。通過增加一個configuror到Wright的標記中,設計師就能很好的闡述控制行為,使得設計師能更好地描述系統體系結構?!癈onfiguror”主要涉及這些問題:什么時候軟件體系結構應該重新配置?什么原因使得軟件體系結構需要進行重新配置?重新配置應該怎樣進行?圖2-2是上述問題的動態描述,通過引入虛線和配置C來動態描述該系統的動態特征。這樣設計師就能很容易地把系統的動態環境表述清楚。因此,Dynamic Wright是非常適合動態軟件體系結構的環境描述。

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

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

10、接口應該是屬于 receive,send 兩種類型,定義了接口的具體行為規則3:模式名字可以定義一個具體的接口構件或系統,其模式可包括其他的模式來表示其結構和行為規則4:構件之間的連接是通過連接件來實現的,其連接行為也可以定義是一個類型擴展的Z 語言從語義與語法上描述了體系結構中構件連接件和配置,如圖2-4所示圖2-4 擴展Z語言描述DSA2.1 DSA的形式化描述動態軟件系統的形式化描述包括軟件體系結構的描述、體系結構的重新配置和系統行為的描述。對DSA的形式化描述,通??梢圆捎脠D形化方法、進程代數方法、邏輯方法等。(1) 圖形化方法由于圖能夠直觀地描述系統體系結構及其風格,所以用圖形化方法

11、描述軟件體系結構是很自然的事情,用圖的重寫規則來描述DSA的配置也是一種很自然的方法。采用圖形化方法描述DSA的主要有Le Metayer的描述方法、CHAM方法、Hirsh等的描述方法等。(2) 進程代數方法進程代數方法通常用于研究并發系統,在并發系統中進程通常用代數方法描述,用微分方法對描述進行驗證。多進程代數應用于CCS,CSP和演算。常用的進程代數方法有Dynamic Wright、Darwin、LEDA和PiLar等(3) 邏輯化描述方法邏輯化描述方法是DSA描述的形式化基礎,常用的邏輯描述方法有Gerel、Aguirre-Maibaum方法和ZCL方法等表2-5是對DSA形式化描述

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

13、動態配置,支持預設的動態演化Pi-ADLArchware基于高階Pi演算支持動態體系結構建模和驗證圖形化和進程代數SAAM模型的描述語言于振華等面向對象Petri網OPN和Pi演算兩種互補的形式化方法適用于基于構件的軟件系統的動態演化,支持動態體系結構建模、分析與驗證JB /SADL張世琨等用偽碼刻畫構件接口、構件結構、構件實現,采用Mealy機刻畫構件的行為支持對JB /HMB風格的系統進行規范化描述,并可在工具的支持下進行系統性質分析、動態模擬運行、動態演化和代碼框架自動生成此外,徐洪珍等人提出用約束超圖表示軟件體系結構,用左右應用條件刻畫軟件體系結構動態演化的前斷言和后斷言,用條件超圖文

14、法建模軟件體系結構動態演化過程;汪玲等人提出用擴展的Bigraph描述面向方面動態軟件體系結構(AODSA)模型的結構;趙智坤等人提出用動態描述邏輯的方法描述DSA,都為DSA的描述與分析提出了新的方法,為DSA的發展奠定了理論基礎。參考文獻:1 張友生.軟件體系結構M. 2版.北京:清華大學出版社, 2014.2 李瓊,姜瑛. 動態軟件體系結構研究綜述J.計算機應用研究,2009.6.3 晏鄭勇.基于動態軟件體系結構的軟件自適應性研究碩士學位論文.2014.5.4 周緒川. 適用于動態軟件體系結構的擴展的Z描述語言J.計算機應用研究,2012.9.5 徐洪珍, 曾國蓀, 陳波. 軟件體系結構動態演化的條件超圖文法

溫馨提示

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

評論

0/150

提交評論