系統架構設計師備考資料(3.第五章軟件架構)

第五章  軟件架構

口袋應試:教材第五章軟件架構是每年考試的重點,平均每年出題概率佔20%以上,需要大家重點 學習,其中:5.3.1軟件架構風格概述出現概率很高,DSSA也是每年大概率出題的要點,包括5.4.2 DSSA的基本活動5.4.3參與DSSA的人員。 “5.5.1系統架構評估概述”中的質量屬性幾乎是每年必考題,必須掌握。1. SAAM和2. ATAM出題的概率也很高。(希賽的教程第四版)中的9.3.6 倉庫風格出題的概率也很高,需要大家掌握。


5.3軟件架構風格
口袋應試:軟件架構風格參考資料:
常用的軟件架構風格有:數據流風格、調用返回風格、獨立構件風格、虛擬機、倉庫風格、過程控制、C2 風格。
46_5


5.3.1軟件架構風格概述


軟件體系結構風格是描述某一特定應用領域中系統組織方式的慣用模式。體系結構風格定義一個系統家族,即一個體繫結構定義一個詞彙表和一組約束。詞彙表中包含一 些構件和連接件類型,而這組約束指出系統是如何將這些構件和連接件組合起來的。體系結構風格反映了領域中衆多系統所共有的結構和語義特性,並指導如何將各個模塊和 子系統有效地組織成一個完整的系統。對軟件體系結構風格的研究和實踐促進對設計的重用,一些經過實踐證實的解決方案也可以可靠地用於解決新的問題。例如,如果某人把系統描述爲“客戶/服務器”模式,則不必給出設計細節,立刻就會明白系統是如何組織和工作的。

[email protected]
出題概率:★★★
130143、140151、160149、160150、170148


5.3.2經典軟件體系結構風格
1.管道和過濾器

在管道/過濾器風格的軟件體系結構(見圖5-7)中,每個構件都有一組輸入和輸出, 數據輸入構件,經過內部處理,然後產生數據輸出。因此,這裏的構件被稱爲過濾器, 這種風格的連接件就像是數據流傳輸的管道,將一個過濾器的輸出傳到另一過濾器的 輸入。
160148_1
2.數據抽象和麪向對象組織

抽象數據類型概念對軟件系統有着重要作用,目前軟件界己普遍轉向使用面向對象 系統。這種風格建立在數據抽象和麪向對象的基礎上,數據的表示方法和它們的相應操 作封裝在一個抽象數據類型或對象中。這種風格的構件是對象,或者說是抽象數據類型 的實例。
3.事件驅動系統

事件驅動系統風格是構件不直接調用一個過程,而是觸發或廣播一個或多個事件。 系統中的其他構件中的過程在一個或多個事件中註冊。當一個事件被觸發,系統自動調 用在這個事件中註冊的所有過程,這樣,一個事件的觸發就導致了另一模塊中的過程的調用。
6. C2風格
C2體系結構風格可以概括爲:
通過連接件綁定在一起按照一組規則運作的並行構件網絡。C2風格中的系統組織規則如下。
①系統中的構件和連接件都有一個頂部和一個底部。

②構件的頂部應連接到某連接件的底部,構件的底部則應連接到某連接件的頂部。而構件與構件之間的直接連接是不允許的。
③一個連接件可以和任意數目的其他構件和連接件連接。
④當兩個連接件進行直接連接時,必須由其中一個的底部到另一個的頂部。
170153_1


[email protected]

出題概率:★★★
150116、160144、170153、170352、



5.4.2 DSSA的基本活動
1. 領域分析

這個階段的主要目標是獲得領域模型。領域模型描述領域中系統之間的共同的需求,即領域模型所描述的需求爲領域需求。在這個階段中首先要進行一些準備性的活動,包括定義領域的邊界。從而明確分析的對象;識別信息源,整個領域工程過程中信息的來源,可能的信息源包括現存系統、技術文獻、問題域和系統開發的專家、用戶調查和市場分析、領域演化的歷史記錄等,在此基礎上就可以分析領域中系統的需求,確定哪些需求是領域中的系統廣泛共享的,從而建立領域模型。當領域中存在大量系統時,需要選擇它們的一個子集作爲樣本系統。對樣本系統需求的考察將顯示領域需求的一個變化範圍。一些需求對所有被考察的系統是共同的,一些需求是單個系統所獨有的。很多需求位於這兩個極端之間,即被部分系統共享。
2. 領域設計

這個階段的目標是獲得DSSA。DSSA描述在領域模型中表示的需求的解決方案, 它不是單個系統的表示,而是能夠適應領域中多個系統的需求的一個髙層次的設計。
3.領域實現

