軟件體系架構

軟件體系結構

- 管道過濾器風格:

每一個模塊都有一組輸入和輸出。功能模塊從輸入集合讀取數據流,在輸出集合產生數據流。其中,功能模塊稱爲過濾器,功能模塊之間的鏈接能夠看做輸入,輸出數據流之間的通路。過濾器獨立完成本身的功能,相互之間無需進行狀態交互。 
案例:C源代碼->預處理->編譯->彙編->連接->可執行文件。中間的四步驟便可以看做是四個模塊。
數據庫

- 面向對象風格:

以一種更接近人類通常思惟的方式去看待世界,把世界上的任何一個個體都看做是一個對象。一組具備相同屬性和方法的對象構成一個類。不一樣對象之間存在着通訊和交互,以此構成系統的運轉。(特色就是抽象,繼承,封裝,多態)網絡

- 事件驅動風格(預約發佈風格):

對外部環境的系統行爲能夠實現爲對事件的處理方法。對系統輸入一個事件,觀察其輸出,以達到分析系統的目的。能夠方便的執行併發進程和多任務的操做,且具備良好的可擴展性(設計者只需給一個對象註冊一個事件接口並使這個系統歸入系統便可)。缺點這個風格弱化了計算機系統對其的控制能力(系統發出一個事件,難以保證系統內的對象能夠響應,或連續響應);並使系統內的邏輯關係複雜(結果依賴上下環境)。 
案例:JavaBean系統在事件驅動機制裏會把一些構建做爲事件源,這些構件產生接收事件,經過事件傳遞消息。 (事件監聽器)
數據結構

- 分層風格:

一個分層系統採用多個層次組織。每一層都有兩個做用,首先爲它的上層提供服務,其次,能夠調用下層的功能。最高層不須要提供任何服務,最底層不會使用任何服務。分層是在實踐中逐漸分離(分解整個系統的功能)出來的且易於複用(只要接口一致)。
簡單模型:核心層(最底層)->功能層(中間層)->應用層(最高層) 
三層架構:表示層(用戶界面包)<->業務邏輯層(業務邏輯包)<->數據訪問層(數據訪問包)<->數據庫 
案例:計算機網絡ISO七層架構
架構

- 數據共享風格(庫風格):

中央數據單元和外部構件的交互,中央數據單元表明當前系統的每一個狀態,外部構件相互依賴,且能夠操做中央數據單元。這種體系風格分爲兩類: 
1. 基於傳統的數據庫式風格的應用系統:由輸入數據流的信息服務驅動。 
2. 基於黑板式風格的應用系統(對無解性問題進行架構):由風格庫的當前狀態驅動。主要包含三個構件:
併發

  • 知識源:(條件:系統基於庫風格,徹底依賴於庫中狀態的變化。)知識源是庫中主要的信息來源。
  • 中央數據單元:整個系統的核心組成部分,經過程序處理所須要的狀態。
  • 控制單元:知識源不斷向庫中輸入信息,因爲知識的狀態改變,必須由控制單元觸發相應的操做。

- 解釋器風格:

解釋器風格爲客戶端和服務端構件:當一些規則或者觸發器被激活時,解釋器被激活,控制系統狀態。 
案例:虛擬機。解釋器由四部分組成: 
編碼

  • 1. 負責解釋的解釋器引擎;

 

  • 2. 包含僞代碼的數據存儲空間;
  • 3. 記錄解釋器引擎當前狀態的數據結構;
  • 4. 記錄解釋器資源編碼進程的數據結構。
相關文章
相關標籤/搜索