《《軟件工程基礎》習題集(二)》由會員分享,可在線閱讀,更多相關(guān)《《軟件工程基礎》習題集(二)(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、頁眉內(nèi)容
《軟件工程基礎》習題集
第一章 概 述
1.什么是軟件危機,它有哪些典型表現(xiàn)?
2.簡述產(chǎn)生軟件危機的原因和解決的思路。
3.什么是軟件工程?它有哪些本質(zhì)特性?
4.軟件工程是如何用來消除軟件危機的?
5.假設你是某軟件開發(fā)企業(yè)的 CEO,當你把教材P.4的圖1.1給手下的軟件工程師們看,同時告訴他們應及早發(fā)
現(xiàn)并改正錯誤的重要性時,有人不以為然,認為要求在錯誤進入軟件前就發(fā)現(xiàn)并清除它們是不現(xiàn)實的,并舉例說:
“如果一個故障是編碼錯誤造成的,那么又如何能夠在設計階段就發(fā)現(xiàn)并清除呢?”那你應該如何說服?
6.簡述軟件的定義。
7.軟件工程的目的是什么?
8.
2、什么是軟件工程方法學?軟件工程是一種什么樣的技術(shù)?包括哪三大要素?分為哪三個分支?
9.簡述軟件工程的基本原理。
10.軟件工程的基本開發(fā)原則有哪些?
11 .構(gòu)成軟件工程的基本元素有哪些?
12.什么是軟件過程?它與軟件工程方法學有何關(guān)系?
13.什么是軟件生命周期?什么是軟件生命周期模型?
14.簡述軟件生命周期方法學的途徑,以及劃分階段步驟的目的和實質(zhì)。
15.試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點,說明它們各自的適用范圍。
第二章 可行性研究
1.在軟件開發(fā)的早期階段,為什么要進行可行性研究?其目的和任務各是什么?
2.應該從哪些方面研究目標系統(tǒng)的
3、可行性?
3.可行性研究有哪些工作步驟?
4.簡述系統(tǒng)流程圖在可行性研究中的作用。
5.簡述數(shù)據(jù)流圖在可行性研究中的作用和用途。
6.簡單描述數(shù)據(jù)字典但內(nèi)容和定義數(shù)據(jù)的方法。
7.說明軟件計劃的內(nèi)容和目標。
8.什么是軟件范圍?定義軟件范圍需要哪些信息?
9.簡述軟件開發(fā)環(huán)境資源的三個層次。
10.軟件環(huán)境資源的特征有哪些?它們對制定軟件計劃都有哪些意義?
11 .軟件計劃中,安排軟件開發(fā)進度主要可以用哪些工具?都有哪些優(yōu)缺點?
12.主要的成本估計技術(shù)有哪些?其依據(jù)的主要是什么?
13.為什么說成本估計是不可能精準的?
14.進行成本 / 效益分析的方法主要有哪些?
4、
15.軟件計劃的主要內(nèi)容有哪些?
16.如何對制定完成的軟件計劃進行復審?為什么要復審?
17.為方便儲戶,某銀行擬開發(fā)計算機儲蓄系統(tǒng)。儲戶填寫的存款單或取款單由業(yè)務員鍵入系統(tǒng)。如果是存款,
系統(tǒng)記錄存款人的姓名、地址、存款類型、存款日期、存款數(shù)量和利率等信息,并印出存款單給儲戶;如果是取
款,系統(tǒng)計算利息并印出利息清單給儲戶。
請寫出問題定義并分析此系統(tǒng)的可行性。
第三章 需求分析
1.為什么要進行需求分析?通常對軟件系統(tǒng)有哪些需求?
2.怎樣與用戶有效地溝通,以獲得用戶的真實需求?
3.需求分析的任務是什么?
4.通常系統(tǒng)的需求可以分為哪幾個層次?
5.進行需求分析
5、的步驟有哪些?
6.簡述建立原型模型對軟件需求分析的作用。
7.解釋實體 -聯(lián)系圖及其用途。
8.說明為什么需要進行需求驗證及驗證的步驟有哪些?
9.銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫的存款單或取款單由業(yè)務人員鍵入系統(tǒng),如果是存款則系
統(tǒng)記錄存款人姓名、住址 (或電話號碼 )、身份證號碼、存款類型、存款日期、到期日期、利率及密碼 (可選 )等信息,
并印出存單給儲戶;如果是取款而且存款時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,
則系統(tǒng)計算利息并印出利息清單給儲戶。
請用數(shù)據(jù)流圖描繪本系統(tǒng)的功能,并用實體-聯(lián)系圖描繪系統(tǒng)中的數(shù)據(jù)對象。
第四章
6、總體設計
1.為每種類型的模塊耦合舉一個具體的例子。
2.為每種類型的模塊內(nèi)聚舉一個具體的例子。
3.簡單說明系統(tǒng)總體設計的步驟步驟。
4.舉例說明模塊化原理的經(jīng)驗 1 和經(jīng)驗 2。
5.為什么要盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合?
6.為什么模塊的規(guī)模要適中?
7.請說明為什么模塊控制的寬度和深度要適度。
8.簡述面向數(shù)據(jù)流設計方法的基本思想。
9.常用數(shù)據(jù)流類型有哪些?
10.面向數(shù)據(jù)流的設計方法主要有哪幾個步驟?
11.用面向數(shù)據(jù)流的方法設計第二章習題 17 系統(tǒng)的軟件結(jié)構(gòu)。
第五章 詳細設計
1.詳細設計的任務是什么?
2.
7、在對系統(tǒng)做詳細設計時,應遵循哪些原則?
3.簡述結(jié)構(gòu)化設計的特點。
4.結(jié)構(gòu)化程序設計中有哪幾種基本控制結(jié)構(gòu)?分別描繪在程序流程圖、盒圖和 PDA 圖中這些基本控制的圖例。
5.假設只有 SEQUENCE 和 DO_WHILE 兩種控制結(jié)構(gòu),請問應該如何完成 IF_THEN_ELSE 操作?
6.假設只有 SEQUENCE 和 IF_THEN_ELSE 兩種控制結(jié)構(gòu),請問應該如何完成 DO_WHILE 操作?
7 .試說明ISO為什么要建議停正使用程序流程圖,而推薦使用 PDA圖?
8.請畫出下列偽碼程序的程序流程圖、盒圖和 PDA 圖。
START
IF p THEN
WH
8、ILE q DO f
END DO
ELSE
BLOCK
g n
END BLOCK
END IF
STOP
9.試說明 Jackson 方法是一種怎么樣的程序設計方法。它有哪些工作步驟?
10.請將教材P.124圖6.13統(tǒng)計空格程序的Jackson圖改畫成為等價的盒圖和 PDAffl。
11.人機對話由操作員信息和系統(tǒng)信息交替組成。假設一段對話總是由操作員信息開始,以系統(tǒng)信息結(jié)束,請用
Jackson 圖描繪這樣的一段人機對話過程。
第六章 實現(xiàn)
1.說明什么是程序編碼?為什么程序設計語言的特點和編碼風格會影響到程序的可靠性、可讀性、可測試性和可
維護性?
2
9、.用戶界面設計的最一般原則,即所謂“黃金規(guī)則”是什么?
3.軟件界面設計包含了哪幾個方面的基本內(nèi)容?
4.用戶界面提供系統(tǒng)服務的方式通常有哪兩種?
5. WIM*面是屏幕菜單驅(qū)動用戶界面的一種形式,其設計準則有哪些?
6.為什么說軟件界面設計的質(zhì)量會直接影響到用戶對軟件產(chǎn)品的評價?
7.什么是系統(tǒng)響應時間?系統(tǒng)響應時間有哪些重要屬性?
8.在設計軟件系統(tǒng)的用戶幫助設施時,需要注意解決哪些問題?
9.軟件出錯處理設計,即軟件安全性設計。一個交互式出錯處理程序應該具備哪些功能和屬性?
10.測試的最基本目標是什么?
11.軟件測試的原則有哪些?
12.軟件測試的方法有哪幾種?
10、
13.簡單說明什么是白盒測試,什么是黑盒測試。
14.簡述軟件測試的步驟。
15.舉例說明通常情況下窮盡測試是不可能的。
16.為什么單元測試必須由編程者自己完成?
17.單元測試的主要手段有哪些?
18.單元測試主要從哪 5 個方面進行?
19.為什么人工代碼審查十分重要?
20.集成測試主要有漸增式測試、非漸增式測試兩種,試述兩種方式的異同點。
21.描述集成測試的兩種策略,并比較它們的優(yōu)缺點。
22.什么是回歸測試?回歸測試的測試用例集如何確定?
23.什么是確認測試?確認測試的任務是什么?如何確認其范圍?
24.設計測試方案的任務有哪些?
25.什么是邏輯覆蓋
11、測試法?它主要用于什么測試?
26.什么是等價劃分法?它主要用于什么測試?
27.什么是邊值分析法?它主要用于什么測試?
28.什么是錯誤推測法?它主要用于什么測試?
29.一個軟件的測試策略應該是怎樣的?
30.什么是調(diào)試?調(diào)試和測試有什么不同?
31.簡單說明調(diào)試的方法和策略。
32.什么是軟件的可靠性、可用性和正確性?
第七章 維護
1.什么是軟件維護?
2.軟件維護有哪幾種類型?
3.為什么說軟件文檔維護和代碼維護同樣重要?
4.為什么說維護的代價很高?應該怎樣做才能降低維護的代價?
5.導致維護成本高企的原因主要有哪些?
6.什么是軟件的可維護性?
7.
12、如何提高軟件的可維護性?
8.維護報告的主要內(nèi)容有哪些?
9.為什么說文檔是影響軟件可維護性的決定因素?
10.什么是軟件的系統(tǒng)文檔?
11.什么是軟件的用戶文檔?
12.什么是可重用性?如何通過提高軟件的可重用性來提高軟件的可維護性?
13.為什么要進行軟件可維護性復審?
14.什么是軟件的逆向工程和再工程?
15.逆向工程與再工程與軟件的預防性維護有什么樣的關(guān)系?
16.假設你的任務是對一個已有軟件進行重大修改,而且只允許你從以下文檔中選取兩份: (a) 程序的規(guī)格說明;
(b) 程序的詳細設計結(jié)果 ( 自然語言描述加上某種設計工具表示 ) ; (b) 源程序清單 (
13、其中有適當數(shù)量的注解 ) 。
你將選取哪兩份文檔?為什么這樣選?。磕愦蛩闳绾瓮瓿蛇@個任務?
17.分析預測在第二章習題 17 的儲蓄系統(tǒng)交付使用后,用戶可能提出哪些改進或擴充功能的要求。如果由你來開
發(fā)該系統(tǒng),你在設計時會采取哪些措施,以方便交付后的修改?
頁眉內(nèi)容
第八章 面向?qū)ο蠓椒▽W引論
1.為什么要引入面向?qū)ο蠓椒▽W?
2.面向?qū)ο蠓椒▽W有哪 4 個基本要素?
3.面向?qū)ο蠓椒▽W的優(yōu)點主要有哪些?
4.什么是“對象”?它與傳統(tǒng)數(shù)據(jù)有何不同?
5.什么是“類”?
6.什么是“繼承”?
7.什么是模型?軟件開發(fā)為什么要建立模型?
8.什么是對象模型?建立對象模
14、型時主要使用哪些圖形符號?這些符號的含義是什么?
9.什么是動態(tài)模型?建立動態(tài)模型時主要使用哪些圖形符號?這些符號的含義是什么?
10.什么是功能模型?建立功能模型時主要使用哪些圖形符號?
11.試用面向?qū)ο蟮挠^點分析、研究第二章習題 17 的儲蓄系統(tǒng)的例子。在這個例子中,有哪些類?試建立它的對
象模型。
頁眉內(nèi)容
第九章 面向?qū)ο蠓治?
1.進行面向?qū)ο蠓治龅幕具^程是怎么樣的
2.建立對象模型有哪幾個步驟
3.復雜問題的對象模型有哪 5 個層次
4.建立動態(tài)模型的步驟有哪些
5.如何建立功能模型
6.用面向?qū)ο蠓椒ǚ治龅诙铝曨} 17 中描述的儲蓄系統(tǒng),試建立它的
15、對象模型、動態(tài)模型和功能模型。
第十章 面向?qū)ο笤O計
1面向?qū)ο笤O計應該遵循哪些準則?簡述每條準則的內(nèi)容,并說明遵循該條準則的必要性。
2簡述有助于提高面向?qū)ο笤O計質(zhì)量的每條主要啟發(fā)式規(guī)則的內(nèi)容和必要性。
3為什么說類構(gòu)件是目前較為理想的可重用軟構(gòu)件?它有哪些重用方式?
4什么是繼承耦合?
5如何計算軟件重用帶來的凈成本節(jié)???
6試用面向?qū)ο蟮姆椒ㄔO計第二章習題 17 中描述的儲蓄系統(tǒng)。
第十一章 面向?qū)ο髮崿F(xiàn)
1.面向?qū)ο髮崿F(xiàn)應該選用哪種程序設計語言為什么 2.面向?qū)ο蟪绦蛟O計語言主要有哪些技術(shù)特點 3.選擇面向?qū)ο蟪绦蛟O計語言時主要應該考慮哪些因素 4.良好的面向
16、對象程序設計風格主要有哪些準則 5.測試面向?qū)ο筌浖r,單元測試、集成測試和確認測試各有哪些新特點 6.測試面向?qū)ο筌浖r,主要有哪些設計單元測試用例的方法 7.測試面向?qū)ο筌浖r,主要有哪些設計集成測試用例的方法 8.測試面向?qū)ο筌浖r,主要有哪些設計確認測試用例的方法
第十二章 項目管理
1.請簡單描述有哪些進行軟件規(guī)模估算的方法。
2.在工作量估算技術(shù)中,動態(tài)多變量模型比靜態(tài)單變量模型有哪些優(yōu)點?
3.簡述 Gantt 圖的用途和優(yōu)缺點。
4.簡述關(guān)鍵路徑法CPME作步驟
5.目前項目開發(fā)時常用的小組組織方法有哪些?
6.簡述主程序員組的優(yōu)缺點。
7.什么是軟件質(zhì)量?
8.軟件質(zhì)量保證的措施主要有哪些?
9.參加軟件質(zhì)量保證活動的人員有哪兩類?
10. 簡述技術(shù)復審的必要性。
11. 什么是軟件能力成熟度模型?其基本思想是什么?
12. 簡述軟件能力成熟度模型的 5 個等級。