2022軟考系統架構師下午案例分析及答案

試題一(25分)

某電子商務公司擬升級其會員與促銷管理系統,向用戶提供個性化服務,提高用戶的粘性。在項目立項之初,公司領導層一致認爲本次升級的主要目標是提升會員管理方式的靈活性,由於當前用戶規模不大,業務也相對簡單,系統性能方面不做過多考慮。新系統除了保持現有的四級固定會員制度外,還需要根據用戶的消費金額、偏好、重複性等相關特徵動態調整商品的折扣力度,並支持在特定的活動週期內主動篩選與活動主題高度相關的用戶集合,提供個性化的打折促銷活動。

在需求分析與架構設計階段,公司提出的需求和質量屬性描述如下:

(a)管理員能夠在頁面上靈活設置折扣力度規則和促銷活動邏輯,設置後即可生效;

(b)系統應該具備完整的安全防護措施,支持對惡意攻擊行爲進行檢測與報警;

(c)正常負載情況下,系統應在0.3秒內對用戶的界面操作請求進行響應;

(d)用戶名是系統唯一標識,要求以字母開頭,由數字和字母組合而成,長度不少於6個字符;

(e)正常負載情況下,用戶支付商品費用後在3秒內確認訂單支付信息;

(f)系統主站點電力中斷後,應在5秒內將請求重定向到備用站點;

(g)系統支持橫向存儲擴展,要求在2人天內完成所有的擴展與測試工作;

(h)系統宕機後,需要在10秒內感知錯誤,並自動啓動熱備份系統;

(i)系統需要內置接口函數,支持開發團隊進行功能調試與系統診斷;

(j)系統需要爲所有的用戶操作行爲進行詳細記錄,便於後期查閱與審計;

(k)系統的外觀進行調整和配置,調整工作需要在4人天內完成。

在對系統需求、質量屬性描述和架構特性進行分析的基礎上,系統架構師給出了兩種候選架構設計方案,公司目前正在組織相關專家對系統架構進行評估。

問題1 (12分)

在架構評估過程中,質量屬性效用樹(utility tree)是對系統質量屬性進行識別和優先級排序的重要工具。請將合適的質量屬性名稱填入圖1-1中(1)、(2)空白處,並選擇題幹描述的(a)~(k)填入(3)~(6)空白處,完成該系經的效用樹。

 

 

問題2 (13分)

針對該系統的功能,李工建議採用面向對象的架構風格,將折扣力度計算和用戶篩選分別封裝爲獨立對象,通過對象調用實現對應的功能;王工則建議採用解釋器(interpreters)架構風格,將折扣力度計算和用戶篩選條件封裝爲獨立的規則,通過解釋規則實現對應的功能。請針對系統的主要功能,從折扣規則的可修改性、個性化折扣定義靈活性和系統性能三個方面對這兩種架構風格進行比較與分析,並指出該系統更適合採用哪種架構風格。

從下列的4道試題(試題二至試題五)中任選2道解答。

試題二(25分)

煤炭生產是國民經濟發展的主要領域之一,其煤礦的安全非常重要。某能源企業擬開發一套煤礦建設項目安全預警系統,以保護煤礦建設項目從業人員生命安全。本系統的主要功能包括如下(a)~(h)所述。

(a)項目信息維護 (b)影響因素錄入 (c)關聯事故錄入 (d)安全評價得分

(e)項目指標預警分析 (f)項目指標填報 (g)項目指標審覈 (h)項目指標確認

問題1 (9分)

王工根據煤礦建設項目安全預警系統的功能要求,設計完成了系統的數據流圖,如圖2-1所示。請使用題幹中述的功能(a)~(h),補充完善空(1)~(6)處的內容,並要介紹數據流圖在分層細化過程中遵循的數據平衡原則。

 

 

問題2(9分)

請根據問題1中數據流圖表示的相關信息,補充完煤礦建設項目安全預警系統總體E-R圖(見圖2-2)中實體(1)~(6)的具體內容,將正確答案填在答題紙上。

 

 

