軟件工程習題解答第一章概述_第1頁
軟件工程習題解答第一章概述_第2頁
軟件工程習題解答第一章概述_第3頁
軟件工程習題解答第一章概述_第4頁
軟件工程習題解答第一章概述_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

軟件工程習題解答第一章概述1.軟件產(chǎn)品的特性是什么?a.軟件產(chǎn)品是一種邏輯產(chǎn)品。b.軟件產(chǎn)品的生產(chǎn)主是研制,軟件產(chǎn)品的成本主要體現(xiàn)在軟件的開發(fā)和研制上,軟件開發(fā)完成后,復制就產(chǎn)生了大量軟件產(chǎn)品。c.軟件產(chǎn)品不會用壞,不存在磨損、消耗問題。d.軟件產(chǎn)品的生產(chǎn)主要是腦力勞動,還未完全擺脫手工開發(fā)方式,而且碰分是"定做"的。e.軟件費用不斷增加,成本相當昂貴。2.軟件產(chǎn)品有幾個階段?各有何特征?階段A.程序設計時代(1946-1956)B.程序系統(tǒng)時代(1956-1968)C.軟件工程時代(1968-今)生產(chǎn)方式個體手工勞動小集團合作生產(chǎn)工程化的生產(chǎn)工具機器語言、匯編高級語言數(shù)據(jù)庫、開發(fā)工具、開發(fā)環(huán)境、網(wǎng)絡、

