版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程緒論1. 什么是軟件危機?為什么會產生軟件危機?答:軟件危機是指在計算機軟件的開發(fā)和維護過程中遇到的一系列嚴重問題。(1).軟件維護費用急劇上升,直接威脅計算機應用的夸大。(2). 軟件生產技術進步緩慢2. 什么是軟件生產工程化?工程化生產方法與早期的程序設計方法主要差別在哪里?答:結構化程序設計地出現(xiàn),使許多產業(yè)界認識認識到必須把軟件生產從個人化方式改變?yōu)楣こ袒?。采用工程的概念、原理、技術和方法開發(fā)與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發(fā)出高質量的軟件并有效地維護它,這就是軟件工程,同時這也是工程化生產方法。3. 分別說明(1
2、)軟件開發(fā)方法與開發(fā)工具;(2)軟件技術與軟件管理的相互關系。答:(1)工具和方法,是軟件開發(fā)技術的兩大支柱,它們密切相關。當一種方法提出來并證明有效后,往往隨之研制出相應的工具,來幫助實現(xiàn)和推行這種方法。新方法在推行初期,總有人不愿接受和采用。若將新方法融合于工具之中,使人們通過使用工具來了解新方法,就能更快促進新方法的推廣。 (2)在工業(yè)生產中,即使有先進的技術和設備,管理不善的企業(yè)也不能獲得良好的效益。軟件在生產中不能按質按時完成計劃,管理混亂往往是其中的重要原因。所以對于一個理想的軟件工程環(huán)境,應該同時具備技術和管理兩個方面。4. 試從你的親身實踐,談談軟件工具在軟件開發(fā)中的作用。答:
3、用 c+開發(fā)一個軟件,是校園一卡通的模塊。首先,要在編輯程序支持下在計算機中輸入源程序。然后編譯程序,把源程序翻譯成目標程序。如果發(fā)現(xiàn)錯誤,就重新調入編輯程序對源程序進行修改。編譯通過后,再調用連接程序吧所有通過了編譯目標程序連同與之有關的程序連接起來,構成一個能在計算機上運行的可執(zhí)行軟件。編譯程序,編輯程序,連接程序以及支持他們的計算機操作系統(tǒng),都屬于軟件工具。離開這些工具,軟件開發(fā)就是去了支持,變得十分困難和低效,甚至不能運行。5. 什么是軟件工程環(huán)境?談談你對環(huán)境重要性的認識。答:方法與工具相結合,再加上配套的軟、硬件支持就形成環(huán)境。例如在批處理時代,用戶開發(fā)的程序是分批送入計算機中心的
4、計算機的,有了錯誤, 就得下機修改。程序員對自己寫的程序只能繼續(xù)地跟蹤,思路經常被迫中斷,效率難于提高。分時系統(tǒng)的使用,使開發(fā)人員從此能在自己的終端上跟蹤程序的開發(fā),僅此一點,就明顯提高了開發(fā)的效率。6. 何謂面向對象軟件工程?簡述它與傳統(tǒng)軟件工程在各型軟件開發(fā)中的作用。答:以面向對象程序設計為基礎。7. 軟件按規(guī)模大小可分成哪幾類?簡述軟件工程中各型軟件開發(fā)中的作用。答:按規(guī)模分為極小、小、中、大、甚大、極大。(1)中小型軟件:軟件工程對改進軟件質量,提高程序員生產率和滿足用戶的需求,有很大的作用。(2)大型軟件:這類軟件必須從頭至尾堅持軟件工程的方法,嚴格遵守標準文檔格式和正規(guī)的復審制度,
5、才能避免或減少混亂,真正開發(fā)出大型的軟件。8. 什么是形式化軟件開發(fā)方法?實現(xiàn)這類開發(fā)的困難和出路在哪里?答:它是一種基于數(shù)學的開發(fā)技術,主要采用數(shù)學的方法來描述系統(tǒng)的性質(例如程序變換和程序驗證等)。形式化的方法加上自動化的開發(fā)環(huán)境,可能是解決這一難題的出路。軟件開發(fā)模型1. 什么是軟件生存周期?把生存周期劃分為階段的目的是什么? 答:軟件生存周期劃分為計劃、開發(fā)和運行 3 個時期;把整個生存周期劃分為較小的階段,給每個階段賦予確定而有限的任務,就能夠化簡每一步的工作內容,使因為軟件規(guī)模而增長而大大增加了軟件復雜性變得交易控制和管理。2. 傳統(tǒng)的瀑布模型把生存周期分為哪些階段?瀑布模型軟件開
6、發(fā)有哪些特點?答:瀑布模型在編碼以前安排了分析階段和設計階段;階段間具有順序性和依賴性。3. 說明文檔和復審對于軟件質量的控制的作用。答:每一階段都要完成規(guī)定的文檔,沒有完成文檔,就認為沒有完成該階段的任務。軟件開發(fā)是許多人共同參加的計劃,完整與合格的文檔,不僅是開發(fā)時期軟件人員之間互相通信的媒介,也是運行時期對軟件進行維護的中要依據(jù)。每一階段都要對已完成的文檔進行復審, 以便盡早發(fā)現(xiàn)問題,消除隱患。愈是早期潛伏下來的故障,暴露出來的時間愈晚,排除故障需付出的代價也就愈高。及時復審是保證軟件質量,降低開發(fā)成本的重要措施。4. 什么是快速原型法?其快速表現(xiàn)在哪里?答:首先建立一個能夠反映用戶主要
7、需求的原型,讓用戶實際看一看未來系統(tǒng)的概貌,以便判斷哪些功能是符合需要的,哪些方面還需要改進。然后將原型改進,最終建立完全符合用戶要求的新系統(tǒng)。它的快速表現(xiàn)在能夠縮短開發(fā)周期的語言和工具,能在短時間內提供出成品,但不包括成品中的細節(jié),然后讓客戶進行對比。5. 實現(xiàn)快速原型法的最終系統(tǒng)可以有幾種方法?請說明并加以比較。答:原型系統(tǒng)僅包括未來系統(tǒng)的主要功能,以及系統(tǒng)的重要接口。為了盡快向用戶提供原型,開發(fā)原型系統(tǒng)時應盡量使用能縮短開發(fā)周期的語言和工具。最終系統(tǒng)的形成可以采用原型廢棄不用,另一方法是補充修改模型獲得最終系統(tǒng)。方法一不包括系統(tǒng)的細節(jié)。后一種方法在實際工作中,由于原型系統(tǒng)使用的語言往往存
8、在效率不高等原因,除了少數(shù)簡單的事務系統(tǒng)外,大多數(shù)原型都廢棄不用,僅把建立原型的過程當作幫助定義軟件需求的一種手段。 6比較增量模型和螺旋模型的特點,有什么不同和相似的地方?答:增量模型是瀑布模型的順序特征與快速原型法的迭代特征相結合的產物。螺旋模型是一種迭代模型,每迭代一次,螺旋線就前進一周。增量模型每個增量具有高內聚低耦合,高度的獨立性。而螺旋模型它在結合瀑布模型與快速原型的基礎上還增加了風險分析。7為什么利用轉換模型開發(fā)軟件有一定難度?什么是凈室軟件工程?答:從理論上說,一個正確的,滿足客戶需要的形式化規(guī)格說明,經過一系列正確的程序變化后,可以確保得到這樣一個形式化規(guī)格說明,目前還有較高
9、的難度,同時,軟件開發(fā)者很少具有實用形式化方法所需的背景知識,況且,轉換模型開發(fā)軟件現(xiàn)在還很費時和昂貴! 凈室基本思想是力求在分析和設計階段就消除錯誤,確保正確,然后在無缺陷或“潔凈”的狀態(tài)下實現(xiàn)軟件的制作。 8哪些開發(fā)模型適用于面向對象的軟件開發(fā)?答:構件集成模型9比較螺旋模型和構件集成模型的異同。答:構件集成模型利用預先對封裝好的軟件構件來構造應用軟件系統(tǒng),它融合了螺旋模型的很多特征,支持軟件開發(fā)的迭代方法。軟件需求分析1. 需求分析的任務是什么?怎樣理解分析階段的任務是決定“做什么”,而不是“怎么做”?答:需求分析主要有兩個任務:第一是通過對問題及其環(huán)境的理解、分析和綜合建立分析模型;第
10、二是在完全弄清用戶對軟件系統(tǒng)的確切要求的基礎上,用“軟件需求規(guī)格說明書”把用戶的需求表達出來。需求分析的任務就是為了明確要開發(fā)的是一個什么樣的系統(tǒng),而不是去怎么去實現(xiàn)這個系統(tǒng)。2. 需求分析要經過哪些步驟?答:需求獲取、需求提煉、需求描述、需求驗證。3. 有哪兩種主要的分析模型,它們有什么聯(lián)系?答:面向對象分析模型、結構化分析模型。前者是采用面向對象的思想進行軟件需求分析的建模過程,而后者模型的核心是 dd,它是設計各種數(shù)據(jù)對象的總和。他們的模型分別起到了描述數(shù)據(jù)模型,功能模型與行為模型的作用。4. 什么是結構化分析?它的“結構化”體現(xiàn)在哪里?答:是使用 dfd、dd、結構化語言、判定表和判定
11、樹等工具,來建立一種新的、稱為結構化說明書的目標文檔。5. 什么是面向對象分析?其主要思想是什么?答: ooa 面向對象的分析是采用面向對象的思想進行軟件需求分析建模的過程.主要思想是采用面向對象的思想。5. 需求說明(或需求規(guī)格說明書)由哪些部分組成?各部分的主要內容是什么?答:引言、信息描述、功能描述、行為描述、質量描述、接口描述、其他描述。引言:主要敘述在文體定義階段確定的關于軟件的目標與范圍,簡要介紹系統(tǒng)背景、蓋帽、軟件項目約束和按考資料等。信息描述:給出對軟件所含信息的詳細描述,包括信息的內容、關系、數(shù)據(jù)流向、控制流向和結構等。功能描述:對軟件功能要求的說明,包括系統(tǒng)功能劃分、每個功
12、能的處理說明、限制和控制描述等。行為描述:包括對系統(tǒng)狀態(tài)變化及事件和動作的描述,據(jù)此可以檢查外部事件和軟件內部的控制特征。質量描述:闡明在軟件交付使用前需要進行的共更能測試和性能測試,并且規(guī)定源程序和文檔應該遵守的各種標準。接口描述:包括系統(tǒng)的用戶界面、硬件接口、軟件接口和通信接口等的說明。其他描述:闡述系統(tǒng)設計和實現(xiàn)上的限制,系統(tǒng)的假設和依賴等其他需要說明的內容。6. 為什么 dfd 要分層?畫分層 dfd 要遵循哪些原則?答:大型復雜的軟件系統(tǒng),其 dfd 可能含有數(shù)百乃至數(shù)千個加工, 不能設想一次就將它們全部畫齊。正確的做法是:從系統(tǒng)的基本模型(把整個系統(tǒng)看成一個加工)開始,逐層地對系統(tǒng)
13、進行分解。原則: 由頂向下,逐步細化。7. dfd 和 cfd 有什么區(qū)別?8. 什么是系統(tǒng)的行為模型,如何建立?答:類對象模型所表示的是面向對象分析模型中的靜態(tài)部分,而對象行為模型則用于描述系統(tǒng)的動態(tài)行為,即系統(tǒng)如何對應外部事件- 系統(tǒng)的行為模型。建立一個對象行為模型一般要經歷一些過程:評估所以的用例來理解系統(tǒng)中的交互序列;找出驅動交互序列的事件;為每個用例創(chuàng)建事件軌跡;為對象創(chuàng)建狀態(tài)轉換圖。9. 選一個系統(tǒng)(例如工資處理系統(tǒng)、飛機訂票系統(tǒng)、圖書館管理系統(tǒng)等),分別用 sa 方法和 ooa 方法對它進行分析,并給出分析模型。答: 軟件設計概述 1.傳統(tǒng)軟件工程把設計過程分成 2 步:概要設計
14、與詳細設計。10. 試述這 2 個階段個字主要完成的任務。答:概要設計,包括結構設計和接口設計,并編寫設計文檔。詳細設計,其任務是確定各個軟件組件的數(shù)據(jù)結構和操作,產生描述個軟件組件的詳細設計文檔。為什么大型軟件設計必須分成兩步走?答:概要設計和詳細設計是軟件設計的兩步,概要設計確定模塊的劃分,模塊之間的調用關系,接口等;詳細設計細分模塊、數(shù)據(jù)結構等; 大型系統(tǒng)中分兩步走是必要的,概要設計確定模塊劃分后,詳細設計可把各模塊交給不同的人做詳細設計,大型系統(tǒng)中這樣的分工是比較合理的,能提高效率,做到合理分工。2. 解釋下列名詞:(1)模塊;(2)模塊化;(3)模塊化設計。 答:模塊是一個擁有明確定
15、義的 、輸出和特性的程序實體。模塊化是指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。每個模塊完成一個特定的子功能,所有的模塊按某種方法組裝起來,成為一個整體,完成整個系統(tǒng)所要求的功能。模塊化設計是把大型軟件按照規(guī)定的原則劃分成一個個較小的、相對獨立但又相互關聯(lián)的模塊。但又相互關聯(lián)的模塊。3. 什么是模塊獨立性?用什么度量?答:模塊獨立性指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。模塊獨立的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結果。獨立性可以從兩個方面來度量: 模塊本身的內聚性(cohesion)和模塊之間的耦合(coupling)。4
16、. 具體說明“一個模塊,一個功能”的含義,并試討論這類模塊的優(yōu)點。5. 什么是自頂向下設計?為什么說它尤其適用于大型軟件的開發(fā)? 答:設計時首先對所設計的系統(tǒng)有一個全面的理解。然后從頂層開始, 連續(xù)的逐層向下分解,直至系統(tǒng)的所有模塊都笑道便于掌握為止。自底向上設計反映了軟件規(guī)模較小的設計思想,隨著軟件規(guī)模的增長, 這種方法的缺點逐漸暴露出來。而自頂向下的設計需要進行詳細的可行性論證,易于修改和擴展,整體測試較易通過。6. 自頂向下逐步細化的方法也適用于編寫教材。使用這種方法說明編寫一本教材的過程。7. 輸入三角形的 3 條邊長(假定這些邊確實能組成一個三角形),用它們來鑒別三角形的性質(等腰、
17、等邊、任意或者直角),并輸出結果。試用逐步細化的方法設計這一程序,并用結構化語言(漢語或英語) 寫出細化過程中每一步的過程描述。8. 比較概要設計復審和過程設計復審的評審內容,并說明他們采取的復審方式有何異同。答:概要設計復審的重點放在系統(tǒng)的總體結構、模塊劃分、內外結構等方面。例如軟件結構是否滿足需求?結構形態(tài)是否合理?層次是否清晰?模塊的劃分是不是符合優(yōu)化原則?系統(tǒng)的人機界面、內外部接口、以及出錯處理是不是合理等。過程設計復審的重點放在模塊的具體設計上。例如模塊設計能否滿足其功能與性能要求?選擇算法與數(shù)據(jù)結構是否合理,是否符合編程語言的特點?設計描述簡單、清晰等。概要設計復審常用的復審方式是
18、正式復審。傳統(tǒng)的設計方法1. 簡釋事務、事務型結構和變換型結構。答:一次動作、時間或狀態(tài)變化也可以成為一次事務。事務型結構由至少一條接受路徑、一個事務中心與若干條動作路徑組成。變換型結構由至少一條傳入路徑、變換中心和傳出路徑組成。2. 簡述從 dfd 圖到 sc 圖的映射規(guī)則。答:(1)復審 dfd 圖,必要時可再次進行修改或細化;(2)鑒別 dfd 圖所表示的軟件系統(tǒng)的結構特征,確定它所代表的軟件結構是屬于變換型還是事務型。(3)按照 sd 方法規(guī)定一組規(guī)則, 把 dfd 圖轉換為初始的 sc 圖;(4)按照優(yōu)化設計的指導原則改進初始的 sc 圖,獲得最終 sc 圖。5.某事務系統(tǒng)具有下列功
19、能:(1)讀入用戶命令,并檢查其有效性;(2)按照命令的編號(1-4 號)進行分類處理(3)1 號命令計算產品共識,能根據(jù)用戶給出的各種產品數(shù)量,計算出各工種的需要工時和缺額工時;(4)2 號命令計算材料消耗,根據(jù)產品的材料定額和用戶給出的生產數(shù)量,計算各種材料的需求量(5)3 號命令編制材料訂貨計劃(6)4 號命令計算產品成品試用結構化分析和設計方法畫出該系統(tǒng)的 dfd 圖并據(jù)此到處系統(tǒng)的 sc 圖。對動作分支中的 1 號和 2 號命令要詳細描述和設計,3 號命令和 4號命令允許從略,可僅用示意圖表示。7. 簡述過程(詳細)設計說明書的主要內容,怎樣對它進行復審? 答:(1)為每個模塊確定采
20、用的算法。選擇某種適當?shù)墓ぞ弑磉_算法的過程,寫出模塊的詳細過程描述;(2)確定每一模塊使用的數(shù)據(jù)結構;(3)確定模塊接口的細節(jié),包括對系統(tǒng)外部的接口和用戶界面,對系統(tǒng)內部其它模塊的接口,以及關于模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細節(jié)。8. 簡化比較本章講解的幾種過程設計表達工具的優(yōu)缺點。答:流程圖和 n-s 圖,偽代碼和 pdl 語言。流程圖具有能隨意表達任何程序邏輯的有點,隨著結構化程序設計方法的普及,流程圖在描述程序邏輯時的隨意性與靈活性恰恰變成了它的缺點。n-s圖所有的程序結構均用方框來表示,無論并列或者嵌套,程序的結構清晰可見。容易養(yǎng)成良好的程序設計風格。缺點是當程序內嵌的層數(shù)增多
21、時,內層的方塊越畫越小,不僅增加畫圖的困難, 也使圖形的清晰性受到影響。偽代碼工作量比畫圖小,又容易轉換為真正的代碼,pdl 具有很強的描述功能,是一種十分靈活和有用的過程表達工具。9. 任選一種排序(從小到大)算法,分別用流程圖、n-s 圖和 pdl語言描述其詳細過程。11. 試將下列用 pdl 偽代碼表示的某種模塊的過程性描述改用 n-s 圖表示。execute process arepeat until condition x8execute process bif condition x1 then begin execute process fif condition x6 then
22、 repeat until condition x7 execute process iendrepelse beginexecute process gexecute process hendendifelse case of xiwhen contdition x2 selectdo while contition x5execute process cenddowhen condition x3 select process dwhen condition x4 select process eendcaseendifendrepexecute process jendexecute p
23、rocess a execute process b tx1fexecute processf tx3f tx4f tx6f execute process d execute process e execute process iexecute process grepeat until x7execute process hexecute process jrepeat until condition x812. 圖 5-63 顯示了某倉庫零件收發(fā)管理程序的數(shù)據(jù)結構,用 jackson圖表示。圖中 part 表示零件,issue 和 recept 分別表示零件的出庫量和入庫量?,F(xiàn)要求:(1
24、)找出輸入結構與輸出結構之間的對應單元(2)畫出用 jackson 圖表示的程序結構(3)列出程序所需要的操作,并加到第(2)步畫出的程序結構圖上(4)用偽代碼寫出收發(fā)管理程序的過程性表示input filepart group*receptmovement record*issuenet movement line*bodyheadingoutput report13. 某工資管理程序的輸入/輸出數(shù)據(jù)中包括:輸入數(shù)據(jù):職工姓名, 日工資率,工作天數(shù),加班天數(shù),病事假天數(shù),補貼變更,扣款變更等;輸出數(shù)據(jù):職工姓名,基本工資,各項補貼,各項扣款,事發(fā)工資等;試用 jackson 方法設計這一程序
25、 。 軟件測試 1.軟件測試的基本任務是什么?測試與糾錯有什么不同?測試的目的是發(fā)現(xiàn)程序錯誤;測試的任務是通過在計算機上執(zhí)行程序,暴露程序中潛在的錯誤。糾錯的目的是定位和糾正錯誤;糾錯的任務是軟件故障,保證程序的可靠運行。通常把一次程序執(zhí)行需要的測試數(shù)據(jù)成為一個測試用例, 每個測試用例產生一個相應的測試結果,如果它與期望結果不符,便說明程序中存在錯誤,需要用糾錯來改正。2.怎樣理解下面的話所蘊含的意義:“程序測試只能證明錯誤的存在,但不能證明錯誤不存在”、“測試是為了證明程序有錯,而不是證明程序無錯”揭示了測試固有的一個重要性質不徹底性。徹底測試就是讓被測程序在一切可能的輸入情況下全部執(zhí)行一遍
26、,又稱窮舉測試。在實際情況中是根本無法實現(xiàn)的。這就注定了一切實際測試都是不徹底的,當然也就不能保證測試后的程序不存在遺留的錯誤。測試的分類測試方法測試用例和測試結果測試用例=測試數(shù)據(jù)+期望結果測試結果=測試數(shù)據(jù)+期望結果+實際結果 黑盒測試等價測試把輸入數(shù)據(jù)的可能值劃分為若干個等價類,使每類中的任何一個測試用例,都能代表同一等價類中的其它測試用例。采用等價測試注意以下兩點:劃分等價類不僅要考慮代表“有效”輸入值的有效等價類,還要考慮代表“無效”輸入值得無效等價類;每一無效等價類至少要用一個測試用例,不然可能漏掉某一類錯誤,但允許若干個有效等價類合用一個測試用例,以便進一步減少測試的次數(shù)。 【例
27、】某工廠公開招工,規(guī)定報名者年齡在 16 周歲至 35 周歲(在 1967 年 2 月到 1986 年 3 月)。如果出生年月不在上述范圍內,將拒絕接受,并顯示“年齡不合格”等出錯信息。試用等價分類法設計這一程序功能的測試用例。第一步:劃分等價類輸入數(shù)據(jù)有效等價類無效等價類出生年月(1)6 位數(shù)字字符(2)有非數(shù)字字符(3)少于 6 個數(shù)字字符(4)多于 6 個數(shù)字字符對應數(shù)值(5)在 196702- 198603 之間(6)198603 月份對應數(shù)值(8)在 1-12 之間(9)等于“0”(10)12 第二步:設計有效等價類需要的測試用例測試數(shù)據(jù)期望結果測試范圍 197011 輸入有效(1)
28、、(5)、(8)第三步:為每一無效等價類設計一個測試用例測試數(shù)據(jù)期望結果測試范圍 may,70 輸入無效(2)19705 輸入無效(3)1968011 輸入無效(4)195512 年齡不合格(6)196006年齡不合格(7)196200 輸入無效(9)197222 輸入無效(10) 邊界測試程序員在處理邊界情況時,很容易因忽略或考慮不周發(fā)生編碼錯誤。例如,數(shù)組容量、循環(huán)次數(shù)以及輸入數(shù)據(jù)與輸出數(shù)據(jù)在邊界值附近程序出錯概率往往較大。采用邊界值分析法就是要這樣來選擇測試用例,使得被測試程序能在邊界值及其附近運行,從而更有效地暴露程 序 中 潛 在 的 錯 誤 。 例 如 程 序 可 能 設 有 語
29、句if(196702=value(birthdate)=198603) then read(birthdate) else write“invalid age”將上式=寫成35 周歲16 周歲 196701198604 不合格年齡恰大于合格年齡恰小于合格年齡月份對應數(shù)值月份為 1 月份為 12196801198512 輸入有效最小月份最大月份月份12196800197413 輸入無效恰小于最小月份恰大于最大月份 錯誤猜測法猜錯就是猜測被測程序放在哪些地方容易出錯,然后針對可能的薄弱環(huán)節(jié)來設計測試用例。一般先用等價分類法和邊界值分析法設計測試用例,然后用猜錯法補充一些例子作為輔助的手段。白盒測試
30、邏輯覆蓋測試:用流程圖來設計測計用例。主要考察的重點是圖中的判定框(選擇或循環(huán))。按照被測試程序所作測試的有效程度,邏輯測試可由弱到強區(qū)分 5 種覆蓋標準:語句覆蓋:每條語句至少執(zhí)行一次。判定覆蓋:每一判定的每個分支至少執(zhí)行一次。條件覆蓋:每一判定中的每個條件,分別按“真”、“假” 至少各執(zhí)行一次。判定/條件覆蓋:同時滿足判定覆蓋和條件覆蓋的要求。條件組合覆蓋:求出判定中所有條件的各種可能組合值,每一可能的條件子和至少執(zhí)行一次。覆蓋標準程序結構舉例測試用例應滿足的條件語句覆蓋 aùb=.t.判定覆蓋 aùb=.t., aùb=.f.條件覆蓋 a=.t.
31、,a=.f.b=.t.,b=.f.判定/條件覆蓋aùb=.t., aùb=.f.a=.t., a=.f.b=.t., b=.f. 條件組合覆蓋 a=.t. ù b=.t.a=.t. ù b=.f.a=.f. ù b=.t.a=.f. ù b=.f.路徑測試法程序圖:是一種簡化的流程圖。對程序圖中每一條可能的程序執(zhí)行路徑至少測試一次。如果程序中含有循環(huán)(在程序中表現(xiàn)為環(huán)),則每個循環(huán)至少執(zhí)行一次。路徑測試具有如下特征:滿足結構測試的最低要求。語句覆蓋加判定覆蓋是對白盒測試的最低要求,同時滿足這兩種標準的覆蓋為“完
32、全覆蓋”。從對路徑測試的要求可見,它本身就包含了語句覆蓋和判定覆蓋(在程序圖上分別為點覆蓋與邊覆蓋)。軟件復用1. 什么是軟件復用?答:在構造新的軟件系統(tǒng)的過程中,對已存在的軟件人工制品的使用技術。2. 什么是領域工程?簡述其活動內容。答: 領域工程是指通過領域分析找出最優(yōu)復用,把它們設計和構造為可復用構件,進而建立大規(guī)模的軟件構件倉庫的過程。答:按復用活動所應用的領域范圍,復用可劃分為橫向復用和縱向復用。橫向復用是指復用不同應用領域中的軟件元素如數(shù)據(jù)結構、分類算法等。縱向復用是指在一類具有較多公共性的應用領域之間進行軟部分復用??v向復用包括以下幾個方面的活動:(1)實施領域分析:根據(jù)應用領域
33、的特征及相似性,可預測軟構件的可復用性,發(fā)現(xiàn)并描述可復用實體, 進而建立相關的模型和需求規(guī)約。(2)開發(fā)可復用構件:一旦確認了構件的復用價值,即可進行構件的開發(fā),并對具有復用價值的軟構件進行抽象、一般化和參數(shù)化,以便它們能夠適應新的類似的應用領域。(3)建立可復用構件庫:將軟件構件及其文檔進行分類歸并,形成相關的分類檢索機制,成為可供后繼項目使用的可復用資源。3. 什么是 cbsd?實施軟件構件技術要解決哪些問題?答:基于構件的軟件開發(fā)(component-based software development,簡稱 cbsd)是在一定構件模型的支持下,復用構件庫中的一個或多個軟件構件,通過組合
34、構件來構造應用軟件系統(tǒng)的開發(fā)過程。要解決的問題:構件應具有的特征:通用性、可變性、易組裝性。在建造構件時, 必須考略應用領域的特征。領域構件設計框架:標準數(shù)據(jù)、標準接口協(xié)議、程序模板。軟件維護1. 為什么說軟件維護是不可避免的?答:滿足用戶對已開發(fā)產品的性能與運行環(huán)境不斷提高的需要,進而達到延長軟件的壽命。2. 糾錯和糾錯性維護有哪些異同?答:糾錯的目的是定位和糾正錯誤;糾錯的任務是軟件故障,保證程序的可靠運行。糾錯性維護是由于軟件測試的不徹底性,任何大型軟件交付使用后,都會繼續(xù)發(fā)現(xiàn)潛在的錯誤,對它們進行診斷和改正。目的在于糾正在開發(fā)期間未能發(fā)現(xiàn)的遺留錯誤。4. 什么是軟件配置?說明搞好維護時
35、期配置的意義與方法。答:軟件配置是一個軟件在生存周期內,它的各種形式、各種版本的文檔與程序的總稱。對軟件配置進行科學的管理,是保證軟件質量的重要手段。配置管理貫穿于整個生存周期,在運行和維護時期,其任務尤為繁重。為了方便對多種產品和多種版本進行跟蹤和控制,常常借助于自動的配置管理工具:配置管理數(shù)據(jù)庫工具和版本控制庫工具。8. 什么是軟件再工程?軟件再工程的主要活動有哪些?答:軟件再工程是將新技術和新工具應用于老的軟件的一種較“徹底” 的預防性維護。主要活動有 6 類:9. 軟件再工程與軟件維護差異?答:軟件維護是局部的,以完成糾錯或適應需求變化為目的;軟件再工程是運用逆向工程、重構等技術,在充
36、分理解原有軟件的基礎上, 進行分解、綜合、并重新構建軟件,用以提高軟件的可理解性、可維護性或演化性。軟件工程管理3. 一個 4 萬行規(guī)模的應用程序,花 50 萬美元可以在市場上買到。如果自己開發(fā),則沒人一月的總花費需 4000 美元。試問是購買合算呢?還是自己開發(fā)合算呢?(注:開發(fā)成本用 cocomo 模型計算)答:5. 下圖是某軟件項目的 pert 圖。起點 h 2i 3j 2e 3f 5g 8d 3a 3b 6c 5 終點圖框中的數(shù)字代表活動所需的周數(shù)。要求:(1)找出關鍵路徑和完成項目的最短時間;(2)標出每項活動的最早起止時間與最遲起止時間。6. 在上題中,若活動 g 的持續(xù)時間分別縮短為 7 周、6 周或 5 周, 試問,完成項目的最短時間有何變化。7. 將第 2 題的內容改用 gantt 圖表示。答: 軟件質量管理 3.解釋下列各隊名詞,并說明他們的相互關系和差別:(1)驗證與確認答:(2)軟件質量保證與軟件質量認證答: 軟件質量保證著眼于每一個軟件,保證提供給用戶的產品都達到規(guī)定的質量水平。軟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 愛護地球 課件
- 轉化醫(yī)學 課件
- 西京學院《裝飾圖案》2022-2023學年第一學期期末試卷
- 幼兒園小班音樂《北風爺爺別神氣》課件
- 部編本拼音zcs課件
- 西華師范大學《中外新聞傳播史》2021-2022學年第一學期期末試卷
- 西華師范大學《學科課程標準與教材研究》2023-2024學年第一學期期末試卷
- 混凝土原理課件
- 西華師范大學《數(shù)據(jù)庫系統(tǒng)原理》2021-2022學年期末試卷
- 西華師范大學《免疫學》2022-2023學年第一學期期末試卷
- 靜電危害與預防
- 鍋爐技師職業(yè)技能鑒定考試題庫及答案(最全版)
- 吸附式空氣干燥機操作規(guī)程
- 防電信網絡詐騙知識競賽題庫
- 植物景觀分析及種植設計原則課件
- 水和水蒸氣焓值計算XLS
- 滴滴出行行程報銷單(可編輯版)
- 無機材料物理性能5電導
- 中國高級經理人心理狀況調查報告
- 安全風險分級管控和隱患排查治理情況總結
- 2023年江蘇省單招高考數(shù)學試卷和答案
評論
0/150
提交評論