問題3(7分)

在結構化分析和設計過程中,數據流圖和數據字典是常用的技術手段,請用200字以內的文字簡要說明它們在軟件需求分析和設計階段的作用。

試題三(25分)

系統的故障檢測和診斷是宇航系統提高裝備可靠性的主要技術之一,隨着裝備信息化的發展,分佈式架構下的資源配置越來越多、資源佈局也越來越分散,這對系統的故障檢測和診斷方法提出了新的要求。爲了適應宇航裝備的分佈式綜合化電子系統的發展,解決由於系統資源部署的分散性,造成系統狀態的綜合和監控困難的問題,公司領導安排張工進行研究。張工經過分析、調研提出了針對分佈式綜合化電子系統架構的故障檢測和診斷的方案。

問題1(8分)

張工提出:宇航裝備的軟件架構可採用四層的層次化體系結構,即模塊支持層、操作系統層、分佈式中間件層和功能應用層。爲了有效、方便地實現分佈式系統的故障檢測和診斷能力,方案建議將系統的故障檢測和診斷能力構建在分佈式中間件內,通過使用心跳或者超時探測技術來實現故障檢測器。請用300字以內的文字分別說明心跳檢測和超時探測技術的基本原理及特點。

問題2(8分)

張工針對分佈式綜合化電子系統的架構特徵,給出了初步設計方案,指出每個節點的故障監測與診斷器主要負責監控系統中所有的故障信息,並將故障信息進行綜合分析判斷,使用故障診斷器分析出故障原因,給出解決方案和措施。系統可以給模塊的每個處理機器核配置核狀態監控器、給每個分區配置分區狀態監控器、給每個 模塊配置模塊狀態監控器、給系統配置系統狀態監控器,如圖3-1所示。

 

 

請根據下面給出的分佈式綜合化電子系統可能產生的故障(a)~(h),判斷這些故障分別屬於哪類監控器檢測的圍,完善表3-1的(1)~(8)的空白。

(a) 應用程序除零

(b) 看門狗故障

(c) 任務超時

(d) 網絡診斷故障

(e) BIT檢測故障

(f) 分區堆棧溢出

(g) 操作系統異常

(h)模塊掉電

表3-1 故障分類

 

問題3(9分)

張工在方案中指出,本系統的故障診斷採用故障診斷器實現,它可綜合多種故障信息和系統狀態,依據智能決策數據庫提供的決策策略判定出故障類型和處理方法。智能決策數據庫中的策略可以對故障開展定性或定量分析。通常,在定量分析中,普遍採用基於解析模型的方法和數據驅動的方法。張工在方案中提出該系統定量分析時應採用基於解析模型的方法。但是此提議受到王工的反對,王工指出採用數據驅動的方法更適合分佈式綜合化電子系統架構的設計。請用300字以內的文字,說明數據驅動方法的基本概念,以及王工提出採用此方法的理由。

試題四(25分)

某大型電商平臺建立了一個在線B2B商店系統,並在全國多地建設了貨物倉儲中心,通過提前備貨的方式來提高貨物的運送效率。但是在運營過程中,發現會出現很多跨倉儲中心調貨從而延誤貨物運送的情況。爲此,該企業計劃新建立一個全國倉儲貨物管理系統,在實現倉儲中心常規管理功能之外,通過對在線B2B商店系統中訂單信息進行及時的分析和挖掘,並通過大數據分析預測各地倉儲中心中各類貨物的配置數量,從而提高運送效率,降低成本。

當用戶通過在線B2B商店系統選購貨物時,全國倉儲貨物管理系統會通過該用戶所在地址、商品類別以及倉儲中心的貨物信息和地址,實時爲用戶訂單反饋貨物起運地(某倉儲中心)並預測送達時間。反饋送達時間的響應時間應小於1秒。

