1. 程式人生 > >軟體架構設計---軟體架構檢視

軟體架構設計---軟體架構檢視

 軟體架構檢視

   從軟體架構本身的特點出發討論了架構建模及與特定應用領域密切相關的架構風格。本節將從對架構編檔的角度對軟體架構檢視及其風格進行討論。

1 軟體檢視的分類

    現代軟體系統非常複雜,通常在某個具體的時間內只需將注意力集中在某幾個結構上(就像看病時,醫生只是將注意力集中在某方面的人體結構上,骨科醫生與心血管科醫生關心不同的結構),結構是元素本身的集合,而檢視則是捕獲和表達結構(文件描述),雖然它們有區別,但在實際使用時則不嚴格區分,即從系統體系的角度說是結構,從文件角度說是檢視,因此,本節將不再區分結構和檢視術語。

    軟體架構是一種無法以簡單的一維方式進行說明的複雜實體,從不同側面的描述就是檢視。架構的優勢也在於使用檢視:每個檢視強調系統的某一個方面,同時忽視系統的其他方面,以便有助於處理或理解當前問題,描述完整的系統架構必須具備完整的檢視集, “4+1”方法就是一類完備檢視集。

    軟體檢視通常分為三種類型:

    (1)模組檢視型別:為系統的主要模組實現單元編檔。

    (2)構件和連線件檢視型別:為系統的構件和連線件執行單元編檔。

    (3)分配檢視型別:為軟體的開發和執行環境之間的關係編檔。每一檢視型別中,又有一些常用的形態,可以把這些形態歸納成架構風格(簡稱風格),

    大量的架構風格供架構設計師選用,例如客戶機/伺服器是一種常見的架構風格,它是構件和連線件檢視型別中的一員。架構風格是對元素和關係型別的特化,它還包括如何使用這些元素和關係型別的一組限制條件。架構結構/檢視分類如表 9-10 所示。下面各小節中再分別對這三種類型及其風格從元素、關係及特徵方面做進一步總結。

2 模組檢視型別及其風格

    模組將遵循某種方式將軟體系統分解成可管理的功能單元。架構模組檢視是通過文件來列舉系統的主要實現單元或模組,及這些單元之間的關係。

    任務完整的架構文件必須包含有模組檢視,它為原始碼提供藍圖。該型別如表 9-11 所示。

    下面對模組檢視的四種風格進行總結。

    (1)分解風格能展示向模組分配責任的方式。該風格總結如表 9-12 所示。

    (2)使用風格能展示模組相互依賴的方式。該風格總結如表 9-13 所示。

    (3)分層風格能將系統分割成一組虛擬機器,通過“允許使用”關係相互關聯,分層風格能幫助實現可移植性和可修改性。該風格總結如表 9-14 所示。

    (4)泛化風格能展示一個模組如何成為另一個模組的泛化或特化,從而使模組之間產生關聯。它廣泛應用於面向物件的系統,能展示繼承性,並能用來使用模組之間的共性。該風格總結如表 9-15 所示。

3   C&C檢視型別及其風格

    C&C 檢視能定義由具有某種執行時存在的元素模型,這些元素包括程序、物件、客戶機、伺服器及資料儲存器等。此外,它還包含作為元素的互動路徑,如通訊鏈路和協議、資訊流及共享儲存器訪問。通常,可利用複雜的基礎結構(如中介軟體框架、分散式通訊通道和程序排程)來執行這些互動操作。該型別總結如表 9-16 所示。

    C&C 檢視風格是 C&C檢視型別的特化,C&C 檢視風格為數不少,下面對 C&C 檢視的幾種風格進行總結。

    (1)管道和過濾器風格中的互動模式表現出資料流連續變換的特徵。資料抵達過濾器並經過轉換後由管理傳送給下一個過濾器。該風格總結如表 9-17 所示。

    (2)共享資料風格通過保留持久資料來支配互動模式,持久資料由多個數據存取器和至少一個儲存庫保留。該風格總結如表 9-18 所示。

 

    (3)釋出-訂閱風格用於向一組未知接受者傳送事件和訊息。可在不修改生產者的情況下新增新的接受者(訂閱者)。在釋出-訂閱風格中,構件通過事件釋出進行互動。構件可訂閱一組事件。該風格總結如表 9-19 所示。

    (4)客戶機-伺服器風格能展示構件通過請求其他構件的服務進行互動的過程,將功能劃分成客戶機和伺服器後即可基於執行時準則把它們單獨分配給各個級。該風格總結如表 9-20 所示。

    (5)對等連線系統能通過構件之間的直接交換支援服務交換。它是一種呼叫/返回風格。該風格總結如表 9-21 所示。

    (6)通訊-程序風格的特徵表現在通過各種連線件機制併發執行構件的互動,如通過同步、訊息傳遞、資料交換、啟動和停止等進行互動。該風格總結如表 9-22 所示。

 

4  分配檢視型別及其風格

    硬體、檔案系統和團隊結構都會與軟體架構進行互動,將軟體架構對映到其環境的一般形式稱為“分配檢視型別”。該型別總結如表 9-23 所示。

    分配檢視型別的三種常見風格為:

  • 部置風格:能描述構件和連線件對硬體的對映,硬體是軟體執行的場所。

  • 實現風格:能描述模組對包含它們的檔案系統的對映。

  • 工作任務風格:能描述模組對承擔模組開發任務的人員、團隊或小組的對映。

    (1)部置風格體現為 C&C 風格(如通訊-程序風格)的元素被分配到執行平臺。該風格總結如表 9-24 所示。

    (2)實現風格能將模組檢視型別中的模組對映到開發基礎結構。實現一個模組總會產生許多獨立檔案,必須對這些檔案進行組織,以免失去對系統的控制及系統的完整性。通常利用配置管理技術進行檔案管理。該風格總結如表 9-25 所示。

    (3)軟體專案的時間和預算估計取決於工作分解結構(WBS),而工作分解結構則取決於軟體架構。工作任務風格將軟體架構對映到由人組成的團隊之中,實現這一專案管理的目的。該風格總結如表 9-26 所示。

    工作任務風格與模組分解風格關係密切,它能將模組分解風格用作其分配對映的基礎。這種風格能通過新增與開發工具、測試工具和配置管理系統等對應的模組分解進行擴充套件。工作任務風格還通常與其他風格聯合使用,例如,團隊工作任務可以是模組分解風格中的模組,可以是分層圖中的層,也可以是多程序系統中的任務或程序。

5  各檢視型別間的對映關係 

    為了完整地描述一個架構,必須使用多個檢視,這些檢視必須遵守一定的對映關係。

    (1)模組檢視型別中的檢視通常會對映到構件和連線件檢視型別中的檢視。模組實現單元將對映到執行時構件。

    (2)系統的構件和連線件檢視和模組檢視之間的關係可能會非常複雜。同樣的程式碼模組可由C&C 檢視的許多元素執行。反之,C&C 檢視的單一構件可執行由許多模組定義的程式碼。同樣,C&C 構件可能會擁有許多與環境進行互動的點,每個互動點由同一模組介面定義。

    (3)分配檢視型別是為有效地實現軟體架構的輔助性檢視,它將其他檢視型別中的軟體元素對映到軟體環境中,即反映其他檢視與軟體環境之間的關係。