試題一
某軟件公司擬為某市級公安機關開發一套特種車輛管理與監控系統,以提高特種車輛管理的效率和准確性。在系統需求分析與架構設計階段,用戶提出的部分需求和關鍵質量屬性場景如下:
(a) 系統用戶分為管理員、分管領導和普通民警等三類;
(b) 正常負載情況下,系統必須在0.5秒內對用戶的車輛查詢請求進行響應;
(c) 系統能夠抵御99.999%的黑客攻擊;
(d) 系統的用戶名必須為字母開頭,長度不少於5個字符;
(e) 對查詢請求處理時間的要求將影響系統的數據傳輸協議和處理過程的設計;
(f) 網絡失效后,系統需要再2分鍾內發現並啟用備用網絡系統;
(g) 在系統升級時,需要保證在1個月內添加一個新的消息處理中間件;
(h) 查詢過程中涉及到的車輛實時視頻傳輸必須保證20幀/秒的速率,且畫面具有600*480的分辨率;
(i) 更改系統加密的級別將對安全性和性能產生影響;
(j) 系統主站點斷電后,需要再3秒內將請求重定向到備用站點;
(k) 假設每秒中用戶查詢請求的數量是10個,處理請求的時間為30毫秒,則“在1秒內完成用戶的查詢請求”這一要求是可以實現的;
(l) 對用戶信息數據的授權訪問必須保證99.999%的安全性;
(m)目前對“車輛信息實時監控”業務邏輯的描述尚未達成共識,這可能導致部分業務功能模塊的重復,影響系統的可修改性;
(n) 更改系統的Web界面接口必須在1周內完成;
(o) 系統需要提供遠程調試接口,並支持系統的遠程調試。
在對系統需求和質量屬性場景進行分析的基礎上,系統的架構師給出了三個候選的架構設計方案。公司目前正在組織系統開發的相關人員對系統架構進行評估。
問題1
在架構評估過程中,質量屬性效用樹(utility tree)是對系統質量屬性進行識別和優先級排序的重要工具。請給出合適的質量屬性,填入圖1-1中(1)、(2)空白處;並選擇題干描述中的(a)~(o),將恰當的序號填入(3)~(6)空白處,完成該系統的效用樹。
問題2
在架構評估過程中需要正確識別系統的架構風險、敏感點和權衡點,並進行合理的架構決策。請用300字以內的文字給出系統架構風險、敏感點和權衡點的定義,並從題干描述中的(a)~(o)各選出1個屬於系統架構風險、敏感點和權衡點的描述。
試題二
某公司擬研制一款高空監視無人直升機,該無人機采用遙控一自主復合型控制實現垂直升降。該直升機飛行控制系統由機上部分和地面部分組成,機上部分主要包括無線電傳輸設備、飛控計算機、導航設備等,地面部分包括遙控操縱設備、無線電傳輸設備以及地面綜合控制計算機等。其主要工作原理是地面綜合控制計算機負責發送相應指令,飛控計算機按照預定程序實現相應功能。經過需求分析,對該無人直升機控制系統縱向控制基本功能整理如下:
(a) 飛控計算機加電后,應完成系統初始化,飛機進入准備起飛狀態;
(b) 在准備起飛狀態中等待地面綜合控制計算機發送起飛指令,飛控計算機接收到起飛指令后,進入垂直起飛狀態;
(c) 垂直起飛過程中如果飛控計算機發現飛機飛行異常,飛行控制系統應轉入無線電遙控飛行狀態,地面綜合控制計算機發送遙控指令;
(d) 垂直起飛達到預定起飛高度后,飛機應進入高度保持狀態;
(e) 飛控計算機在收到地面綜合控制計算機發送的目標高度后,飛機應進入垂直升降狀態,接近目標高度;垂直升降過程中出現飛機飛行異常,控制系統應轉入無線電遙控飛行;
(f) 飛機到達目標高度后,應進入高度保持狀態,完成相應的任務;
(g) 飛機在街道地面綜合控制計算機發送的任務執行結束指令后,進入飛機降落狀態;
(h) 飛機降落過程中如果出現飛機飛行異常,控制系統應轉入無線電遙控飛行;
(i) 飛機降落到指定着陸高度后,進入飛機着陸狀態,應按照預定着陸算法,進行着陸;
(j) 無線電遙控飛行中,地面綜合控制計算機發送着陸指令,飛機進入着陸狀態,應按照預定着陸算法,進行着陸。
問題1
狀態圖和活動圖是軟件系統設計建模中常用的兩種手段,請用200字以內文字簡要說明狀態圖和活動圖的含義及其區別。
問題2
根據題干中描述的基本功能需求,架構師王工通過對需求的分析和總結給出了無人直升機控制系統縱向控制狀態圖(圖2-1)。請根據題干描述,提煉出相應狀態及條件,並完善圖2-1所示狀態圖中的(1)~(5),將答案填寫在答題紙中。
問題3
根據題目中描述的基本功能需求,架構師王工給出了無人直升機控制系統縱向控制的頂層活動圖(圖2-2)。請根據題干描述,完善圖2-2活動圖的(1)-(9),將答案填寫在答題紙中。
試題三
某宇航公司長期從事宇航裝備的研制工作,嵌入式系統的可靠性分析與設計已成為該公司產品研制中的核心公司,隨着宇航裝備的綜合化技術發展,嵌入式軟件規模發生了巨大變化,代碼規模已從原來的幾十萬擴展到上百萬,從而帶來了由於軟件失效而引起系統可靠性降低的隱患。公司領導非常重視軟件可靠性工作,決定抽調王工程師等5人組建可靠性研究團隊,專門研究提高本公司宇航裝備的系統可靠性和軟件可靠性問題,並要求在三個月內,給出本公司在系統和軟件設計方面如何考慮可靠性設計的方法和規范。可靠性研究團隊很快拿出了系統及硬件的可靠性提高方案,但對於軟件可靠性問題始終沒有研究出一種普遍認同的方法。
問題1
請用200字以內文件說明系統可靠性的定義及包含的4個子特性,並簡要指出提高系統可靠性一般采用哪些技術?
問題2
王工帶領的可靠性研究團隊之所以沒能快速取得軟件可靠性問題的技術突破,其核心原因是他們沒有搞懂高可靠性軟件應具備的特點。軟件可靠性一般致力於系統性地減少和消除對軟件程序性能有不利影響的系統故障。除非被修改,否則軟件系統不會隨着時間的推移而發生退化。請根據你對軟件可靠性的理解,給出表3-1所列出的硬件可靠性特征對應的軟件可靠性特征之間的差異或相似之處,將答案寫在答題紙上。
序號 |
硬件可靠性 |
軟件可靠性 |
1 |
失效率服從浴缸曲線。老化狀態類似於軟件調試狀態 |
(1) |
2 |
即使不適用,材料劣化也會導致失效 |
(2) |
3 |
硬件維修會恢復原始狀態 |
(3) |
4 |
硬件失效之前會有報警 |
(4) |
問題3
王工帶領的可靠性研究團隊在分析了大量相關資料基礎上,提出軟件的質量和可靠性必須在開發過程構建在軟件中,也就是說,為了提高軟件的可靠性,必須在需求分析、設計階段開發軟件可靠性籌划和設計。研究團隊針對本公司承擔的飛行控制系統制定出了一套飛控軟件的可靠性設計要求。飛行控制系統是一種雙余度同構型系統,輸入采用了獨立的兩路數據通道,在系統內完成輸入數據的交叉比對、表決“制導率計算,輸出數據的交叉對比、表決、一輸出等功能,系統的監控模塊實現對系統失效或失步的檢測與寵位。其軟件的可靠性設計包括恢復塊方法和N版本程序設計方法。請根據恢復塊方法工作原理完成圖3-1,在(1)~(4)中填入恰當的內容。並比較恢復塊方法與N版本程序設計方法,將比較結果(5)~(8)填入表3-2中。
表3-1 恢復塊方法
表3-2 恢復塊方法與N版本程序設計的比較
|
恢復塊方法 |
N版本程序設計 |
硬件運行環境 |
單機 |
多機 |
錯誤檢測方法 |
驗證測試程序 |
(5) |
恢復策略 |
(6) |
向前恢復 |
實時性 |
(7) |
(8) |
試題四
某軟件公司擬開發一套貿易綜合管理系統,包括客戶關系管理子系統和商品信息管理子系統兩部分。客戶關系管理子系統主要管理客戶系統,並根據貿易業務需要頻繁向客戶發送相關的電子郵件、短信等提醒信息。商品信息管理子系統主要為客戶提供商品信息在線查詢功能,包括商品基本信息、實時庫存與價格等。
在對系統進行數據架構設計時,公司項目組的架構師王工主張采用文件系統進行數據管理,原因是目前公司客戶和商品數量不大,且系統功能較為簡單,采用文件系統進行數據管理簡單直觀,開發周期短。架構師李工則建議采用關系數據庫進行數據管理,原因在於公司目前正處在高速擴張期,雖然目前的客戶和商品數量不大,但隨着公司快速發展,需要管理的數據必然飛速膨脹,采用關系型數據庫作為數據存儲層,系統的擴展性更強,並能夠對未來可能增加的復雜業務提供有效支持。經過討論,項目組初步采納了李工的意見,決定采用關系數據庫存儲客戶數據,並針對業務特征對系統性能進行優化。
問題1
請從設計難度、數據冗余程度、數據架構、應用擴展性等4個方面對關系型數據庫管理系統和文件系統兩種數據存儲方式進行比較,填寫表4-1中(1)~(4)。
|
設計難度 |
數據冗余程度 |
數據架構 |
應用擴展性 |
關系型數據庫 |
(1) |
遵守數據庫范式,數據冗余較少 |
以數據庫為中心組織、管理數據 |
(4) |
文件系統 |
針對特定應用系統設計,難度較小 |
(2) |
(3) |
符合特定應用系統要求的文件數據很難在不同的應用系統之間共享 |
問題2
對系統的核心業務需求進行認真分析后,公司的資深架構師張工提出一種內存數據庫和關系數據庫的混合存儲架構,其核心思想是將需要頻繁讀寫的數據存入內存數據庫,而將相對固定不變的數據存入關系數據庫。請首先分析內存數據庫和關系數據庫在數據模型、讀寫性能、存儲容量、可靠性等方面的差異,填寫表4-2中(1)~(4)的空白,並根據張工的思路指定各種業務數據的存儲方式,填寫表4-3中(5)~(9)中的空白。
表4-2 內存數據庫和關系數據庫比較
|
主要數據模型 |
讀寫性能 |
存儲容量 |
可靠性 |
內存數據庫 |
(1) |
內存直接讀寫,性能相對較高 |
(3) |
(4) |
關系數據庫 |
關系模式 |
(2) |
基於磁盤存儲,存儲容量大 |
內建恢復機制,可靠性較高 |
表4-3 業務數據存儲方式
業務數據 |
存儲方式 |
客戶基本信息 |
關系數據庫 |
客戶電子郵件 |
(5) |
客戶聯系電話 |
(6) |
商品基本信息 |
(7) |
商品庫存信息 |
(8) |
商品價格信息 |
(9) |
試題五
某信息技術公司計划開發一套在線投票系統,用於為市場調研、信息調查和銷售反饋等業務提供服務。該系統計划通過大量宣傳和獎品鼓勵的方式快速積累用戶,當用戶規模擴大到一定程度時,開始聯系相關企業提供信息服務,並按照信息服務種類和用戶投票數量收取費用。
為了降低開發成本和提高開發效率,項目組經過討論后決定采用輕量級Java EE開發框架設計系統應用架構。在應用架構設計中,除了滿足系統主要功能需求,還需要考慮的因素包括:
1、項目開發采用MySQL數據庫存儲數據,一但將來可能移植到其它數據庫平台;
2、系統開發過程中盡可能降低或者消除SQL語句開發的工作量;
3、投票系統中數據之間的關系復雜,需要支持數據對象的聚合和繼承等關系。
項目組基於MVC模式設計出了投票系統的架構,包括表示層、業務邏輯層、數據持久層和數據層。在具體討論數據持久層采用哪種技術方案時,老王建議采用成熟的Hibernate框架,小李則認為iBatis更加靈活,更適合作為投票系統數據持久層開發技術。
問題1
請用300以內文字說明什么是數據持久層,使用數據持久層能夠為項目開發帶來哪些好處?
問題2
針對在線投票系統的實際應用需求和要求,項目組應選用哪種技術實現數據持久層?請用200字以內文字說明其采用該技術的原因。
問題3
數據持久層是Web應用系統框架中重要的組成部分,主流的數據持久層技術分別基於不同的技術方案,請在表5-1中(1)-(4)處分別根據(a)~(d)所列技術的方案類別填入其序號。
技術方案 |
實現技術 |
JDBC封裝 |
(1) |
SQL Mapping |
(2) |
O/R Mapping |
(3) |
Entity Bean |
(4) |
(1)BMP,CMP
(2)iBatis/MyBatis
(3)SpringJdbcTemplate
(4)TopLink,JDO,Hibernate
試題一是必答,試題四、五為選答。考試過程中,選擇了更加熟悉的題目進行答題,題號為1、4、5。
參考答案:
試題一
問題1:
(1) 安全性
(2) 可修改性
(3) k
(4) l
(5) j
(6) n
問題2:
架構風險:架構可能會給系統帶來的潛在的問題。
敏感點:是一個或多個構件或多個構件之間的影響質量的特性。
權衡點:影響多個質量屬性的特性,是多個質量屬性的敏感點。
架構風險:m
敏感點:e
權衡點:i
試題四
問題1:
(1) 針對業務模型進行設計,難度較大
(2) 基於文件數據管理,數據冗余較大
(3) 以關系型數據庫為中心組織、管理數據
(4) 針對一般性、通用性設計,數據庫數據可以在不同的應用之間進行共享
問題2:
(1) k-v鍵值對
(2) 基於數據庫IO讀寫,性能相比較內存讀寫要慢
(3) 基於內存存儲,存儲容量較小
(4) 不保證每次請求都能命中,緩存會失效
(5) 關系數據庫
(6) 關系數據庫
(7) 內存數據庫
(8) 內存數據庫
(9) 內存數據庫
試題五
問題1:
數據持久層是指在軟件系統當中負責完成數據持久化(將數據保存到數據庫)操作的軟件結構上的邏輯分層。
使用數據持久層可以使項目結構清晰、模塊復用、便於數據庫遷移等優點。
問題2:
項目組應該選用老王的建議,使用Hibernate作為數據持久層的框架。首先Hibernate比較成熟,對於投票系統而言完全可以勝任。其次Hibernate極大的減少了SQL語句的開發工作量,而iBatis則是基於SQL Mapping的工具,需要編寫大量的SQL。然后對於表示對象之間的聚合和繼承等關系,Hibernate具有天生的優勢,可以做到完全的面向對象編程。最后Hibernate支持多種數據庫,可以比較容易的做到數據庫遷移。
問題3:
(1) SpringJdbcTemplate
(2) iBatis/MyBatis
(3) TopLink,JDO,Hibernate
(4) BMP,CMP