這個階段的主要目標是依據領域模型和DSSA開發和組織可重用信息。這些可重用 信息可能是從現有系統中提取得到,也可能需要通過新的開發得到。它們依據領域模型 和DSSA進行組織,也就是領域模型和DSSA定義了這些可重用信息的重用時機,從而 支持了系統化的軟件重用。這個階段也可以看作重用基礎設施的實現階段。


[email protected]

出題概率:★★★
120154、120155、150155、160146、180145、180146


5.4.3參與DSSA的人員

參與DSSA的人員可以劃分爲四種角色:領城專家、領城分析師、領域設計人員和領域實現人員。
1、領域專家

領域專家可能包括該領域中系統的有經驗的用戶、從事該領域中系統的需求分析、設計、實現以及項目管理的有經驗的軟件工程師等。領域專家的主要任務包括提供關於領域中系統的需求規約和實現的知識,幫助組織規範的、一致的領域字典,幫助選擇樣本系統作爲領域工程的依據,複審領域模型、DSSA等領域工程產品等。

領域專家應該熟悉該領域中系統的軟件設計和實現、硬件限制、未來的用戶需求及技術走向等。
2、領域分析人員

領域分析人員應由具有知識工程背景的有經驗的系統分析員來擔任。領域分析人員的主要任務包括控制整個領域分析過程,進行知識獲取,將獲取的知識組織到領域模型中,根據現有系統、標準規範等驗證領域模型的準確性和一致性,維護領域模型。

領域分析人員應熟悉軟件重用和領域分析方法;熟悉進行知識獲取和知識表示所需的技術、語言和工具;應具有一定的該領域的經驗,以便於分析領域中的問題及與領域專家進行交互;應具有較高的進行抽象、關聯和類比的能力;應具有較高的與他人交互和合作的能力。
3、領域設計人員

領域設計人員應由有經驗的軟件設計人員來擔任。領域設計人員的主要任務包括控制核個軟件設計過程,根據領域模型和現有的系統開發出DSSA,對DSSA的準確性和一致性進行驗證,建立領域模型和DSSA之間的聯繫。
  領域設計人員應熟悉軟件重用和領域設計方法;熟悉軟件設計方法;應有一定的該領域的經驗,以便於分析領域中的問題及與領域專家進行交互。
4、領域實現人員

領域實現人員應由有經驗的程序設計人員來擔任。領域實現人員的主要任務包括根據領域模型和DSSA,或者從頭開發可重用構件,或者利用再工程的技術從現有系統中提取可重用構件,對可重用構件進行驗證,建立DSSA與可重用構件間的聯繫。
領域實現人員應熟悉軟件重用、領域實現及軟件再工程技術;熟悉程序設計;具有一定的該領域的經驗。


[email protected]
出題概率:★★★
140147、140148、160145


口袋應試:軟件架構評估參考資料
質量屬性
常用的質量屬性有:性能、可用性、可修改性、安全性

主要質量屬性的設計策略

敏感點、風險點、權衡點、非風險點


5.5.1系統架構評估概述

體系結構評估可以只針對一個體繫結構,也可以針一對一組體系結構。在體系結構 評估過程中,評估人員所關注的是系統的質量屬性,所有評估方法所普遍關注的質量屬性有以下幾個。
1. 性能

性能(performance)是指系統的響應能力,即要經過多長時間才能對某個事件做出 響應,或者在某段事件內系統所能處理的事件的個數。經常用單位事件內所處理事務的 數量或系統完成某個事務處理所需的時間來對性能進行定量的表示。性能測試經常要使 用基準測試程序。
2. 可靠性

可靠性(reliability)是軟件系統在應用或系統錯誤面前,在意外或錯誤使用的情況 下維持軟件系統的功能特性的基本能力。可靠性是最重要的軟件特性,通常用它衡量在 規定的條件和時間內,軟件完成規定功能的能力。
3. 可用性

可用性(availability)是系統能夠正常運行的時間比例。經常用兩次故障之間的時 間長度或在出現故障時系統能夠恢復正常的速度來表示。
4. 安全性

安全性(security)是指系統在向合法用戶提供服務的同時能夠阻止非授權用戶使用 的企圖或拒絕服務的能力。安全性是根據系統可能受到的安全威脅的類型來分類的。安 全性又可劃分爲機密性、完整性、不可否認性及可控性等特性。其中,機密性保證信息 不泄露給未授權的用戶、實體或過程;完整性保證信息的完整和準確,防止信息被非法 修改:可控性保證對信息的傳播及內容具有控制的能力,防止爲非法者所用。

5. 可修改性

可修改性(modifiability)是指能夠快速地以較高的性能價格比對系統進行變更的能 力。通常以某些具體的變更爲基準,通過考察這些變更的代價衡量可修改性。可修改性 包含以下4個方面。
(1) 可維護性(maintainability)
(2) 可擴展性(extendibility)
(3) 結構重組(reassemble)
(4) 可移植性(portability)