分布式、面向?qū)ο蠹夹g(shù)開發(fā)方法追求編和技巧,追求程序運行效率個人技巧,開始提出結(jié)構(gòu)化方法硬件特征價格貴、存儲容量小、運行可靠性差速度、容量、工作可靠性有明顯提高,價格降低,銷售有爆炸性增長向超高速、大容量、微型化以及網(wǎng)絡化方軟件特征只有程序、程序設計概念,不重視程序設計方法程序員數(shù)量猛增,已意識到軟件開發(fā)的重要性,開發(fā)技術(shù)沒有新的突破,大量軟件開發(fā)的需求已提出,開發(fā)人員的素質(zhì)和工程兵的開發(fā)技術(shù)不適應規(guī)模大、結(jié)構(gòu)復雜的軟件開發(fā),產(chǎn)生了尖銳矛盾,導致軟件危機的產(chǎn)生開發(fā)技術(shù)有很大進步,但未能獲得突破性進展,軟件價格不斷上升,沒有完全擺脫軟件危機3.什么是軟件危機?其產(chǎn)生的原因是什么?軟件危機:軟件發(fā)展第二階段的末期,由于計算機硬件技術(shù)的進步。一些復雜的、大型的軟件開發(fā)項目提出來了,但,軟件開發(fā)技術(shù)的進步一直未能滿足發(fā)展的要求。在軟件開發(fā)中遇到的問題找不到解決的辦法,使問題積累起來,形成了尖銳的矛盾,因而導致了軟件危機。主要表現(xiàn)在以下幾個方面:a.經(jīng)費預算經(jīng)常突破,完成時間一再拖延。b.開發(fā)的軟件不通滿足用戶要求。c.開發(fā)的軟件可維護性差。d.開發(fā)的軟件可靠性差。軟件危機產(chǎn)生的原因是由于軟件產(chǎn)品本身的特點以及開發(fā)軟件的方式、方法、技術(shù)和人員引起的:a.軟件的規(guī)模越來越大,結(jié)構(gòu)越來越復雜。b.軟件開發(fā)管理困難而復雜。c.軟件開發(fā)費用不斷增加。d.軟件開發(fā)技術(shù)落后。e.生產(chǎn)方式落后。f.開發(fā)工具落后,生產(chǎn)率提高緩慢。4.什么是軟件工程?它的目標和內(nèi)容是什么?軟件工程:用科學知識和技術(shù)原理來定義、開發(fā)、維護軟件的一門學科。軟件工程的目標是成功的建造一個大型軟件系統(tǒng),所謂成功是要達到以下幾個目標:a.付出較低的開發(fā)成本;b.面到要求的軟件功能;c.取得較好的軟件性能;d.開發(fā)的軟件易于移植;e.需要較低的維護費用;f.能按時完成開發(fā)任務,及時交付使用;g.開發(fā)的軟件可靠性高;軟件工程的內(nèi)容:1)軟件開發(fā)技術(shù):軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。2)軟件開發(fā)管理:軟件管理學、軟件經(jīng)濟學、軟件心理學。5.軟件工程面臨的問題是什么?軟件工程面臨的問題:a.軟件費用。b.軟件可靠性。c.軟件維護。d.軟件生產(chǎn)率。e.軟件重用。6.什么是軟件生存周期?它有哪幾個活動?軟件生存周期:一個軟件從提出開發(fā)要求開始直到該軟件報廢為止的整個時期。軟件生存周期包括:可行性分析和項目開發(fā)計劃、需求分析、概要設計、詳細設計、編碼、測試、維護等.7.什么是軟件生存周期模型?有哪些主要模型?軟件生存周期模型:是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。(模型:是為了理解事物而對事物做出一種抽象,它忽略不必要的細節(jié),它也是事物的一種抽象形式、一個規(guī)劃、一個程式。)軟件生存周期主要模型:瀑布模型、增量模型、螺旋模型、噴泉模型、變換模型和基于知識的模型等9.什么是軟件開發(fā)的方法?有哪些主要方法?軟件開發(fā)的方法:是一種使用早已定義好的技術(shù)集及符號表示習慣來組織軟件生產(chǎn)的過程。主要方法:結(jié)構(gòu)方法、Jackson方法、維也納開發(fā)方法(VDM)、面向?qū)ο蟮拈_發(fā)方法。第二章可行性研究1.可行性研究的任務是什么?a.技術(shù)可行性:考慮的因素(1).開發(fā)的風險(2)資源的有效性(3)技術(shù)(4)開發(fā)人員在主段技術(shù)可行性時,一旦估計錯誤,將會出現(xiàn)災難性后果。b.經(jīng)濟可行性。c.社會可行性。2、可行性研究有哪些步驟?a.確定項目規(guī)模和目標b.研究正在運行的系統(tǒng)設計、測試、評價提供了有利條件。缺點:1)傳統(tǒng)的SA方法主要用于數(shù)據(jù)處理方面的問題,主要工具DFD體現(xiàn)了系統(tǒng)"做什么"的功能,但它僅是一個靜態(tài)模型,沒有反映處理的順序,即控制流程。因此,不適合描述實時控制系統(tǒng)。2)SA方法在使用DFD在分析與描述"數(shù)據(jù)要求"方面是有局限的。3)DFD不適合描述人機界面系統(tǒng)的要求。4)為了更精確地描述軟件包需求,提高軟件系統(tǒng)的可靠性、安全性,也便于實現(xiàn)自動化,SA方法可與形式方法結(jié)合起來。10.某銀行的計算機儲蓄系統(tǒng)功能是:將儲戶填寫的存款單或取款單輸入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名、住址、存款類型、存款日期、利率等信息,并打印出存款單給儲戶;如果是取款,系統(tǒng)計算清單儲戶。請用DFD和IDEF0描繪該功能的需求,并建立相應的數(shù)據(jù)字典。(1)數(shù)據(jù)流條目:數(shù)據(jù)流名稱:存款單別名:無簡述:儲戶存款時填寫的項目來源:儲戶去向:記帳數(shù)據(jù)流量:未知組成:姓名+住址+存款類型+存款日期+利率數(shù)據(jù)流名稱:取款單別名:無簡述:儲戶取款時填寫的項目來源:儲戶去向:統(tǒng)計數(shù)據(jù)流量:未知組成:姓名+住址+取款類型+取款日期+利率數(shù)據(jù)流名稱:清單別名:無簡述:儲戶取款后得到的項目來源:記錄去向:儲戶數(shù)據(jù)流量:未知組成:姓名+住址+取款類型+取款日期+利率+余額(2)數(shù)據(jù)存儲條目:數(shù)據(jù)存儲名稱:賬單別名:無簡述:存放儲戶信息及其賬目組成:姓名+住址+余額+存款類型+最后修改日期+利率組織方式:未知查詢要求:能立即查詢(3)數(shù)據(jù)項條目:未知(4)加工條目:加工名:分類檢查編號:無激發(fā)條件:接收到存/取款單優(yōu)先級:優(yōu)先輸入:存/取款單輸出:存/取款單加工邏輯:IF存款單THEN把存款單輸出到統(tǒng)計ELSE把取款單輸出到統(tǒng)計ENDIF加工名:統(tǒng)計編號:無激發(fā)條件:取款單優(yōu)先級:無輸入:取款單輸出:清單加工邏輯:根據(jù)賬單檢查此儲戶是否存在,不存在輸出錯誤{IF取款數(shù)<余額THEN余額=余額-取款數(shù)輸出清單到儲戶,輸出現(xiàn)金到儲戶ELSE輸出錯誤清單到儲戶ENDIF}加工名:記錄編號:無激發(fā)條件:存款單優(yōu)先級:無輸入:存款單輸出:存款單加工邏輯:根據(jù)賬單檢查此儲戶是否存在,不存在則建立此儲戶{余額=余額+存款數(shù)輸出存款單到儲戶}11.某圖書管理系統(tǒng)工程有以下功能:(1)借書:輸入讀者借書證。系統(tǒng)首先檢查借書證是否有效,對于第一次借書的讀者,在借書文件建立檔案。否則,查閱借書文件,檢查該讀者所借圖書是否超過10本,若已達10本,拒借,未達10本,辦理借書(檢查庫存、修改庫存目錄并將讀者借書情況登入借書文件).(2)還書:從借書文件中讀出與讀者有關(guān)的記錄,查閱所借日期,如果超期(3個月)作罰款處理。否則,修改庫存目錄與借書文件。(3)查詢:可通過借書文件、庫存目錄文件查詢讀者情況、圖書借閱情況及庫存情況,打印各種統(tǒng)計表。請就以上系統(tǒng)功能畫出分層的DFD圖,并建立重要條目的數(shù)據(jù)字典。12.某廠對部分職工重新分配工作的政策是:年齡在伙歲以下者,初中文化程度脫產(chǎn)學習。高中文化程度當電工;年齡在20歲到40歲之間者,中學中學文化程度男性當鉗工,女性當車工,大學文化程度都當技術(shù)員。年齡在40歲以上者,中學文化程度當材料員,大學文化程序當技術(shù)員。請用結(jié)構(gòu)化語言、判定表或判定樹描述上述問題的加工邏輯。(1)結(jié)構(gòu)化語言:

根據(jù)職工年齡和文化程序:

REPEATIf

年齡<=20

If

初中文化

Then

脫產(chǎn)學習

endifelse

if

高中文化

Then

電工

endifendifIf

20<年齡<40If

中學文化

If

男性

Then

鉗工

Else車工Endifelse

if

大學文化

Then

技術(shù)員endifendifendifIf

年齡>=40If

中學文化

Then

材料員else

if

大學文化

Then

技術(shù)員endifendifendifUntil

沒有剩余未分配員工判定表1234567891011年齡CCDDDDDEEE文化GHHGGHIGHI性別----MMFF--------脫產(chǎn)學習√電工√鉗工√√車工√√技術(shù)員√√材料員√√條件取值表條件名取值符號取值數(shù)年齡<=20CM1=3>20,<40D>=40E文化程度中學GM2=3高中H大學I性別男MM3=2女F附加題:1、自學考試報名過程中有個“記錄報名單”的加工。該加工主要是根據(jù)報名表(姓名、性別、身份證號、課程名)和開考課程(課程名、開考時間)、經(jīng)校核,編號、填寫、輸出準考證給報名者,同時記錄到考生名冊中(準考證號、姓名、課程)。請繪制該加工的DFD圖,并寫出數(shù)據(jù)詞典中的數(shù)據(jù)流條目。答:數(shù)據(jù)流詞典數(shù)據(jù)流詞典數(shù)據(jù)流條目:報名單=姓名+性別+身份證號+課程名開考課程=課程名+開考時間考生名冊=準考證號+姓名+課程2、“決定比賽名單”這個加工,根據(jù)“運動員名單”和“比賽項目”產(chǎn)生“項目參加者”,如下圖所示,運動員名單要包括所在隊名,運動員編號號,運動員姓名,及參加的所有項目。請寫出這三個數(shù)據(jù)流條目。答:運動員名單=隊名+運動員號+姓名+{項目}項目=項目名項目參加者=項目名+{運動員號}3、某旅館的電話服務如下:可以撥分機號和外線號碼。分機號是從7201至7299。外線號碼先撥9,然后是市話號碼或長話號碼。長話號碼是以區(qū)號和市話號碼組成。區(qū)號是從100到300中任意的數(shù)字串。市話號碼是以局號和分局號組成。局號可以是455,466,888,552中任意一個號碼。分局號是任意長度為4的數(shù)字串。要求:寫出在數(shù)據(jù)字典中,電話號碼的數(shù)據(jù)條目的定義(即組成)。答:電話號碼=分機號|外線號碼分機號=7201...7299外線號碼=9+[市話號碼|長話號碼]長話號碼=區(qū)號+市話號碼區(qū)號=100...300市話號碼=局號+分局號局號=[455|466|888|552]分局號=4{數(shù)字}4第四章概要設計1.什么是軟件概要設計?該階段的基本任務是什么?軟件概要設計:在需求分析的基礎上通過抽象和分解將系統(tǒng)分解成模塊,確定系統(tǒng)功能是實現(xiàn),即把軟件需求轉(zhuǎn)換為軟件包表示的過程?;救蝿眨?1)設計軟件系統(tǒng)結(jié)構(gòu)(簡稱軟件結(jié)構(gòu))a.采用某種設計方法,將一個復雜的系統(tǒng)按功能劃分成模塊(劃分)b.確定模塊的功能。(功能)c.確定模塊之間的調(diào)用關(guān)系。(調(diào)用)d.確定模塊之間的接口,即模塊之間傳遞的信息。(接口)e.評價模塊結(jié)構(gòu)的質(zhì)量。(質(zhì)量)(2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設計a.數(shù)據(jù)結(jié)構(gòu)設計b.數(shù)據(jù)庫設計:(概念設計、邏輯設計、物理設計)(3)編寫概要設計文檔(文檔主要有:概要設計說明書、數(shù)據(jù)庫設計說明書、用戶手冊、修訂測試計劃)(4)評審2.軟件設計的基本原理包括哪些內(nèi)容?軟件設計的基本原理:(1)模塊化(四個屬性:接口、功能、邏輯、狀態(tài))(2)抽象(3)信息隱蔽(4)模塊獨立性(兩個定性的度量標準:耦合性與內(nèi)聚性)3.衡量模塊獨立性的兩個標準是什么?它們各表示什么含義?兩個定性的度量標準:耦合與內(nèi)聚性耦合性:也稱塊間聯(lián)系。指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差。內(nèi)聚性:也稱塊內(nèi)聯(lián)系。指模塊的功能強度的度量,即一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。模塊內(nèi)元素聯(lián)系越緊密,內(nèi)聚性越高。4.模塊間的耦合性有哪幾種?它們各表示什么含義?耦合性有六種:無直接耦合、數(shù)據(jù)耦合、標記耦合、控制耦合、公共耦合、內(nèi)容耦合無直接耦合:兩個模塊之間沒有直接的關(guān)系,它們分別從屬于不同模塊的控制與調(diào)用,它們之間不傳遞任何信息。(無直接關(guān)系)數(shù)據(jù)耦合:指兩個模塊之間有調(diào)用關(guān)系,傳遞的是簡單的數(shù)據(jù)值,相當于高級語言中的值傳遞。(數(shù)據(jù)值)標記耦合:指兩個模塊之間傳遞的是數(shù)據(jù)結(jié)構(gòu)。(數(shù)據(jù)結(jié)構(gòu))控制耦合:指控制模塊調(diào)用另一個模塊時,傳遞的是控制變量,被調(diào)用塊通過該控制變量的值有選擇地執(zhí)行塊內(nèi)某一功能(控制變量)公共耦合:指通過一個公共數(shù)據(jù)環(huán)境相互作用的那些模塊間的耦合。(一個公式數(shù)據(jù)環(huán)境)內(nèi)容耦合:一個模塊直接使用另一個模塊的內(nèi)部數(shù)據(jù),或通過非正常入口而轉(zhuǎn)入另一個模塊內(nèi)部(內(nèi)部數(shù)據(jù))5.模塊的內(nèi)聚性有哪幾種?各表示什么含義?模塊間的內(nèi)聚性有6種:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚。偶然內(nèi)聚:一個模塊內(nèi)的各處理元素之間沒有任何聯(lián)系。邏輯內(nèi)聚:模塊內(nèi)執(zhí)行幾個邏輯上相似的功能,通過參數(shù)確定該模塊完成哪一個功能。時間內(nèi)聚:把需要同時執(zhí)行的動作組合在一起。通信內(nèi)聚:指模塊內(nèi)所有處理元素都在同一個數(shù)據(jù)結(jié)構(gòu)上操作,或者指各處理使用相同的輸入數(shù)據(jù)或產(chǎn)生相同的輸出數(shù)據(jù)。順序內(nèi)聚:一個模塊中各處理元素都密切相關(guān)于同一功能且必須順序執(zhí)行,前一功能元素的輸出是下一功能元素的輸入。功能內(nèi)聚:最強的內(nèi)聚,指模塊內(nèi)所有元素共同完成一個功能,缺一不可。6.什么是軟件結(jié)構(gòu)?簡述軟件結(jié)構(gòu)設計優(yōu)化準則。軟件結(jié)構(gòu):軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個系統(tǒng)的功能實現(xiàn),即將來程序的控制體系。軟件結(jié)構(gòu)設計優(yōu)化準則:a.劃分模塊時,盡量做到高內(nèi)聚,低耦合,保持模塊相對獨立性,以此為原則優(yōu)化初始的軟件結(jié)構(gòu)。b.一個模塊的作用范圍應在其控制范圍之內(nèi),且判定所在的模塊應與受其影響的模塊在層次上盡量靠近c.軟件的深度、寬度、扇入、扇出應適當。D.模塊的大小要適中。E.模塊的控制范圍模塊的接口要簡單、清晰、含義明確,便于理解,易于實現(xiàn)、測試與維護。7.什么是模塊的影響范圍?什么是模塊的控制范圍?它們之間應該建立什么關(guān)系?模塊的影響范圍:受該模塊內(nèi)的一個判定影響的所有模塊的集合。模塊的控制范圍:模塊本身及其所有下屬模塊(直接或間接從屬于它的模塊)的集合。一個模塊的影響范圍應在其控制范圍之內(nèi),且判定所在的模塊應與受其影響的模塊在層次上盡量靠近。8.什么是"變換流"?什么是"事務流"?試將相應形式的數(shù)據(jù)流圖轉(zhuǎn)換成軟件結(jié)構(gòu)圖。變換流由輸入、變換(或處理)、輸出三部分組成。某個加工將它的輸入流分離成許多發(fā)散的數(shù)據(jù)流,形成許多加工路徑,并根據(jù)輸入選擇其中一個路徑來執(zhí)行這種特征的DFD稱為事物流。9.試述"變換分析","事務分析"的設計步驟。變換分析:a.確定DFD中的變換中心。b.設計軟件結(jié)構(gòu)的頂層和第一層-------變換結(jié)構(gòu)。c.設計中下層模塊。(輸入模塊下屬模塊的設計,輸出模塊下屬模塊的設計,變換模塊下屬模塊的設計,設計的優(yōu)化)事務分析:a.確定DFD中的事務中心和加工路徑。b.設計軟件結(jié)構(gòu)的頂層和第一層------事務結(jié)構(gòu)。(接收、發(fā)送給支)c.事務結(jié)構(gòu)中、下層模塊的設計、優(yōu)化工作同變換結(jié)構(gòu)。附加:2、已知模塊C中的一個判定影響到模塊B,如圖所示,它違反了SD的設計原則。試問:可以采用哪些手段對結(jié)構(gòu)圖作改進,請說明改進辦法并畫出改進的結(jié)構(gòu)圖。3、已知有一抽象的DFD圖如下所示,請用SD方法畫出相應的結(jié)構(gòu)圖。答:4、高考錄取統(tǒng)分子系統(tǒng)有如下功能:(1)計算標準分:根據(jù)考生原始分計算,得到標準分,存入考生分數(shù)文件;(2)計算錄取線分:根據(jù)標準分、招生計劃文件中的招生人數(shù),計算錄取線,存入錄取線文件。試根據(jù)要求畫出該系統(tǒng)的數(shù)據(jù)流程圖,并將其轉(zhuǎn)換為軟件結(jié)構(gòu)圖。答:(1)數(shù)據(jù)流圖:(2)軟件結(jié)構(gòu)圖:①①原始分②標準分③招生計劃④錄取線5、圖書館的預定圖書子系統(tǒng)有如下功能:(1)由供書部門提供書目給訂購組。(2)訂書組從各單位取得要訂的書目。(3)根據(jù)供書目錄和訂書書目產(chǎn)生訂書文檔留底。(4)將訂書信息(包括數(shù)目,數(shù)量等)反饋給供書單位。(5)將未訂書目通知訂書者。(6)對于重復訂購的書目由系統(tǒng)自動檢查,并把結(jié)果反饋給訂書者。試根據(jù)要求畫出該問題的數(shù)據(jù)流程圖,并把其轉(zhuǎn)換為軟件結(jié)構(gòu)圖。答:(1)數(shù)據(jù)流圖:(2)軟件結(jié)構(gòu)圖:6、在結(jié)構(gòu)化設計過程中,要將數(shù)據(jù)流圖(DFD)映射成系統(tǒng)結(jié)構(gòu)圖(SC),分別畫出變換型數(shù)據(jù)流和事物型數(shù)據(jù)流的映射方式。答:變換型 事務型第五章詳細設計1.詳細設計的基本任務是什么?有哪幾種描述方法?詳細設計的基本任務:(1)為每個模塊進行詳細的算法設計。(2)為每個模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設計。(3)對數(shù)據(jù)庫進行設計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu)。(4)其他設計:a.代碼設計b.輸入/輸出格式設計。c.人機對話設計。(5)編寫詳細設計說明書。(6)評審。描述方法(三種):a.程序流程圖b.PAD圖C.過程設計語言2.結(jié)構(gòu)化程序設計基本要求要點是什么?a.采用自頂向下、逐步求精的程序設計方法b.使用三種基本程序控制結(jié)構(gòu)構(gòu)造程序1).用順序方式對過程分解,確定各部分的執(zhí)行順序。2).用選擇方式對過程分解,確定某個部分的執(zhí)行條件。3).用循環(huán)方式對過程分解,確定某個部分重復的開始和結(jié)束的條件。c.主程序員組的組織形式。3.簡述Jackson方法的設計步驟。Jsp方法一般通過以下5個步驟來完成設計:a.分析并確定輸入/出數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson結(jié)構(gòu)圖表示這些數(shù)據(jù)結(jié)構(gòu)。b.找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應關(guān)系的數(shù)據(jù)單元。c.按一定的規(guī)則由輸入、輸出的數(shù)據(jù)結(jié)構(gòu)導出程序結(jié)構(gòu)。d.列出基本操作與條件,并把它們分配到程序結(jié)構(gòu)圖的適當位置。e.用偽碼寫出程序。4.請使用流程圖、PAD圖各PDL語言描述下列程序的算法。(1)在數(shù)據(jù)A(1)-A(10)中求最大數(shù)和次大數(shù)。(2)輸入三個正整數(shù)作為邊長、判斷該三條邊構(gòu)成的三角形是等邊、等腰或一般三角形。答:(1)1)流程圖:2)PAD圖3)PDL語言定義n1=n2=0輸入A(1).......A(10)n1=n2=A(1)whilei>10ifA(i)>=n1n2=n1n1=A(i)endwhile5.用PAD圖描述下面問題的控制結(jié)構(gòu)。有一個表A(1)、A(2)、........A(n),按遞增順序排列。給定一個Keyw值,在表中用折半查找。若找到將表位置i送入x,否則將零送到x,同時將Key值插入表中。算法:1)置初值H=1(表頭),T=N(表尾)。2)置i=[(H+T)/2](取整).3)若Key=A(i),則找到,i送到x;若Key>A(i),則Key在表的后半部分,i+1送入H;若Key<A(i),則能Key在表的前半部分,i-1送入T,重復第三世界國家步查找直到H>T為止。4)查不到時,將A(i),....,A(N)移到A(i+1),.....A(N+1),Key值送入A(i)中。6.一個正文文件由若干記錄組成,每個記錄是一個字符串,要求統(tǒng)計每個記錄中空格字符的個數(shù)及文件中空格字符的總個數(shù)。要求輸出數(shù)據(jù)格式是每復制一行這符串后,另起一行打印出這個字符中的空格數(shù),最后打印出文件空格的總個數(shù),用Jackson方法設計該程序結(jié)構(gòu)。附加題:1、假設對顧客的訂貨單按如下原則處理:將顧客的信用度分三個檔次:欠款時間不超過30天;欠款時間超過30天但不超過100天;欠款時間超過100天。對于上述三種情況,分別根據(jù)庫存情況來決定對顧客訂貨的態(tài)度。情況之一(欠款時間≤30天),如果需求數(shù)≤庫存量,則立即發(fā)貨,如果需求數(shù)>庫存量,則只發(fā)現(xiàn)有庫存,不足部分待進貨后補發(fā)。情況之二(30天<欠款時間≤100天),如果需求數(shù)≤庫存量,則要求先付款再發(fā)貨,如果需求數(shù)>庫存量,則不發(fā)貨。情況之三(欠款時間>100天),則通知先付欠款,再考慮是否發(fā)貨。試用判定樹的形式予以描述(設欠款時間D,需求數(shù)N,庫存量Q)。答:2、用Jackson圖表示下圖所示的二維表格:答:3、有一過程,其流程如下圖所示。其中b1、b2、b3為判定的邏輯條件,s1、s2為加工處理。試用判定表給予描述。答:4、1、有一過程如下圖所示的流程,試用判定表予以描述。1234條件b1FTTTb2…FFTb3…FT…結(jié)果s1√√√s2√第六章實現(xiàn)1、程序語言有哪些共同特征?答:程序語言的共同特征(似為特性更符合題意)是指程序設計語言的語言特性,包括心理特性、工程特性和技術(shù)特性三個方面。語言的心理特性對人機通信的質(zhì)量有主要的影響;語言的工程特性對軟件開發(fā)成功一否有重要的影響,此外,語言的技術(shù)特性也會影響軟件設計的質(zhì)量。2、在項目開發(fā)時選擇程序設計語言通常考慮哪些因素?答:通常要考慮的因素有:項目的應用領域、軟件開發(fā)的方法、軟件執(zhí)行的環(huán)境、算法和數(shù)據(jù)結(jié)構(gòu)的復雜性以及軟件開發(fā)人員的知識等。3、第4代語言(4GL)有哪些主要特征?答:4GL的主要特征是:(1)友好的用戶界面(2)兼有過程性和非過程性雙重特性(3)高效的程序代碼(4)完備的數(shù)據(jù)庫(5)應用程序生成器4、舉例說明各種程序設計語言的特點及適用范圍?答:以常見的一些編程語言為例:FORTRAN語言,它不僅面向科學計算,數(shù)據(jù)處理能力也極強。適用于科學工程計算Pascal語言,具有很強的數(shù)據(jù)和過程結(jié)構(gòu)化能力,它語言簡明,數(shù)據(jù)類型豐富,程序結(jié)構(gòu)嚴謹。它是第一個體現(xiàn)結(jié)構(gòu)化編程思想的語言。用于描述結(jié)構(gòu)化算法和科學計算,操作系統(tǒng)的編寫C語言:功能強大,支持復雜的數(shù)據(jù)結(jié)構(gòu),可大量運用指針,具有豐富靈活的操作運算符及數(shù)據(jù)處理操作符,它還具有匯編語言的某些特征,使程序運行效率高??捎糜谠S多領域,特別是在操作系統(tǒng)等方面有較大優(yōu)勢。Coble語言,它具有極強的數(shù)據(jù)定義能力,程序說明與硬件環(huán)境說明分開、數(shù)據(jù)描述與算法描述分開。結(jié)構(gòu)嚴謹層次分明,廣泛用于商業(yè)數(shù)據(jù)處理。SQL:結(jié)構(gòu)化查詢語言,用于對數(shù)據(jù)庫進行存取管理。匯編語言和Ada語言,主要用于實時處理和編寫系統(tǒng)軟件。Prolog、Lisp語言。Lisp是一種函數(shù)型語言,特別適用于組合問題中符號運算和表處理,用于定理證明、樹的搜索和其他問題的求解。Prolog是一種邏輯型語言,它提供了支持知識表示的特性,每一個程序由一組表示事實、規(guī)則和推理的句子組成,比較接近與自然語言。這兩種語言主要用于人工智能系統(tǒng)開發(fā)。C++、Java語言,是面向?qū)ο蟮脑O計語言,用于面向?qū)ο蟮姆介_發(fā)軟件。5、什么是程序設計風格?為了具有良好的設計風格,應注意哪些方面的問題?答:程序設計風格是指一個人編制程序時所表現(xiàn)出來的特點、習慣、邏輯思路等。要形成良好的程序設計風格,應從源程序文檔化、數(shù)據(jù)說明、語句構(gòu)造、輸入輸出和追求效率幾個方面加以注意。第七章軟件測試1、軟件測試的目的是?測試中要注意那些原則?軟件測試答:軟件測試的目的是的發(fā)現(xiàn)軟件中存在錯誤的活動。好的測試用例可以發(fā)現(xiàn)至今沒有發(fā)現(xiàn)的錯誤、好的測試用例可以發(fā)現(xiàn)至今沒有發(fā)現(xiàn)的錯誤測試。要提供輸入數(shù)據(jù)還要提供輸出數(shù)據(jù)、保留測試用例、檢查它是否做了應該做的還要檢查它是否做了不該做的、避免自己測試自己的程序、多錯誤多的地方要更嚴格的測試。2、什么是白盒法?有那些覆蓋標準?比較他們的檢錯能力。答:將程序看成是白盒子,認真的分析程序的結(jié)構(gòu)和功能制定測試用例來測試。有邏輯覆蓋(語句覆蓋、判斷覆蓋、條件覆蓋、判斷/條件覆蓋、條件組合覆蓋、路徑覆蓋)3、什么是黑盒法?有那些測試方法?特點?答:將程序當成是黑盒子以設計中的功能為標準在程序的接口出進行測試看它能否達到功能要求。等價類劃分、邊界值分析、因果圖、錯誤推測。4、軟件測試要經(jīng)過那些步驟?這些步驟和開發(fā)那些階段對應?答:單元測試對應詳細設計和編碼、集成測試對應概要設計、確認測試對應需求分析。5、單元測試有那些內(nèi)容?答:測試模塊的接口、數(shù)據(jù)結(jié)構(gòu)、重要的執(zhí)行路徑、錯誤處理、邊界條件。6、什么是集成測試?非漸增式和漸增式有什么區(qū)別?漸增式如何組裝模塊?答:將模塊組合起來成為一個完整的系統(tǒng)對其進行測試。非漸增式是將模塊先進行單元測試然后組裝在一起進行測試。漸增式是逐個將未測試的模塊組裝到已經(jīng)測試過的模塊上去進行集成測試,每加入一個就測試一次。非漸增式需要樁模塊和驅(qū)動模塊、非漸增式開始可以并行測試、漸增式可以及時的發(fā)現(xiàn)接口錯誤,非漸增式很難發(fā)現(xiàn)接口發(fā)現(xiàn)錯誤、漸增式開始不能并行測試、漸增式測試比較徹底。漸增式組裝模塊有自頂向下和自底向上兩種組裝方式。7、什么是確認測試?該階段有那些工作?答:按照需求規(guī)格說明書中的確定指標對系統(tǒng)進行功能與性能的測試。進行確認測試(對照需求規(guī)格說明書用黑盒法進行測試)、軟件配置檢查。(文檔的完整性、正確性,發(fā)現(xiàn)遺漏和錯誤及時補充和修改)8、