爲滿足反饋送達時間功能的性能要求,設計團隊建議在全國倉儲貨物管理系統中採用數據緩存集羣的方式,將倉儲中心基本信息、商品類別以及庫存數量放置在內存的緩存中,而倉儲中心的其它商品信息則存儲在數據庫系統。

問題1(9分)

設計團隊在討論緩存和數據庫的數據一致性問題時,李工建議採取數據實時同步更新方案,而張工則建議採用數據異步準實時更新方案。

請用200字以內的文字,簡要介紹兩種方案的基本思路,說明全國倉儲貨物管理系統應該採用哪種方案,並說明採取該方案的原因。

問題2(9分)

隨着業務的發展,倉儲中心以及商品的數量日益增加,需要對集羣部署多個緩存節點,提高緩存的處理能力。李工建議採用緩存分片方法,把緩存的數據拆分到多個節點分別存儲,減輕單個緩存節點的訪問壓力,達到分流效果。

緩存分片方法常用的有哈希算法和一致性哈希算法,李工建議採用一致性哈希算法來進行分片。請用200字以內的文字簡要說明兩種算法的基本原理,並說明李工採用一致性哈希算法的原因。

問題3(7分)

全國倉儲貨物管理系統開發完成,在運營一段時間後,系統維護人員發現大量黑客故意發起非法的商品送達時間查詢請求,造成了緩存擊穿。張工建議儘快採用布隆過濾器方法解決。請用200字以內的文字解釋布隆過濾器的工作原理和優缺點。

試題五(25分)

某公司擬開發一套基於邊緣計算的智能門禁系統,用於如園區、新零售、工業現場等存在來訪、被訪業務的場景。來訪者在來訪前,可以通過線上提前預約的方式將自己的個人信息記錄在後臺,被訪者在系統中通過此請求後,來訪者在到訪時可以直接通過"刷臉"的方式通過門禁,無需做其他驗證。此外,系統的管理員可對正在運行的門禁設備進行管理。

基於項目需求,該公司組建項目組,召開了項目討論會。會上,張工根據業務需求並結合邊緣計算的思想,提出本系統可由訪客註冊模塊、模型訓練模塊、端側識別模塊與設備調度平臺模塊等四項功能組成。李工從技術層面提出該系統可廠使用Flask框架與SSM框架爲基礎來開發後臺服務器,將開發好的系統通過Docker進行部署,並使用MQTT協議對Docker進行管理。

問題1(5分)

MQTT協議在工業物聯網中得到廣泛的應用,請用300字以內的文字簡要說明MQTT協議。

問題2 (14分)

在會議上,張工對功能模塊進行了更進一步的說明:訪客註冊模塊用於來訪者提交申請與被訪者確認申請,主要處理提交來訪申請、來訪申請審覈業務,同時保存訪客數據,爲訓練模塊準備訓練數據集;模型訓練模塊用於使用訪客數據進行模型訓練,爲端側設備的識別提供模型基礎;端側識別模塊在邊緣門禁設備上運行,使用訓練好的模型來識別來訪人員,與雲端服務協作完成訪客來訪的完整業務;設備調度平臺模塊用於對邊緣門禁設備進行管理,管理人員能夠使用平臺對邊緣設備進行調度管理與狀態監控,實現雲端協同。

圖5-1給出了基於邊緣計算的智能門禁系統架構圖,請結合HTTP協議和MQTT協議的特點爲圖5-1中(1)~(6)處選擇合適的協議;並結合張工關於功能模塊的描述,補充完善圖5-1中(7)~(10)處的空白。

 

 

問題3(6分)

請用300字以內的文字,從數據通信、數據安全和系統性能等方面簡要分析在傳統雲計算模型中引入邊緣計算模型的優勢。

2022年下半年系統架構設計師下午真題及答案解析

試題一(25分) 單擊此鏈接查看真題解析視頻https://ke.qq.com/course/329379

問題1 (12分)

(1)安全性 (2)可修改性 (3) e (4) j (5) h (6) k

