1. 程式人生 > >軟體架構設計師:軟體架構風格

軟體架構設計師:軟體架構風格

        軟體架構設計的一個核心問題是能否使用重複的軟體架構模式,即能否達到架構級別的軟體重用。——基於這個目的,學者們開始研究和實踐軟體架構的風格和型別問題。

        軟體架構風格是描述某一特定應用領域中系統組織方式的慣用模式,即定義了用於描述系統的術語表和一組指導構建系統的規則。

        軟體架構風格為大粒度的軟體重用提供了可能性。

        軟體架構風格涉及的問題:設計詞彙表是什麼?構件和連線件的型別是什麼?可容許的結構模式是什麼?基本的計算模型是什麼?風格的基本不變性是什麼?此風格的優缺點是什麼?其常見的特例是什麼?

一、資料流風格 

        包括兩種具體的風格:批處理序列和管道/過濾器。

       批處理的風格的每一步都是獨立的,並且每一步都是順序執行的。依賴關係。典型應用包括:經典資料處理、程式開發、Windows下的BAT程式。

       在管道/過濾器軟體風格中,每個構件都有一組輸入和輸出,一般對輸入進行變換和增量計算完成。

二、呼叫/返回風格

        實際上是一種分而治之的策略,其主要思想是將一個複雜的大系統分解為一些子系統,以便降低複雜度,並且增加可修改性。

        包括:主程式/子程式、面向物件風格、層次結構風格。

三、獨立構件風格

       每個構件都是相對獨立的個體,之間不直接通訊,以降低耦合度,提升靈活性。

       包括程序通訊風格、事件系統風格

四、虛擬機器風格

        基本思想是人為構建一個執行環境,在這個環境之上,可以解析與執行自定義的一些語言,這樣來增加架構的靈活性。

        包括直譯器和規則為中心的風格。

五、倉庫風格

       包括資料庫系統、超文本系統、黑板風格。

       超文本系統的典型代表就是早期的靜態網頁。

       黑板風格包括:知識源、黑板(共享資料)、控制

六、特定領域軟體架構

        DSSA:領域分析——領域設計——領域實現

七、狀態轉移

        RESTFULL風格

八、分散式風格

        包括C/S、B/S、CORBA、EJB、DCOM等。