軟件工程導論期末考試試題
軟件工程導論期末考試試題
一.選擇
1、瀑布模型把軟件生命周期劃分為八個階段:問題的定義、可行性研究、軟件需求分析、系統(tǒng)總體設計、詳細設計、編碼、測試和運行、維護。八個階段又可歸納為三個大的階段:計劃階段、開發(fā)階段和( C)。
A、詳細計劃 B、可行性分析
C、 運行階段 D、 測試與排錯
2、從結構化的瀑布模型看,在它的生命周期中的八個階段中,下面的幾個選項中哪個環(huán)節(jié)出錯,對軟件的影響最大(C )。
A、詳細設計階段 B、概要設計階段
C、 需求分析階段 D、 測試和運行階段
3、在結構化的瀑布模型中,哪一個階段定義的標準將成為軟件測試中的系統(tǒng)測試階段的目標(A )。
A、 需求分析階段 B、 詳細設計階段
C、 概要設計階段 D、 可行性研究階段
4、軟件工程的出現主要是由于(C )。
A.程序設計方法學的影響 B.其它工程科學的影響
C. 軟件危機的出現 D.計算機的發(fā)展
5、軟件工程方法學的目的是:使軟件生產規(guī)范化和工程化,而軟件工程方法得以實施的主要保證是(C )
A、 硬件環(huán)境 B、軟件開發(fā)的環(huán)境
C、軟件開發(fā)工具和軟件開發(fā)的環(huán)境 D、 開發(fā)人員的素質
6、軟件開發(fā)常使用的兩種基本方法是結構化和原型化方法,在實際的應用中,它們之間的關系表現為 ( B)
A、 相互排斥 B、 相互補充
C、 獨立使用 D、 交替使用
7、UML是軟件開發(fā)中的一個重要工具,它主要應用于哪種軟件開發(fā)方法(C )
A、基于瀑布模型的結構化方法 B、基于需求動態(tài)定義的原型化方法
C、基于對象的面向對象的方法 D、基于數據的數據流開發(fā)方法
8、在下面的軟件開發(fā)方法中,哪一個對軟件設計和開發(fā)人員的開發(fā)要求最高(B )
A、結構化方法 B、原型化方法 C、面向對象的方法 D、控制流方法
9、結構化分析方法是一種預先嚴格定義需求的方法,它在實施時強調的是分析對象的(B )
A、控制流 B、數據流 C、程序流 D、指令流
10、軟件開發(fā)的結構化生命周期方法將軟件生命周期劃分成(A )
A、 計劃階段、開發(fā)階段、運行階段 B、 計劃階段、編程階段、測試階段
C、 總體設計、詳細設計、編程調試 D、需求分析、功能定義、系統(tǒng)設計
11、軟件開發(fā)中常采用的結構化生命周期方法,由于其特征而一般稱其為(A )
A、 瀑布模型 B、 對象模型 C、 螺旋模型 D、 層次模型
12、軟件開發(fā)的瀑布模型,一般都將開發(fā)過程劃分為:分析、設計、編碼和測試等階段,一般認為可能占用人員最多的階段是( C)
A、 分析階段 B、 設計階段 C、 編碼階段 D、 測試階段
二.填空
21.系統(tǒng)流程圖是描述物理模型的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中各個元素表達了系統(tǒng)中各種元素之間的( 信息流動 )情況。
[解析]系統(tǒng)流程圖是描述物理系統(tǒng)的傳統(tǒng)工具,用圖形符號表示系統(tǒng)中的各個元素,如人工處理、數據處理、數據庫、文件、設備等,表達了元素之間的信息流動的情況。
22.成本效益分析的目的是從( 經濟 )角度評價開發(fā)一個項目是否可行。
[解析]成本效益分析首先是估算將要開發(fā)的系統(tǒng)的開發(fā)成本,然后與可能取得的效益進行比較和權衡,其目的是從經濟角度評價開發(fā)一個新的軟件項目是否可行。
23.自頂向下結合的漸增式測試法,在組合模塊時有兩種組合策略:深度優(yōu)先策略和( 寬度優(yōu)先策略 ) 。
[解析]漸增式測試法有自頂向下結合和自底向上結合兩種組裝模塊的方法,其中自頂向下集成是構造程序結構的一種增量式方式,不需要編寫驅動模塊,只需要編寫樁模塊。它從主控模塊開始,按照軟件的控制層次結構,以深度優(yōu)先或寬度優(yōu)先的策略,逐步把各個模塊集成在一起。
24.獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條( 在其他獨立路徑中未有過 )的邊的路徑。
[解析]在基本路徑測試中,以詳細設計或源程序為基礎,導出控制流程圖的拓撲結構——程序圖,在計算了程序圖的環(huán)路復雜性之后,確定只包含獨立路徑的基本路徑圖,其中獨立路徑是包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條在其他獨立路徑中未有過的邊的路徑。
25.匯編語言是面向( 機器 ) 的,可以完成高級語言無法完成的特殊功能,如與外部設備之間的一些接口工作。
[解析]匯編語言屬于低級語言,是一種面向機器的語言,它與高級語言相比有許多優(yōu)越性:如操作靈活,可以直接作用到硬件的最下層,完成與外部設備的接口工作等,是能夠利用計算機硬件特性直接控制硬件設備的唯一語言。
26.在JSP方法中解決結構沖突的具體辦法是( 中間數據結構或中間文件 )。
[解析]JSP方法是面向數據結構的設計方法。它定義了一組以數據結構為指導的映射過程,根據輸入、輸出的數據結構,按一定的規(guī)則映射成軟件的過程描述,在JSP方法中解決結構沖突的具體辦法是引入中間數據結構或中間文件,將沖突部分分隔開來,建立多個程序結構,再利用中間文件把它們聯系起來,構成一個系統(tǒng)的整體。
27.詳細設計的任務是確定每個模塊的內部特性,即模塊的算法、( 使用的數據 )。
[解析]詳細設計的基本任務是為每個模塊進行詳細的算法設計,為模塊內的數據結構進行設計,確定每個模塊的內部特性,包括模塊的算法和使用的數據。對數據庫進行物理設計等。
28.所有軟件維護申請報告要按規(guī)定方式提出,該報告也稱( 軟件問題 )報告。
[解析]在軟件維護的流程中,第一步就是制定維護申請報告,也稱為軟件問題報告,它是維護階段的一種文檔,由申請維護的用戶填寫。
29.有兩類維護技術:在開發(fā)階段使用來減少錯誤、提高軟件可維護性的面向維護的技術;在維護階段用來提高維護的效率和質量的( 維護支援 )技術。
[解析]面向維護的技術涉及軟件開發(fā)的所有階段,能夠減少軟件錯誤,提高軟件的可維護性。而維護支援技術則包含信息收集,錯誤原因分析,維護方案評價等項,是在軟件維護階段用來提高維護效率和質量的技術。
30.科學工程計算需要大量的標準庫函數,以便處理復雜的數值計算,可供選擇的語言有:( FORTRAN語言)、PASCAL語言、C語言和PL/1語言。
[解析]計算機語言根據不同行業(yè)的需求,使用的側重點也不盡相同,在辦公管理方面,一些數據庫語言如FOXPRO、ORICAL有很多的應用,在工程行業(yè),計算機語言的科學計算能力就顯得格外重要,如MATLAB、PL/1、FORTRAN語言都是工程計算中常用的語言。
三.判斷
1.軟件的開發(fā)與運行經常受到硬件的限制和制約。(√)
2.模塊內的高內聚往往意味著模塊間的松耦合。(√ )
3.Jackson圖只能表達程序結構,不能表達數據結構。(X)
上述數據流圖表示數據A和B同時輸入變換成C。(X )
5.軟件的質量好壞主要由驗收人員負責,其他開發(fā)人員不必關心。(X )
6.判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。(√)
7.應該盡量使用機器語言編寫代碼,提高程序運行效率,而減少高級語言的使用。(X)
8.UML只能應用于軟件系統(tǒng)模型的建立。(X)
9.容錯就是每個程序采用兩種不同的算法編寫。(X)
10.軟件測試的目的是為了無一遺漏的找出所有的錯誤。(X)
四、名詞解釋題(本大題共5小題,每小題3分,共15分)
31.軟件開發(fā)環(huán)境
32.錯誤推測法
33.黑盒測試法
34.軟件質量保證
35.瀑布模型
31.經濟可行性
解:進行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項目是否值得投資開發(fā)。
[解析]對于一個系統(tǒng)所必須要衡量的是經濟上是否合算,經濟可行性的范圍很廣,包括效益分析、潛在市場前景等。
32.社會可行性
解:要開發(fā)的項目是否存在任何侵犯、妨礙等責任問題,要開發(fā)項目目的運行方式在用戶組織內是否行得通,現有管理制度、人員素質、操作方式是否可行。
[解析]社會可行性包括合同、責任、侵權等技術人員不甚了解的諸多問題。
33.投資回收期
解:投資回收期就是使累計的經濟效益等于最初的投資費用所需的時間。
[解析]通常我們用投資回收期來衡量一個開發(fā)項目的價值,投資回收期越短,就越快獲得利潤。
34.對應關系
解:即有直接因果關系在程序中可以同時處理。
[解析]對應關系是指數據單元在數據內容上、數量上和順序上有直接的因果關系,對于重復的數據單元,重復的次序和次數都相同才有對應關系。
35.結構沖突
解:輸入數據與輸出數據結構找不到對應關系的情況,稱為結構沖突。
[解析]使用JSP方法時會遇到此類結構沖突問題,對此,Jackson提出了引入中間數據結構或中間文件的辦法,將沖突部分分隔開來,建立多個程序結構,再利用中間文件把它們聯系起來,構成一個系統(tǒng)的整體。
五、圖 a 中,模塊 G 為判定,判斷涉及到模塊 B、F、G,請指出設計中的錯誤,再根據
改進模 塊圖的基本原則,畫出 1~2 個改進方案(不改變模塊 G 的判斷關系),并說明是按照
哪條基本 原則進行改進的。
解:圖 b 為一個改進方案,將模塊 G 的位置提高,使其作用范圍為控制范圍的子集,減
少模塊 之間的聯系。
40.請使用PAD圖和PDL語言描述在數組A(1)~A(10)中找最大數的算法。
解:PDL語言:
N=1
WHILE N<=10 DO
IF A(N)<=A(N+1) MAX =A(N+1);
ELSE MAX =A(N) ENDIF;
N=N+1;
ENDWHILE;
PAD圖:
[解析]人工查找時,是從第一個元素開始查找,用當前元素與下一個元素比較,將較大者作為當前元素又與下一元素比較,如此循環(huán),直到數組末尾。
41.根據下列條件使用等價類劃分法設計測試用例。
某一8位微機,其八進制常數定義為:以零開頭的數是八進制整數,其值的范圍是-177~177,如05,0127,-065
解:(1)劃分等價類并編號,如下表示:(4分)
?。?)為合理等價類設計測試用例,表中有兩個合理等價類,設計兩個例子(2分)
?。?)為不合理等價類測試用例,至少設計一個測試用例(2分)
[解析]等價類劃分屬于黑盒測試的一種,它將輸入數據域按有效的或無效的劃分成若干個等價類,測試每個等價類的代表值就等于對該類其他值的測試,這樣用少量有代表性的例子代替大量測試目的相同的例子,可以有效提高測試效率。本題劃分了3個合理等價類,9個不合理等價類進行測試,取到了預期的效果。
42.某電器集團公司下屬的廠包括技術科、生產科等基層單位?,F在想建立一個計算機輔助企業(yè)管理系統(tǒng),其中:
生產科的任務是:
?。?)根據銷售公司轉來的內部合同(產品型號、規(guī)格、數量、交獲日期)制定車間月生產計劃。
?。?)根據車間實際生產日報表、周報表調整月生產計劃
(3)以月生產計劃為以及,制定產品設計(結構、工藝)及產品組裝月計劃。
?。?)將產品的組裝計劃傳達到各科,將組裝月計劃分解為周計劃,下達給車間
技術科的任務是:
?。?)根據生產科轉來的組裝計劃進行產品結構設計,產生產品裝配圖給生產科,產生外購需求計劃給供應科,并產生產品自制物料清單。
?。?)根據組裝計劃進行產品工藝設計,根據產品自制物料清單產生工藝流程圖給零件廠。 試寫出以上系統(tǒng)中生產科和技術科處理的軟件結構圖。
解:
畫出生產科圖的給6分,畫出技術科的給4分。
[解析]軟件結構圖是軟件系統(tǒng)的模塊層次結構,反映了整個系統(tǒng)的功能實現,即將來程序的控制層次體系,軟件結構往往用樹狀或網狀結構的圖形來表示,其主要內容有模塊及模塊的控制關系,根據題意,可繪制出生產科和技術科的軟件結構圖,其中生產科的結構圖深度和寬度均為4,技術科的結構圖的深度和寬度均為3。