《软件体系结构》第三章 软件体系结构风格
第三章 軟件體系結構風格
一、基本概念
1. 軟件體系結構設計的一個核心問題是能否使用重復的體系結構模式,即能夠達到體系結構級的復用。
2.?軟件體系結構風格是描述某一特定應用領域中系統組織方式的慣用模式。體系結構風格定義了一個系統家族,即一個體系結構定義一個詞匯表和一組約束。詞匯表中包含一些構件和連接件類型,而這組約束指出系統是如何將這些構件和連接件組合起來的
3. 對軟件體系結構風格的研究和實踐促進對設計的重用,一些經過實踐證明的解決方案也可以可靠地用于解決新的問題。
4. 軟件體系結構風格為大粒度軟件重用提供了可能。
5.?討論體系結構風格時要回答的問題
????◎構件和連接件的類型是什么?
????◎ 可容許的結構模式是什么?
????◎ 基本的計算模型是什么?
????◎ 風格的基本不變性是什么?
????◎ 其使用的常見例子是什么?
????◎ 使用此風格的優缺點是什么?
????◎ 其常見的特例是什么?
6.?軟件體系結構風格關鍵四要素
????????提供一個詞匯表、定義一套配置規則、定義一套語義解釋原則、定義對基于這種風格的系統所進行的分析。
7.體系結構風格分類
????◎ 數據流風格:批處理序列;管道/過濾器。
????◎ 調用/返回風格:主程序/子程序;面向對象風格;層次結構。
????◎ 獨立構件風格:進程通訊;事件系統。
????◎ 虛擬機風格:解釋器;基于規則的系統。
????◎ 倉庫風格:數據庫系統;超文本系統;黑板系統
二、管道和過濾器
1.優點
????◎ 使得軟構件具有良好的隱蔽性和高內聚、低耦合的特點;
????◎ 允許設計者將整個系統的輸入/輸出行為看成是多個過濾器的行為的簡單合成;
????◎ 支持軟件重用。只要提供適合在兩個過濾器之間傳送的數據,任何兩個過濾器都可被連接起來;
????◎ 系統維護和增強系統性能簡單。新的過濾器可以添加到現有系統中來;舊的可以被改進的過濾器替換掉;
????◎ 允許對一些如吞吐量、死鎖等屬性的分析;
????◎ 支持并行執行。每個過濾器是作為一個單獨的任務完成,因此可與其它任務并行執行。
2.缺點
????◎ 通常導致進程成為批處理的結構。這是因為雖然過濾器可增量式地處理數據,但它們是獨立的,所以設計者必須將每個過濾器看成一個完整的從輸入到輸出的轉換;
????◎ 不適合處理交互的應用。當需要增量地顯示改變時,這個問題尤為嚴重;
????◎ 因為在數據傳輸上沒有通用的標準,每個過濾器都增加了解析和合成數據的工作,這樣就導致了系統性能下降,并增加了編寫過濾器的復雜性。
三、分層系統
????層次系統組織成一個層次結構,每一層為上層服務,并作為下層客戶。在一些層次系統中,除了一些精心挑選的輸出函數外,內部的層只對相鄰的層可見。
1.優點
????◎ 支持基于抽象程度遞增的系統設計,使設計者可以把一個復雜系統按遞增的步驟進行分解;
????◎ 支持功能增強,因為每一層至多和相鄰的上下層交互,因此功能的改變最多影響相鄰的上下層;
????◎ 支持重用。只要提供的服務接口定義不變,同一層的不同實現可以交換使用。這樣,就可以定義一組標準的接口,而允許各種不同的實現方法。
2.缺點
????◎ 并不是每個系統都可以很容易地劃分為分層的模式,甚至即使一個系統的邏輯結構是層次化的,出于對系統性能的考慮,系統設計師不得不把一些低級或高級的功能綜合起來;
????◎ 很難找到一個合適的、正確的層次抽象方法。
四、C2風格:通過連接件綁定在一起的按照一組規則運作的并行構件網絡
1.組織規則
????◎ 系統中的構件和連接件都有一個頂部和一個底部;
????◎ 構件的頂部應連接到某連接件的底部,構件的底部則應連接到某連接件的頂部,而構件與構件之間的直接連接是不允許的;
????◎ 一個連接件可以和任意數目的其它構件和連接件連接;
????◎ 當兩個連接件進行直接連接時,必須由其中一個的底部到另一個的頂部
2.示意圖
3.特點
????◎ 系統中的構件可實現應用需求,并能將任意復雜度的功能封裝在一起;
????◎ 所有構件之間的通訊是通過以連接件為中介的異步消息交換機制來實現的;
????◎ 構件相對獨立,構件之間依賴性較少。系統中不存在某些構件將在同一地址空間內執行,或某些構件共享特定控制線程之類的相關性假設。
五、客戶/服務器風格、三層客戶/服務器風格、瀏覽器/服務器風格
????各自優缺點、區別(詳見作業)
六、正交軟件體系結構
1.定義
????????正交軟件體系結構由組織層和線索的構件構成。層是由一組具有相同抽象級別的構件構成。線索是子系統的特例,它是由完成不同層次功能的構件組成(通過相互調用來關聯),每一條線索完成整個系統中相對獨立的一部分功能。每一條線索的實現與其他線索的實現無關或關聯很少,在同一層中的構件之間是不存在相互調用的。
????????如果線索是相互獨立的,即不同線索中的構件之間沒有相互調用,那么這個結構就是完全正交的。
2.特點
????◎ 正交軟件體系結構由完成不同功能的n(n > 1)個線索(子系統)組成;
????◎ 系統具有m(m > 1)個不同抽象級別的層;
????◎ 線索之間是相互獨立的(正交的);
????◎ 系統有一個公共驅動層(一般為最高層)和公共數據結構(一般為最低層)。
3.優點
????◎ 結構清晰,易于理解。由于線索功能相互獨立,不進行互相調用,結構簡單、清晰,構件在結構圖中的位置已經說明它所實現的是哪一級抽象,擔負的是什么功能。
????◎易修改,可維護性強。由于線索之間是相互獨立的,所以對一個線索的修改不會影響到其他線索。系統功能的增加或減少,只需相應的增刪線索構件族,而不影響整個正交體系結構,因此能方便地實現結構調整。
????◎可移植性強,重用粒度大。因為正交結構可以為一個領域內的所有應用程序所共享,這些軟件有著相同或類似的層次和線索,可以實現體系結構級的重用。
七、基于層次消息總線的體系結構 HMB?(國內)
1.消息總線結構
八、異構結構風格
1.使用原因
????◎ 不同的結構有不同的處理能力的強項和弱點,一個系統的體系結構應該根據實際需要進行選擇,以解決實際問題。
????◎ 關于軟件包、框架、通信以及其他一些體系結構上的問題,目前存在多種標準。即使在某段時間內某一種標準占統治地位,但變動最終是絕對的。
????◎ 實際工作中,我們總會遇到一些遺留下來的代碼,它們仍有效用,但是卻與新系統有某種程度上的不協調。然而在許多場合,將技術與經濟綜合進行考慮時,總是決定不再重寫它們。
????◎ 即使在某一單位中,規定了共享共同的軟件包或相互關系的一些標準,仍會存在解釋或表示習慣上的不同。
2.使用實例
(1)內外有別模型 ?
(2)查改有別模型
九、特定領域軟件體系結構 DSSA
1.定義
????DSSA就是專用于一類特定類型的任務(領域)的、在整個領域中能有效地使用的、為成功構造應用系統限定了標準的組合結構的軟件構件的集合
2.必備特征
(1)一個嚴格定義的問題域和(或)解決域
(2)具有普遍性,使其可以用于某個特定領域中的某個特定應用的開發
(3)對整個領域的合適程度的抽象
(4)具備該領域固定的、典型的在開發過程中可重用的元素。
3.基本活動
????領域分析、領域設計、領域實現
4.參與人員
????領域專家、領域分析師、領域設計人員和領域實現人員。
5.階段
????DSSA的建立過程分為五個階段,每個階段可以進一步劃分為一些步驟或者子階段,每個階段包括一組需要回答的問題,一組需要的輸入,一組將產生的輸出和驗證標準。本過程是并發的、遞歸的、反復的、或者可以說,它是螺旋形。完成本過程可能需要對每個階段經歷幾遍,每次增加更多的細節。
????DSSA的建立過程是并發的、遞歸的、反復進行的。DSSA的建立需要設計人員對所在特定應用領域必須精通,找到合適的抽象方式來實現DSSA的通用性和可重用性。以一種逐漸演化的方式發展。
????◎ 定義領域范圍:確定什么在感興趣的領域中以及本過程到何時結束。
????◎ 定義領域特定的元素:編譯領域字典和領域術語的同義詞詞典。識別領域中應用間的共同性和差異性;
????◎ 定義領域特定的設計和實現需求約束:描述解空間中有差別的特性。不僅要識別出約束,并且要記錄約束對設計和實現決定造成的后果,還要記錄對處理這些問題時產生的所有問題的討論;
????◎ 定義領域模型和體系結構:產生一般的體系結構,并說明構成它們的模塊或構件的語法和語義;
????◎??產生、搜集可重用的產品單元:為DSSA增加構件使得它可以被用來產生問題域中的新應用。
6.DSSA和體系結構風格的比較 ?
????◎ DSSA以問題域為出發點,體系結構風格以解決域為出發點。DSSA只對某一個領域進行設計專家知識的提取、存儲和組織,但可以同時使用多種體系結構風格;而在某個體系結構風格中進行體系結構設計專家知識的組織時,可以將提取的公共結構和設計方法擴展到多個應用領域。
????◎ DSSA通常選用一個或多個適合所研究領域的體系結構風格,并設計一個該領域專用的體系結構分析設計工具。體系結構風格的定義和該風格應用的領域是直交的,提取的設計知識比用DSSA提取的設計專家知識的應用范圍要廣。
????◎ DSSA和體系結構風格是互為補充的兩種技術。
總結
以上是生活随笔為你收集整理的《软件体系结构》第三章 软件体系结构风格的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EMVTag系列3《持卡人基本信息数据》
- 下一篇: apache phoenix 入门_实现