軟件體系結構複習要點——chapter 3 軟件體系結構風格

Chapter 3 軟件體系結構風格

1. 軟件體系結構風格概述:

●軟件體系結構設計的一個核心問題是能否使用重複的體系結構模式,即能否達到體系結構級的軟件重用。

●軟件體系結構風格是描述某一特定應用領域中系統組織方式的慣用模式。體系結構風格定義一個系統家族,即一個體繫結構定義一個詞彙表和一組約束。詞彙表中包含一些構件和連接件類型,而這組約束指出系統是如何將這些構件和連接件組合起來的。體系結構風格反映了領域中衆多系統所共有的結構和語義特性,並指導如何將各個模塊和子系統有效地組織成一個完整的系統。按這種方式理解,軟件體系結構風格定義了用於描述系統的術語表和一組指導構件系統的規則。

●對軟件體系結構風格的研究和實踐促進對設計的重用,經過實踐證實的解決方案也可以可靠地用於解決新的問題。體系結構風格的不變部分使不同系統可以共享同一個實現代碼。只要系統是使用常用的、規範的方法來組織,就可使別的設計者很容易地理解系統的體系結構。

●軟件體系結構風格爲大粒度的軟件重用提供了可能。但對於應用體系結構風格來說,由於視點的不同,系統設計師有很大的選擇餘地。要爲系統選擇或設計某一個體繫結構風格,必須根據特定項目的具體特點,進行分析比較後再確定,體系結構風格的使用幾乎完全是特定的。

●軟件體系結構最關鍵的四要素:

    提供一個詞彙表、定義一套配置規則、定義一套語義解釋規則、定義對基於這種風格的系統所進行的分析

●通用體系結構風格:

    (1)數據流風格:批處理序列、管道/過濾器

    (2)調用/返回風格:主程序/子程序、面向對象風格、層次結構

    (3)獨立構件風格:進程通信、事件系統

    (4)虛擬機風格:解釋器、基於規則的系統

    (5)倉庫風格:數據庫系統、超文本系統、黑板系統

2. 管道和過濾器:

●優點:

    (1)使軟構件具有良好的隱蔽性和高內聚、低耦合的特點。

    (2)允許設計者將整個系統的輸入/輸出行爲看成是多個過濾器的行爲的簡單合成。

    (3)支持軟件重用。

    (4)系統維護和增強系統性能簡單。

    (5)允許對一些如吞吐量、死鎖等屬性的分析。

    (6)支持並行執行。

●缺點:

    (1)通常導致進程成爲批處理的結構。

    (2)不適合處理交互的應用。

    (3)因爲在數據傳輸上沒有通用的標準,每個過濾器都增加了解析和合成數據的工作,這樣就導致了系統性能下降,並增加了編寫過濾器的複雜性。

3. 分層系統:

●優點:

    (1)支持基於抽象程度遞增的系統設計。

    (2)支持功能增強。

    (3)支持重用。

●缺點:

    (1)並不是每個系統都可以很容易地劃分爲分層模式。

    (2)很難找到一個合適的、正確的層次抽象方法。

4. C2風格:

●組織規則:

    (1)系統中的構件和連接件都有一個頂部和一個底部。

    (2)構件的頂部應連接到某連接件的底部,構件的底部則應連接到某連接件的頂部,而構件和構件之間的直接連接是不允許的。

    (3)一個連接件可以和任意數目的其他構件和連接件連接。

    (4)當兩個連接件進行直接連接時,必須由其中一個的底部到另一個的頂部。

●特點:

    (1)系統中的構件可實現應用需求,並能將任意複雜度的功能封裝在一起。

    (2)所有構件之間的通信是通過以連接件爲中介的異步消息交換機制來實現的。

    (3)構件相對獨立,構件之間依賴性較少。系統中不存在某些構件將在同一地址空間內執行,或某些構件共享特定控制線程之類的相關性假設。

5. 客戶/服務器風格:

●主要組成部分:數據庫服務器、客戶應用程序、網絡

●優點:

    (1)對硬件和軟件的變化顯示出極大的適應性和靈活性,易於對系統進行擴充和縮小。

    (2)系統中的功能構件充分隔離。

    (3)將大應用處理任務分佈到許多通過網絡連接的低成本計算機上,以節約大量費用。

    (4)具有強大的數據操作和事務處理能力,模型思想簡單,易於理解和接受。

●缺點:

    (1)開發成本較高。

    (2)客戶端程序設計複雜。

    (3)信息內容和形式單一。

    (4)用戶界面風格不一,使用繁雜,不利於推廣使用。

    (5)軟件移植困難。

    (6)軟件維護和升級困難。

    (7)新技術不能輕易使用。

6. 三層客戶/服務器風格:

●主要組成部分:數據庫服務器(數據層)、客戶應用程序(表示層)、應用服務器(功能層)

●優點:

    (1)允許合理地劃分爲三層結構的功能。

    (2)允許更靈活有效地選用相應的平臺和硬件系統,具有良好的可升級性和開放性。

    (3)能並行而且高效地進行開發。

    (4)安全管理嚴格,管理層次更加合理和可控制。

