組件體系結構

組件體系結構

體系結構包括一組部件以及部件之間的聯繫。組件體系結構是指軟體體系結構以組件技術為基礎來構建軟體,實現用戶的需求。由於軟體開發者無法預知每一個用戶的要求,更無法將用戶的所有要求封裝於一個軟體之中。組件體系結構將絕大多數用戶所要求的共同屬性定義為核心組件,並將其封裝為一個小型的、可擴展的核心。

簡介

組件體系結構是指軟體體系結構以組件技術為基礎來構建軟體,實現用戶的需求。組件體系結構有如下的優點:1) 精巧的核心:就實現而言套用軟體是一個龐大而複雜的標準。通過將其精簡為一個小的核心功能集合,減少了實現的複雜度,並且增強了軟體的可維護性。2)擴展能力:藉助擴展集和特性集的概念,開發者可以在核心上添加新的擴展集,也可擴展新的特性。這樣就可以依據不同的需求,定製不同的套用。3)減少了對資源的占用:例如對於機頂盒而言,每一種特性都是對資源的消耗。採用小核心的方式,可以為用戶節省不必要的資源開支將會大大地方便用戶的使用 。

組件技術

組件技術是面向對象技術的核心,它的基本思想是:將大而複雜的軟體套用分成一系列的可先行實現、易於開發、理解和調整的軟體單元,也就是組件(components)。以此為基礎的軟體解決方案,效率高,花費也低。

屬性

組件有以下幾個基本屬性:

1)組件是可獨立配置的單元,這是它與對象的本質區別。組件內部獨立設計、獨立開發,可進行獨立測試、獨立發布;

2)組件強調與環境和其他組件的分離,因此組件的實現是嚴格封裝的,外界沒有機會或沒有必要知道組件內部的實現細節,為了儘可能的消除軟體之間或者是軟體的不同部分之間的聯繫,組件內部設計強調強內聚,而組件之間則儘量追求松耦合;

3)組件可以在適當的環境中被不同形式的或不同層次的重複使用,因此組件需要提供清楚的接口規範,可以與環境互動。組件技術強調接口與實現分離,接口是對象或者組件見的通信協定,實現是對象或者組件的內部細節;

4)組件不應當是持續的,即組件沒有個體特有的屬性,理解為組件不應當與自身副本區別。

特點

真正的軟體重用和高度的互操作性:組件是完成通用或特定功能的一些可互操作的和可重用的模組,套用開發者可以利用它們在不同套用領域的知識來自由組合生成合適的套用系統。

接口的可靠性:組件接口是不變的,一旦被發表,它們就不能被修改。也就是說,一旦組件使用者通過某接口獲得某項服務,則總可從這個接口獲得此項服務。因此,組件封裝後,只能通過己定義的接口來提供合理的、一致的服務。這種接口定義的穩定性使客戶套用開發者能構造出堅固的套用。

可擴充服務:每個組件都是自主的,有其獨自的功能,只能通過接口與外界通信。通過訊息傳送互相提供服務,基本組件的互操作是互動服務的。當一個組件需要提供新的服務時,可通過增加新的接口來完成,不會影響原接口己存在的用戶。用戶也可重新選擇新的接口來獲得服務。

具有強有力的基礎設施:為了使組件有機地膠合(glued)在一起,實現無縫連線,需要功能很強的基礎設施。這些基礎設施是獲得重用性可移植性和互操作性的有效工具。這樣就可知道如何找到組件提供的服務,並能在應用程式編譯時進行靜態聯編,用戶必須在編譯時就知道要訪問的伺服器接口,或在應用程式執行時進行動態聯編。在動態機制中,客戶可以不知道可用的伺服器和接口信息,而是在運行時間內搜尋可用伺服器,找到伺服器接口,構造請求並傳送,最後收到應答。

軟體體系結構

雖然軟體體系結構的概念早在 20 世紀 80 年代就已經提出,但真正引起關注和重視是在 90 年代 。1992年,Dewayne Perry 和 Alex Wolf 定義:軟體體系結構={ 元素,形式,準則}。軟體體系結構是由具有特定形式的體系結構元素或設計元素構成,包括處理元素、數據元素和連線元素。處理元素負責對數據進行加工,數據元素是被加工的信息,連線元素把體系結構的不同部分組合連線起來。軟體體系結構形式由專有特性和關係組成 。而在多個體系結構方案中選擇合適的體系結構方案往往基於一組準則 。這一定義注重區分處理元素 、數據元素和連線元素,這一方法在其它的定義和方法中基本上得到保持 。

1993 年,David Galan 和 Mary Shaw 提出:軟體體系結構 ={ 組件,連線件,約束} 。組件可以是一組代碼,如程式的模組;也可以是一個獨立的程式,如資料庫伺服器 。連線件可以是過程調用、管道、遠程調用等,用於表示組件之間的相互作用。一個軟體體系結構還包括某些約束,約束一般為對象連線時的規則或指明連線的勢態和條件。軟體體系結構是設計過程的一個層次,它處理那些超越算法和數據結構的設計,研究整體結構設計和描述方法 。

1994 年,Bass 等人提出體系結構設計至少應包括套用領域的功能分割、系統結構、結構的領域功能分配三個方面。1995 年,David Garlan 和 Mary Shaw 修正定義:軟體體系結構包括系統組件的結構 、組件的相互關係以及控制組件設計演化的原則和指導三個方面 。1996 年,Kruchten 指出,軟體體系結構有四個角度 :概念角度、模組角度、運行角度和代碼角度。概念角度描述系統的主要組件及它們之間的關係;模組角度包含功能分解與層次結構 ;運行角度描述一個系統的動態結構;代碼角度描述各種代碼和庫函式在開發環境中的組織。1997 年,Bass,Clements 和 Kazman 提出:軟體體系結構包括組件 、組件的外部可見性以及相互的關係 。其中軟體組件的外部可見性是指軟體組件提供的服務、性能、特性、共享資源使用等。該定義強調體系結構分析需要從系統中抽象出用於分析、決策的信息 。概括各種不同觀點,可發現它們都支持這樣的觀點,即:軟體體系結構包括系統總體組織 、全局控制、通信技術、同步、數據存取 、設計元素的功能 、組織 、規模 、性能 、設計方案的選擇 。

相關詞條

熱門詞條

聯絡我們