软件工程复习资料
一、客觀題部分(單選題、多選題和判斷題):
例:
①開發軟件的高成本和軟件產品的低質量之間的矛盾,這種現象稱為
A. 軟件投機
B. 軟件工程
C. 軟件產生
D. 軟件危機
②產生軟件危機的原因有
A. 所開發的軟件,除了程序清單外,沒有其他文檔
B. 軟件開發過程未經審查
C. 軟件開發不分階段,開發人員沒有明確的分工
D. 采用工程設計的方法開發軟件,不符合軟件本身的特點
例:
①關于瀑布模型說法正確的是
A. 瀑布模型包括需求采集、分析、軟件設計、編碼、測試和維護等階段
B. 瀑布模型的每個階段都必須完成后,才可進入下一階段
C. 瀑布模型比RUP模型更先進
D. 瀑布模型的前一階段的輸出作為后一階段的輸入
②瀑布模型本質上是一種()
A. 線性順序模型
B. 線性迭代模型
C. 順序迭代模型
D. 及早見產品模型
③軟件生命周期模型包含
A. 用例模型
B. E-R模型
C. 螺旋模型
D. 瀑布模型
④瀑布模型的特征不包含
A. 任務階段之間有上下承接關系
B. 每個任務階段中包含風險分析內容
C. 理想化過程模型
D. 任務階段之間有先后順序
3. 快速原型模型的特點
例:
①下面關于軟件過程模型說法錯誤的是
A. 軟件過程模型指明了軟件開發步驟和任務
B. 用戶界面的可視化是快速原型模型中的一個重要步驟
C. 螺旋模型中含有風險分析與控制的階段
D. 統一過程模型中不含軟件需求分析階段
②快速原型模型的主要特點之一是()
A. 開發完畢后才見到工作軟件
B. 開發完畢才見到產品
C. 及早提供工作軟件
D. 及早提供全部完整的軟件產品
③關于快速原型模型描述正確的是
A. 及早提供工作軟件
B. 原型一定會被拋棄,不能作為最終產品的一部分
C. 用戶只能在交付階段才能見到可運行的產品
D. 本質是“快速”
4. 螺旋模型的基本思想
例:
①下面關于軟件過程模型說法錯誤的是
A. 軟件過程模型指明了軟件開發步驟和任務
B. 用戶界面的可視化是快速原型模型中的一個重要步驟
C. 螺旋模型中含有風險分析與控制的階段
D. 統一過程模型中不含軟件需求分析階段
②螺旋模型是一種()的開發模型,適合于大型軟件的開發
A. 模型驅動
B. 對象驅動
C. 風險驅動
D. 文檔驅動
5. 軟件生命周期的概念以及劃分為哪幾個階段
例:
①軟件生命周期中不含哪個階段
A. 可行性分析階段
B. 軟件設計階段
C. 軟件維護階段
D. 軟件銷售階段
②軟件生命周期模型包含
A. 用例模型
B. E-R模型
C. 螺旋模型
D. 瀑布模型
軟件項目計劃需要考慮哪些因素
例:
①軟件項目計劃中不需要制定下面哪個內容的方案
A. 數據庫邏輯設計
B. 風險控制
C. 組織結構
D. 項目成本
面向對象分析模型包含哪些模型 注意(用例圖、類圖、功能實現圖)
例:
①面向對象分析模型有()
A. 對象模型 --》類圖
B. 動態模型 。。。。。。》時序圖,狀態圖等表示動態的圖
C. 功能模型 --》用例圖
D. 過程模型
了解MVC模式的概念以及每個字母表示的含義 MVC(model 視圖 控制器)
例:
①關于MVC模式,說法正確的是
A. M指模型,可用于實現數據和業務處理
B. C指控制器,可用于實現輸入
C. V指視圖,可用于實現輸出
D. MVC可用于Web類型的軟件開發
②針對UI設計模式,說法不合適的是
A. 監聽者模式也稱觀察者模式或訂閱者模式
B. html的視圖代碼使用層次樹的方式進行組織和管理
C. MVC模式中,模型負責處理和分發事件
D. 在監聽器代碼模式中,監聽器代碼負責處理操作事件
9. 了解項目進度計劃中關鍵路徑的概念
例:
①以下關于關鍵路徑的說法中正確的是
A. 一個項目可以有多個關鍵路徑,且關鍵路徑的耗時可以不一樣
B. 關鍵路徑上的任務延遲可能不會影響項目的總體時間
C. 一個項目只有一條關鍵路徑
D. 一個項目可以有多個關鍵路徑,且關鍵路徑的耗時是一樣的
②關于關鍵路徑的說法中正確的是
A. 一個項目只有一條關鍵路徑
B. 關鍵路徑的耗時是一樣
C. 一個項目可以有多個關鍵路徑
D. 關鍵路徑上的任務延遲可能不會影響項目的總體時間
10. 對象模型中類圖,類圖的組成元素、如何描述屬性的可見性、類與類之間的關系
例:
①關于UML類圖的說法錯誤的是
A. UML類圖使用矩形符號表達
B. 類圖中能夠表達屬性
C. 類圖中能夠表達類之間的關系
D. 類圖中能夠表達方法體
②在類圖中,哪種關系表達總體與局部的關系
A. 聚合
B. 依賴
C. 實現
D. 泛化
③在類圖中,表示private權限的是哪個符號?
A. #
B. ~
C. -
D. +
④關于UML類圖的說法正確的是
A. UML類圖中能夠表達類之間的關系
B. UML類圖中能夠表達出類的屬性
C. UML類圖中使用矩形符號表達類
D. UML類圖中能夠表達類的方法體
⑤在類圖中,表示public權限的是哪個符號
A. ~
B. -
C. +
D. #
11. 數據流圖的組成元素以及符號表示
例:
①在結構化分析方法中,用以表達系統內數據加工及流向的建模工具是( )
A. 結構化語言
B. 數據流圖
C. 數據詞典
D. 判定表與判定樹
②哪個不是數據流圖的圖形元素
A. 數據存儲
B. 數據源點
C. 數據實體
D. 數據流向
③數據字典配合數據流圖使用,可用于描述
A. 數據的流向
B. 數據的組成
C. 數據的用途
D. 數據元素的定義
④圓角矩形或圓形符號在數據流圖中一般用于表達
A. 數據終點
B. 數據處理/加工
C. 數據存儲
D. 數據流向
⑤數據流圖的圖形元素有
A. 數據流向
B. 數據存儲
C. 數據實體
D. 數據源點
⑥數據流分解的層數由需求分析人員決定,沒有確定的層數
A. 正確
B. 錯誤
⑦開口矩形或兩條平行橫線符號在數據流圖中一般用于表達
A. 數據處理/加工
B. 數據終點
C. 數據流向
D. 數據存儲
例:
①按照風險的可預測性分類,可以分為
A. 已知風險
B. 可預測風險
C. 不可預測風險
D. 相對風險
②處理風險的策略包括
A. 風險管理
B. 風險避免
C. 意外事件計劃
D. 風險監控
③屬于風險的特點的有
A. 風險可能不會造成損失
B. 風險肯定會發生
C. 風險發生一定會帶來損失
D. 風險具有不確定性
④關于項目風險的描述正確的是
A. 不好的客戶也是一種潛在的風險
B. 一般認為產品規模越大,風險越大
C. 所有的風險都能預防
D. 商業考慮有時會與現實發生沖突
例:
①用戶可以從菜單中選擇軟件功能,也可以通過鍵盤命令序列調用軟件功能,這屬于
A. UI設計
B. 信息架構
C. 交互設計
②關于UI設計中的心智模型說法不正確的是
A. 好的UI設計能夠使用戶的心智模型和UI的交互方式保持一致
B. 只有互聯網的軟件產品設計才需要考慮心智模型
C. 用戶的心智模型指導著用戶使用軟件的方式
D. 提高用戶使用軟件體驗的方法是將目標用戶的心智模型和軟件產品的功能結合在一起
③以下哪些項的做法能有效提升軟件的用戶體驗
A. 提高軟件響應速度
B. 將字體統一設置為15pt大小
C. UI一致性
D. 有效的反饋機制
④以下哪些是UI設計的原則
A. 隱藏性原型
B. 簡潔性原型
C. 結構化原則
D. 容錯原則
⑤UI視圖可視化效果可以使用或參照視圖模式進行設計
A. 正確
B. 錯誤
⑥針對UI設計模式,說法不合適的是
A. 監聽者模式也稱觀察者模式或訂閱者模式
B. html的視圖代碼使用層次樹的方式進行組織和管理
C. MVC模式中,模型負責處理和分發事件
D. 在監聽器代碼模式中,監聽器代碼負責處理操作事件
14. E-R模型組成元素以及符號表示
例:
①關于E-R模型,下列說法錯誤的是
A. 菱形表示實體關系
B. 直線表示實體關系
C. 矩形表示數據實體
D. 橢圓表示實體屬性
②E-R圖主要由實體、聯系和屬性組成
A. 錯
B. 對
例:
①可以使用UML對目標軟件的哪些內容進行可視化建模
A. 軟件用戶接口視圖
B. 用戶需求
C. 軟件的結構
D. 軟件設計想法
②UML的中文全稱是
A. 統一方法語言
B. 過程模型語言
C. 統一語言
D. 統一建模語言
③UML時序圖的圖形元素有
A. 系統對象
B. 角色
C. 對象生命線
D. 消息
④從UML時序圖中我們能夠得到()
A. 對象之間的交互關系
B. 交互消息的順序
C. 系統內部交互的對象
D. 對象之間的交互消息
⑤在UML中,類之間的關系有一種為關聯關系,其中多重性用來描述類之間的對應關系,下面哪些符合書寫規范
A. 1…*
B. 0…1
C. …
D. 0…*
需求分析階段的最終輸出是什么
例:
①需求活動的最終輸出是
A. 用戶需求列表
B. 需求列表
C. 產品說明書
D. 需求規格說明文檔
需求評審與需求說明文檔的目的
例:
①需求評審的主要目的是
A. 需求階段結束的標志
B. 統一項目人員對需求的理解
C. 發現需求的不確定性和二義性
D. 使項目開發人與理解需求
②需求評審的主要目的是
A. 統一項目人員對需求的理解
B. 需求階段結束的標志
C. 去除需求缺陷
D. 與用戶確認需求,保證需求的一致性
③以下關于需求說明文檔的描述錯誤的是
A. 測試和用戶驗收軟件系統的重要依據
B. 軟件設計和實現的基礎
C. 為軟件維護提供信息
D. 是編寫代碼的唯一輸入
例:
①用例建模過程中,用例可以沒有參與者的說法是否正確
A. 對
B. 錯
②關于用例建模說法正確的是
A. 用例在UML中用矩形表示
B. 參與者在UML中用箭頭表示
C. 參與者必須是用戶
D. 每個用例至少有一個參與者
③針對用例之間關系表達正確的是
A. 執行父用例時,被包含的子用例不一定會被系統執行
B. 用例包含關系中,箭頭指向的是子用例
C. 用例擴展關系中,箭頭指向的是子用例
D. 執行父用例時,擴展子用例不一定會被系統執行
19. 功能性需求以及非功能性需求,都包含哪些方面
例:
①IEEE1998將需求分為功能需求、非功能性需求和設計約束,其中非功能性需求不包括
A. 質量屬性
B. 改變產品的功能
C. 性能需求
D. 對外接口
②IEEE1998將需求分為功能需求、非功能性需求和設計約束,其中非功能性需求包括
A. 數據需求
B. 性能需求
C. 質量屬性
D. 安全性
20. 掌握UI設計模式包括UI實現模式和UI視圖模式
例:
①UI視圖可視化效果可以使用或參照視圖模式進行設計
A. 正確
B. 錯誤
A. 監聽者模式也稱觀察者模式或訂閱者模式
B. html的視圖代碼使用層次樹的方式進行組織和管理
C. MVC模式中,模型負責處理和分發事件
D. 在監聽器代碼模式中,監聽器代碼負責處理操作事件
了解UI設計模式中的心智模型
例:
①關于UI設計中的心智模型說法不正確的是
A. 好的UI設計能夠使用戶的心智模型和UI的交互方式保持一致
B. 只有互聯網的軟件產品設計才需要考慮心智模型
C. 用戶的心智模型指導著用戶使用軟件的方式
D. 提高用戶使用軟件體驗的方法是將目標用戶的心智模型和軟件產品的功能結合在一起
了解模塊設計原則有哪些以及各個原則的相關概念
例:
①“一個模塊或類應該只實現一個或一種類型的業務職責”是面向對象設計的
A. 接口隔離原則
B. 里氏替換原則
C. 開閉原則
D. 單一職責原則
②“類或模塊的代碼對擴展是開放的,對修改是關閉的”是面向對象程序設計的
A. 開閉原則
B. 里式替換原則
C. 接口隔離原則
D. 單一職責原則
③“子類可以擴展父類的功能,但不能改變父類原有的功能
”,這符合面向對象設計的()原則
A. 開閉原則
B. 接口隔離原則
C. 里式替換原則
D. 單一職責原則
④針對面向對象設計原則,說法錯誤的是()
A. 單一職責原則指一個類只允許定義一個方法
B. 遵循開/閉原則能夠提高代碼的穩定性
C. 接口行為分組一般按業務類型劃分
D. 遵循依賴倒置原則的代碼增加了測試的難度
軟件測試的概念以及軟件測試的內容
軟件測試(Software Testing),在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。
內容:使用人工或自動的手段來運行或測量軟件系統的過程,目的是檢驗軟件系統是否滿足規定的需求,并找出與預期結果之間的差異。
了解內聚與耦合的概念以及常見的幾種內聚與耦合
例:
①模塊的獨立性是由內聚性和耦合性來度量的, 其中內聚性指的是
A. 模塊內各元素彼此結合的緊密程度
B. 信息隱藏程度
C. 接口的復雜度
D. 模塊之間的聯系程度
②以下哪種模塊設計是最好的
A. 高耦合、強內聚
B. 低耦合、強內聚
C. 低耦合、弱內聚
D. 高耦合、弱內聚
③模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的度量標準是模塊的( )
A. 內聚性和耦合性
B. 抽象和信息隱藏
C. 局部化和封裝化
D. 逐步求精和結構圖
④模塊本身的內聚是模塊獨立性的重要度量因素之一,具有最強內聚的是()
A. 功能內聚
B. 順序內聚
C. 過程內聚
D. 邏輯內聚
⑤初始化模塊和結束模塊,從塊內聯系看,被稱為()
A. 功能內聚
B. 偶然內聚
C. 過程內聚
D. 時間內聚
⑥在進行模塊設計時,由于A、B、C三個模塊的規模非常小,因此把它們合并成一個模塊D,則D模塊的內聚類型為()
A. 偶然內聚
B. 功能內聚
C. 時間內聚
D. 過程內聚
⑦為了提高模塊的獨立性,模塊內部最好是(??)
A. 時間內聚
B. 功能內聚
C. 邏輯內聚
D. 通信內聚
⑧某成績查詢模塊的功能是提示學生成績等級,包括A、B、C、D四個等級,調用模塊向該模塊傳遞不同的分數,該模塊以此來判斷顯示給學生的成績等級,此時成績查詢模塊和調用模塊之間的耦合稱為()
A. 數據耦合
B. 公共耦合
C. 控制耦合
D. 內容耦合
⑨要減少兩個模塊之間的耦合,則必須()
A. 傳遞參數要少
B. 調用次數要少
C. 傳遞參數 要少且不傳遞控制型信息且不引用同一個全局變量
D. 傳遞參數 要少且不傳遞控制型信息
⑩數據耦合、公共耦合、標記耦合、控制耦合的耦合性從低到高的順序是
A. 控制、數據、公共、無耦合
B. 數據、公共、無耦合、控制
C. 控制、數據、無耦合、公共
D. 無耦合、數據、控制、公共
?關于內容耦合的描述正確的是( )
A. 內容耦合的耦合程度比控制耦合要低
B. 兩個模塊都引用了同一個全局變量,則它們之間是內容耦合
C. 應該盡量使用內容耦合
D. 內容耦合是最高程度的耦合
風險按照可預測性進行分類,可分為哪些
例:
①按照風險的可預測性分類,可以分為
A. 已知風險
B. 可預測風險
C. 不可預測風險
D. 相對風險
軟件詳細設計與軟件概要設計概念與主要任務
例:
①軟件詳細設計的主要任務是確定每個模塊的
A. 功能
B. 算法和使用的數據結構
C. 外部接口
D. 技術路線
②關于概要設計和詳細設計的差異說法不正確的是
A. 概要設計用于指導代碼實現,而詳細設計給出了軟件由哪些部件組成以及它們之間的關系
B. 概要設計依據軟件需求進行設計,而詳細設計不僅依據軟件需求,更要依據概要設計的成果
C. 體系結構設計和接口設計都屬于概要設計
D. 概要設計對應于集成測試,是設計集成測試用例的主要依據;而詳細設計對應于單元測試,是設計單元測試用例的
③在軟件設計階段應提供的文檔是()
A. 數據字典及流程圖
B. 軟件需求規格說明書
C. 概要設計規格說明書和詳細設計規格說明書
D. 源程序以及源程序的說明書
例:
①軟件設計原則包含
A. 抽象
B. 模塊化
C. 層次化
D. 復用
②在軟件開發過程中,軟件設計包括4個既獨立又相互聯系的活動,分別為體系結構設計、數據設計、過程設計和
A. 程序設計
B. 用戶手冊設計
C. 接口設計
D. 文檔設計
③在軟件設計中,把一個時期內必須解決的問題按照優先級排序,從而確保每個問題都將被解決,且每個問題都將在適當的時候被解決,它屬于軟件設計的哪種方法
A. 模塊化
B. 逐步求精
C. 信息隱藏
D. 抽象
④只有類的共有界面的成員才能成為使用類的操作,這是軟件設計的什么原則
A. 功能抽象
B. 共享性
C. 信息隱藏
D. 過程抽象
⑤在軟件設計階段應提供的文檔是()
A. 數據字典及流程圖
B. 軟件需求規格說明書
C. 概要設計規格說明書和詳細設計規格說明書
D. 源程序以及源程序的說明書
⑥使用軟件設計模式時,不正確的做法有
A. 軟件設計模式沒有編程語言類型的限制
B. 某種軟件設計模式只能在代碼設計中使用一次
C. 遇到代碼設計問題時,都應使用設計模式進行解決
D. 不同的設計模式具有不同的代碼優點,有的設計模式沒有代碼缺點
例:
①針對面向對象設計原則,說法錯誤的是()
A. 單一職責原則指一個類只允許定義一個方法
B. 遵循開/閉原則能夠提高代碼的穩定性
C. 接口行為分組一般按業務類型劃分
D. 遵循依賴倒置原則的代碼增加了測試的難度
②面向對象設計中的()意圖在不暴露內部數據結構的前提下,向外部對象提供遍歷聚合元素的統一方法
A. 迭代器模式
B. 單例模式
C. 觀察者模式
D. 適配器模式
29. 接口設計的內容
例:
①在軟件開發過程中,軟件設計包括4個既獨立又相互聯系的活動,分別為體系結構設計、數據設計、過程設計和
A. 程序設計
B. 用戶手冊設計
C. 接口設計
D. 文檔設計
②針對接口設計的說法不正確的是()
A. 接口都有名稱
B. 接口都必須有輸入參數
C. 接口需要標注訪問路徑
D. 接口都有功能
③以下不屬于軟件系統的接口設計內容的是()
A. 外部接口
B. 管理員接口
C. 用戶接口
D. 內部接口
④應用程序編程接口(API)的設計,應包含( )
A. API的功能
B. API的調用者和提供者
C. API的入參、出參和異常狀態標識等
D. API的引用路徑
例:
①程序的三種基本控制結構的共同特點是
A. 只能用來寫簡單的程序
B. 不能嵌套使用
C. 已經用硬件實現
D. 只有一個入口和一個出口
②程序的三種基本控制結構是
A. 遞歸、迭代和回溯
B. 順序、選擇和循環
C. 調用、返回和轉移
D. 過程、子程序和分程序
①從程序語言表現形式來看,程序設計語言可以分為()
A. 機器語言
B. 匯編語言
C. 高級語言
D. 自然語言
例:
①產生軟件危機的原因有
A. 所開發的軟件,除了程序清單外,沒有其他文檔
B. 軟件開發過程未經審查
C. 軟件開發不分階段,開發人員沒有明確的分工
D. 采用工程設計的方法開發軟件,不符合軟件本身的特點
②以下關于軟件工程7條原理的說法錯誤的是
A. 堅持進行階段評審
B. 用分階段的生命周期計劃嚴格管理
C. 開發小組的人員應該少而精
D. 軟件開發的結果不可審查
③關于代碼審查的說法錯誤的是( )
A. 代碼審查能夠用于發現代碼的bug
B. 代碼審查比程序運行測試的效率低,應減少代碼審查會議
C. 代碼在審查之前必須要成功地編譯通過
D. 代碼審查可用于糾正不規范的代碼設計
例:
①為了提高軟件的可維護性,在編碼階段合理的做法有()
A. 少寫文檔
B. 減少代碼版本更新
C. 養成好的程序設計風格
D. 提高代碼的抽象度
②( )不是良好編碼的習慣
A. 少使用break,continue等程序流程重定向關鍵詞
B. 在開始編碼之前建立單元測試計劃
C. 確保注釋與代碼邏輯一致
D. 保持變量名縮寫和簡短以便代碼緊湊
例:
①“某種類型對象實例頻繁地創建或銷毀,每次創建或銷毀消耗大量的程序資源或性能”,此時應采用()
A. 工廠方法模式
B. 適配器模式
C. 迭代器模式
D. 單例模式
②“當目標數據源不是調用者所期望的類型,不能通過重新構造數據源和調用者代碼的方式解決該問題”,此時應采用
A. 適配器模式
B. 迭代器模式
C. 單例模式
D. 享元模式
③面向對象設計中的()意圖在不暴露內部數據結構的前提下,向外部對象提供遍歷聚合元素的統一方法
A. 迭代器模式
B. 單例模式
C. 觀察者模式
D. 適配器模式
例:
①功能點技術可以用于度量軟件規模
A. 錯
B. 對
例:
①以下哪種程序員組織方式有利于攻克技術難關
A. 主程序員組
B. 控制集權制
C. 民主制程序員組
D. 現代程序員組
例:
①結構化軟件設計可以進一步分為兩個階段是()。
A . 概要設計和詳細設計
B . 概要設計和過程設計
C . 接口設計和過程設計
D . 接口設計和詳細設計
例:
①原型的保真度指的是原型與最終產品的相似程度
A. 錯
B. 對
例:
①以下哪些工具可用于原型展示
A. 故事板
B. 界面框架圖
C. 角色扮演
D. UML用例圖
例:
①軟件體系結構的三個基本要素是
A. 構件
B. 約束
C. 規則或配置
D. 連接
例:
①從程序語言表現形式來看,程序設計語言可以分為()
A. 機器語言
B. 匯編語言
C. 高級語言
D. 自然語言
例:
①Gantt圖和工程網絡圖都是制定項目進度計劃的圖形工具
A. 對
B. 錯
二、主觀題:概念理解
1、軟件工程的概念;
答: 軟件工程 (Software Engineering,簡稱為SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科
2、請簡述瀑布模型的階段和優缺點;
答:階段:
①收集需求
②需求分析
③軟件設計
④程序編碼
⑤軟件測試
⑥運行維護
①優點: 為項目提供了按階段劃分的檢查點。
②缺點:各個階段的劃分完全固定,階段之間產生大量的文檔,極大地增加了工作量。瀑布模型的突出缺點是不適應用戶需求的變化。由于開發模型是線性的,用戶只有等到整個過程的末期才能見到開發成果,增大了開發風險。。
3、C/S與B/S結構的概念以及兩者的優缺點;
答: ①C/S結構的概念以及兩者的優缺點:
C/S (Client/Server)結構,即客戶機和服務器結構
優點:充分發揮客戶端PC的處理能力
客戶端響應速度快
缺點:只適用于局域網
客戶端需要安裝專用的客戶端軟件
對客戶端的操作系統一般也會有限制
②B/S結構的概念以及兩者的優缺點:
B/S結構指Browser/Server,瀏覽器/服務器模式
優點: 可以在任何地方進行操作而不用安裝任何專門的軟件
缺點: 應用服務器運行數據負荷較重
4、面向對象程序設計原則;
答:
①開閉原則
②里氏代換原則
③依賴倒轉原則
④接口隔離原則
⑤迪米特法則
⑥單一職責原則
5、用例建模中用例關系;
答:
①關聯關系
②泛化關系
③包含關系
④擴展關系
6、單例模式的概念及特點;
答:
概念:
單例模式,是一種常用的軟件設計模式,單例模式可以保證系統中,應用該模式的類一個類只有一個實例。即一個類只有一個對象實例
特點:
③某個類只能有一個實例;
②是它必須自行創建這個實例;
③是它必須自行向整個系統提供這個實例
7、Rational統一過程的最佳實踐;
答:
①迭代式開發
②管理需求
③體系結構
④可視化建模
⑤驗證軟件質量
⑥控制軟件變更
8、UI設計原則;書p201
答:
①一致性
②減少步驟
③及時提供反饋信息
④提供撤銷命令
⑤無須記憶
⑥易學
⑦富有吸引力
9、軟件需求的概念;
答:
軟件需求是指為用戶解決某一問題或達到某一目標所需的軟件功能;系統或系統構件為了滿足合同、規約、標準或其他正式實行的文檔而必須滿足或具備的軟件
功能
10、常見的黑盒測試的方法;
①等價類劃分方法
②邊界值分析方法
③錯誤推測方法
④因果圖方法
⑤判定表驅動分析方法
⑥正交實驗設計方法
⑦功能圖分析方法
11、模塊化設計中模塊的特性。書p69
①模塊可分解性
②模塊可組裝性
③模塊可理解性
④模塊連續性
⑤模塊保護性
三、主觀題:需求分析
某圖書管理系統的功能如下:
①讀者登錄系統后,可以查詢信息、預約圖書和續借圖書;
②圖書管理員登錄系統后,可以查詢信息、管理讀者信息和圖書信息以及進行借書和還書的操作;
③讀者還書時,如果超過預期時間,則圖書管理員要按照圖書館規定對讀者進行罰款;
④后臺管理員登錄系統后可以維護系統
請分析需求并回答以下問題:
(1)請分析需求中的系統參與者有哪些?
(2)根據第(1)題的分析結果,進一步分析和每個參與者關聯的系統用例。
(3)使用UML用例圖可視化第(1)題和第(2)題的分析結果。
參考答案:
(1)讀者、圖書管理員和管理員;
(2)讀者:登錄、預約圖書、續借圖書、信息查詢;
圖書管理員:登錄、信息查詢、讀者信息管理、圖書信息管理,借書,還書,罰金;
管理員:登錄、系統維護
(3)用例圖參考圖如下:
某醫院擬開發一個分布式患者監護系統(PMS: Patients Monitoring System)。PMS將用于監視病房中每個患者的重要生理信號(如體溫、血壓、脈博信號等),并能定時更新和管理患者的病歷。此外,當患者的生理信號超過醫生規定的安全范圍時,系統能立即通知護理人員,并且護理人員在需要時可隨時通過系統產生某患者有關報告。
PMS的主要功能為:
① 通過一個病床監視器實現本地監測,以獲得患者的生理信號。
② 在護士辦公室實現中央監測
③ 更新和管理患者病歷
④ 產生患者情況的報告以及報警信息
問題:
(1)請分析PMS的數據源點和數據終點分別是什么?
(2)根據需求描述,PMS可以分解成哪幾個數據加工?
(3)根據第(1)題和第(2)題的分析結果,繪制1層數據流圖。
參考答案:
(1)PMS的數據源是患者和護士;數據終點是護士;
(2)PMS可以分為本地監測、中央監測、產生報告和記錄患者生理數據四個數據加工
(3)1層數據流圖參考圖如下:
請根據以下 Java 代碼片段繪制對應的 UML 類圖模型(8分) 。
public class Animal {
public void move(){}
}
public interface ICanEat {
public void eat();
}
public class Dog extends Animal implements ICanEat {
public void eat() { }
public void bark(){}
}
參考答案:
四、主觀題:設計
1、軟件結構,模塊和接口:
簡化版某圖書館管理系統(LIB)描述:圖書館的系統用戶包含后臺管理員,前臺管理員和讀者。系統為所有用戶提供注冊和登陸服務。后臺管理員可以管理圖書類別信息,管理圖書信息,管理讀者信息。管理某種信息一般包含對該類信息的添加,刪除,修改和查詢功能。前臺管理員可以辦理讀者的借書,還書,續借,繳納罰金,查詢圖書,查詢讀者借閱情況等業務。繳納罰金時,系統會讓讀者選擇用微信還是支付寶支付,讀者選擇其中之一后,系統顯示對應支付方式的二維碼給讀者進行支付。讀者可以在線查詢自己的圖書借閱信息,續借,查詢圖書信息。
請根據題目所給信息,完成以下問題(20分, 表述方式不唯一,相應給分)。
①請識別出系統功能需求,進一步分解和設計目標系統的功能模塊結構,并標注父模塊和子模塊的對應關系。(4分)
參考答案如下:(不是每個模塊都有子模塊。父模塊的冒號后為其包含的子模塊)。
注冊、登陸、借書、還書、續借、繳納罰金、查詢讀者借閱信息
管理圖書類別:添加圖書類別、刪除圖書類別、修改圖書類別、查詢圖書類別
管理圖書:添加圖書、刪除圖書、修改圖書、查詢圖書
管理讀者:添加讀者、刪除讀者、修改讀者、查詢讀者
②請舉例說明將某個父模塊分解成若干子模塊的理由。(2分)
參考答案:
例如管理圖書模塊是父模塊,其包含四個子模塊。首先要具備添加新書功能,也要能夠刪除過時圖書。同時,需要根據條件查詢圖書,并在必要時修改圖書信息。因此,管理圖書模塊需要具有對圖書的增、刪、改、查四個子功能模塊。
③根據題目 ① 設計的結果,使用層次圖可視化目標系統的功能結構。(4分)
參考圖如下:
(1) 使用線框圖設計后臺管理員對管理圖書類別模塊的用戶接口(UI),并說明運用了哪些UI設計原則。(4分)
參考圖:
本原型運用了結構化原則,簡潔性原則,可視化原則,復用原則等UI設計原則。
(2) 請識別出LIB的一個外部接口,描述該接口的名稱、功能、調用者、提供者。(2分)
參考答案:
外部接口名稱: 支付
功能:LIB系統發送讀者及待付罰金等信息,連接到微信(支付寶)支付系統,請求支付。支付后的結果返回給LIB系統。
調用者: LIB系統。
提供者:微信或支付寶支付系統。
(3) 請設計LIB的一個內部接口,設計出該接口的名稱、功能、調用者、提供者、輸入參數、輸出參數、異常狀態碼等。(4分)
參考答案:
內部接口名稱:查詢圖書信息
功能:根據圖書名稱查詢書籍列表
調用者:借書模塊
提供者:管理圖書模塊
輸入參數:圖書名稱
輸出參數:所有叫該名稱的圖書列表
異常處理代碼: 404 找不到,該請求鏈接不存在。請檢查URL 以確保路徑正確。
請根據問題描述,完成下列問題。
(1) 請分析題目中的程序設計問題,選擇使用一種設計模式解決其中的一種問題的方案,具體說明解決方案中的設計意圖(想法)。(3分)
參考答案:
可以采用單例模式。因為Java Runtime控制整個Java虛擬機的狀態和行為,必須保持它的狀態和行為的一致性,不能有矛盾。如果多個實例,就可能導致對系統的指令不一致而產生沖突。
(2) 為什么采用這個設計模式,請簡述理由。(2分)
參考答案:
Java Runtime需要持續地向整個系統共享其服務或資源,且需要保證服務或資源的一致性。因此,單例模式能滿足這個要求。
(3) 請畫出解決方案的程序結構類圖。要求:類名,類的核心屬性及方法。 (5分)
參考類圖:
說明,Runtime類自行實例化它的單例對象currentRuntime.
壓軸大題
未授權用戶、已授權用戶、后臺管理員
未授權用戶:注冊賬戶、瀏覽景點介紹、瀏覽景點評論、搜索景區
已授權用戶:瀏覽景點介紹、瀏覽景點評論、搜索景區、登陸系統、發表景區評論、訂購門票、支付訂單
后臺管理員:瀏覽景點介紹、瀏覽景點評論、搜索景區、登陸系統、發表景區評論、訂購門票、支付訂單、管理用戶信息、管理景區信息、管理景點信息
****: 省略用例圖
.。。。。。。。。。。。。。。。。。。。。。。。。
總結
- 上一篇: HTML5绘制国际象棋,如何用纯CSS实
- 下一篇: 手机 验证码 发送