問題2 (13分)

更適合解釋器架構風格。

 

 ======

應該選擇解釋器架構風格。
折扣規則的可修改性:解釋器風格比面向對象方式實現強。因爲解釋器風格折扣規則是獨立的語法規則,
由解釋器可對變化的規則進行解析,修改更容易。而面向對象相對固定,有變化需要修改具體的類。
個性化折扣定義靈活性:解釋器強於面向對象,解釋器可以根據用戶靈活解釋執行規則,做到千人千面。
系統性能:面向對象優於解釋器。面向對象的實現相對固定,而解釋器是運行期動態綁定執行。

 

試題二(25分)

問題1 (9分)

(1)f (2)g (3)h (4)d (5)b (6)e

分層細化的數據平衡原則:

1.父圖與子圖的平衡:父圖與子圖之間平衡是指任何一張DFD子圖邊界上的輸入/輸出數據流必須與其父圖中對應加工的輸入/輸出數據流保持一致。

2.數據守恆:一個加工的所有輸出數據流中的數據必須能從該加工的輸入數據流中直接獲得或能通過該加工的處理而產生。

問題2(9分)

(1)項目管理員 (2)項目經理 (3)項目指標數據

(4)項目信息 (5)指標參數 (6)事故及影響因素參數 (4~6可互換)

 問題3(7分)

 ======

數據流圖分析階段:建立系統的功能模型,從而完成需求分析。
數據流圖設計階段:爲模塊劃分與模塊之間接口設計提供依據。
數據字典在分析與設計階段的作用爲:
是所有人員工作的依據,統一的標準。它可以確保數據在系統中的完整性和一致性。
具體作用包括:按各種要求列表,相互參照,由描述內容檢索名稱,一致性校驗和完整性校驗。

 

試題三(25分)

問題1(8分)

心跳是一種用於故障檢測的手段。分佈式系統中,各種異常,如:宕機、磁盤損壞、網絡故障等,時有發生,通過心跳可以快速有效的定位集羣中的錯誤結點,並做及時的處理保證集羣正常服務

通常探針會不斷髮送健康檢查來檢查服務是否健康。當遠程節點沒有響應時,我們只能猜測數據包在過程中的某個地方丟失了。下一個操作將是重試或等待一段時間,直到超時。

問題2(8分)

(1) (2) b、e (3) f (4) (5) (6) a、d、h (7)(8) g、c

問題3(9分)

通過對系統運行過程中的監測數據進行分析,從而在無精準系統數學模型情況下,對系統進行故障診斷,具體方法包括機器學習、統計分析法和信號分析法

因爲宇航系統是一個非常複雜的系統,如果採用張工的基於解析模型的方法,這一類方法需要建立再精準數學模型的基礎上來進行故障診斷。但是對於宇航系統這種非常複雜的系統難以精確建模。所以王工提出了數據驅動的方法,不需要精準系統數學模型。

試題四(25分)

問題1(9分)

實時方案:強一致性,更新數據庫之後主動淘汰緩存,讀請求更新緩存,爲避免緩存雪崩,更新緩存的過程需要進行同步控制,同一時間只允許一個請求訪問數據庫。

異步準實時更新方案:準一致性,當數據庫數據更新時,異步更新緩存數據,採用多線程技術或MQ(消息隊列)逐步完成數據的更新。

應該採用異步準實時更新方案,因爲題目中對性能有嚴格要求,要求在1秒內完成,而且多數請求是讀操作,寫操作少。實時同步方案最大的問題在於同步併發時的性能不可控。

 ======

實時方案:當數據庫數據更新時,同時更新內存的緩存數據。
異步準實時更新方案:當數據庫數據更新時,不立即更新緩存數據,而是將需要更新的操作記錄成日誌,再逐步排隊完成更新。
本題中,建議採用準實時方案,理由是:題目中對性能有嚴格要求,要求1s內完成。實時同步方案最大的問題在於
同步併發時的性能不可控。所以準實時方案才能確保該要求能實現。

