軟件工程期末考試試卷(附答案)

來源:文萃谷 6.43K

引導語:軟件工程 是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。以下是小編整理的軟件工程期末考試試卷(附答案),歡迎參考!

軟件工程期末考試試卷(附答案)

  一、選擇題:(每題1分,共20分)(將答案寫在題號前的()中)

( C )1. 軟件是( )。

A. 處理對象和處理規則的描述 B. 程序

C. 程序及其文檔 D. 計算機系統

( B )2. 軟件需求規格説明的內容不應包括( )。

A. 主要功能 B. 算法的詳細描述

C. 用户界面及運行環境 D. 軟件的性能

( B )3. 程序的三種基本控制結構是( )。

A. 過程、子程序和分程序 B. 順序、選擇和重複

C. 遞歸、迭代和回溯 D. 調用、返回和轉移

( D ) 4. 面向對象的分析方法主要是建立三類模型,即( )。

A) 系統模型、ER模型、應用模型

B) 對象模型、動態模型、應用模型

C) E-R模型、對象模型、功能模型

D) 對象模型、動態模型、功能模型

( C ) 5. 在E-R模型中,包含以下基本成分( )。

A) 數據、對象、實體

B) 控制、聯繫、對象

C) 實體、聯繫、屬性

D) 實體、屬性、操作

( A ) 6. 各種軟件維護的類型中最重要的是( )。

A) 完善性維護 B) 糾錯性維護 C) 適應性維護 D) 預防性維護

( B ) 7.軟件測試的目標是( )。

A. 證明軟件是正確的 B. 發現錯誤、降低錯誤帶來的風險

C. 排除軟件中所有的錯誤 D. 與軟件調試相同

( D )8.軟件生命週期中所花費用最多的階段是( )

A.詳細設計 B.軟件編碼 C.軟件測試 D.軟件維護

( C )9.若有一個計算類型的程序,它的輸入量只有一個X,其範圍是[-1.0, 1.0],現從輸入的角度考慮一組測試用例:-1.001, -1.0, 1.0, 1.001.設計這組測試用例的方法是( )

A.條件覆蓋法 B.等價分類法 C.邊界值分析法 D.錯誤推測法

( D )10、詳細設計的基本任務是確定每個模塊的( )設計

A.功能 B.調用關係 C.輸入輸出數據 D.算法

( A )11.設函數C(X)定義問題X的複雜程序,函數E(X)確定解決問題X需要的工作量(時間)。對於兩個問題P1和P2,如果C(P1)>C(P2)顯然E(P1)>E(P2),則得出結論E(P1+P2)>E(P1)+E(P2)就是:( )

A.模塊化的根據 B.逐步求精的根據 C.抽象的根據 D.信息隱藏和局部化的根據

( D )12.下面幾種白箱測試技術,哪種是最強的覆蓋準則 ( )

A.語句覆蓋 B.條件覆蓋 C.判定覆蓋 D.條件組合覆蓋

( A )13.面向數據流的設計方法把( )映射成軟件結構。

A.數據流 B.系統結構 C.控制結構 D.信息流

( A )14.內聚程度最低的是( )內聚

A.偶然 B.過程 C.順序 D.時間

( A )15.確定測試計劃是在( )階段制定的.

A.總體設計 B.詳細設計 C.編碼 D.測試

( D )16.需求分析的產品是( )

A.數據流程圖案 B.數據字典 C.判定表 D.需求規格説明書

( C )17.數據字典是軟件需求分析階段的最重要工具之一,其最基本的功能是( )

A.數據庫設計 B.數據通信 C.數據定義 D.數據維護

( D )18.( )引入了“風險驅動”的思想,適用於大規模的內部開發項目。

A.增量模型 B.噴泉模型 C.原型模型 D.螺旋模型

( D )19.模塊的內聚性最高的是( )

A.邏輯內聚 B.時間內聚 C.偶然內聚 D.功能內聚

( D )20.提高測試的有效性非常重要,成功的測試是指( )

A.證明了被測試程序正確無誤 B. 説明了被測試程序符合相應的要求

C.未發現被測程序的錯誤 D.發現了至今為止尚未發現的錯誤

  二.判斷題(每題1分,共10分)將答案寫在題號前的( )中,正確用√, 錯誤用χ。

