軟考複習之軟體架構風格

來源:互聯網
上載者:User

1)      Garlan和 Shaw將軟體架構風格分為5大類:

(1)    資料流風格:包括批處理序列架構風格(Batch Sequential)和管理/過濾器架構風格(Pipes/Filters)。

(2)    調用/返迴風格:包括主程式/子程式架構風格(Main Program and Subroutine)、資料抽象和物件導向架構風格(DataAbstraction and Object-Oriented)及階層架構風格(Hierarchical Layers).

(3)    獨立構件風格:包括進程通訊架構風格(Communicating Processes)和事件驅動架構風格(EventSystems)。

(4)    虛擬機器風格:包括解譯器架構風格(Interpreters)和基於規則的系統(Rule-based Systems)架構風格。

(5)    倉庫風格:包括資料庫結構描述風格(Database)和黑板架構風格(BlackBoards)

其他:特定領域軟體體繫結構(Domain-specfic Software Architecture)、狀態轉移(StateTransition System)、分散式處理(Distributed Process)架構風格和REST(Representational  StateTransfer)混合架構風格等。其中分布式架構風格中有客戶機/伺服器(C/S)架構風格、瀏覽器/伺服器(B/S)架構風格、CORBA、DCOM和EJB架構風格等。

2)      每一種具體的架構風格的模型

(1)    資料流風格包括批處理序列架構風格和管道/過濾器架構風格。

①.批處理序列架構風格。組件為一系列固定順序的計算單元,組件間只通過資料傳遞互動。每個處理步驟是一個獨立的程式,每一步必須在前一步結束後才能開始,資料必須是完整的,以整體的方式傳遞。

②.管道/過濾器架構風格。每一個構件都有一組輸入和輸出,構件讀取輸入的資料流,經過內部處理,然後產生輸出資料流。這個過程通常通過對輸入資料流的變換及增量計算來完成,包括通過計算和增加資訊豐富資料,通過濃縮和刪除精鍊資料,通過改變記錄方式轉化資料,遞增地轉化資料等。在輸入被完全消費之前,輸出便產生了。這裡構件被稱為過濾器,串連件就是資料流傳輸的管道,將一個過濾器的輸出傳到另一個過濾器的輸入。

(2)    調用/返迴風格包括主程式/子程式架構風格、資料抽象和物件導向架構風格及階層架構風格

①.主程式/子程式架構風格。單線程式控制制,把問題劃分為若干處理步驟,構件即為主程式和子程式。子程式通常可合成為模組。程序呼叫作為互動機制,即充當串連件。調用關係具有層次性,其語義邏輯表現為子程式的正確性,取決於它調用的子程式的正確性。

②.資料抽象和物件導向架構風格。這種風格的構件是對象。對象是抽象資料類型的執行個體。在抽象資料類型中,資料的表示和它們的相應操作被封裝起來。對象的行為體現在其接受和請求的動作。串連件即對象間互動的方式,對象是通過函數和過程的調用來互動的。對象具有封裝性,一個對象的改變不會影響其他對象。對象擁有狀態和操作,也有責任維護狀態。這種結構風格中包含有封裝、互動、多態、整合和重用等特徵。

③.階層構架風格。層次系統組織成一個階層。構件在一些層實現了虛擬機器。串連件通過決定層間如何互動的協議來定義,拓撲約束包括對相鄰導間互動的約束。這個風格的特點是每層為上一層提供服務,使用下一層的服務,只能見到與自己鄰接的層。大的問題分解為若干個漸進的小問題,逐步解決,隱藏了很多複雜度。修改一層,最多影響兩層,而通常只能影響上層。上層必須知道下層的身份,不能調整層次之間的順序。

(3)    獨立構件風格包括進程通訊架構風格和事件驅動架構風格

①.進程通訊架構風格。構件是獨立的過程,串連件是訊息傳遞。這種風格的特點是構件通常是命名過程,訊息傳遞的方式可以是點到點、非同步和同步方式及遠程序呼叫等。

②.事件驅動架構風格。構件不直接調用一個過程,而是觸發或廣播一個或多個事件。系統中其他構件中的過程在一個或多個事件中註冊,當一個事件被觸發,系統自動調用在這個事件中註冊的所有過程。一個事件的觸發就導致了另一個模組中過程的調用。

這種風格中的構件是非命名的過程,它們之間互動的串連件往往是以過程之間的隱式調用(Implicit Invocation)來實現的。基於事件的隱式調用風格的主要優點是為軟體重用提供了強大的支援,為構件的維護和演化帶來了方便;其缺點是構件放棄了對系統計算的控制。

(4)    虛擬機器風格包括解譯器架構風格和基於規則的系統

①.解譯器架構風格。一個解譯器通常包括完成解釋工作的解釋引擎,一個包含將被解釋的代碼的儲存區,一個記錄解釋引擎當前工作狀態的資料結構,以及一個記錄原始碼被解釋執行的進度的資料結構。具有解譯器風格的軟體中含有一個虛擬機器,可以模擬硬體的執行過程和一些關鍵應用;其缺點是執行效率較低。

②.基於規則的系統。基於規則的系統包括規則集、規則解譯器、規則/資料選取器及工作記憶體。

(5)    倉庫風格包括資料庫結構描述風格和黑板架構風格

①.資料庫結構描述風格。資料庫結構描述是庫風格最常見的形式。構件主要有兩大類,一個是中央共用資料來源,儲存當前系統的資料狀態;另一個是多個獨立處理元素,處理元素對資料元素進行操作。

②.黑板架構風格。黑板架構包括知識源、黑板和控制3個部分。知識源包括若干獨立計算的不同單元,提供解決問題的知識,知識源響應黑板上的變化,也只修改黑板。黑板是一個全域資料庫,包含解域的全部狀態,是知識源互相作用的唯一媒介。知識源響應是通過黑板狀態的變化來控制。黑板通常應用在對於解決問題沒有確定性演算法的系統中,例如訊號處理、問題規劃及編譯器最佳化等軟體系統的設計中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.