●缺點:

    (1)若各層的通信效率不高,整體也達不到所要求的性能。

    (2)設計時必須慎重考慮三層間的通信方法、通信頻度及數據量。

7. 瀏覽器/服務器風格:

●主要組成部分:客戶端瀏覽器、Web服務器、數據庫服務器

●優點:

    (1)用通用瀏覽器實現了原來需要複雜的專用軟件才能實現的強大功能,節約了開發成本。

    (2)系統安裝、修改和維護全在服務器端解決。

    (3)提供異種機、異種網、異種應用服務的聯機、聯網、統一服務的最現實的開放性基礎。

    (4)實現了跨組織的功能覆蓋,可以充分利用網絡上的各種資源,維護工作量大大減少。

●缺點:

    (1)缺乏對動態頁面的支持能力,沒有集成有效的數據庫處理功能。

    (2)系統擴展能力差,安全性難以控制。

    (3)數據查詢等響應速度慢。

    (4)數據的動態交互性不強,不利於在線事務處理應用。

8. 正交軟件體系結構:

●組成部分:組織層(橫向)、線索(縱向)

●主要特徵:

    (1)正交軟件體系結構由完成不同功能的n個線索(子系統)構成。

    (2)系統具有m個不同抽象級別的層。

    (3)線索之間是相互獨立的(正交的)。

    (4)系統有一個公共驅動層(一般爲最高層)和公共數據結構(一般爲最低層)。

●優點:

    (1)結構清晰,易於理解。

    (2)易修改,可維護性強。

    (3)可移植性強,重用粒度大。

9. 基於層次消息總線的體系結構風格:

●HMB:由北大楊芙清院士等人提出。

●消息總線:


●消息過濾:消息總線對消息過濾提供了轉換和阻塞兩種方式。消息過濾的原因主要在於不同來源的構件事先並不知道各自的接口,因此可能同一消息在不同的構件中使用了不同的名字,或不同的消息使用了相同的名字。

10. 異構結構風格:

●爲什麼要使用異構結構?

    (1)應該根據實際需要進行選擇,以解決實際問題。

    (2)在某段時間內某一種標準佔統治地位,但變動最終是絕對的。

    (3)遺留代碼仍然效用,但與新系統在某種程度上不協調。

    (4)即使規定了共享共同的軟件包或相互關係的一些標準,仍會存在解釋或表示習慣上的不同。

●異構結構的實例:

    (1)“內外有別”模型——內部C/S,外部B/S

           優點:外部用戶不直接訪問數據庫服務器,能保證企業數據庫的相對安全。企業內部用戶的交互性較強,數據查詢和修改的響應速度較快。

           缺點:企業外部用戶修改和維護數據時,速度較慢,較繁瑣,數據的動態交互性不強。

    (2)“查改有別”模型——查詢瀏覽B/S,維護修改C/S

           優點:B/S和C/S的共同優點。

           缺點:企業數據容易暴露給外部用戶,給數據安全造成了一定的威脅。

11. 特定領域軟件體系結構:

●DSSA就是在一個特定應用領域中爲一組應用提供組織結構參考的標準軟件體系結構。

●必備特徵:

    (1)一個嚴格定義的問題域和/或解決域

    (2)具備普遍性,使其可以用於領域中某個特定應用的開發。

    (3)對整個領域的合適程度的抽象。

    (4)具備該領域固定的、典型的在開發過程中可重用元素。

●基本活動:領域分析、領域設計、領域實現

●參與DSSA的人員:領域專家、領域分析師、領域設計人員、領域實現人員。

●建立過程:分爲五個階段,每個階段可以進一步劃分爲一些步驟或子階段。每個階段包括一組需要回答的問題、一組需要的輸入、一組將產生的輸出和驗證標準。本過程是併發的、遞歸的、反覆的、螺旋型的。

    (1)定義領域範圍。

    (2)定義領域特定的元素。

    (3)定義領域特定的設計和實現需求約束。

    (4)定義領域模型和體系結構。

(5)產生、蒐集可重用的產品單元。

●DSSA的建立需要設計人員對所在特定領域必須精通,他們要找到合適的抽象方式來實現DSSA的通用性和可重用性。通常DSSA以一種逐漸演化的方式發展。

12. DSSA與體系結構風格的比較:

(1)DSSA只對某一個領域進行設計專家知識的提取、存儲和組織,但可以同時使用多種體系結構風格;而在某個體系結構風格中進行體系結構設計專家知識的組織時,可以將提取的公共結構和設計方法拓展到多個領域。

(2)DSSA的特定領域參考體系結構通常選用一個或多個適合所研究領域的體系結構風格,並設計一個該領域專用的體系結構分析設計工具。

(3)體系結構風格的定義和該風格應用的領域是直交的,提取的設計知識比用DSSA提取的設計專家知識的應用範圍要廣。

(4)DSSA和體系結構風格是互爲補充的兩種技術。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章