調(diào)試的目的是什么?調(diào)試的技術(shù)有那些?答:調(diào)試的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。簡單調(diào)試、演繹調(diào)試、遞歸調(diào)試、回溯調(diào)試。附加題:1、對下列子程序進行調(diào)試:procedureexample(y,z:real;varx:real)begin if (y>1)and(z=0)thenx:=x/y; if (y=2)or(x=l)thenx:=x+l;end.該子程序接受x,y,z的值,并將計算結(jié)果x的值返回給調(diào)用程序。答題要求:(1)畫出流程圖。(2)用白盒法設計測試用例,并寫出它所滿足的是何種覆蓋標準、預期結(jié)果以及路徑。答:(1)流程圖(2)用白盒法中條件組合覆蓋設計測試用例: ①y=2,z=0,x=4; ②y=2,z=1,x=1; ③y=1,z=0,x=2; ④y=1,z=1,x=1.2、某報表處理系統(tǒng)要求用戶輸入處理報表的日期,日期限制在2003年1月至2008年12月,即系統(tǒng)只能對該段期間內(nèi)的報表進行處理,如日期不在此范圍內(nèi),則顯示輸入錯誤信息。系統(tǒng)日期規(guī)定由年、月的6位數(shù)字字符組成,前四位代表年,后兩位代表月?,F(xiàn)要求用黑盒測試法中的邊界值法寫出測試用例。答:輸入條件 測試用例說明 測試數(shù)據(jù)報表日期的1個數(shù)字字符 5類型及長度 5個數(shù)字字符 200357個數(shù)字字符2003005 有1個非數(shù)字字符2003.5 全部是非數(shù)字字符MAY--- 6個數(shù)字字符200305日期范圍 在有效范圍200301 邊界上選取200812 數(shù)據(jù)200300200813月份范圍月份為1月200301月份為12月200312月份<1200300月份>122003133、對以下程序進行測試:PROCEDUREEX(A,B:REAL;VARX:REAL);BEGINIF(A=3)OR(B>1)THENX:=A×BIF(A>2)AND(B=0)THENX:=A-3END先畫出程序流程圖。再按不同邏輯覆蓋法設計一種(寫出名稱)測試數(shù)據(jù)。答:語句覆蓋A=3B=04、程序功能說明書指出,某程序的輸入條件為:每個學生可以選修1至3門課程,試用黑盒法設計測試用例。(1)按等價分類法設計測試用例(要求列出設計過程)(2)按邊緣值分析法設計測試用例。答:1)合理等價類 選修1門 選修2門 選修3門不合理等價類 沒選課 選3門以上測試用例 選修=2 選修=0 選修>32)邊緣值法 0,1,3,45、設被測試的程序段為: begin s1; if(x=0)and(y>2) thens2; if(x<1)or(y=1) thens3; s4; end可供選擇的測試數(shù)據(jù)組為:xyⅠ03Ⅱ12Ⅲ-12Ⅳ31找出實現(xiàn)(1)語句覆蓋;(2)條件覆蓋;(3)判定覆蓋至少要選擇的數(shù)據(jù)組。答:(1)Ⅰ (2)Ⅰ,Ⅳ (3)Ⅰ,Ⅱ第八章軟件維護1、軟件維護有哪些內(nèi)容?a、校正性維護b、適應性維護c、完善性維護d、預防性維護2.軟件維護的特點是什么?a、非結(jié)構(gòu)化維護和結(jié)構(gòu)化維護b、維護的困難性c、軟件強維護的費用3.軟件維護的流程是什么?