( × )1、開發軟件就是編寫程序。

( × )2、系統測試的主要方法是白盒法,主要進行功能測試、性能測試、安全性測試及可靠性等 測試。

( × )3、編程序時應儘可能利用硬件特點以提高程序效率.

( × )4、軟件需求分析的任務是建立軟件模塊結構圖。

( √ )5、儘可能使用高級語言編寫程序

( × )6、以結構化分析方法建立的系統模型就是數據流圖。

( × )7、進行總體設計時加強模塊間的聯繫。

( × )8、編碼時儘量多用全局變量.

( √ )9、用CASE環境或程序自動生成工具來自動生成一部分程序.

( × )10、軟件測試是要發現軟件中的所有錯誤。

  三、填空題(每題1分,共5分):將結果填在( )

1、將下面的關係按繼承關係、聚集關係或普通關聯進行分類。

小汽車---------紅旗轎車 ( 繼承 )

小汽車---------駕駛員 ( 普通關聯 )

班級------------學生 ( 聚集 )

2、將下列各項分為類或類的實例

我的汽車 ( 實例 )

交通工具 ( 類 )

  三、簡答題:(每題5分,共25分)

1. 軟件生命期各階段的任務是什麼?

答:軟件生命期分為7個階段:

1、問題定義:要解決的問題是什麼

2、可行性研究:確定問題是否值得解,技術可行性、經濟可行性、操作可行性

3、需求分析:系統必須做什麼

4、總體設計:系統如何實現,包括系統設計和結構設計

5、詳細設計:具體實現設計的系統

6、實現:編碼和測試

7、運行維護:保證軟件正常運行。

2、軟件重用的效益是什麼?

答:1、軟件重用可以顯著地改善軟件的質量和可靠性。

2、軟件重用可以極大地提高軟件開發的效率。

3、節省軟件開發的成本,避免不必要的重複勞動和人力、財力的浪費。

3、 自頂而下漸增測試與自底而上漸增測試各有何優、缺點?

答:

① 自頂而下漸增測試

優點:不需要測試驅動程序,能夠在測試階段的早期實現並驗證系統的主要功能,而且能夠儘早發現上層模塊的接口錯誤。

缺點:需要存根程序,底層錯誤發現較晚。

② 自底而上漸增測試

優點與缺點和自頂而下漸增測試相反。

4 、 提高可維護性的方法有哪些?

答:在軟件工程的每一階段都應該努力提高系統的'可維護性,在每個階段結束前的審查和複審中,應着重對可維護性進行復審。

在需求分析階段的複審中,應對將來要擴充和修改的部分加以註明。在討論軟件可移植性問題時,要考慮可能要影響軟件維護的系統界面。

在軟件設計的複審中,因從便於修改、模塊化和功能獨立的目標出發,評價軟件的結構和過程,還應對將來可能修改的部分預先做準備。

在軟件代碼複審中,應強調編碼風格和內部説明這兩個影響可維護性的因素。

在軟件系統交付使用前的每一測試步驟中都應給出需要進行預防性維護部分的提示。

在完成每項維護工作後,都應對軟件維護本身進行仔細認真的複審。

為了從根本上提高軟件系統的可維護性,人們正試圖通過直接維護軟件規格説明來維護軟件 ,同時也在大力發展軟件重用技術。

簡述軟件測試要經過哪幾個步驟,每個步驟與什麼文檔有關。

【解答】

測試過程按 4 個步驟進行,即單元測試(模塊測試)、集成測試(子系統測試和系統測試)、確認測試(驗收測試)和平行運行。

單元測試集中對用源代碼實現的每一個程序單元進行測試,與其相關的文檔是單元測試計劃和詳細設計説明書。

集成測試把已測試過的模塊組裝起來,主要對與設計相關的軟件體系結構的構造進行測試。與其相關的文檔是集成測試計劃和軟件需求説明書。

確認測試則是要檢查已實現的軟件是否滿足了需求規格説明中確定了的各種需求,以及軟件配置是否完全、正確。與其相關的文檔是確認測試計劃和軟件需求説明書。

平行運行把已經經過確認的軟件納入實際運行環境中,與其他系統成份組合在一起進行測試。與其相關的文檔:用户指南、使用手冊等。

熱門標籤