《《軟件工程》作業(yè) 答案》由會員分享,可在線閱讀,更多相關(guān)《《軟件工程》作業(yè) 答案(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、《軟件工程》作業(yè)
一、選擇題
1.“軟件危機(jī)”產(chǎn)生的主要原因是( B)。
A.軟件日益龐大 B.開發(fā)方法不當(dāng)
C.開發(fā)人員編寫程序能力差 D.沒有維護(hù)好軟件
2.經(jīng)濟(jì)可行性研究的范圍包括(D )
A.資源有效性 B.管理制度 C.效益分析 D.開發(fā)風(fēng)險
3.軟件需求分析的任務(wù)不應(yīng)包括( A )。進(jìn)行需求分析可使用多種工具,但( B )是不適用的。在需求分析中,分析員要從用戶那里解決的最重要的問題是( C )。需求規(guī)格說明書的內(nèi)容不應(yīng)當(dāng)包括( D )。該文檔在軟件開發(fā)中具有重要的作用,但其作用不應(yīng)當(dāng)包括
2、( E )。
A.① 問題分析 ② 信息域分析 ③ 結(jié)構(gòu)化程序設(shè)計 ④ 確定邏輯模型
B.① 數(shù)據(jù)流圖 ② 判定表 ③ PAD圖 ④ 數(shù)據(jù)詞典
C.① 要讓軟件做什么 ② 要給該軟件提供哪些信息
③ 要求軟件工作效率如何 ④ 要讓軟件具有什么樣的結(jié)構(gòu)
D.① 對重要功能的描述 ② 對算法的詳細(xì)過程性描述
③ 軟件確認(rèn)準(zhǔn)則 ④ 軟件的性能
E.① 軟件設(shè)計的依據(jù) ② 用戶和開發(fā)人員對軟件要“做什么”的共同
3、理解
③ 軟件驗收的依據(jù) ④ 軟件可行性分析的依據(jù)
4.在眾多的設(shè)計方法中,SD方法是最受人注意的,也是最廣泛應(yīng)用的一種,這種方法可以同分析階段的( A )方法及編程階段的( B )方法前后銜接,SD方法是考慮如何建立一個結(jié)構(gòu)良好的程序結(jié)構(gòu),它提出了評價模塊結(jié)構(gòu)質(zhì)量的兩個具體標(biāo)準(zhǔn)——塊間聯(lián)系和塊內(nèi)聯(lián)系。SD方法的最終目標(biāo)是( C ),用于表示模塊間調(diào)用關(guān)系的圖叫( D )。
供選擇的答案:
A ~ B:① Jackson ② SA ③ SC ④ Parnas ⑤ SP
C: ① 塊間聯(lián)
4、系大,塊內(nèi)聯(lián)系大 ② 塊間聯(lián)系大,塊內(nèi)聯(lián)系小
.③ 塊間聯(lián)系小,塊內(nèi)聯(lián)系大 ④ 塊間聯(lián)系小,塊內(nèi)聯(lián)系小
D: ① PAD ② HCP ③ SC ④ SADT ⑤ HIPO ⑥ NS
5.為了提高模塊的獨(dú)立性,模塊內(nèi)部最好是( C )
A、邏輯內(nèi)聚 B、時間內(nèi)聚 C、功能內(nèi)聚 D、通信內(nèi)聚
6.下面關(guān)于詳細(xì)設(shè)計的敘述中,( A)是錯誤的。
A、流程框圖可以描述結(jié)構(gòu)化程序
B、流程框圖不能描述結(jié)構(gòu)程序
C、NS圖描述的程序一定是結(jié)構(gòu)化的
D、PAD圖描述
5、的程序一定是結(jié)構(gòu)化的
7.由RumBaugh等人提出的一種面向?qū)ο蠓椒ń凶鰧ο竽P突夹g(shù)(OMT),即三視點(diǎn)技術(shù),它要求把分析時收集的信息建立在三個模型中。第一個模型是( A ),它的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括構(gòu)成系統(tǒng)的對象和類,它們的屬性和操作,以及它們之間的聯(lián)系。第二個模型是( B ),它描述系統(tǒng)的控制邏輯,主要涉及系統(tǒng)中各個對象和類的時序及變化狀況。( B )包括兩種圖,即( C )和( D )。( C )描述每一類對象的行為,( D )描述發(fā)生于系統(tǒng)執(zhí)行過程中的某一特定場景。第三個模型是( E ),它著重于描述系統(tǒng)內(nèi)部數(shù)據(jù)的傳送與處理,它由多個數(shù)據(jù)流圖組成。
A, B, E:①
6、 數(shù)據(jù)模型 ② 功能模型 ③ 行為模型 ④ 信息模型 ⑤ 原型
⑥ 動態(tài)模型 ⑦ 對象模型 ⑧ 邏輯模型 ⑨ 控制模型 ⑩ 仿真模型
C, D: ① 對象圖 ② 概念模型圖 ③ 狀態(tài)圖 ④ 數(shù)據(jù)流程圖 ⑤ 時序圖
⑥ 事件追蹤圖 ⑦ 控制流程圖 ⑧ 邏輯模擬圖 ⑨ 仿真圖 ⑩ 行為圖
8.因計算機(jī)硬件和軟件環(huán)境的變化而作出的修改軟件的過程稱為( )
.① 改正性維護(hù) ② 適應(yīng)性維護(hù) ③ 完善性維護(hù) ④ 預(yù)防性維護(hù)
9.維護(hù)過程本質(zhì)上是( D )的過程。
A.修改程序
7、 B.修改文檔 C.修改軟件配置 D.壓縮的修改軟件定義和開發(fā)
10.編寫程序的工作量通常占用軟件開發(fā)總工作量的( D)。
A.80% B.60% C.40% D.20%
11.軟件工程學(xué)的一個重要目標(biāo)是(D )。
A.提高程序的執(zhí)行效率 B.降低程序?qū)Υ鎯臻g的要求
C.提高軟件的可理解性 D.提高軟件的可維護(hù)性
12.可行性分析是在系統(tǒng)開發(fā)的早期所做的一項重要的論證工作,它是決定該系統(tǒng)是否開發(fā)的決策依據(jù),因必須給出( B)的回答。
A.確定 B.行或不行
8、 C.正確 D.無二義
13.原型化方法是用戶和軟件開發(fā)人員之間進(jìn)行的一種交互過程,適用于( A )系統(tǒng)。
A.需求不確定的 B.需求確定的 C.管理信息 D.決策支持
14.在SD方法中全面指導(dǎo)模塊劃分的最重要的原則是( D )
A.程序模塊化 B.模塊高內(nèi)聚 C.模塊低耦合 D.模塊獨(dú)立性
15.對象是面向?qū)ο笙到y(tǒng)的( A )。每個對象可用它自己的一組( B )和它可以執(zhí)行的一組( C )來表征。應(yīng)用執(zhí)行對象的( C )可以改變該對象的( B )。它的應(yīng)用必須通過( D )的傳遞??梢哉J(rèn)為
9、,這種( D )的傳遞大致等價于過程性范型中的函數(shù)調(diào)用。
供選擇的答案:
A. ① 基本單位 ② 最小單位 ③ 最大單位 ④ 語法單位
B ~ C. ① 行為 ② 功能 ③ 操作 ④ 數(shù)據(jù) ⑤ 屬性
D. ① 接口 ② 消息 ③ 信息 ④ 操作 ⑤ 過程
16.(A )意味著一個操作在不同的類中可以有不同的實(shí)現(xiàn)方式。
A.多態(tài)性 B.多繼承 C.類的復(fù)用 D.封裝
17.塊間聯(lián)系和塊內(nèi)聯(lián)系是評價程序模塊結(jié)構(gòu)質(zhì)量的重要
10、標(biāo)準(zhǔn)。聯(lián)系的方式、共用信息的作用、共用信息的數(shù)量和接口的( A )等因素決定了塊間聯(lián)系的大小。在塊內(nèi)聯(lián)系中,( B )的塊內(nèi)聯(lián)系最強(qiáng)。SD方法的總的原則是使每個模塊執(zhí)行( C )功能,模塊間傳送( D )參數(shù),模塊通過( E )語句調(diào)用其它模塊,而且模塊間傳送的參數(shù)應(yīng)盡量( F )。此外,SD方法還提出了判定的作用范圍和模塊的控制范圍等概念。SD方法認(rèn)為,( G )應(yīng)該是( H )的子集。
A: ① 友好性 ② 健壯性 ③ 簡單性 ④ 安全性
B: ① 巧合內(nèi)聚 ② 功能內(nèi)聚 ③ 通信內(nèi)聚 ④ 信息內(nèi)聚
C: ① 一個 ② 多個
D:
11、① 數(shù)據(jù)型 ② 控制型 ③ 混合型
E: ① 直接引用 ② 標(biāo)準(zhǔn)調(diào)用 ③ 中斷 ④ 宏調(diào)用
F: ① 少 ② 多
G~H:.① 作用范圍 ?、?控制范圍
18.使用軟件時提出增加新功能就必須進(jìn)行( C )維護(hù)。
A.改正性 B.適應(yīng)性 C.完善性 D.預(yù)防性
19.在軟件開發(fā)的各種資源中,(D)是最重要的資源。
A 開發(fā)工具 B 方法 C 硬件環(huán)境 D 人員
20.軟件的復(fù)雜性是(D ),它引起人員通信困難、開發(fā)費(fèi)用超支、開發(fā)時間超時等問題。
A 固有
12、的 B 人為的 C 可消除的 D 不可降低的
二、填空題
1.在設(shè)計測試用例時,______邊界值分析_____是用得最多的一種黑盒測試方法。
2.軟件開發(fā)是一個自頂向下逐步細(xì)化和求精過程,而軟件測試是一個___自底向上或相反順序___集成的過程。
3.軟件可維護(hù)性度量的七個質(zhì)量特性是 可理解性 、可測試性、可修改性、可靠性、_______可移植性________、可使用性和效率。
4.在結(jié)構(gòu)化分析方法中,_____數(shù)據(jù)流圖______表達(dá)系統(tǒng)內(nèi)部數(shù)據(jù)運(yùn)動的圖形化技術(shù)。
5.?dāng)?shù)據(jù)字典包括_____4______個條目。
6.DFD中每
13、個加工至少有_____一個輸入數(shù)據(jù)流和一個輸出流______。
7.______封裝_____是把對象的屬性和操作結(jié)合在一起,構(gòu)成一個獨(dú)立的對象,其內(nèi)部信息對外界是隱蔽的,外界只能通過有限的接口與對象發(fā)生聯(lián)系。
8.軟件可靠性的主要指標(biāo)有 ________平均無故障時間MTTF
____________。
9. 數(shù)據(jù)處理問題典型類型是___變換型__和___事務(wù)型__
三、判斷題
1. 數(shù)據(jù)字典是對數(shù)據(jù)流圖中的數(shù)據(jù)流,加工、數(shù)據(jù)存儲、數(shù)據(jù)的源和終點(diǎn)進(jìn)行詳細(xì)定義。 √
2. 如
14、果通過軟件測試沒有發(fā)現(xiàn)錯誤,則說明軟件是正確的。√
3.在進(jìn)行總體設(shè)計時應(yīng)加強(qiáng)模塊聯(lián)系。 Χ
4. 軟件模塊之間的耦合性越弱越好。√
5. 結(jié)構(gòu)化分析是面向數(shù)據(jù)流進(jìn)行需求分析的方法. √
6. UML是面向?qū)ο蠹夹g(shù)領(lǐng)域的建模語言。√
四、簡答題
1.維護(hù)的目的是什么? 有哪幾種?
為了保證軟件在一個相當(dāng)長的時期能夠正常運(yùn)行。有4種:改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)。
2.什么叫面向?qū)ο??面向?qū)ο蠓椒ǖ奶攸c(diǎn)是什么?為什么要用面向?qū)ο蠓椒ㄩ_發(fā)軟件?
面向?qū)ο螅綄ο螅悾^承+消息通信
特點(diǎn):
方法的唯一性:即方法是對軟件開發(fā)過程所有階段進(jìn)行綜合考慮而得到;
15、
從生存期的一個階段到下一個階段的高度連續(xù)性;
把面向?qū)ο蠓治觥⒃O(shè)計和程序設(shè)計集成到生存期的相應(yīng)階段。
好處:
(1)開發(fā)方法的唯一性、開發(fā)階段的高度連續(xù)性、表示方式的一致性;
(2)問題空間實(shí)體的自然表示,減輕了設(shè)計者的負(fù)擔(dān),在設(shè)計系統(tǒng)之初不必考慮一個很完整的解決方案;
(3)建立穩(wěn)定的系統(tǒng)結(jié)構(gòu),可促進(jìn)復(fù)用性,易于維護(hù),易于修改,可合理利用共同性,減少復(fù)雜性。
3.軟件測試包括哪些步驟?說明這些步驟的測試對象是什么?。
要點(diǎn):單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試。
4.簡述使用面向?qū)ο蠓治龇椒ń⒛繕?biāo)系統(tǒng)對象模型的五項主要活動工作內(nèi)容。
(1) 確定類-&-對象并對對象
16、分類,建立類與對象層
(2)定義屬性
(3)定義服務(wù)
(4)建立結(jié)構(gòu)層:一般—特殊結(jié)構(gòu); 整體—部分結(jié)構(gòu);實(shí)例連接;消息連接
(5)建立主題層(劃分主題)
五、分析題
1.下面是某程序的流程圖,計算它的環(huán)路復(fù)雜性。
1.環(huán)路復(fù)雜性=判斷數(shù)+1=6+1=7(個)
2.2.圖書館的預(yù)定圖書子系統(tǒng)有如下功能:
(1)由供書部門提供書目給訂購組;
(2)訂書組從各單位取得要訂的書目;
(3)根據(jù)供書目錄和訂書書目產(chǎn)生訂書文檔留底;
(4)將訂書信息(包括數(shù)目,數(shù)量等)反饋給供書單位;
(5)將未訂書目通知訂書者;
(6)對于重復(fù)訂購的書目由系統(tǒng)自
17、動檢查,并把結(jié)果反饋給訂書者。
試根據(jù)要求畫出該問題的數(shù)據(jù)流程圖,并把其轉(zhuǎn)換為軟件結(jié)構(gòu)圖。
3.下面是一段求最大值的程序,其中datalist是數(shù)據(jù)表,n是datalist的長度。
int GetMax(int n, int datalist[ ])
{
int k=0;
for ( int j=1; j datalist[k] ) k=j;
return k;
}
(1) 畫出該程序的控制流圖,并計算其McCabe環(huán)路復(fù)雜性。
(2) 用基本路徑覆蓋法給出測試路徑。
(3) 為各測試路徑設(shè)計測試用例
(1)控制流圖如下,McCabe環(huán)路復(fù)雜性為3。
(2) 測試路徑:
Path1: ①→③
Path2: ①→②→④→⑥→…
Path3: ①→②→⑤→⑥→…
(3)測試用例:
Path1: 取n=1,datalist[0] = 1,
預(yù)期結(jié)果:k=0
Path2: 取n=2,datalist[0] = 1,datalist[1] = 0,
預(yù)期結(jié)果:k=0
Path3: 取n=2,datalist[0] = 0,datalist[1] = 1,
預(yù)期結(jié)果:k=1