a、制定申請維護報告b、審查申請報告并批準c、進行維護并作詳細記錄d、覆審4.軟件維護的副作用有哪些?

編碼、數(shù)據(jù)、文檔副作用5.什么是軟件的可維護性?可維護性的度量的特性是什么?軟件的可維護性:軟件能夠被理解、校正、適應及增強功能的容易程度??删S護性的度量的特性是:可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。6.提高可維護性的方法有哪些?A、建立明確的軟件質(zhì)量目標。B、利用先進的軟件開發(fā)技術(shù)和工具。C、建立明確的質(zhì)量保證工作。D、選擇可維護的程序設計語言。E、改進程序文檔。第九章1、

漸增模型有那幾種?特點?答:增量構(gòu)造和演化提交。增量構(gòu)造是瀑布模型的基礎上在一些的階段中采用增量開發(fā)一些階段整體開發(fā)。演化提交是在瀑布模型的基礎上所有階段都使用增量開發(fā)也就是不緊使用增量開發(fā)也使用增量提交。2、

快速原形有那幾種?特點?答:探索型、試驗型、演化型。探索型:在需求階段幫助明確理解需求用完拋棄。試驗型:在設計階段考核現(xiàn)行方案是否合適用完拋棄。演化型:及早的向用戶展示一個系統(tǒng)的原形包含主要的功能得到用戶的認可后將原形不斷的擴充直到系統(tǒng)完成。3、