[email protected]
出題概率:★★★★★
120156、120158、120160、151056、150157、150158、150159、150160、150161、160147、160158、160159、160160、160161、160162、180153、180152


5.5.3主要評估方法
1. SAAM
SAAM (Scenarios-based Architecture Analysis Method)是卡耐基梅隆大學軟件工程 研究所(SEIatCMU)的Kazman等人於1983年提出的一種非功能質量屬性的體系結構 分析方法,是最早形成文檔並得到廣泛使用的軟件體系結構分析方法。最初它用於比較 不同的軟件體系的體系結構,以分析SA的可修改性,後來實踐證明也可用於其他的質 量屬性如可移植性、可擴充性等,發展成了評估一個系統的體系結構。
(1) 特定目標:SAAM的目標是對描述應用程序屬性的文檔,驗證基本的體系結構 假設和原則。此外,該分析方法有利於評估體系結構固有的風險。
(2) 評估技術:SAAM所使用的評估技術是場景技術。場景代表了描述體系結構屬 性的基礎,描述了各種系統必須支持的活動和將要發生的變化。
(3) 質量屬性:這一方法的基本特點是把任何形式的質量屬性都具體化爲場景,但 可修改性是SAAM分析的主要質量屬性。
(4) 風險承擔者:SAAM協調不同參與者所感興趣的方面,作爲後續決策的基礎, 提供了對體系結構的公共理解。
(5) 體系結構描述:SAAM用於體系結構的最後版本,但早於詳細設計。體系結構 的描述形式應當被所有參與者理解。功能、結構和分配被定義爲描述體系結構的三個主 要方面。
(6) 方法活動:SAAM的主要輸入問題是問題描述、需求聲明和體系結構描述。
2. ATAM

ATAM是在基於場景的架構分析方法(Scenarios-based Architecture Analysis Method,SAAM)基礎之上發展起來的,主要包括場景和需求收集、架構視圖和場景實現、屬性模型構造和分析、屬性模型折中等4個階段。ATAM方法要求在系統開發之前,首先對這些質量屬性進行評價和折中。
2. ATAM

體系結構權衡分析方法(Architecture Tradeoff Analysis Method,ATAM)是在 SAAM 的基礎上發展起來的,主要針對性能、實用性、安全性和可修改性,在系統開發之前, 對這些質量屬性進行評價和折中。
(1) 特定目標
(2) 質量屬性
(3) 風險承擔者
(4) 體系結構描述
(5) 評估技術
(6)方法的活動:ATAM被分爲4個主要的活動領域(或階段),分別是場景和需 求收集、體系結構視圖和場景實現、屬性模型構造和分析、折中。整個評估過程強調以屬性作爲架構評估的核心概念。


[email protected]
出題概率:★★★★★
120162、120163、130157、130158、130159、130160、130161、140162、140163、150162、150163、180148、180147


如果大家要在備考複習中進行分類測試練習,或者查找更詳細的備考資料,可以使用“系統架構設計師口袋應試”小程序,或者關注我的個人公衆號“跬步郎”來查找後續更新的內容。


教材外題點


(第四版)9.3.5 虛擬機風格 

虛擬機風格的基本思想是人爲構建一個運行環境,在這個環境之上,可以解析與運行自定義的一些語言,這樣來增加架構的靈活性,虛擬機風格主要包括解釋器和規則爲中心兩種架構風格。
1.解釋器
  一個解釋器通常包括完成解釋工作的解釋引擎,一個包含將被解釋的代碼的存儲區,一個記錄解釋引擎當前工作狀態的數據結構,以及一個記錄源代碼被解釋執行進度的數據結構。
  具有解釋器風格的軟件中含有一個虛擬機,可以仿真硬件的執行過程和一些關鍵應用。解釋器通常被用來建立一種虛擬機以彌合程序語義與硬件語義之間的差異。其缺點是執行效率較低。典型的例子是專家系統。 
2. 規則爲中心
基於規則的系統包括規則集、規則解釋器、規則/數據選擇器及工作內存。


(第四版)@9.3.5
出題概率:★★★
130150、130151、160151、160152、180151


9.3.6 倉庫風格

在倉庫風格中,有兩種不同的構件:中央數據結構說明當前狀態,獨立構件在中央數據存貯上執行,倉庫與外購件間的相互作用在系統中會有大的變化。

倉庫風格包括的子風格有:數據庫系統、超文本系統、黑板風格。
......

對於特定應用問題,黑板系統可通過選取各種黑板、知識源和控制模塊的構件來設計;也可以利用預先定製的黑板體系結構的編程環境。圖 9-8 是黑板系統的組成。黑板系統的傳統應用是信號處理領域,如語音和模式識別。另一應用是鬆耦合代理數據共享存取。
180144_1

 

(第四版)9.3.6

出題概率:★★★★
140152、160153、180149、180150


|上一篇(第一至四章)|目錄|
 

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