軟體體系結構的複習提綱

2021-06-22 09:10:48 字數 4340 閱讀 5465

(1)   軟體體系結構定義、作用、意義

軟體體系結構定義

軟體體系結構是具有一定形式的結構化元素,即構件的集合,包括處理構件、資料構件和連線構件。

處理構件負責對資料進行加工,資料構件是被加工的資訊,連線構件把體系結構的不同部分組合連線起來。

體系結構意義

體系結構是風險承擔者(又稱為涉眾,stakeholder)進行交流的手段

軟體體系結構代表了系統的公共的高層次的抽象。這樣,系統的大部分有關人員(即使不是全部)能把它作為建立乙個互相理解的基礎,形成統一認識,互相交流。

體系結構提供了一種共同語言來表達各種關注和協商,進而對大型複雜系統能進行理智的管理。這對專案最終的質量和使用有極大的影響。

(2)   軟體風格定義

軟體體系結構風格

軟體體系結構是一種分類。 

軟體體系結構風格是描述某一特定應用領域中系統組織方式的慣用模式。

體系結構風格定義了乙個系統家族,即定義乙個詞彙表和一組約束。詞彙表中包含一些構件和連線件型別,而這組約束指出系統是如何將這些構件和連線件組合起來的。

體系結構風格反映了領域中眾多系統所共有的結構和語義特性,並指導如何將各個模組和子系統有效地組織成乙個完整的系統

管道和過濾器風格的優點

使得軟構件具有良好的隱蔽性和高內聚、低耦合的特點;

◎ 允許設計者將整個系統的輸入/輸出行為看成是多個過濾器的行為的簡單合成;

◎ 支援軟體重用。只要提供適合在兩個過濾器之間傳送的資料,任何兩個過濾器都可被連線起來;

◎ 系統維護和增強系統效能簡單。新的過濾器可以新增到現有系統中來;舊的可以被改進的過濾器替換掉;

◎ 允許對一些如吞吐量、死鎖等屬性的分析;

◎ 支援並行執行。每個過濾器是作為乙個單獨的任務完成,因此可與其它任務並行執行。

管道和過濾器的缺點

通常導致程序成為批處理的結構。

◎ 不適合處理互動的應用。

◎ 因為在資料傳輸上沒有通用的標準,每個過濾器都增加了解析和合成資料的工作,這樣就導致了系統效能下降,並增加了編寫過濾器的複雜性。

(3)cs風格優缺點

優點◎ 模型思想簡單,易於人們理解和接受。

◎ 靈活、易維護與擴充:系統的客戶應用程式和伺服器構件分別執行在不同的計算機上,系統中每台伺服器都可以適合各構件的要求,這對於硬體和軟體的變化顯示出極大的適應性和靈活性,而且易於對系統進行擴充和縮小。

◎ 資源可以進行合理配置:在c/s體系結構中,系統中的功能構件充分隔離,客戶應用程式的開發集中於資料的顯示和分析,而資料庫伺服器的開發則集中於資料的管理,不必在每乙個新的應用程式中都要對乙個dbms進行編碼。將大的應用處理任務分布到許多通過網路連線的低成本計算機上,以節約大量費用。

缺點◎ 開發成本較高

◎ 客戶端程式設計複雜

◎ 使用者介面風格不一,使用繁雜,不利於推廣使用

◎ 軟體移植困難

◎ 軟體維護和公升級困難

◎ 新技術不能輕易應用

(4)bs風格優缺點

優點◎ 基於b/s體系結構的軟體,系統安裝、修改和維護全在伺服器端解決。使用者在使用系統時,僅僅需要乙個瀏覽器就可執行全部的模組,真正達到了「零客戶端」的功能,很容易在執行時自動公升級。

◎ b/s體系結構還提供了異種機、異種網、異種應用服務的聯機、聯網、統一服務的最現實的開放性基礎

缺點◎ 沒有整合有效的資料庫處理功能,對資料處理功能不強。

◎ 安全性難以控制。

◎ 採用b/s體系結構的應用系統,在資料查詢等響應速度上,要遠遠地低於c/s體系結構。

(5)管道過濾器風格優缺點

管道和過濾器風格的優點

◎ 使得軟構件具有良好的隱蔽性和高內聚、低耦合的特點;

◎ 允許設計者將整個系統的輸入/輸出行為看成是多個過濾器的行為的簡單合成;

◎ 支援軟體重用。只要提供適合在兩個過濾器之間傳送的資料,任何兩個過濾器都可被連線起來;

◎ 系統維護和增強系統效能簡單。新的過濾器可以新增到現有系統中來;舊的可以被改進的過濾器替換掉;

◎ 允許對一些如吞吐量、死鎖等屬性的分析;

◎ 支援並行執行。每個過濾器是作為乙個單獨的任務完成,因此可與其它任務並行執行。

管道和過濾器的缺點

◎ 通常導致程序成為批處理的結構。

◎ 不適合處理互動的應用。

◎ 因為在資料傳輸上沒有通用的標準,每個過濾器都增加了解析和合成資料的工作,這樣就導致了系統效能下降,並增加了編寫過濾器的複雜性。

(6)oo風格的優點

◎ 因為物件對其它物件隱藏它的表示,所以可以改變乙個物件的表示,而不影響其它的物件;