快速原形開發(fā)的步驟?答:快速開發(fā)、需求、構(gòu)造原形、原形、運行原形、評價原形、修改意見。4、

評價快速原形的優(yōu)缺點?答:可以更清楚的理解用戶的需求、開發(fā)階段可以用原形解決局部的困難,通過原形的開發(fā)可以讓用戶看見系統(tǒng)的初步功能的實現(xiàn)有利與用戶的開發(fā)人員更好的交流,及早的解決存在的問題減少開發(fā)的風險。缺乏好的管理工具和開發(fā)環(huán)境、缺乏管理機制、對開發(fā)人員的技術(shù)要求高、更新文檔比較困難。5、

對比瀑布模型和增量模型,指出增量模型的新思路。答:瀑布模型是一種整體的開發(fā)模型,開發(fā)的每一階段必須按線性的順序來進行,前一階段的工作沒有完成后一階段的工作就不能開始。由于需求分析的易變性使的軟件開發(fā)工作不順利,同時瀑布模型的每個階段有不可避免的錯誤出現(xiàn),那么延伸到以下的各個階段錯誤就會放大。增量模型是非整體開發(fā)的模型它采用漸增模型和原形模型,軟件的開發(fā)是用增量開發(fā)和增量提交。第十章面向?qū)ο蠹夹g(shù)1、

說明對象、類、類結(jié)構(gòu)、消息的基本概念?答:對象:是客觀實體在問題域中的抽象。類:具有相似或相同性質(zhì)的對象的抽象就是類。類結(jié)構(gòu):類的結(jié)構(gòu)通常有一般----具體(分類結(jié)構(gòu))整體---抽象(組裝結(jié)構(gòu))消息:對象之間通信的構(gòu)造。2、

面向?qū)ο蟮奶卣骱鸵兀看穑禾卣鳎阂恢滦?、多態(tài)性、分類性、繼承性。要素:共享、封裝、抽象。3、

說明對象模型的特征?答:對象模型表示了靜態(tài)的、結(jié)構(gòu)化的、系統(tǒng)數(shù)據(jù)性質(zhì),描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),表現(xiàn)了對象間的相互關(guān)系,模型主要關(guān)心系統(tǒng)中對象的結(jié)構(gòu)、屬性和操作使用對象圖來描述。4、

說明動態(tài)模型的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論