軟體結構風格的定義:軟體結構風格是描述某一特定應用領域中系統組織方式的慣用模式(idiomatic paradigm)。體系結構風格定義了乙個系統家族,即乙個體繫結構定義乙個詞彙表和一組約束。詞彙表中包含一些構件和連線件組合起來的。體系結構風格反映了領域中眾多系統所共有的結構和語義特性,並指導如何將各個模組和子系統有效地組織成一租個完整的系統。按這種方式理解,軟體體系結構風格定義了用於描述系統的術語表和一組指導構件系統的規則。
構件的定義:構件是具有某種功能的可重用的軟體模板單元,表示了系統中主要的計算元素和資料儲存。構件有兩種:復合構件和原子構件,復合構件由其他復合構件和原子構件通過連線而成;原子構件是不可再分的構件,底層由實現該構件的類組成,這種構件的劃分提供了體系結構的分層表示能力,有助於簡化體系結構的設計。
連線件的定義:連線件表示了構件之間的互動,簡單的連線件如管道(pipe)、過程呼叫(proceduce call)、事件廣播(event broadcast)等,更為複雜的互動如客戶-伺服器(client-server)通訊協議,資料庫和應用之間的sql連線等。
軟體體系結構風格的四要素:(1)提供乙個詞彙表;
(2)定義一套配置規則;
(3)定義一套語**釋規則;
(4)定義對基於這種風格的系統所進行的分析。
軟體體系結構風格的目的:軟體體系結構風格為大粒度的軟體重用提供了可能。
幾種軟體體系結構風格的分類:
(1)管道與過濾器:在管道與過濾器風格的軟體體系結構中,每個構件都有一組輸入和輸出,構件讀輸入的資料流,經過內部處理,然後產生輸出資料流。這個過程通常通過對輸入流的變換及增量計算來完成,所以在輸入被完成消費之前,輸出便產生了。因此,這裡的構件被稱為過濾器,這種風格的連線件就像是資料流傳輸的管道,將乙個過濾器的輸出傳到另乙個過濾器的輸入。此風格特別重要的過濾器必須是獨立的實體,它不能與其他的過濾器共享資料,而且乙個過濾器不知道它上游和下游的標識。乙個管道與過濾器網格輸出的正確性並不依賴於過濾器進行增量計算過程的順序。
管道與過濾器風格的特點:
優點:使得構件具有良好的隱蔽性和高內聚、低耦合的特點;允許設計師將整個系統的輸入/輸出行為看成是多個過濾器的行為的簡單合成;支援軟體重用;系統維護和增強系統效能簡單;允許對一些如吞吐量、死鎖等屬性的分析;支援並行執行。
缺點:通常導致程序成為批處理結構;不適合處理互動的應用;因為在資料傳輸上沒有通用的標準,每個過濾器都增加了解析和合成資料的工作,這樣就導致了系統效能下降,並增加了編寫過濾器的複雜性。
(2)客戶/伺服器:c/s軟體體系結構是基於資源不對等,且為實現共享而提出來的,是20世紀90年代成熟起來的技術,c/s體系結構定義了工作站如何與伺服器相連,以實現資料和應用分布到多個處理機上。c/s體系結構有三個主要組成部分:資料庫伺服器、客戶應用程式和網路。
伺服器負責有效地管理系統的資源,其任務主要集中於:資料庫安全性的要求;資料庫訪問併發性的控制;資料庫前端的客戶應用程式的全域性資料完整性規則;資料庫的備份與恢復。
客戶應用程式的主要任務是:提供使用者與資料庫互動的介面;向資料庫伺服器提交使用者請求並接收來自資料庫伺服器的資訊;利用客戶應用程式對存在於客戶端的資料執行邏輯要求。
客戶/伺服器體系風格的特點:
優點:c/s體系結構的優點主要在於系統的客戶應用程式和伺服器構件分別執行在不同的計算機上,系統中每台伺服器都可以適合各構件的要求,這對於硬體和軟體的變化顯示出極大的適應性和靈活性,而且易於對系統進行擴充和縮小。在c/s體系結構中,系統中的功能構件充分分離,客戶應用程式的開發集中於資料的顯示和分析,而資料庫伺服器的開發則集中於資料的管理,不必在每乙個新的應用程式中都要對乙個dbms進行編碼。將大的應用處理任務分布到許多通過網路連線低成本計算機上,以節約大量費用;c/s體系結構具有強大的資料操作和事務處理能力,模型思想簡單,易於人們理解和接受。
缺點:開發成本較高;客戶端程式設計複雜;資訊內容和形式單一,因為傳統應用一般為事務處理,介面基本遵循資料庫的字段解釋,開發之初就已確定,而且不能隨時擷取辦公資訊和檔案等外部資訊,使用者獲得的只是單純的字元和數字,既枯燥又死板;使用者介面風格不一,使用複雜,不利於推廣使用;軟體移植困難;軟體維護和公升級困難;新技術不能輕易應用。
(3)瀏覽/伺服器風格:b/s體系結構主要是利用不成熟的www瀏覽器技術。結合瀏覽器的多種指令碼語言,用通過瀏覽器就實現了原來需要複雜的專用軟體才能實現的強大功能,並節約了開發成本。從某種程度上來說,b/s結構是一種全新的軟體體系結構。
c/s體系結構的風格特點:
優點:b/s結構的」零客戶端「方式,使組織的**商和客戶的計算機方便地成為管理資訊系統的客戶端,進而在限定的功能範圍內查詢組織相關資訊,完成與組織的各種業務往來的資料交換和處理工作,擴大了組織計算機應用系統的功能覆蓋範圍,可以更加充分利用網路上的各種資源,同時應用程式維護的工作量也大大減少。
軟體體系結構風格
軟體體系結構 software architecture,sa 定義 元件 各種基本的軟體構造模組 函式 物件 模式等 連線件 將它們組合起來形成完整的軟體系統 物理分布 軟體系統拓撲結構 約束 限制條件 效能 軟體質量 元件 廣義上講,元件是具有某種功能的可復用的軟體結構單元,是為組裝服務的,是組...
軟體體系結構風格
首先,我們需要先明確乙個概念,什麼叫軟體體系結構的風格?定義便是 描述某一特定應用領域中系統組織方式的慣用。即,定義了用於描述系統的術語表和一組指導構建系統的規則。這方便了軟體大粒度的重用。因此,當人們使用常用的,規範的方式來組織時,即可使別的設計師很容易理解系統的體系結構。下面是一些常用的軟體體系...
軟體體系結構 物件導向風格
物件導向體系結構風格的元件是類和物件。連線件是物件之間通過功能與函式呼叫實現互動。物件是通過函式和過程的呼叫 返回機制來互動的,而類是通過定義物件,再採用呼叫 返回機制進行互動。示例程式如下 功能 計算2 3並輸出結果。class count void setc int a1 int getc cl...