◎ 設計者可將一些資料訪問操作的問題分解成一些互動的**程式的集合。

物件導向系統的缺點

◎ 為了使乙個物件和另乙個物件通過過程呼叫等進行互動,必須知道物件的標識。只要乙個物件的標識改變了,就必須修改所有其他明確呼叫它的物件;

◎ 必須修改所有顯式呼叫它的其它物件,並消除由此帶來的一些***。例如,如果a使用了物件b,c也使用了物件b,那麼,c對b的使用所造成的對a的影響可能是料想不到的

(7)層次體系結構優缺點

分層系統的優點

◎ 支援基於抽象程度遞增的系統設計,使設計者可以把乙個複雜系統按遞增的步驟進行分解;

◎ 支援功能增強,因為每一層至多和相鄰的上下層互動,因此功能的改變最多影響相鄰的上下層;

◎ 支援重用。只要提供的服務介面定義不變,同一層的不同實現可以交換使用。這樣,就可以定義一組標準的介面,而允許各種不同的實現方法。

分層系統的缺點

◎ 並不是每個系統都可以很容易地劃分為分層的模式,甚至即使乙個系統的邏輯結構是層次化的,出於對系統效能的考慮,系統設計師不得不把一些低階或高階的功能綜合起來;

◎ 很難找到乙個合適的、正確的層次抽象方法。

(3)   設計模式定義、作用、意義

軟體設計模式是對軟體設計經驗的總結,是對軟體設計中反覆出現的設計問題的成功解決方案的描述。

描述:名稱、問題、解決方案、效果

意義:非常重要

物件導向的設計模式可以等價於結構化程式設計語言的演算法、資料結構。可以認為是oo的演算法或(和)資料結構

(4)   經典23種設計模式分類

1. singleton(單件) pattern

2. 2.factory method

(工廠方法,虛構造器)

3. abstract factory(抽象工廠)

4. builder(生成器)

5. prototype(原型)

6. adapter(介面卡)

7. flyweight(享元)

8. façade (統一外部介面)

9. composite(組合) pattern

10. decorator(裝飾)

11. proxy(**)

12. bridge(橋接)

13. observer(觀察者) pattern

14. state(狀態) pattern

15. chain of responsibility

16. strategy(策略) pattern

17.  interpreter

18. iterator(迭代器,游標)

19. mediator(中介者)

20. memento(備忘錄)

21. template method(模板方法)

22. visitor(訪問者)

(5)   開閉原則

1.對於擴充套件是開放的。這意味著模組的行為是可以擴充套件的,即當需求改變時,軟體開發者可以對模組進行擴充套件,增加新的功能。

2.對於修改是封閉的。在對模組金星偉進行擴充套件時,不允許改動模組中已經存在的類的源**。

如果乙個設計能夠同時滿足以上兩條,則稱該設計符合開閉原則。

(6)   介面程式設計思想以及優點

介面程式設計-將實現與邏輯分離

面向介面程式設計就是先把客戶的業務提取(抽象)出來,作為介面。業務具體實現通過該介面的實現類來完成。

好處:當客戶需求變化時,只需編寫該業務邏輯的新的實現類,通過更改配置檔案(例如spring框架)中該介面的實現類就可以完成需求,不需要改寫現有**,減少對系統的影響。採用基於介面程式設計的專案,業務邏輯清晰,**易懂,方便擴充套件,可維護性強。即使更換一批人員,新來的人依然可以快速上手。對於公司來說,意義更大。

介面本質上就是由制定者來協調實現者和呼叫者之間的關係。

例子:(1)電腦配件統一介面,各個實現,達到通用。

(2)不同課程學習(**生的學習、計算機系的學生學習)

(7)   單例模式

(8)   簡單工廠方法

(9)   工廠模式

(10)抽象工廠模式

(11)組合模式(安全組合模式、透明組合模式)

(12)介面卡模式(類介面卡、物件介面卡)

(13)hibernate的orm模式要點

(14)spring的ioc模式要點

軟體體系結構的知識提綱

軟體體系結構的知識提綱 1 軟體體系結構的描述語言 adl architecture description language 2 軟體體系結構的表示與構造 表示 用軟體體系結構描述語言對體系結構進行說明的結果稱為軟體體系結構的表示。構造 描述軟體體系結構的過程,稱為軟體體系結構的構造。booch從...

軟體體系結構 重點複習

軟體體系結構的質量屬性及其戰術 重點!常見軟體體系結構模式及其特點 軟體體系結構設計方法 軟體體系結構評審方法 atam 簡單描述一下架構設計可以怎樣改變商業環境 軟體架構影響軟體開發組織的目標。軟體架構會影響客戶對新產品的需求。軟體架構影響未來架構的設計。軟體架構影響開發過程 為什麼說軟體架構非常...

軟體體系結構之簡要複習

馬上要考試了,通過思維導圖簡單梳理一下整本書的大體內容,希望能幫助自己理解整本書的知識結構。概述和基本組成要素 經典軟體體系結構風格 分布式軟體體系結構風格 mvc風格和structs框架 軟體設計的目標 軟體設計原則 開閉原則是依賴倒轉原則的終極目標。依賴倒轉原則指抽象不應該依賴於細節,細節應當依...