2010年下半年系統架構設計師_下午I試題解析與答案
試題一、閱讀以下關于軟件系統架構選擇的說明,在答題紙上回答問題1至問題3
試題分析
[問題1]
本問題主要考查軟件架構風格的定義,并考查對兩種與本題相關的架構風格的定義。軟件架構風格是描述特定軟件系統組織方式的慣用模式。組織方式描述了系統的組成構件和這些構件的組織方式,慣用模式則反映眾多系統共有的結構和語義。
主程序-子程序架構風格中,所有的計算構件作為子程序協作工作,并由一個主程序順序地調用這些子程序,構件通過共享存儲區交換數據。
管道-過濾器架構風格中,每個構件都有一組輸入和輸出,構件接受數據輸入,經過內部處理,然后產生數據輸出。這里的構件成為過濾器,構件之間的連接件稱為數據流傳輸的管道。
[問題2]
本問題是一道填表題,其核心是對兩種架構風格在算法變更、功能變更、數據表示變更和性能等方面的特點進行比較。
共享數據的主程序-子程序在算法變更方面靈活性較差,算法變更時一般需要重新編譯整個系統;在功能變更方面也比較差;在數據表示方面,當需要變更是,也意味著程序傳遞參數的變化以及整個程序的調整,表現比較差;在性能方面,由于整個程序處在一個緊耦合的狀態,因此性能較高。
管道-過濾器架構風格在算法變更方面實現比較簡單,只需要修改過濾器的實現即可;在功能變更方面也比較簡單;在數據表示方面,需要同時改變數據格式和過濾器的結構,相對比較復雜;在性能方面,由于整個系統是松耦合連接在一起的,因此性能不高。
根據題干描述:“用戶后續還有可能采用其他方式展示幫助內容”,因此KWIC系統對功能變更要求較高;根據題干描述:“后續還將采用其他的方法實現這一功能”,因此KWIC系統對實現某一個功能的算法變更要求較高;KWIC是一個支持用戶交互的窗口界面程序,因此對性能要求并不高;KWIC系統的現實幫助內容為文本,數據的表示基本不變,因此對數據表示變更要求不高。針對這些考慮,可以看出應該采用管道-過濾器的架構風格。
[問題3]
本問題是一道讀圖題,考查用戶都系統架構的理解程度。根據題干中的關鍵描述“接收用戶輸入的查詢關鍵字,依據字母順序給出相關幫助文檔并根據幫助內容進行循環滾動閱讀”和“公司的技術人員決定通過重復剪切幫助文檔中的第一個單詞并將其插入到行尾的方式實現幫助文檔內容的循環滾動”,可以看出整個系統的流程是:輸入→文檔檢索→查詢結果按字母排序→剪切行首單詞→單詞插入行尾→輸出。
解答要點
【問題1】
軟件架構風格是描述特定軟件系統組織方式的慣用模式。組織方式描述了系統的組成構件和這些構件的組織方式,慣用模式則反映眾多系統共有的結構和語義。
主程序-子程序架構風格中,所有的計算構件作為子程序協作工作,并由一個主程序順序地調用這些子程序,構件通過共享存儲區交換數據。
管道-過濾器架構風格中,每個構件都有一組輸入和輸出,構件接受數據輸入,經過內部處理,然后產生數據輸出。這里的構件稱為過濾器,構件之間的連接件稱為數據流傳輸的管道。
【問題2】