软件工程试题
單項選擇題
填空題
判斷
簡答題
一、 單向選擇題
1、軟件的發展經歷了(D)個發展階段。
A. 一 B.二 C.三 D.四
2、 需求分析的任務不包括(B)。
A.問題分析 B.系統設計 C.需求描述 D.需求評審。
3、一個軟件的寬度是指其控制的(C)。
A.模塊數 B.層數 C.跨度 D.厚度
4、當模塊中包含復雜的條件組合,只有(A)能夠清晰地表達出各種動作之間的對應關系。
A .判定表和判定樹 B.盒圖 C.流程圖 D.關系圖
5、以下不屬于邏輯覆蓋的是(D)
A.語句覆蓋 B.判定覆蓋 C.條件覆蓋 D.基本路徑
1.軟件需求規格說明的內容不應包括( B )。
? A. 主要功能 B. 算法的詳細描述 C. 用戶界面及運行環境 D. 軟件的性能
2.軟件生命周期中所花費用最多的階段是( D )
? A.詳細設計 B.軟件編碼 C.軟件測試 D.軟件維護
3.設函數C(X)定義問題X的復雜程序,函數E(X)確定解決問題X需要的工作量(時間)。對于兩個問題P1和P2,
? 如果C(P1)>C(P2)顯然E(P1)>E(P2),則得出結論E(P1+P2)>E(P1)+E(P2)就是:( A )
? A.模塊化的根據 B.逐步求精的根據 C.抽象的根據 D.信息隱藏和局部化的根據
4…確定測試計劃是在( A )階段制定的.
? A.總體設計 B.詳細設計 C.編碼 D.測試
5.數據字典是軟件需求分析階段的最重要工具之一,其最基本的功能是( )
? A.數據庫設計 B.數據通信 C.數據定義 D.數據維護
6.( D )引入了“風險驅動”的思想,適用于大規模的內部開發項目。
? A.增量模型 B.噴泉模型 C.原型模型 D.螺旋模型
7.高級語言通常被分成三類,其中不包括(D)
? A. 通用高級語言 B. 面向對象的語言 C. 專用語言 D. 自然語言
8.Jackson方法在需求分析階段的主要步驟不包括(A)
? A. 了解實體行為 B. 標識實體與行為 C. 生成實體結構圖 D. 創建軟件系統模型
9.實踐表明,確定發生錯誤的位置和內在原因所需的工作量幾乎占整個調試工作量的(D)%
? A. 30 B. 50 C. 70 D. 90
10.為了進一步改善軟件系統的可維護性和可靠性,并為以后的改進奠定基礎的軟件維護稱為(D)
? A. 糾錯性維護 B. 適應性維護 C. 改善性維護 D. 預防性維護
11.從事物的組成部件及每個部件的屬性、功能來認識事物。這種方法被稱為(A)的方法。
? A、面向對象 B、面向數據 C、面向過程 D、面向屬性
12.判定表由四部分組成:左上部列出(B)。
? A. 條件組合與動作之間的對應關系 B. 所有條件 C. 所有可能的動作 D. 可能的條件組合
- 判定表
- 判定表通常有以下四個部分組成:
1)條件樁(Condition Stub):在左上部,列出了問題的所有條件。通常認為列出的條件的次序無關緊要。
2)動作樁(Action Stub):在左下部,列出了問題規定可能采取的操作。這些操作的排列順序沒有約束。
3)條件項(Condition Entry):在右上部,列出針對它左列條件的取值。在所有可能情況下的真假值。
4)動作項(Action Entry):在右下部,列出在條件項的各種取值情況下應該采取的動作。
- 判定表通常有以下四個部分組成:
13.面向對象的分析和設計(OOA&OOD)方法出現在20世紀(C)年代中期。
? A. 50 B. 60 C. 70 D. 80
14、耦合度也可以分為七級:其中最松散的耦合是(A)。
? A. 非直接耦合 B. 數據耦合 C. 特征耦合 D. 控制耦合
15.面向對象方法是將現實世界的事物以對象的方式( B )到計算機世界的方法。
? A. 對應 B. 映射 C. 反映 D. 反射
16、盒圖也稱為(D)或Chapin圖。這種表達方式取消了流程線,它強迫程序員以結構化方式思考和解決問題。
? A. 流程圖 B. 框圖 C. 判定表 D. N-S圖
二、填空題
IPO是指結構化設計中變換型結構的輸入(Input)、加工(Processing)、輸出(Output)。IPO圖是對每個模塊進行詳細設計的工具,它是輸入加工輸出(INPUT PROCESS OUTPUT)圖的簡稱,它是由美國IBM公司發起并完善起來的一種工具。在系統的模塊結構圖形成過程中,產生了大量的模塊,在進行詳細設計時開發者應為每一個模塊寫一份說明。IPO圖就是用來說明每個模塊的輸入、輸出數據和數據加工的重要工具。
軟件的可互操作性,是指多個軟件元素相互(通信)并協同完成任務的能力。
第三代語言也稱為(高級)語言。
軟件測試是軟件投入運行(前),對軟件需求分析、設計、實現的強有力的最終審查。
黑盒測試主要是測試軟件是否滿足(功能)需求。
(調試)的目的是確定錯誤的位置和引起錯誤的原因,并加以改正。因此,又稱為排錯或糾錯。
軟件工程由方法、工具和(過程)三部分組成,稱軟件工程的三要素。
軟件可追蹤性(traceability),是指根據軟件需求對軟件設計、程序進行正向追蹤,或根據程序、軟件設計對軟件需求進行(逆向)追蹤的能力。
瀑布模型是由W. Royce于1970年提出來的。又稱為軟件(生存周期)模型。
程序設計語言的(可維護)性通常指這種語言編寫的程序被理解,被修改及調整和改進的難易程度。
三、判斷題
( ×)系統測試的主要方法是白盒法,主要進行功能測試、性能測試、安全性測試及可靠性等 測試。
( × )編程序時應盡可能利用硬件特點以提高程序效率.
( × )軟件需求分析的任務是建立軟件模塊結構圖。 ( 需求分析的產品是需求規格說明書)
( √ )盡可能使用高級語言編寫程序
( × )以結構化分析方法建立的系統模型就是數據流圖。
( × )進行總體設計時加強模塊間的聯系。 (高內聚低耦合的設計理念,在設計的時候應該是減少模塊間的聯系)
( × )編碼時盡量多用全局變量.
( √ )用CASE環境或程序自動生成工具來自動生成一部分程序.
( × )軟件測試是要發現軟件中的所有錯誤。
文檔可用于專業人員和用戶之間的通信和交流;軟件開發過程的管理; 運行階段的維護。(√)
軟件開發、設計幾乎都是從頭開始,成本和進度很難估計。(√)
適應性維護是改進軟件未來的可維護性和可靠性。(X)這是預防性維護
由于軟件是邏輯產品,軟件質量較容易直接度量。(X)
V(G)值越高的程序往往是越不復雜、越不容易出問題的程序。(X)
目前我國還沒有頒布軟件開發標準。(X)
按照功能,軟部件可劃分為系統軟件和應用軟件兩類。(√)
如果某子功能可以用一段簡潔、精確的文字描述清楚,就無需進一步分解,是創建用戶需求的數據流模型應遵循的規則。(√)
耦合度是對軟件結構中模塊間關聯程度的一種度量。在設計軟件時應追求盡可能緊密的耦合的系統。(X) 設計軟件時追求低耦合高內聚
在面向對象設計階段則著重完成“如何做”的問題,也就是著重考慮對象的實現細節。(√)
隨著軟件復雜性的不斷提高,軟件的維護難度越來越大。(√)
軟件的可維護性差是軟件維護工作量和費用激增的直接原因。(√)
四、簡答題(每小題4分,共20分)
-
軟件生命期各階段的任務是什么?
答:軟件生命期分為7個階段:
1、問題定義:要解決的問題是什么
? 2、可行性研究:確定問題是否值得解,技術可行性、經濟可行性、操作可行性
? 3、需求分析:系統必須做什么
? 4、總體設計:系統如何實現,包括系統設計和結構設計
? 5、詳細設計:具體實現設計的系統
? 6、實現:編碼和測試
? 7、運行維護:保證軟件正常運行。 -
軟件重用的效益是什么?
1、軟件重用可以顯著地改善軟件的質量和可靠性。
2、軟件重用可以極大地提高軟件開發的效率。
? 3、節省軟件開發的成本,避免不必要的重復勞動和人力、財力的浪費。 -
1、程序設計語言的三種類型和特點是什么?
1) 機器語言、匯編語言:依賴于機器,面向機器
2) 高級語言:獨立于機器,面向過程或面向對象
3) 面向問題語言:獨立于機器,非過程式語言(4GL) (2分) -
2、軟件危機
是指在計算機軟件開發、使用與維護過程中遇到的一系列嚴重問題和難題 -
3、軟件項目的質量管理——制定軟件質量保證計劃,按照質量評價體系控制軟件質量要素,對階段性的軟件產品進行評審,對最終軟件產品進行確認,確保軟件質量
-
4、好的編程風格應遵循哪四條規則?
1)節簡化
2)模塊化
3)簡單化
4)文檔化 -
5、軟件測試中按照錯誤的性質和范圍進行分類可分為:“功能錯誤”及其它哪些錯誤?
- 系統錯誤
- 加工錯誤(算法錯誤)
- 數據錯誤
- 代碼錯誤
-
程序設計語言有哪些特點?
? 1、一致性:指語言中采用的標記(Token)法協調一致的程度
? 2、二義性:指語言是否允許使用具有二義性的語句。允許使用二義性語句的語言在可理解性和可修改性上都要差一些。
? 3、緊致性:指程序員寫程序時必須記憶的關于語言的信息總量。
? 4、局部性:指語言的模塊化和信息隱藏特性。局部性差的語言必然會導致程序的復雜性增加。
-
可將軟件生存周期劃分為哪3個過程和哪9個階段?
(1)3個過程是:軟件定義過程、軟件開發過程、軟件使用與維護過程。
(2)9個階段有:可行性研究、需求分析、概要設計、詳細設計、實現、組裝測試、驗收測試、使用與維護、退役。
-
Coad/Yourdon面向對象的方法除了包含識別對象外還包括哪4個步驟?
-
標識對象的屬性
-
標識對象的行為
-
識別對象所屬的類
-
定義主題詞
-
-
Jackson系統開發方法其核心思想是什么?
- 根據作用于數據的行為序列的結構(順序、選擇、重復),建立目標軟件系統的模型,然后在軟件設計階段將模型轉換為相應的程序結構。
-
設計人機界面,必須考慮哪四個方面。
- 系統的響應時間;
- 用戶求助機制;
- 錯誤信息處理;
- 命令方式。
-
什么是測試用例?
- 為了進行有效的測試而設計的輸入數據和預期的輸出結果數據。
-
SD方法能方便地將數據流圖轉換為軟件結構,其過程分為哪五步?
? 1. 確定信息流的類型;
? 2. 劃定流界;
? 3. 將數據流圖映射為程序結構;
? 4. 提取層次控制結構;
? 5. 通過設計復審和使用啟發式策略進一步精化所得到的結構。
-
已知有一個軟件項目的記錄,開發人員M=6人,其代碼行數=20.2KLOC,工作量E=43PM,成本S=314000美元,錯誤數N=64,文檔頁數Pd=1050頁。試計算開發該軟件項目的生產率P、平均成本C、代碼出錯率EQR和文檔率D。0201
解:根據給出的已知數據,可得:
P = L / E =20.2 KLOC /43 PM = 0.47 KLOC / PM
? = 470 LOC / PM
C = S / L = 314000美元 / 20.2 KLOC
? = 15.54 美元 / LOC
EQR = N / L = 64個 / 20.2KLOC = 3.17 個 / KLOC
D = Pd / L = 1050 頁 / 20.2 KLOC = 51.98 頁 / KLOC
五、綜合題(每小題10分,共20分)
1、選擇語言時要考慮的因素有:項目的應用領域、項目中算法、計算的復雜性和其余哪些內容?
答:
1)項目中數據結構的復雜性
2)用戶的性能需求
3)軟件運行的環境
4)軟件開發人員開發水平
5)可用的編譯器和交叉編譯器
2、已知一個軟件項目的記錄,開發人員M=3人,其代碼行數=12.1KLOC,工作量E=24PM,成本S=168000美元,錯誤數N=29,文檔頁數Pd=365頁。試計算開發該軟件項目的生產率P、平均成本C、代碼出錯率EQR和文檔率D
解: 1.軟件開發的生產率P為:
P = L / E = 12.1×103LOC / 24PM = 504 LOC/PM
2.開發每行代碼的平均成本C為:
C = S / L = 168000美元 / 12100LOC=13.9美元/LOC
3.代碼出錯率EQR為:
EQR = N / L = 29個/12.1KLOC=2.4個/KLOC
4.軟件的文檔率D為:
D = Pd / L = 365頁 / 12.1KLOC = 30頁/ KLOC
一、單向選擇題
1、對在數據流圖中每一個命令的圖形元素均給以定義是(B)
A、條目定義
B、數據字典
C、數據定義
D、數據說明
2、軟件的可行性研究中不包括(D)
A、法律可行性
B、技術可行性
C、經濟可行性
D、政治可行性
3、根據用戶在軟件使用過程中提出的建設性意見而進行的維護活動稱為(C)
A. 糾錯性維護
B. 適應性維護
C. 改善性維護
D. 預防性維護
4、人機界面的風格大致經過了(B)代的演變
三
四
五
六
5、以下不屬于白盒測試技術的是(D)
邏輯覆蓋
基本路徑測試
循環覆蓋測試
等價類劃分
6、為改正軟件系統中潛藏的錯誤而進行的維護活動稱為(A)
糾錯性維護
適應性維護
改善性維護
預防性維護
二、填空題
三、判斷題
11. 缺乏有力的方法學的指導和有效的開發工具的支持, 這往往是產生軟件危機的原因之一。(√)
12. 一個好的開發人員應具備的素質和能力不包括具有良好的書面和口頭表達能力。(X)
13. 在用戶需求分析時觀察用戶手工操作過程不是為了模擬手工操作過程,而是為了獲取第一手資料,并從中提取出有價值的需求。(√)
14. 快速原型技術適用于軟件產品要求大量的用戶交互、或產生大量的可視輸出、或設計一些復雜的算法等場合。(√)
15. 流程圖也稱為程序(框圖)是最常用的一種表示法。(√)
16. 面向數據設計方法一般都包括下列任務: 確定數據結構特征;用順序、選擇和重復三種基本形式表示數據等步驟。(√)
17. 理想的人機界面應針對具有典型個性的特定的一類用戶設計。(√)
18. 數據輸入的一般準則中包括盡量(增加)用戶輸入的動作。(X)
19. 用窮舉測試是較現實的測試方法。(X)
10、編碼時應盡可能使用全局變量(X)
11、重視程序結構的設計,能使程序具有較好的層次結構(√)
12、程序中的注解越少越好( X )
總結
- 上一篇: [量子计算]一种用于蛋白质计算的结构化学
- 下一篇: 【无标题】win排查可以外联进程