體系結構之設計基礎

1.設計的審美標準有哪些

1) 簡潔性:

模塊化、易讀易理解。

2) 結構一致性(概念完整性):

體系結構的風格,模塊化。

3) 堅固性(高質量):

易開發、易修改、易複用、易調試、易維護。

 

2.已知的軟件設計方法與技術(至少5),以及它們促進了哪些審美標準的達成

1) 模塊化:

進行模塊劃分,隱藏一些程序片段(數據結構和算法)的實現細節,暴露接口與外界;且保證模塊內部的內聚度較高,模塊與外界的耦合較低。模塊隱藏實現細節,通過接口訪問模塊,因此促進了簡潔性;且因爲功能內聚,對外提供統一的外部接口,因此促進了結構一致性

2) 信息隱藏:

將系統分成模塊,每個模塊封裝一個重要決策,且只有該模塊知道實現細節。決策類型可以是需求、變更,不同的決策之間相互獨立。信息隱藏和模塊化都在一定程度上促進了簡潔性,但是隻是體現在外部接口部分。信息隱藏爲了處理一些不需要對外表現的決策(內部實現的可修改性)而進行了片段分割,這又在一定程度上犧牲了簡潔性而達到了堅固性

3) 運行時註冊:

針對系統變化,將可能變化的部分與其他部分解耦,不直接發生程序調用,而是在運行時註冊。因爲這個技術針對可能的變更而使用,本來可以用一個部件處理的事情,被分解爲多個部分,而且這些不同部分之間還有着複雜的交互規則,所以犧牲了簡潔性,以提高堅固性(靈活性)

4) 配置式編程:

針對系統變化,主要解決共性與差異性問題。將可能變化的部分寫在一個配置文件中,當要發生變化時,直接修改配置文件。因爲需要充分考慮可能的變更來組織配置文件,並且需要在系統啓動時對配置文件進行解析,所以犧牲了簡潔性,以提高堅固性(靈活性)

5) 設計模式:

設計模式犧牲簡潔性達到堅固性,保證程序的可維護性和可擴展性。同時,在設計模式中是用同樣的方法做同樣的事情,因此促進了程序的結構一致性的達成

 

3.設計的層次性

 高層設計、中層設計和低層設計各自的出發點、主要關注因素(即哪些審美要素)、主要方法與技術和最終制品

3.1高層設計

1) 出發點:

彌補詳細設計機制的不足,將一組模塊組合起來形成整個系統,進行整體結構設計,同時關注系統的質量屬性。隱藏詳細設計中的導入導出關係和單詞匹配,設計帶有質量屬性的部件component,以及部件之間的關係連接件connector。同時,體系結構也是一系列對系統設計所做的設計決策

2) 主要關注因素:

質量屬性,比如可用性、可修改性、效率、安全性、可測試性;

項目環境,包括開發環境、業務環境、技術環境;業務目標。

爲了達成以上目標,要求體系結構滿足簡潔性、一致性、堅固性。

3) 主要方法與技術:

1. 方法:4+1 view、場景驅動、體系結構風格

2. 技術:模塊的表示方法可以是box-line、formal language(ADL,架構描述 語言) UML(4+1 view模式使用UML技術實現) 

4) 最終制品:

體系結構設計


3.2中層設計

1) 出發點:

進行模塊劃分,隱藏一些程序片段(數據結構和算法)的實現細節,暴露接口與外界。可以被反覆使用。模塊化要做到儘可能獨立,模塊內部的內聚度高,而模塊與外界的耦度低

2) 主要關注因素:

簡潔性(易開發、易修改、易複用),可觀察性(看上去“顯然是正確的”,易開發、易調試、易維護)。目標——完全獨立——理解 使用與複用 開發 修改 

3) 主要方法與技術:

1. 低耦合(將模塊之間的關係最小化),高內聚(模塊內部元素之間的聯繫最大化)

2. 信息隱藏,一個模塊只封裝一個secret(主要祕密是需求決策,次要祕密是修改決策),給出要修改部分的接口,隱藏待修改部分的實現細節

3. 結合模塊化和信息隱藏的方式,再加上封裝、繼承、多態等技術,進行面向對象的設計

4) 最終制品:

模塊與類結構


3.3低層設計

1) 出發點:

將基本的語言單位(類型與語句)組織起來,建立高質量的數據結構和算法(數據結構合理易用,算法可靠、高效、易讀)。屏蔽程序中複雜的數據結構與算法的實現細節

2) 主要關注因素:

數據結構與算法的簡潔性(易讀)、堅固性(可靠,易維護)。

3) 主要方法與技術:

防禦式編程,斷言式編程,測試驅動開發,異常處理,配置式編程,表驅動編程,基於狀態機編程。前面四個是關於可靠性的,後面三個是關於數據結構帶來易讀性。

4) 最終制品:

算法與數據結構,單個的函數。源程序,中層,底層共享了詳細設計文檔




 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章