問題2(9分)

哈希分片:對緩存的 Key 做哈希計算,然後對總的緩存節點個數取餘,得出的結果就是要存入緩存節點的序號。這種算法的優點就是簡單易,缺點是當增加或者減少緩存節點時,緩存總的節點個數變化造成計算出來的節點發生變化,從而造成緩存失效不可用。

一致性哈希分片:將存儲節點和數據都映射到一個0~232首尾相連的虛擬哈希環上,存儲節點可以根據IP 地址進行哈希,數據通常通過順時針方向尋找的方式,來確定自己所屬的存儲節點。這種算法的優點是增加和刪除節點時,只有少量的 Key 會漂移到其它節點上,而大部分的 Key 命中的節點還是會保持不變,從而可以保證命中率不會大幅下降。缺點是緩存節點在圓環上分佈不平均,會造成部分緩存節點的壓力較大。

採用一致性哈希算法的原因:一致性哈希分片的方式在擴充緩存結點時,只需要對少量數據的存儲位置進行更新,而哈希分片需要對幾乎所有數據的存儲位置進行更新。

======

哈希分片:通過對key進行hash操作,可以把數據分配到不同實例,這類似於取餘操作,餘數相同的,放在一個實例上。
一致性哈希分片:哈希分片的改進,把存儲結點和需要存儲的數據都放在一個hash環上,數據根據hash值在hash環上
按正時針方向找到對應的數據存儲結點上。
一致性哈希分片的方式在擴充緩存結點時,只需要對少量數據進行存儲位置的更新,而哈希分片需要對幾乎所有數據
進行存儲位置更新。

問題3(7分)

布隆過濾器通過一個很長的二進制向量和一系列隨機映射函數來記錄與識別某個數據是否在一個集合中。如果數據不在集合中,能被識別出來,不需要到數據庫中進行查找,所以能將數據庫查詢返回值爲空的查詢過濾掉。

優點:佔用內存小,查詢效率高,不需要存儲元素本身,在某些對保密要求比較嚴格的場合有很大優勢。

缺點:有一定的誤判率,不能100%準確判斷元素是否在集合中,不能獲取元素本身,一般情況下不能從布隆過濾器中刪除元素。

試題五(25分)

問題1(5分)

MQTT (消息隊列遙測傳輸)是一個基於客戶端-服務器的消息發佈/訂閱傳輸協議。它工作在TCP/IP協議族上,是爲硬件性能低下的遠程設備以及網絡狀況糟糕的情況下而設計的發佈/訂閱型消息協議。MQTT協議是輕量、簡單、開放和易於實現的。

問題2 (14分)

⑴HTTP ⑵MQTT (3)MQTT (4)MQTT ⑸HTTP ⑹HTTP

(7)端側識別 (8)模型訓練 (9)設備調度平臺 (10)訪客註冊

問題3(6分)

數據通信:通信數據量更少速度更快。因爲數據處理比對在邊緣設備上完成,無需回傳服務器,通信效率更高。

數據安全:數據以加密方式存儲在需要用到的邊緣設備上,本地化處理比對,減少原始信息在網上的傳遞帶來的安全隱患。黑客無法通過攻擊一臺設備來影響整個系統。

系統性能:性能更高,以人臉識別爲例,在進行識別時,只在本地進行比對不用把人臉數據傳遞到遠程服務器對比。
======

數據通信:通信更快捷,數據量更少。因爲數據處理對比在邊緣設備上完成,通信更多時候只傳輸匹配與結果的指令。
數據安全:數據以加密方式存儲在需要用到的邊緣設備上,本地化處理比對,減少原始信息在網上的傳遞帶來的安全隱患。黑客也無法通過攻破一個結點使整個系統癱瘓。
系統性能:性能更高,以人臉識別爲例,在進行識別時,只在本地進行比對不用把人臉數據傳遞到遠程服務器對比。

 

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