軟考高階《系統架構設計師》-- 刷題-02-架構風格相關題目總結

語言: CN / TW / HK

theme: channing-cyan

前言

今天是 2022年9月3日,距離軟考高階《系統架構設計師》還有62天。

image.png

繼續來把前幾天刷題後,覺得比較典型的設計模式和軟體架構風格的題目總結一下。

題目1 設計模式-橋接模式

image.png

這道題首先需要了解橋接模式的關鍵作用。

《系統架構設計師教程-清華版》裡面只有一句話的概括:

將類的抽象部分和實現部分分離開來,使他們可以獨立變化。 這裡的抽象部分也就是Drawing。實現部分也就是Shape部分。

再看一個類似題

題目2 設計模式-橋接模式

image.png

本題來看一下:

A 裝飾器模式,肯定排除,裝飾器一般是在一個核心功能的類上,進行額外功能的擴充套件 B 介面卡模式,咋一看好像對,但是仔細想,不對。介面卡模式,大概就是,使用者需要呼叫若干個內容,但是各個內容之間略微有一些差異,需要專門進行給適配,來讓使用者呼叫不同的內容。 D Facade 外觀模式。為子系統中的一組介面提供一個一致的外觀,從而簡化了該介面。

所以ABD都不行。

C 在本題題幹部分提到宣傳產品有多種表現形式,又有多種媒介,如果用一棵類樹來表達,必然會帶來“類爆炸”的問題,所以使用橋接模式是合適的。橋接模式的最核心特點便是:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。

題目3 架構風格-直譯器風格

image.png

本題考察的是架構風格,關於架構風格,建議綜合以下三本書一起學習,因為這幾本數都講的不全面,考試的內容指不定從哪個書裡出。

《系統架構設計師教程-清華版》

《系統架構設計師教程-第四版(希賽版)》

《系統架構設計師考試全程指導》

本題考察的是直譯器風格。它屬於虛擬機器風格的一種。

這個只有在《系統架構設計師教程-第四版(希賽版)》裡看到相關解釋:

其他兩本書並未發現相關陳述。

虛擬機器風格

包括以下兩種風格: * 直譯器風格 * 基於規則的系統 image.png

本題是極為經典的考題。題目中提及“支援玩家自行建立戰役地圖”這說明系統要能應對“自定義”內容的解析,這需要用到直譯器風格。遊戲內模擬一些列過程,就有點像書中的描述。

其他錯誤選項:

A:描述中未發現和層次相關的內容。

C:黑板風格是倉庫風格中的一種

D:事件驅動系統,往往會有一些事件、命令相關的資訊。

image.png

倉庫風格

倉庫風格包括的子風格有:資料庫系統、超文本系統、黑板風格。

黑板系統

黑板系統主要由三部分組成:

(1)知識源。知識源中包含獨立的、與應用程式相關的知識,知識源之間不直接進行通訊,它們之間的互動只通過黑板來完成。

(2)黑板資料結構。黑板資料是按照與應用程式相關的層次來組織的解決問題的資料,知識源通過不斷地改變黑板資料來解決問題。

(3)控制。控制完全由黑板的狀態驅動,黑板狀態的改變決定使用的特定知識。

黑板系統適合於解決複雜的非結構化的問題,能在求解過程中綜合運用多種不同知識源,使得問題的表達、組織和求解變得比較容易。黑板系統是一種問題求解模型,是組織推理步驟、控制狀態資料和問題求解之領域知識的概念框架。它將問題的解空間組織成一個或多個應用相關的分級結構。分級結構的每一層資訊由一個唯一的詞彙來描述,它代表了問題的部分解。領域相關的知識被分成獨立的知識模組,它將某一層次中的資訊轉換成同層或相鄰層的資訊。各種應用通過不同知識表達方法、推理框架和控制機制的組合來實現。影響黑板系統設計的最大因素是應用問題本身的特性,但是支撐應用程式的黑板體系結構有許多相似的特徵和構件。

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

資料庫架構風格

資料庫架構是庫風格最常見的形式。構件主要有兩大類:

  • 一個是中央共享資料來源,儲存當前系統的資料狀態;

  • 另一個是多個獨立處理元素,處理元素對資料元素進行操作。

而超文本系統的典型代表,就是早期的靜態網頁。三種架構子風格中,最複雜的是黑板系統。

再看一個題目

題目4 架構風格-黑板系統

image.png

語音識別是典型的黑板系統,所以選黑板系統

題目5 架構風格-直譯器風格

image.png

這裡特意強調了業務靈活,更偏向於直譯器風格。

題目6 架構風格-規則系統

image.png

規則系統屬於虛擬機器風格的一種,在本題中要求機器人的控制者首先定義清潔任務和任務之間的關係,然

後由機器人執行,這說明機器人能對自定義的一些邏輯進行解析,這是虛擬機器風格的一大特色。

題目中有很強的提示資訊:定義一些關係,這就是在定義規則。

題目7 架構風格-直譯器

image.png

依據題目要求擬開發的線上遊戲需要自定義物件之間的互動,這樣必須有機制能支援系統對新定義的規則進行解析,這需要用到虛擬機器風格,構造一個虛擬機器對規則進行解析,所以在此應選擇歸屬於虛擬機器風格的直譯器。

本題的選項中沒有基於規則系統,如果有的話,就有點難區分了。它和直譯器風格比較接近,都是虛擬機器風格的一種。

題目8 架構風格

image.png

我們看49 和50 兩題

黑板系統的典型應用就是語音識別,適合處理有一些列複雜的,求解過程不確定的問題。。

看到有輸入,有輸出的,就知道是管道過濾器風格。

題目9 架構風格-資料倉儲風格

image.png

題目10 架構風格-順序批處理

image.png

第9題和第10題綜合來看一下。

傳統的編譯器:順序批處理 現代編譯器:資料倉儲

題目11 架構風格-C2

image.png

C2風格的特點就是“組合”

其他選項:

黑板:處理語音識別等不確定過程,複雜場景問題。 規則系統:題目中一定會出現“定義”等,和規則相關的描述 虛擬機器:往往用來在模擬在某個環境假設下的一些操作。

後記

刷完這些題目後,發現:

如果不理解每個風格的具體含義,直接記住也行,因為每年真題的題目描述都非常接近。看描述有時候就能知道答案。

希望這些整理的題目能對大家有幫助。