《軟件工程》復(fù)習(xí)題參考答案_第1頁
《軟件工程》復(fù)習(xí)題參考答案_第2頁
《軟件工程》復(fù)習(xí)題參考答案_第3頁
《軟件工程》復(fù)習(xí)題參考答案_第4頁
《軟件工程》復(fù)習(xí)題參考答案_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程習(xí)題參考答案 第一章 1什么是軟件危機(jī)?產(chǎn)生原因是什么? 軟件開發(fā)技術(shù)的進(jìn)步未能滿足發(fā)展的要求。在軟件開發(fā)中遇到的問題找不到解決的辦法,問題積累起來,形態(tài)尖銳的矛盾,導(dǎo)致了軟件危機(jī)。 產(chǎn)生原因: 軟件規(guī)模越來越大,結(jié)構(gòu)越來越復(fù)雜。 軟件開發(fā)管理困難而復(fù)雜。 軟件包開發(fā)費(fèi)用不斷增加。 軟件開發(fā)技術(shù)落后。 生產(chǎn)方式落后,仍采用手工方式。 開發(fā)工具落后,生產(chǎn)率提高緩慢。 2什么是軟件工程?它目標(biāo)和內(nèi)容是什么? 軟件工程就是用科學(xué)的知識(shí)程和技術(shù)原理來定義,開發(fā),維護(hù)軟件的一 門學(xué)科。 軟件工程目標(biāo):付出較低開發(fā)成本;達(dá)到要求的功能;取得較好的性能;開發(fā)的軟件易于移植;只需較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;開發(fā)的軟件可靠性高。 軟件工程內(nèi)容:研究內(nèi)容包括開發(fā)技術(shù)和開發(fā)管理兩個(gè)方面。 開發(fā)技術(shù)主要研究:軟件開發(fā)方法,開發(fā)過程,開發(fā)工具和環(huán)境。 開發(fā)管理主要研究:軟件管理學(xué),軟件經(jīng)濟(jì)學(xué),軟件心理學(xué)。 3軟件工程面臨的問題是什么? 軟件工程需要解決的問題:軟件的費(fèi)用,可靠性,可維護(hù)性,軟件生產(chǎn)率和軟件的重用。 4什么是軟件生存周期?它有哪幾個(gè)活動(dòng)? 軟件生存周期:一 個(gè)軟件從提出開發(fā)要求開始直到該軟件報(bào)廢為止的整個(gè)時(shí)期。 包括:可行性分析和項(xiàng)目開發(fā)計(jì)劃,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,測試,維護(hù)。 5什么是軟件生存周期模型?有哪些主要模型? 生存周期模型:描述軟件開發(fā)過程中各種活動(dòng)如何執(zhí)行的模型。對軟件開發(fā)提供強(qiáng)有力的支持,為開發(fā)過程中的活動(dòng)提供統(tǒng)一的政策保證,為參與開發(fā)的人員提供幫助和指導(dǎo),是軟件生存周期模型化技術(shù)的基礎(chǔ),也是建立軟件開發(fā)環(huán)境的核心。 主要有:瀑布模型,增量模型,螺旋模型,噴泉模型,基于知識(shí)的模型,變換模型。 第二章 可行研究的任務(wù):首先需要進(jìn)行概要的分析研究,初步確定項(xiàng)目的規(guī)模,目標(biāo),約束和限制。分析員再進(jìn)行簡要的需求分析,抽象出項(xiàng)目的邏輯結(jié)構(gòu),建立邏輯模型。從邏輯模型出發(fā),經(jīng)過壓縮的設(shè)計(jì),探索出若干種可供選擇的解決方法,對每種解決方法都要研究它的可行性。 主要從三個(gè)方面考慮: 般要考慮的情況包括 開發(fā)的風(fēng)險(xiǎn)即設(shè)計(jì)出的系統(tǒng)能否達(dá)到要求的功能和性能 ;資源的有效性 ;相關(guān)技術(shù)的發(fā)展是否支持 ; 行開發(fā)成本的估算以及了解取得效益的評估 ,確定要開發(fā)的項(xiàng)目是否值得投資。 開發(fā)的 項(xiàng)目是否存在任何侵權(quán)問題 ,運(yùn)行方式在用戶組織內(nèi)是否可行 ,現(xiàn)有管理制度人員素質(zhì)操作方式是否可行。 . 項(xiàng)目概述:說明項(xiàng)目的各項(xiàng)主要工作;說明軟件的功能性能;為完成項(xiàng)目應(yīng)具有的條件;用戶及合同承包者承擔(dān)的工作完成的期限及其他條件限制;應(yīng)交付的程序名稱;所使用的語言及程儲(chǔ)形式;應(yīng)交付的文檔。 . 實(shí)施計(jì)劃:說明任務(wù)的劃分,各任務(wù)責(zé)任人,項(xiàng)目開發(fā)進(jìn)度,項(xiàng)目的預(yù)算,各階段的費(fèi)用支出,各階段應(yīng)完成的任務(wù),用圖表說明每項(xiàng)任務(wù)的開始和完成時(shí)間。 . 人員組織及分工:所需人員類型數(shù)量 組成結(jié)構(gòu)。 . 交付期限:最后完工日期。 第三章 什么是需求分析?需求分析階段的基本任務(wù)是什么? 需求分析:開發(fā)人員準(zhǔn)確地理解用戶的要求,進(jìn)行細(xì)致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)換到相應(yīng)的需求規(guī)格說明的過程。 基本任務(wù) : 問題識(shí)別:雙方確定對問題的綜合需求,這些需求包括功能需求,性能需求,環(huán)境需求,用戶界面需求。 分析與綜合,導(dǎo)出軟件的邏輯模型 編寫文檔:包括編寫 需求規(guī)格說明書 ,初步用戶使用手冊 ,確認(rèn)測試計(jì)劃 ,修改完善軟件開發(fā)計(jì)劃 什么是結(jié)構(gòu)分析方法?該方法使用什么描述工具? 結(jié)構(gòu)化分析:簡稱 向數(shù)據(jù)流進(jìn)行數(shù)據(jù)分析的方法。采用自頂向下逐層分解的分析策略。頂層抽象地描述整個(gè)系統(tǒng),底層具體地畫出系統(tǒng)工程的每個(gè)細(xì)節(jié)。中間層則是從抽象到具體的過渡。使用數(shù)據(jù)流圖,數(shù)據(jù)字典,作為描述工具,使用結(jié)構(gòu)化語言,判定表,判定樹描述加工邏輯。 結(jié)構(gòu)化分析方法通過哪些步驟來實(shí)現(xiàn)? 了解當(dāng)前系統(tǒng)的工作流程,獲得當(dāng)前系統(tǒng)的物理模型。 抽象出當(dāng)前系統(tǒng)的邏輯模型。 建立目標(biāo)系統(tǒng)的邏輯模型。 作進(jìn)一步補(bǔ)充和優(yōu)化。 什么是數(shù)據(jù)流圖?其作用是 什么?其中的基本符號(hào)各表示什么含義? 數(shù)據(jù)流圖( 以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過程。只反映系統(tǒng)必須完成的邏輯功能,是一種功能模型。 5什么是數(shù)據(jù)字典?其作用是什么?共有哪些條目? 數(shù)據(jù)字典( 來定義數(shù)據(jù)庫流圖中的各個(gè)成分的具體含義。有以下四類條目:數(shù)據(jù)流,數(shù)據(jù)項(xiàng),數(shù)據(jù)存儲(chǔ),基本加工。 具體條目內(nèi)容及舉例如下: 數(shù)據(jù)流條目 數(shù)據(jù)流名稱:訂單 別名:無 簡述:顧客訂貨時(shí)填寫的項(xiàng)目 來源:顧客 去向:加工 1檢驗(yàn)訂單 數(shù)據(jù)流量: 1000份 /每周(單位時(shí)間內(nèi)的 傳輸次數(shù)) 組成:編號(hào) +訂貨日期 +顧客編號(hào) +地址 +電話 +銀行帳號(hào) +貨物名稱 +規(guī)格 +數(shù)量 數(shù)據(jù)存儲(chǔ)條目 數(shù)據(jù)存儲(chǔ)名稱:庫存記錄 別名:無 簡述:存放庫存所有可供貨物的信息 組成:貨物名稱 +編號(hào) +生產(chǎn)廠家 +單價(jià) +庫存量 組織方式:索引文件,以貨物編號(hào)為關(guān)鍵字 查詢要求:要求能立即查詢 數(shù)據(jù)條目 數(shù)據(jù)項(xiàng)名稱:貨物編號(hào) 別名: 簡述:本公司所有貨物的編號(hào) 類型:字符串 長度: 10 取值范圍及含義: 第一位:進(jìn)口 /國產(chǎn) 第 2別 第 5格 第 8名編號(hào) 加工條目 加工名:查閱庫存 編號(hào): 1 2 激發(fā)條件:接收到合格訂單時(shí) 優(yōu)先級(jí):普通 輸入:合格合格訂單 輸出:可供貨訂單,缺貨訂單 加工邏輯:根據(jù)庫存記錄 單項(xiàng)目數(shù)量 =20 化程度 初中 中 別 男 分配工種 鉗工 別 女 分配工種 車工 化程度 大學(xué) 分配工種 技術(shù)員 齡 40 化程度 初中 中 分配工種 材料員 化程度 大學(xué) 分配工種 技術(shù)員 第 4 章 1. 什么是軟件概要設(shè)計(jì)?該階段的基本任務(wù)是什么? 把一個(gè)軟件需求轉(zhuǎn)換為軟件表示時(shí),首先設(shè)計(jì)出軟件總的體系結(jié)構(gòu)。稱為概要設(shè)計(jì)或結(jié)構(gòu)設(shè)計(jì)。 基本任務(wù): 設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu),具體為: 采用某種設(shè)計(jì)方法,將一個(gè)復(fù)雜的系統(tǒng)按功能劃分為模 塊。 確定每個(gè)模塊的功能。 確定模塊之間的調(diào)用關(guān)系。 確定模塊之間的接口(模塊之間傳遞的信息) 評價(jià)模塊的結(jié)構(gòu)質(zhì)量 進(jìn)行數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫的設(shè)計(jì) 編寫概要設(shè)計(jì)的文檔 主要內(nèi)容有:概要設(shè)計(jì)說明書,數(shù)據(jù)庫說明書( 簡介,概念模型,邏輯設(shè)計(jì),結(jié)果)用戶手冊,修訂測試計(jì)劃(測試的策略方法步驟) 評審:是否完整地實(shí)現(xiàn)了規(guī)定的功能性能要求。設(shè)計(jì)方案是否可行。關(guān)鍵的處理及內(nèi)部接口定義的正確性,有效性,各部分的一致性。 2軟件設(shè)計(jì)的基本原理包括哪些內(nèi)容? 模塊化:模塊是軟件的組成部分,是 具有獨(dú)立功能且可命名的一段程序,所有模塊組成 整體,可以滿足問題的要求。模塊化即按照一定的原則,將軟件劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)特定的功能,然后把這些模塊按照某種方法組裝成一個(gè)軟件系統(tǒng)。(可降低復(fù)雜度、減少工作量) 模塊具有以下幾種特性: 接口:模塊的輸入輸出。 功能:指模塊實(shí)現(xiàn)什么功能。 邏輯:描述模塊內(nèi)部如何實(shí)現(xiàn)要求及所需的數(shù)據(jù)。 狀態(tài):該模塊的運(yùn)行環(huán)境,模塊間調(diào)用與被調(diào)用關(guān)系。 抽象:認(rèn)識(shí)復(fù)雜現(xiàn)象過程所使用權(quán)的工具,只考慮事物本質(zhì)的共同特性,忽略細(xì)節(jié)和其它因素。通過抽象確定組成軟件的 過程實(shí)體。 信息隱蔽:將模塊實(shí)現(xiàn)自身功能的細(xì)節(jié)與數(shù)據(jù) 隱蔽 起來。模塊間僅交換為完成系統(tǒng)功能所必須的信息。 模塊獨(dú)立性:每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能。 3衡量模塊獨(dú)立性的兩個(gè)標(biāo)準(zhǔn)是什么?各表示什么含義? 內(nèi)聚和耦合 內(nèi)聚:又稱為塊內(nèi)聯(lián)系,指模塊內(nèi)部各成分之間相互關(guān)聯(lián)的程度,以高內(nèi)聚為設(shè)計(jì)目標(biāo)。 耦合:也稱塊間聯(lián)系,模塊之間相互聯(lián)系程度的度量,聯(lián)系越緊密,耦合性越強(qiáng),獨(dú)立性越差,以低耦合為設(shè)計(jì)目標(biāo)。 4模塊的耦合性有哪幾種?各表示什么含義? 內(nèi)容耦合:一個(gè)模塊直接操作或修 改另一模塊的數(shù)據(jù),或者不通過正常入口直接轉(zhuǎn)入 另一模塊 公共耦合:兩個(gè)或多個(gè)模塊通過共同引用一個(gè)全局?jǐn)?shù)據(jù)環(huán)境相互作用 控制耦合:模塊之間通過傳遞控制信息相互作用 標(biāo)記耦合:兩個(gè)模塊之間通過傳遞公共指針或地址相互作用的耦合 數(shù)據(jù)耦合:模塊之間通過傳遞數(shù)據(jù)交換信息 無耦合:模塊間無任何關(guān)系,獨(dú)立工作 5模塊的內(nèi)聚性有哪幾種?各表示什么含義? 偶然內(nèi)聚:一個(gè)模塊各個(gè)成分之間毫無關(guān)系 邏輯內(nèi)聚:將幾個(gè)邏輯上相關(guān)的功能放在同一個(gè)模塊中 時(shí)間內(nèi)聚:一個(gè)模塊完成的功能在同一時(shí)間執(zhí)行 過程內(nèi)聚:一個(gè)模塊內(nèi)部的處理成分是相關(guān)的,而且必須以特定的次序執(zhí)行 通信內(nèi)聚:一個(gè)模塊的所有成分都集中在同一個(gè)數(shù)據(jù)結(jié)構(gòu)上 順序內(nèi)聚:一個(gè)模塊的各個(gè)成分同一個(gè)功能密切相關(guān),而且一個(gè)成分的輸出,作為另外一個(gè)成分的輸入 功能內(nèi)聚:模塊內(nèi)的所有成分屬于一個(gè)整體,完成單一的功能。(內(nèi)聚最高) 6什么是軟件結(jié)構(gòu)?簡述軟件結(jié)構(gòu)設(shè)計(jì)的優(yōu)化準(zhǔn)則。 改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性 首先設(shè)計(jì)出軟件初始結(jié)構(gòu),評價(jià)該結(jié)構(gòu),通過模塊分解或合并,力求降低耦合提高內(nèi)聚。 模塊的規(guī)模應(yīng)該適中 模塊結(jié)構(gòu)的深度、寬度、扇出和 扇入應(yīng)適中 深度:軟件結(jié)構(gòu)中控制的層數(shù) 寬度:軟件結(jié)構(gòu)中同一層次上最大模塊總數(shù) 扇入:某一模塊有多少直接調(diào)用它的上級(jí)模塊數(shù)目(越大越好) 扇出:一個(gè)模塊直接控制(調(diào)用)下級(jí)模塊的數(shù)目。(越少越好, 3, 4 個(gè)為宜,不超過 9 個(gè), 頂層扇出較高,中間扇出較少,底層模塊高扇入多 一個(gè)模塊的作用域(范圍),應(yīng)處在這個(gè)模塊的控制域(范圍)之內(nèi) 模塊的作用域:受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合 模塊的控制域:這個(gè)模塊本身以及所有直接或間接從屬于它的模塊的集合 7什么樣是 事物流 ?什么是 變換 流 ?試將相應(yīng)形式的數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)圖 數(shù)據(jù)流圖( 般可分為 變換流 , 事物流 兩種。 變換流 :由輸入輸出變換(或稱處理)三部分組成,是一順序結(jié)構(gòu)。 事物流 :它的某個(gè)加工,分離成許多發(fā)散的數(shù)據(jù)流,形成許多加工路徑,并且根據(jù)輸入值選擇其中一個(gè)路徑來執(zhí)行。(這人加工稱為事務(wù)處理中心) (a),(b)分別是同一模塊 認(rèn)為哪一個(gè)設(shè)計(jì)方案較好 ?請陳述理由。 答:我認(rèn)為 (b)方案較好。要評價(jià)一個(gè)軟件結(jié)構(gòu)設(shè)計(jì),主要看模塊的獨(dú)立性, 要從軟件結(jié)構(gòu)的耦合性和內(nèi)聚性兩個(gè)方面來衡量。對于 (a)方案,模塊 之間形成了控制耦合,因此獨(dú)立性不高,而在 兩個(gè)不同的功能被放在一起,形成的是邏輯內(nèi)聚,內(nèi)聚性不高。對于 (b)方案,模塊 1 和 立性較強(qiáng),在 2內(nèi)部,只完成單一的功能,是功能內(nèi)聚,因此內(nèi)聚性高,可維護(hù)性好,因此相比而言 (b)方案比 (a)方案更好些。 換為軟件結(jié)構(gòu)圖。 (注:圖中 表示或者 ) 解:我們可以看出主圖是變換型 子圖是事務(wù)型 據(jù)結(jié)構(gòu)設(shè)計(jì)的 方法,得到的結(jié)構(gòu)圖如下: 章習(xí)題中的第 8題、第 9題設(shè)計(jì)成相應(yīng)的軟件結(jié)構(gòu)圖( 某銀行的計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)功能是:將儲(chǔ)戶的存戶填寫的存款單或存款單輸入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名住址存款類型存款日期利率等信息,并打印出存款單給儲(chǔ)戶;如果是取款,系統(tǒng)計(jì)算清單給儲(chǔ)戶。 2、某圖書管理系統(tǒng)有以下功能: 借書:輸入讀者借書證。系統(tǒng)首先檢查借書證是否有效,若有效,對于第一次借書的讀者,在借書證上建立檔案。否則,查閱借書文件,檢查該讀者所借圖書是否超過 10本,若已達(dá) 10,拒借,末達(dá) 10本,辦理借書(檢查庫存,修改庫存目錄并將讀者借書情況錄入借書文件。) 還書:從借書文件中讀出與讀者有關(guān)的記錄,查閱所借日期,如超期( 3個(gè)月)作罰款處理。否則,修改庫存目錄與借書文件。 (3)查詢:通過借書文件,庫存目錄文件查詢讀者情況圖書借閱及庫存情況,打印統(tǒng)計(jì)表。 把上面數(shù)據(jù)流程圖轉(zhuǎn)換為軟件結(jié)構(gòu)圖和 第 5 章 1、詳細(xì)設(shè)計(jì)的基本任務(wù)是什么,有哪幾種描述方法 ? 答:詳細(xì)設(shè)計(jì)的基本任務(wù)包括: 1、為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì) 2、為模塊 內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì) 3、對數(shù)據(jù)庫進(jìn)行物理設(shè)計(jì) 4、其他設(shè)計(jì) 5、編寫詳細(xì)設(shè)計(jì)說明書 6、評審 詳細(xì)設(shè)計(jì)的描述方法有圖形、表格和語言,其中圖形常用結(jié)構(gòu)化程序流程圖、盒圖和 題分析圖 )為描述工具,語言常用過程設(shè)計(jì)語言 (作為工具。 2、結(jié)構(gòu)化程序設(shè)計(jì)的基本要點(diǎn)是什么 ? 答 :主要有三個(gè): 1、采用自頂向下、逐步求精的程序設(shè)計(jì)方法 2、使用三種基本控制結(jié)構(gòu)構(gòu)造程序。任何程序都可以由順序、選擇、重復(fù) (循環(huán) )三種基本控制結(jié)構(gòu)構(gòu)造,這三種基本結(jié)構(gòu)的共同點(diǎn)是單入口、單出口。 3、主程序員組 的組織形式。 3、簡述 答: (1)分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用 (2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的數(shù)據(jù)單元。 (3)按一定的規(guī)則由輸入、輸出的數(shù)據(jù)結(jié)構(gòu)導(dǎo)出程序結(jié)構(gòu)。 (4)列出基本操作與條件,并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。 (5)用偽碼寫出程序。 4、請使用流程圖、 和 (1)在數(shù)據(jù) A(1) A(10)中求最大數(shù)和次大數(shù)。 解:如圖所示: a1,a2,.0) a1; a2; i=2 0 IF aiai; IF aiai; UT(2)輸入三個(gè)正整數(shù)作為邊 長,判斷該三條邊構(gòu)成的三角形是等邊、等腰還是一般三角形。 解:如圖: a,b,c) a+bc b+ca c+ab) a=b) a=c) 等邊三角形 ) 等腰三角形 ) IF(a=c) 等腰三角形 ) F (b=c) 等腰三角形 ) 一般三角形 ) 這不是一個(gè)三角形 ) 、用 有一個(gè)表 A(1)、 A(2)、 .A(n),按遞增順序排列。給定一個(gè) 表中用折半法查找。若找到,將表位置 x,否則將零送到 x,同時(shí)將 插入表中。 算法: (1)置初值 H=1(表頭 ), T=N(表尾 )。 (2)置 i=(H+T)/2(取整 )。 (3)若 (i),則找到 ,x;若 (i),則 i+1送入 H;若 (4)查不到時(shí),將 A(i),.)移到 A(i+1).+1),送入 A(i)中。 解:如圖所示: 6、一個(gè)正文文件由若干記錄組成,每個(gè)記錄是一個(gè)字符串,要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù)及文件中空格字符的總個(gè)數(shù)。要求輸出數(shù)據(jù)格式是每復(fù)制一行字符串后,另起一行打印出這個(gè)字符串中的空格數(shù),最后 打印出文件空格的總個(gè)數(shù),用 第 6 章 1、在項(xiàng)目開發(fā)時(shí)選擇程序設(shè)計(jì)語言通常考慮哪些因素 ? 答:通常要考慮的因素有: 項(xiàng)目的應(yīng)用領(lǐng)域、軟件開發(fā)的方法、軟件執(zhí)行的環(huán)境、算法和數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性以及軟件開發(fā)人員的知識(shí)等。 2、舉例說明各種程序設(shè)計(jì)語言的特點(diǎn)及適用范圍 ? 答:以常見的一些編程語言為例: 不僅面向科學(xué)計(jì)算,數(shù)據(jù)處理能力也極強(qiáng)。適用于科學(xué)工程計(jì)算 有很強(qiáng)的數(shù)據(jù)和過程結(jié)構(gòu)化能力,它語言簡明,數(shù)據(jù)類型豐富,程序結(jié)構(gòu)嚴(yán)謹(jǐn)。它是第一個(gè) 體現(xiàn)結(jié)構(gòu)化編程思想的語言。用于描述結(jié)構(gòu)化算法和科學(xué)計(jì)算 ,操作系統(tǒng)的編寫 能強(qiáng)大,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),可大量運(yùn)用指針,具有豐富靈活的操作運(yùn)算符及數(shù)據(jù)處理操作符,它還具有匯編語言的某些特征,使程序運(yùn)行效率高??捎糜谠S多領(lǐng)域,特別是在操作系統(tǒng)等方面有較大優(yōu)勢。 具有極強(qiáng)的數(shù)據(jù)定義能力,程序說明與硬件環(huán)境說明分開、數(shù)據(jù)描述與算法描述分開。結(jié)構(gòu)嚴(yán)謹(jǐn)層次分明,廣泛用于商業(yè)數(shù)據(jù)處理。 構(gòu)化查詢語言,用于對數(shù)據(jù)庫進(jìn)行存取管理。 匯編語言和 要用于實(shí)時(shí)處理和編寫系統(tǒng)軟 件。 一種函數(shù)型語言 ,特別適用于組合問題中符號(hào)運(yùn)算和表處理,用于定理證明、樹的搜索和其他問題的求解。 提供了支持知識(shí)表示的特性,每一個(gè)程序由一組表示事實(shí)、規(guī)則和推理的句子組成,比較接近與自然語言。這兩種語言主要用于人工智能系統(tǒng)開發(fā)。 C+、 是面向?qū)ο蟮脑O(shè)計(jì)語言,用于面向?qū)ο蟮姆介_發(fā)軟件。 3、什么是程序設(shè)計(jì)風(fēng)格 ?為了具有良好的設(shè)計(jì)風(fēng)格,應(yīng)注意哪些方面的問題 ? 答:程序設(shè)計(jì)風(fēng)格是指一個(gè)人編制程序時(shí)所表現(xiàn)出來的特點(diǎn)、習(xí)慣、 邏輯思路等。 要形成良好的程序設(shè)計(jì)風(fēng)格,應(yīng)從源程序文檔化、數(shù)據(jù)說明、語句構(gòu)造、輸入輸出和追求效率幾個(gè)方面加以注意。 第 7 章 1、軟件測試的目的是什么 ?軟件測試中,應(yīng)注意哪些原則 ? 答:軟件測試的目的是為了發(fā)現(xiàn)軟件的錯(cuò)誤。 軟件測試中應(yīng)注意的原則有: (1)測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的輸出數(shù)據(jù)兩部分組成。這樣便 于對照檢查,做到有的放矢。 (2)測試且例不僅選用合理輸入數(shù)據(jù),還要選擇不合理的輸入數(shù)據(jù)。這樣能更多地發(fā)現(xiàn)錯(cuò)誤,提高程序的可靠性。對于不合理的輸入數(shù)據(jù),程序應(yīng)拒絕接受,并給出相應(yīng)的提示。 (3)除 了檢查程序是否做了它應(yīng)該做的事,還應(yīng)該檢查程序是否做了它不應(yīng)該做的事。 (4)應(yīng)制定測試計(jì)劃并嚴(yán)格執(zhí)行,排除隨意性。 (5)長期保留測試用例。 (6)對發(fā)現(xiàn)錯(cuò)誤較多的程序段,應(yīng)進(jìn)行更深入的測試。 (7)程序員應(yīng)避免測試自己的程序。測試是一種 挑剔性 的行為,心理狀態(tài)是測試自己程序的障礙。 2、什么是白盒測試法 ?有哪些覆蓋標(biāo)準(zhǔn) ?試對他們的檢錯(cuò)能力進(jìn)行比較 ? 答:白盒法測試法把測試對象看作一個(gè)打開的盒子,測試人員須了解程序內(nèi)部結(jié)構(gòu)和處理過程,以檢查處理過程的細(xì)節(jié)為基礎(chǔ),對程序中盡可能多的邏輯路徑進(jìn)行測 試,檢驗(yàn)內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯(cuò),實(shí)際的運(yùn)行狀態(tài)與預(yù)期的狀態(tài)是否一致。 白盒法有下列幾種覆蓋標(biāo)準(zhǔn): 語句覆蓋 判定覆蓋 條件覆蓋 判定 /條件覆蓋 條件組合覆蓋 路徑覆蓋 從上到下的覆蓋標(biāo)準(zhǔn)其檢錯(cuò)能力也從弱到強(qiáng),其中條件組合發(fā)現(xiàn)錯(cuò)誤的能力較強(qiáng),凡滿足其標(biāo)準(zhǔn)的測試用例,也必然滿足前四種覆蓋標(biāo)準(zhǔn)。在實(shí)際的邏輯測試中,一般以條件組合覆蓋為主設(shè)計(jì)測試用例,然后再補(bǔ)充部分用例來達(dá)到路徑覆蓋的測試標(biāo)準(zhǔn)。 3、什么是黑盒測試法 ?采用黑盒技術(shù)測試用例有哪幾種方法 ?這些方法各有什么特點(diǎn) ? 答:黑盒測試法把被測試對象看成是 一相黑盒子,測試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只在軟件接口處進(jìn)行測試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求。 采用黑盒技術(shù)測試用例的方法有:等價(jià)類的劃分、邊界值分析、錯(cuò)誤推測和因果圖。 等價(jià)類的劃分,是將輸入數(shù)據(jù)按有效的或無效的 (也稱合理的或不合理的 )劃分成若干個(gè)等價(jià)類,測試每個(gè)等價(jià)類的代表值就等于對該類其他值的測試。這樣就把漫無邊跡的隨機(jī)測試改為有針對性的等價(jià)類測試,用少量有代表性的例子代替大量測試目的相同的例子,能有效地提高測試效率。但這個(gè)方法的缺點(diǎn)是沒有注意選擇某些高效的、能夠發(fā)現(xiàn)更 多錯(cuò)誤的測試用例。 邊界值分析法一般與等價(jià)類劃分結(jié)合起來。但它不是從一個(gè)等價(jià)類中任選一個(gè)例子做代表,而是將測試邊界情況作為重點(diǎn)目標(biāo),選取正好等于、剛剛大于和剛剛小于邊界值的測試數(shù)據(jù)。 (邊界情況是指輸入等價(jià)類和輸入等價(jià)類邊界上的情況。 )這種方法可以查出更多的錯(cuò)誤,因?yàn)樵诔绦蛑型谔幚磉吔缜闆r時(shí)易發(fā)生錯(cuò)誤。 錯(cuò)誤推測法是在測試程序時(shí),人們根據(jù)經(jīng)驗(yàn)或直覺推測程序中可能存在的錯(cuò)誤,從而有針對性地編寫檢查這些錯(cuò)誤的測試用例。 因果圖能夠有效地檢測輸入條件的各種組合可能會(huì)引起的錯(cuò)誤。它的基本原理是通過畫因果圖,把用自 然語言描述的功能說明轉(zhuǎn)換為判定表,最后為判定表的每一列設(shè)計(jì)一個(gè)測試用例。 這幾種方法都不能提供一組完整的測試用例,在實(shí)際測試中應(yīng)把各種方法結(jié)合起來使用。 綜合策略:就是聯(lián)合使用上述幾種測試方法,盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。 4、軟件測試要經(jīng)過哪些步驟 ?這些測試與軟件開發(fā)各階段之間有什么關(guān)系 ? 答:軟件測試要經(jīng)過的步驟是:單元測試 集成測試 確認(rèn)測試 系統(tǒng)測試。 單元測試對源程序中每一個(gè)程序單元進(jìn)行測試,檢查各個(gè)模塊是否正確實(shí)現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯(cuò)誤。該階段涉及編碼和詳細(xì)設(shè)計(jì)文檔。 集 成測試是為了檢查與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的有關(guān)問題,也就是檢查概要設(shè)計(jì)是否合理有效。 確認(rèn)測試主要是檢查已實(shí)現(xiàn)的軟件是否滿足需求規(guī)格說明書中確定了的各種需求。 系統(tǒng)測試是把已確認(rèn)的軟件與其他系統(tǒng)元素 (如硬件、其他支持軟件、數(shù)據(jù)、人工等 )結(jié)合在一起進(jìn)行測試。以確定軟件是否可以支付使用。 5、單元測試有哪些內(nèi)容 ?測試中采用什么方法 ? 答:單元測試主要針對模塊的以下五個(gè)基本特征進(jìn)行測試: (1)模塊接口 (2)局部數(shù)據(jù)結(jié)構(gòu) (3)重要的執(zhí)行路徑 (4)錯(cuò)誤處理 (5)邊界條件 測試的方法是為被測試模塊編 寫驅(qū)動(dòng)模塊和樁模塊來實(shí)現(xiàn)被測試單元的可運(yùn)行。通過驅(qū)動(dòng)模塊來模擬被測試模塊的上級(jí)調(diào)用模塊,以上級(jí)模塊調(diào)用被測模塊的格式驅(qū)動(dòng)被測模塊,接收被測模塊的測試結(jié)構(gòu)并輸出。樁模塊則用來代替被測試模塊所調(diào)用的模塊。它的作用是返回被測模塊所需的信息。 6、什么是集成測試 ?非漸增式測試與漸增式測試有什么區(qū)別 ? 漸增式測試如何組裝模塊 ? 答:集成測試是指在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求組裝成一個(gè)完整的系統(tǒng)進(jìn)行的測試。 非漸增式測試是指首先對每個(gè)模塊分別進(jìn)行單元測試,再把所有模塊組裝成一個(gè)完整的系統(tǒng)進(jìn)行的測試。而漸增式 測試就是逐個(gè)把未經(jīng)測試的模塊組裝到已經(jīng)過測試的模塊上去進(jìn)行集成測試,每加入一個(gè)新模塊進(jìn)行一次集成測試,重復(fù)此過程直到程序組裝完畢。漸增式測試有兩種不同的組裝方法:自頂向下和自底向上結(jié)合。 兩者區(qū)別是: (1)非漸增式方法把單元測試和集成測試分成兩個(gè)不同的階段,前一階段完成模塊的單元測試,后一階段完成集成測試。而漸增式測試往往把單元測試和集成測試合在一起,同時(shí)完成。 (2)非漸增式需要更多的工作量,因?yàn)槊總€(gè)模塊都需要驅(qū)動(dòng)模塊和樁模塊,而漸增式利用已測試過的模塊作為驅(qū)動(dòng)模塊或樁模塊,因此工作量少。 (3)漸增式 可以較早地發(fā)現(xiàn)接口之間的錯(cuò)誤,非漸增式最后組裝時(shí)才發(fā)現(xiàn)。 (4)漸增式有利于排錯(cuò),發(fā)生錯(cuò)誤往往和最近新加入的模塊有關(guān),而非漸增式發(fā)現(xiàn)接口錯(cuò)誤推遲到最后,很難判斷是哪一部分接口出錯(cuò)。 (5)漸增式比較徹底,已測試的模塊和新的模塊再測試。 (6)漸增式點(diǎn)用時(shí)間較多,但非漸增式所需更多的驅(qū)動(dòng)模塊和樁模塊也占用一些時(shí)間。 (7)非漸增式開始可并行測試所有模塊,能充分利用人力,對測試大型軟件很有意義。 7、什么是確認(rèn)測試 ?該階段有哪些工作 ? 答:確認(rèn)測試又稱有效性測試。它的任務(wù)是檢查軟件的功能與性能是否與需求規(guī)格說明 書中確定的指標(biāo)相符合。因而需求說明是確認(rèn)測試的基礎(chǔ)。確認(rèn)測試階段有兩項(xiàng)工作:進(jìn)行確認(rèn)測試與軟件配置審查。 8、調(diào)試的目的是什么 ?調(diào)試有哪些技術(shù)手段 ? 答:調(diào)試則是在進(jìn)行了成功的測試之后才開始的工作。調(diào)試的目的是確定錯(cuò)誤的原因和位置,并改正錯(cuò)誤,因此調(diào)試也稱為糾錯(cuò) (調(diào)試的技術(shù)手段有簡單的調(diào)試方法、歸納法、演繹法和回溯法等。 9、將正確答案的編號(hào)填入題目空白處: 在白盒測試用例中,有語句覆蓋、條件覆蓋、判定覆蓋、路徑覆蓋等,其中 (A)是最強(qiáng)的覆蓋準(zhǔn)則。為了對下圖所示的程序進(jìn)行覆蓋測試,必須適當(dāng)?shù)剡x 取測試數(shù)據(jù)。若 X, 供選擇的測試數(shù)據(jù)組共有 I, 組 (如表中給出 ),則實(shí)現(xiàn)語句覆蓋至少應(yīng)采用的測試數(shù)據(jù)組是 (B);實(shí)現(xiàn)條件覆蓋至少應(yīng)采用的測試數(shù)據(jù)組是 (C);實(shí)現(xiàn)路徑覆蓋至少應(yīng)采用的測試數(shù)據(jù)組是 (D)或 (E)。 可供選擇的答案: A: (1)語句覆蓋 (2)條件覆蓋 (3)判定覆蓋 (4)路徑覆蓋 B E: (1)(2)(3)(4)(5)I、 (6) (7)I, (8)I、 答: A: (4) B:(1) C:(4) D: (5) E: (8) 10、請對第 5章習(xí)題第 5題 (2)判定三角形類別 程序算法用等價(jià)類劃分和邊界值分析法設(shè)計(jì)測試用例,并檢查邏輯覆蓋標(biāo)準(zhǔn)。 解:先劃分等價(jià)類并編號(hào): 為合理等價(jià)類設(shè)計(jì)測試用例,對于表中對應(yīng)的四個(gè)合理等價(jià)類,用三個(gè)測試用例覆蓋。 為每一個(gè)不合理等價(jià)類設(shè)計(jì)一個(gè)測試用例: 用邊界值法設(shè)計(jì)測試用例: 第 8 章 1、軟件維護(hù)有哪些內(nèi)容? 答:( 1)校正性維護(hù)。在軟件交付使用后,一些隱含的錯(cuò)誤在某些特定的使用環(huán)境下會(huì)暴露出來。為了識(shí) 別和糾正錯(cuò)誤,修改軟件性能上的缺陷,應(yīng)進(jìn)行確定和修改錯(cuò)誤的過程,這個(gè)過程就稱為校正性維護(hù)。 ( 2)適應(yīng)性維護(hù)。為了使應(yīng)用軟件適應(yīng)計(jì)算機(jī)硬件、軟件環(huán)境及數(shù)據(jù)環(huán)境的不斷發(fā)生的變化而修改軟件的過程稱為適應(yīng)性維護(hù)。 ( 3)完善性維護(hù)。為增加軟件功能、增強(qiáng)軟件性能、提高軟件運(yùn)行效率而進(jìn)行的維護(hù)活動(dòng)稱為完善性維護(hù)。 ( 4)預(yù)防性維護(hù)。為了提高軟件的可維護(hù)性和可靠性而對軟件進(jìn)行的修改稱為預(yù)防性維護(hù)。 2、 軟件維護(hù)的特點(diǎn)是什么? 答:主要體現(xiàn)在三個(gè)方面: ( 1) 非結(jié)構(gòu)化維護(hù)和結(jié)構(gòu)化維護(hù)。軟件的開發(fā)過程對軟件 的維護(hù)有很大的影響。若不采用軟件工程的方法開發(fā)軟件,則軟件只有程序而無文檔,維護(hù)工作非常困難,這是一種非結(jié)構(gòu)化的維護(hù)。若采用軟件工程的方法開發(fā)軟件,則各階段都有相應(yīng)的文檔,容易進(jìn)行維護(hù)工作,這是一種結(jié)構(gòu)化的維護(hù)。 ( 2) 維護(hù)的困難性。軟件維護(hù)的困難性是由于軟件需求分析和開發(fā)方法的缺陷。軟件生存周期中的開發(fā)階段沒有嚴(yán)格而又科學(xué)的管理和規(guī)劃,就會(huì)引起軟件運(yùn)行時(shí)的維護(hù)困難。( 3) 軟件維護(hù)的費(fèi)用。軟件維護(hù)的費(fèi)用在總費(fèi)用中的比重是在不斷增加的,這是軟件維護(hù)有形的代價(jià)。另外還有無形的代價(jià),即要占有更多的資源。軟 件維護(hù)費(fèi)用增加的占有原因是軟件維護(hù)的生產(chǎn)率非常低。 3、 軟件維護(hù)的流程是什么? 答:軟件維護(hù)的流程如下:知道維護(hù)申請報(bào)告、審查申請報(bào)告并批準(zhǔn)、運(yùn)行維護(hù)并做詳細(xì)記錄、復(fù)審。 4、 軟件維護(hù)的副作用有哪些? 答:維護(hù)的副作用有以下三種: ( 1) 編碼副作用。在使用程序設(shè)計(jì)語言修改源代碼時(shí)可能引入的錯(cuò)誤。 ( 2) 數(shù)據(jù)副作用。在修改數(shù)據(jù)結(jié)構(gòu)時(shí),有可能造成軟件設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)不匹配,因而導(dǎo)致軟件錯(cuò)誤。數(shù)據(jù)副作用是修改軟件信息結(jié)構(gòu)導(dǎo)致的結(jié)果。但它可以通過詳細(xì)的設(shè)計(jì)文檔加以控制。 ( 3) 文檔副作用。如果 對可執(zhí)行軟件的修改沒有反映在文檔中,就會(huì)產(chǎn)生文檔副作用。 第 910 章 1、說明對象、類、類結(jié)構(gòu)、消息的基本概念。 答: (1)對象:對象是人們要進(jìn)行研究的任何事物,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計(jì)劃或事件。對象包括有形實(shí)體、作用、事件、性能說明等類型。對象具有狀態(tài)和行為。一個(gè)對象用數(shù)據(jù)值來描述它的狀態(tài),對象的操作則用于改變狀態(tài),對象及其操作就是對象的行為。對象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中。對象內(nèi)的數(shù)據(jù)具有自己的操作,從而可靈活地專門描述對象的獨(dú)特行為,具有較強(qiáng)的 獨(dú)立性和自治性,其內(nèi)部狀態(tài)不受或很少受外界的影響,具有很好的模塊化特點(diǎn)。為軟件重用奠定了堅(jiān)實(shí)的基礎(chǔ)。 (2)類:具有相同或相似性質(zhì)的對象的抽象就是類。因此,對象的抽象就是類,類的具體化就是對象,也可以說類的實(shí)例是對象。 (3)類結(jié)構(gòu):類與類之間的結(jié)構(gòu)關(guān)系,包括一般 部分結(jié)構(gòu)關(guān)系。 一般 可以說是 或 關(guān)系或 is a關(guān)系,類的這種層次結(jié)構(gòu)可用來描述現(xiàn)實(shí)世界中的一般化的抽象關(guān)系,通常越在上層的類越具有一般性和共性,越在下層的類越具體、越細(xì)化。 整體 組裝結(jié)構(gòu),它們之間的關(guān)系是一種 與 關(guān)系,或者是 a關(guān)系。類的這種層次關(guān)系可用來描述現(xiàn)實(shí)世界中的類的組成的抽象關(guān)系。上層的類具有整體性,下層的類具有成員性。 在類的層次結(jié)構(gòu)中,通常上層的類稱為父類或超類,下層類稱為子類。 (4)消息:對象之間進(jìn)行通信的構(gòu)造叫做消息。在對旬的操作中,當(dāng)一個(gè)消息發(fā)送給某個(gè)對象時(shí),消息包含接收對象去執(zhí)行某種操作的信息。接收消息的對象經(jīng)過解釋,然后給予響應(yīng)。這種通信機(jī)制稱為消息傳遞。發(fā)送一條消息的格式是 對象名 參數(shù) )。 2、說明面向?qū)ο蟮奶卣骱鸵亍?答:面向?qū)ο蟮奶卣魇牵?(1)對象唯一性。每個(gè)對象都有自身唯一的標(biāo)識(shí),在對象生存期中,其標(biāo)識(shí)不變,不同的對象不能有不同的標(biāo)識(shí)。 (2)分類性。是指將具有一致的數(shù)據(jù)結(jié)構(gòu) (屬性 )和行為 (操作 )的對象抽象成類 (3)繼承性。是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。 (4)多態(tài)性。是指相同的操作或函數(shù)過程可以作用于多種類型的對象上并獲得不同的結(jié)果。 面向?qū)ο蟮囊厥牵?(1)抽象。 (2)封裝性 (信息隱蔽 ) (3)共享性。 3、說明對象模型的特征,舉現(xiàn)實(shí)世界的例子,給出它的一般關(guān) 系、聚集關(guān)系的描述。 答:對象模型表示了靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)數(shù)據(jù)性質(zhì),描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它是從客觀世界實(shí)體的對象關(guān)系角度來描述。表現(xiàn)了對象的相互關(guān)系。該模型的特征是用對象圖來表現(xiàn)對象的結(jié)構(gòu)、屬性和操作,它是分析階段三個(gè)模型的核心,也是其他兩個(gè)模型的框架。 在對象模型中,定義了兩種類的層次結(jié)構(gòu):一般化關(guān)系和聚集關(guān)系。 一般化關(guān)系是在保留對象差異的同時(shí)共享對象相似性的一種高度抽象方式,即 一般 的關(guān)系。比如下圖所示: 聚集關(guān)系是一

溫馨提示

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

評論

0/150

提交評論