前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件體系ADLs的分類與比較研討范文,希望能給你帶來靈感和參考,敬請閱讀。
ADL與其他系統的實現不同,它是一個為軟件系統的概念性架構建模提供的一門語言。ADLs為特征框架提供一個具體的語法和一個概念框架。這個特征的概念框架典型地反映了ADL中的與/或的框架風格的范圍特征。該框架典型地包含了ADL的潛在語義理論(例如,CSP、實驗室網,有限狀態機)。在這個部分介紹ADL分類和比較框架的頂層分類和比較的范疇。一個ADL框架描述的組成模塊包括構件、連接件和體系結構配置的配置。ADL必須為它們能夠明確地說明提供必要的手段,使能夠確定某一個特殊符號是否是ADL。adls框架體系結構由構件、連接件和體系結構配置3個部分組成[5],下面將對這3個概念進行分別介紹。
正如已經初步探討的,明確的構件接口是ADLs的一個特征。另外還有的比較屬性是建模的構件類型、語義學、約束、進化及非功能性屬性,將在下面進行討論。(1)接口:構件的接口是與外部環境交流的一組交互點。接口說明了構件提供的那些服務(消息、操作和變量)。為了能夠充分地推斷構件及包含它的體系結構,ADL提供了能夠說明構件需要的工具,例如提供體系結構中的需要的其他構件的服務。因而一個接口定義了在其應用上進行計算和約束的方法。(2)類型:構件類型都是抽象的概念,可封裝成重復使用的功能塊。一個構件類型能夠多次在單一的體系結構中實現或被重用。構件類型可以參數化,進一步促進可重復使用。顯式模型的類型使得所有實例共享的屬性類型易于理解和分析。(3)語義:定義構件模型的語義作為一個高級構件的行為。這樣一個模型是需要做分析,加強體系結構的約束使其能夠從一個階段的抽象到另一個抽象一致映射。注意一個構件的接口也允許某種有限的程度上對其語義的推理。然而,語義概念應用于本文是嚴格指構件建模的行為。(4)約束:一個約束是關于一個系統或它的一個部分一種屬性或斷言,破壞約束將會使得系統不被接受或者不能正常使用。為了確保執行預期構件的使用,強行使用邊界條件,并建立內部相互之間的依賴和指定一個構件的限制。(5)演化:作為組成模塊,構件將不斷進化。構件演變可以定義為一種非正式的一個子集修改(一個構件的屬性),例如,界面、行為或實施。ADLs可以通過運用構件類型和具體構件特點中的典型子集技術確保進化發生按照的是系統化的方式。(6)非功能性屬性:一個構件的非功能性屬性(例如,安全、性能、可移植性)通常不能直接來源于它的行為規范。這些特性的早期的規格(在體系結構設計層面)需要模擬過程,分析,加強約束條件,地圖構件處理器的實現和項目管理的幫助。
一個連接件是一個連接件和構件及與之相連的鏈接器相互之間作用的交互點。因為連接件不履行任何特定應用的計算,作為其接口提供這些相關構件的期望服務的輸出。連接件接口使構件適當地建立連接并且使它們在體系結構中的交互成為可能,也因而推理出體系結構的配置。連接件類型是封裝構件的溝通、協調、調解的決策的抽象的概念。結構層次交互由復雜的協議描述。讓這些協議不僅在整個需要ADLs模型連接件類型的體系中可重用而且可以跨越體系重用。有兩種典型的方式:為完成可擴展的類型系統,定義交互協議,或者是基于特定的實現機制相互作用的內部構造,枚舉類型。類似于構件,連接件被定義為一種高層次語義模型的連接件的行為。不像部件,其語義表達了應用程序的功能,連接件語義蘊涵的相互作用協議(計算上的獨立)。ADLs可以支持連接件語義的建模,實現構件的交互分析,整體抽象結構層次精確一致和加強相互連接約束。確保約束交互協議,建立內部交互連接件機制,并且強化邊界條件的使用。一個簡單的例子和容易的強調性約束就是一個在一定數量的構件上建立的約束,它通過連接件進行交互。建立更多復雜的連接件約束將需要已有的連接件能夠取得外部消息。相較之下對構件演化,一個連接件的演化是修改(定義為其屬性的一個子集),例如,界面、語義學、或共同限制這兩個。結構體系構件的相互作用是受復雜并具有改變和擴大能力的協議控制的。然后,兩個獨立的構件及其配置進行演化。ADLs可以適應這種演化,通過改變或是用增加消息過濾器的技術和手段完善現有的連接件。一個連接件的非功能性屬性也并非完全可以從規范的語義得到。它們代表要求正確的連接件的實施。建模的非功能性屬性的連接件使仿真運行時行為分析、連接件、約束實施,并選擇適當的現有(理論連接件)和它們的處理器成為可能。
軟件體系結構的一個角色就是為項目中的不同的相關者和在一個較高抽象層次的設施的理解提供一個早期的交流通道。ADLs必須建立使用簡單移動的語義來建立模型。系統的結構應該清晰地描述系統的配置。例如,沒有實現進行研究的構件和連接件的規格說明。組合性或層次組成,是一種允許體系結構描述軟件系統在不同層次的細節的機制。復雜結構和行為可能會被明確代表或者它們可能是抽象出來了的一個單一的部件或連接件。還有可能出現這樣的情況,整個系統將成為另一個更大的系統的一個構件。這樣的抽象機制應該作為一個ADLs建模能力的一部分。除了為體系結構提供語義上的具體設施來定義體系結構,ADLs必須能夠改正和實現可執行系統和追溯系統改變等級的一致性。這是由ADLs的開發和利用普遍支持的。這就在低級與高級系統之間搭建了一個相互交流的橋梁。軟件體系結構的一個目標是促進大規模系統的發展,由于先前存在的元件和連接件的不同粒度,可能會存在不同的正式規定統一建模語言和執行不同的編程語言,還會有不同的操作系統方面的要求,支持不同的通信協議。因此,ADLs應該是開放的,即為軟件體系結構提供規范和發展與異構構件和連接件。體系結構旨在為開發者提供解決抽象和復雜問題大規模軟件。因此,ADLs必須直接支持大規模系統的規范和發展,這樣才能夠得到進一步發展。新軟件的系統很少提供前所未有的功能,一個可以演化的體系結構系統能夠支持系統的進一步進化,基于軟件體系結構的發展是ADLs一個重要的發展方向。靈活性指的是當系統執行任務時能夠修改體系結構和制定系統的修改方法。系統靈活性的支持對于某個安全任務嚴格系統來說是很重要的,例如交通控制,話機轉換和高利用環境信息系統。約束描述了配置完成的具體到獨立個體構件和連接件的依賴。許多通用的約束都是源于或者是直接依賴于本地約束的。例如,在無效配置上的約束將會被作為在連續構件和連接件中的交互約束,反過來是通過它們的接口和協議來表示。特定的非功能屬性是系統級的,而不是個別的構件或者是連接件屬性。配置等級的非功能性屬性被需要用來選擇適當的構件和連接件,執行分析,加強約束,映射體系結構組成模塊和服務工程管理。體系結構的配置或拓撲結構是構件和描述體系結構的連接件的連接圖,需要這種消息來確定是否連接了合適的構件,它們的接口是否相互匹配,連接件是否能夠適當地溝通,還有它們組合的語義是否能夠產生需要的行為[8]。在具有構件和連接件的模型當中,配置的描述實現了對體系結構的并行系統與分布式系統的評估。例如,死鎖等的潛在性能,可靠性和安全性等等。配置的描述同時還實現了設計試探法的附加體系結構的分析(例如,體系構件之間的妨礙發展的直接通信連接)和體系結構類型約束。
本文的突出貢獻是提出了一個這樣的框架定義與分類的概念,定義提供了一種簡單的見效快的ADLs檢驗方法,并對體系結構建模的本質在很大程度上達成了一致的共識。值得指出的是,通過簡化結構與實現之間的關系、約束性的ADLs的實現比“主流”ADLs(獨立的實現)在生成安裝上更成功。現有的ADLs的比較突出的表現在幾個領域,對體系結構建模性能和工具都提供了廣泛的支持。(本文作者:徐瑩 單位:遼寧工程技術大學)