當前位置:編程學習大全網 - 編程語言 - 幾種常見的軟件體系結構及特點分析(簡述5種常見的軟件體系結構風格)

幾種常見的軟件體系結構及特點分析(簡述5種常見的軟件體系結構風格)

20世紀60年代的軟件危機使得人們開始重視軟件工程的研究。起初,人們把軟件設計的重點放在數據結構和算法的選擇上,然而隨著軟件系統規模越來越大,對總體的系統結構設計和規格說明變得異常重要。隨著軟件危機程度的加劇,軟件體系結構(software)這壹概念應運而生。軟件體系結構著眼於軟件系統的全局組織形式,在較高層次上把握系統各部分之間的內在聯系,將軟件開發的焦點從成百上千的代碼上轉移到粒度較大的體系結構元素及其交互的設計上。與傳統軟件技術相比,軟件體系結構理論的提出不僅有利於解決軟件系統日益增加的規模和復雜度的問題,有利於構件的重用,也有利於軟件生產率的提高。面向方面軟件開發(AOSD)認為系統是由核心關註點(cornconcern)和橫切關註點(cross-cuttingconcern)有機地交織在壹起而形成的。核心關註點是軟件要實現的主要功能和目標,橫切關註點是那些與核心關註點之間有橫切作用的關註點,如系統日誌、事務處理和權限驗證等。AOSD通過分離系統的橫切關註點和核心關註點,使得系統的設計和維護變得容易很多。

Extremara大學的Navasa等人〔1〕在2002年提出了將面向方面軟件開發技術引入到軟件體系結構的設計中,稱之為面向方面軟件體系結構(aspectorientedsoftware,AO-SA),這樣能夠結合兩者的優點,但是並沒有給出構建面向方面軟件體系結構的詳細方法。

盡管目前對於面向方面軟件體系結構這個概念尚未形成統壹的認識,但是壹般認為面向方面軟件體系結構在傳統軟件體系結構基礎上增加了方面構件(aspectcomponent)這壹新的構成單元,通過方面構件來封裝系統的橫切關註點。目前國內外對於面向方面軟件體系模型的研究還相對較少,對它的構成單元模型的研究更少,通常只關註方面構件這壹構成單元。方面構件最早是由Lieberherr等人〔2〕提出的,它是在自適應可插拔構件(adaptiveplugandplaycomponent,APPC)基礎之上通過引入面向方面編程(AOP)思想擴展壹個可更改的接口而形成的,但它關於請求接口和服務接口的定義很模糊,未能給出壹個清晰的方面構件模型。Pawlak等人〔3〕提出了壹個面向方面的框架,該框架主要包含了壹個方面構件模型———Java方面構件(Javaaspectcomponent,JAC),但該方面構件模型僅包含了切點(pointcut),並把AOP中裝備(advice)集成到了切點的表達式中,它主要從實現的角度進行了闡述,並沒有給出詳細的方面構件模型。本文沒有只關註面向方面軟件體系結構中方面構件這壹構成單元模型,還詳細分析了它的另外兩個構成單元,即構件和連接件,因為面向方面軟件體系結構各部分之間是相互關聯的。

1面向方面軟件體系結構相關概念

面向方面軟件體系結構涉及諸多概念,以下將分別介紹。軟件體系結構在軟件工程領域有著廣泛的影響,但當前仍未形成壹個統壹的、標準的定義。目前國內外普遍認可的看法是軟件體系結構包含構件、連接件和約束〔4〕。其中約束描述了體系結構配置和拓撲的要求,確定了體系結構的構件與連接件的連接關系。這樣就可以把軟件體系結構寫成

軟件體系結構(software)=構件(components)

連接件(connectors)約束(constraints)

構件是軟件體系結構的基本元素之壹。壹般認為,構件是指具有壹定功能、可明確辨識的軟件單位,並且具備語義完整、語法正確、有可重用價值的特點,然而目前對於構件的具體結構及構成並沒有壹個統壹的標準〔5〕,而且壹些主要的構件技術也沒有使用相同的構件類型。另外,當前被廣泛接受的構件定義並不包含具體的軟件構件模型(softwarecomponentmodel)。例如,Szyperski等人〔6〕給出了軟件構件壹個很有名的定義:軟件構件是壹個僅帶特定契約接口和顯式語境依賴的結構單位,它可以獨立部署,易於第三方整合。但是關於軟件構件模型有壹個被普遍接受的觀點是:軟件構件是壹個具有服務提供和服務請求功能的軟件單元〔7〕。

連接件是軟件體系結構另壹個基本的構成元素,是用來建立構件間交互以及支配這些交互規則的構造模塊。連接件最先是由Shaw〔8〕提出來的,她建議把連接件作為軟件體系結構中第壹類實體,用來表示普通構件之間的交互關系。目前對於連接件尚未形成統壹的認識,盡管在軟件體系結構中強調了連接件存在的必要性,但是關於連接件模型的研究還很少,連接件的實際應用還不成熟。

面向方面軟件體系結構在傳統軟件體系結構的基礎上增加了方面構件單元。通常認為,方面構件是封裝了系統橫切關註點的壹類特殊的構件。目前關於方面構件模型的研究還處於起步階段。

2面向方面軟件體系結構模型

由於傳統軟件體系結構模型包含構件、連接件和約束,而面向方面軟件體系結構是在傳統軟件體系結構的基礎之上擴展了方面構件,所以面向方面軟件體系模型結構包含構件、連接件、方面構件和約束。其中約束描述了面向方面體系結構配置和拓撲的要求,確定了體系結構的構件、連接件和方面構件之間的連接關系,而構件、連接件、方面構件是它的三個基本的構成單元。以下對這三個構成單元的模型進行詳細的設計。

  • 上一篇:理查德·道金斯的著名論壇
  • 下一篇:加工中心銑斜面怎樣編程
  • copyright 2024編程學習大全網