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

下載本文檔

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

文檔簡介

軟件工程緒論什么是軟件危機?為何會產(chǎn)生軟件危機?答:軟件危機是指在計算機軟件的開發(fā)和維護過程中碰到的一系列嚴(yán)重問題。(1).軟件維護費用急劇上升,直接威脅計算機應(yīng)用的夸張。(2).軟件生產(chǎn)技術(shù)進步緩慢什么是軟件生產(chǎn)工程化?工程化生產(chǎn)措施與初期的程序設(shè)計措施重要差異在哪里?答:構(gòu)造化程序設(shè)計地出現(xiàn),使許多產(chǎn)業(yè)界認(rèn)識認(rèn)識到必須把軟件生產(chǎn)從個人化方式變化為工程化。采用工程的概念、原理、技術(shù)和措施開發(fā)與維護軟件,把通過時間考驗而證明對的的管理技術(shù)和目前可以得到的最佳的技術(shù)措施結(jié)合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它,這就是軟件工程,同步這也是工程化生產(chǎn)措施。分別闡明(1)軟件開發(fā)措施與開發(fā)工具;(2)軟件技術(shù)與軟件管理的互相關(guān)系。答:(1)工具和措施,是軟件開發(fā)技術(shù)的兩大支柱,它們親密有關(guān)。當(dāng)一種措施提出來并證明有效后,往往隨之研制出對應(yīng)的工具,來協(xié)助實現(xiàn)和推行這種措施。新措施在推行初期,總有人不愿接受和采用。若將新措施融合于工具之中,使人們通過使用工具來理解新措施,就能更快增進新措施的推廣。

(2)在工業(yè)生產(chǎn)中,雖然有先進的技術(shù)和設(shè)備,管理不善的企業(yè)也不能獲得良好的效益。軟件在生產(chǎn)中不能按質(zhì)準(zhǔn)時完畢計劃,管理混亂往往是其中的重要原因。因此對于一種理想的軟件工程環(huán)境,應(yīng)當(dāng)同步具有技術(shù)和管理兩個方面。試從你的親身實踐,談?wù)勡浖ぞ咴谲浖_發(fā)中的作用。答:用C++開發(fā)一種軟件,是校園一卡通的模塊。首先,要在編輯程序支持下在計算機中輸入源程序。然后編譯程序,把源程序翻譯成目的程序。假如發(fā)現(xiàn)錯誤,就重新調(diào)入編輯程序?qū)υ闯绦蜻M行修改。編譯通過后,再調(diào)用連接程序吧所有通過了編譯目的程序連同與之有關(guān)的程序連接起來,構(gòu)成一種能在計算機上運行的可執(zhí)行軟件。編譯程序,編輯程序,連接程序以及支持他們的計算機操作系統(tǒng),都屬于軟件工具。離開這些工具,軟件開發(fā)就是去了支持,變得十分困難和低效,甚至不能運行。5.什么是軟件工程環(huán)境?談?wù)勀銓Νh(huán)境重要性的認(rèn)識。答:措施與工具相結(jié)合,再加上配套的軟、硬件支持就形成環(huán)境。例如在批處理時代,顧客開發(fā)的程序是分批送入計算機中心的計算機的,有了錯誤,就得下機修改。程序員對自己寫的程序只能繼續(xù)地跟蹤,思緒常常被迫中斷,效率難于提高。分時系統(tǒng)的使用,使開發(fā)人員從此能在自己的終端上跟蹤程序的開發(fā),僅此一點,就明顯提高了開發(fā)的效率。6.何謂面向?qū)ο筌浖こ??簡述它與老式軟件工程在各型軟件開發(fā)中的作用。答:以面向?qū)ο蟪绦蛟O(shè)計為基礎(chǔ)。7.軟件按規(guī)模大小可提成哪幾類?簡述軟件工程中各型軟件開發(fā)中的作用。答:按規(guī)模分為極小、小、中、大、甚大、極大。(1)中小型軟件:軟件工程對改善軟件質(zhì)量,提高程序員生產(chǎn)率和滿足顧客的需求,有很大的作用。(2)大型軟件:此類軟件必須從頭至尾堅持軟件工程的措施,嚴(yán)格遵守原則文檔格式和正規(guī)的復(fù)審制度,才能防止或減少混亂,真正開發(fā)出大型的軟件。8.什么是形式化軟件開發(fā)措施?實現(xiàn)此類開發(fā)的困難和出路在哪里?答:它是一種基于數(shù)學(xué)的開發(fā)技術(shù),重要采用數(shù)學(xué)的措施來描述系統(tǒng)的性質(zhì)(例如程序變換和程序驗證等)。形式化的措施加上自動化的開發(fā)環(huán)境,也許是處理這一難題的出路。軟件開發(fā)模型什么是軟件生存周期?把生存周期劃分為階段的目的是什么?答:軟件生存周期劃分為計劃、開發(fā)和運行3個時期;把整個生存周期劃分為較小的階段,給每個階段賦予確定而有限的任務(wù),就可以化簡每一步的工作內(nèi)容,使由于軟件規(guī)模而增長而大大增長了軟件復(fù)雜性變得交易控制和管理。老式的瀑布模型把生存周期分為哪些階段?瀑布模型軟件開發(fā)有哪些特點?答:瀑布模型在編碼此前安排了分析階段和設(shè)計階段;階段間具有次序性和依賴性。闡明文檔和復(fù)審對于軟件質(zhì)量的控制的作用。答:每一階段都要完畢規(guī)定的文檔,沒有完畢文檔,就認(rèn)為沒有完畢該階段的任務(wù)。軟件開發(fā)是許多人共同參與的計劃,完整與合格的文檔,不僅是開發(fā)時期軟件人員之間互相通信的媒介,也是運行時期對軟件進行維護的中要根據(jù)。每一階段都要對已完畢的文檔進行復(fù)審,以便盡早發(fā)現(xiàn)問題,消除隱患。愈是初期潛伏下來的故障,暴露出來的時間愈晚,排除故障需付出的代價也就愈高。及時復(fù)審是保證軟件質(zhì)量,減少開發(fā)成本的重要措施。什么是迅速原型法?其迅速表目前哪里?答:首先建立一種可以反應(yīng)顧客重要需求的原型,讓顧客實際看一看未來系統(tǒng)的概貌,以便判斷哪些功能是符合需要的,哪些方面還需要改善。然后將原型改善,最終建立完全符合顧客規(guī)定的新系統(tǒng)。它的迅速表目前可以縮短開發(fā)周期的語言和工具,能在短時間內(nèi)提供出成品,但不包括成品中的細(xì)節(jié),然后讓客戶進行對比。5.實現(xiàn)迅速原型法的最終系統(tǒng)可以有幾種措施?請闡明并加以比較。答:原型系統(tǒng)僅包括未來系統(tǒng)的重要功能,以及系統(tǒng)的重要接口。為了盡快向顧客提供原型,開發(fā)原型系統(tǒng)時應(yīng)盡量使用能縮短開發(fā)周期的語言和工具。最終系統(tǒng)的形成可以采用原型廢棄不用,另一措施是補充修改模型獲得最終系統(tǒng)。措施一不包括系統(tǒng)的細(xì)節(jié)。后一種措施在實際工作中,由于原型系統(tǒng)使用的語言往往存在效率不高等原因,除了少數(shù)簡樸的事務(wù)系統(tǒng)外,大多數(shù)原型都廢棄不用,僅把建立原型的過程當(dāng)作協(xié)助定義軟件需求的一種手段。6.比較增量模型和螺旋模型的特點,有什么不一樣和相似的地方?答:增量模型是瀑布模型的次序特性與迅速原型法的迭代特性相結(jié)合的產(chǎn)物。螺旋模型是一種迭代模型,每迭代一次,螺旋線就前進一周。增量模型每個增量具有高內(nèi)聚低耦合,高度的獨立性。而螺旋模型它在結(jié)合瀑布模型與迅速原型的基礎(chǔ)上還增長了風(fēng)險分析。7.為何運用轉(zhuǎn)換模型開發(fā)軟件有一定難度?什么是凈室軟件工程?答:從理論上說,一種對的的,滿足客戶需要的形式化規(guī)格闡明,通過一系列對的的程序變化后,可以保證得到這樣一種形式化規(guī)格闡明,目前尚有較高的難度,同步,軟件開發(fā)者很少具有實用形式化措施所需的背景知識,況且,轉(zhuǎn)換模型開發(fā)軟件目前還很費時和昂貴!凈室基本思想是力爭在分析和設(shè)計階段就消除錯誤,保證對的,然后在無缺陷或“潔凈”的狀態(tài)下實現(xiàn)軟件的制作。8.哪些開發(fā)模型合用于面向?qū)ο蟮能浖_發(fā)?答:構(gòu)件集成模型9.比較螺旋模型和構(gòu)件集成模型的異同。答:構(gòu)件集成模型運用預(yù)先對封裝好的軟件構(gòu)件來構(gòu)造應(yīng)用軟件系統(tǒng),它融合了螺旋模型的諸多特性,支持軟件開發(fā)的迭代措施。軟件需求分析需求分析的任務(wù)是什么?怎樣理解分析階段的任務(wù)是決定“做什么”,而不是“怎么做”?答:需求分析重要有兩個任務(wù):第一是通過對問題及其環(huán)境的理解、分析和綜合建立分析模型;第二是在完全弄清顧客對軟件系統(tǒng)確實切規(guī)定的基礎(chǔ)上,用“軟件需求規(guī)格闡明書”把顧客的需求體現(xiàn)出來。需求分析的任務(wù)就是為了明確要開發(fā)的是一種什么樣的系統(tǒng),而不是去怎么去實現(xiàn)這個系統(tǒng)。需求分析要通過哪些環(huán)節(jié)?答:需求獲取、需求提煉、需求描述、需求驗證。有哪兩種重要的分析模型,它們有什么聯(lián)絡(luò)?答:面向?qū)ο蠓治瞿P?、?gòu)造化分析模型。前者是采用面向?qū)ο蟮乃枷脒M行軟件需求分析的建模過程,而后者模型的關(guān)鍵是DD,它是設(shè)計多種數(shù)據(jù)對象的總和。他們的模型分別起到了描述數(shù)據(jù)模型,功能模型與行為模型的作用。什么是構(gòu)造化分析?它的“構(gòu)造化”體目前哪里?答:是使用DFD、DD、構(gòu)造化語言、鑒定表和鑒定樹等工具,來建立一種新的、稱為構(gòu)造化闡明書的目的文檔。什么是面向?qū)ο蠓治??其重要思想是什么??OOA面向?qū)ο蟮姆治鍪遣捎妹嫦驅(qū)ο蟮乃枷脒M行軟件需求分析建模的過程.重要思想是采用面向?qū)ο蟮乃枷?。需求闡明(或需求規(guī)格闡明書)由哪些部分構(gòu)成?各部分的重要內(nèi)容是什么?答:引言、信息描述、功能描述、行為描述、質(zhì)量描述、接口描述、其他描述。引言:重要論述在文體定義階段確定的有關(guān)軟件的目的與范圍,簡要簡介系統(tǒng)背景、蓋帽、軟件項目約束和按考資料等。信息描述:給出對軟件所含信息的詳細(xì)描述,包括信息的內(nèi)容、關(guān)系、數(shù)據(jù)流向、控制流向和構(gòu)造等。功能描述:對軟件功能規(guī)定的闡明,包括系統(tǒng)功能劃分、每個功能的處理闡明、限制和控制描述等。行為描述:包括對系統(tǒng)狀態(tài)變化及事件和動作的描述,據(jù)此可以檢查外部事件和軟件內(nèi)部的控制特性。質(zhì)量描述:闡明在軟件交付使用前需要進行的共更能測試和性能測試,并且規(guī)定源程序和文檔應(yīng)當(dāng)遵守的多種原則。接口描述:包括系統(tǒng)的顧客界面、硬件接口、軟件接口和通信接口等的闡明。其他描述:論述系統(tǒng)設(shè)計和實現(xiàn)上的限制,系統(tǒng)的假設(shè)和依賴等其他需要闡明的內(nèi)容。為何DFD要分層?畫分層DFD要遵照哪些原則?答:大型復(fù)雜的軟件系統(tǒng),其DFD也許具有數(shù)百乃至數(shù)千個加工,不能設(shè)想一次就將它們所有畫齊。對的的做法是:從系統(tǒng)的基本模型(把整個系統(tǒng)當(dāng)作一種加工)開始,逐層地對系統(tǒng)進行分解。原則:由頂向下,逐漸細(xì)化。DFD和CFD有什么區(qū)別?什么是系統(tǒng)的行為模型,怎樣建立?答:類對象模型所示的是面向?qū)ο蠓治瞿P椭械撵o態(tài)部分,而對象行為模型則用于描述系統(tǒng)的動態(tài)行為,即系統(tǒng)怎樣對應(yīng)外部事件---系統(tǒng)的行為模型。建立一種對象行為模型一般要經(jīng)歷某些過程:評估因此的用例來理解系統(tǒng)中的交互序列;找出驅(qū)動交互序列的事件;為每個用例創(chuàng)立事件軌跡;為對象創(chuàng)立狀態(tài)轉(zhuǎn)換圖。選一種系統(tǒng)(例如工資處理系統(tǒng)、飛機訂票系統(tǒng)、圖書館管理系統(tǒng)等),分別用SA措施和OOA措施對它進行分析,并給出分析模型。答:軟件設(shè)計概述1.老式軟件工程把設(shè)計過程提成2步:概要設(shè)計與詳細(xì)設(shè)計。試述這2個階段個字重要完畢的任務(wù)。答:概要設(shè)計,包括構(gòu)造設(shè)計和接口設(shè)計,并編寫設(shè)計文檔。詳細(xì)設(shè)計,其任務(wù)是確定各個軟件組件的數(shù)據(jù)構(gòu)造和操作,產(chǎn)生描述個軟件組件的詳細(xì)設(shè)計文檔。為何大型軟件設(shè)計必須提成兩步走?答:概要設(shè)計和詳細(xì)設(shè)計是軟件設(shè)計的兩步,概要設(shè)計確定模塊的劃分,模塊之間的調(diào)用關(guān)系,接口等;詳細(xì)設(shè)計細(xì)分模塊、數(shù)據(jù)構(gòu)造等;大型系統(tǒng)中分兩步走是必要的,概要設(shè)計確定模塊劃分后,詳細(xì)設(shè)計可把各模塊交給不一樣的人做詳細(xì)設(shè)計,大型系統(tǒng)中這樣的分工是比較合理的,能提高效率,做到合理分工。2.解釋下列名詞:(1)模塊;(2)模塊化;(3)模塊化設(shè)計。答:模塊是一種擁有明確定義的、輸出和特性的程序?qū)嶓w。模塊化是指處理一種復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃提成若干模塊的過程。每個模塊完畢一種特定的子功能,所有的模塊按某種措施組裝起來,成為一種整體,完畢整個系統(tǒng)所規(guī)定的功能。模塊化設(shè)計是把大型軟件按照規(guī)定的原則劃提成一種個較小的、相對獨立但又互相關(guān)聯(lián)的模塊。但又互相關(guān)聯(lián)的模塊。3.什么是模塊獨立性?用什么度量?答:模塊獨立性指每個模塊只完畢系統(tǒng)規(guī)定的獨立的子功能,并且與其他模塊的聯(lián)絡(luò)至少且接口簡樸。模塊獨立的概念是模塊化、抽象、信息隱蔽和局部化概念的直接成果。獨立性可以從兩個方面來度量:模塊自身的內(nèi)聚性(Cohesion)和模塊之間的耦合(Coupling)。4.詳細(xì)闡明“一種模塊,一種功能”的含義,并試討論此類模塊的長處。5.什么是自頂向下設(shè)計?為何說它尤其合用于大型軟件的開發(fā)?答:設(shè)計時首先對所設(shè)計的系統(tǒng)有一種全面的理解。然后從頂層開始,持續(xù)的逐層向下分解,直至系統(tǒng)的所有模塊都笑道便于掌握為止。自底向上設(shè)計反應(yīng)了軟件規(guī)模較小的設(shè)計思想,伴隨軟件規(guī)模的增長,這種措施的缺陷逐漸暴露出來。而自頂向下的設(shè)計需要進行詳細(xì)的可行性論證,易于修改和擴展,整體測試較易通過。6.自頂向下逐漸細(xì)化的措施也合用于編寫教材。使用這種措施闡明編寫一本教材的過程。7.輸入三角形的3條邊長(假定這些邊確實能構(gòu)成一種三角形),用它們來鑒別三角形的性質(zhì)(等腰、等邊、任意或者直角),并輸出成果。試用逐漸細(xì)化的措施設(shè)計這一程序,并用構(gòu)造化語言(漢語或英語)寫出細(xì)化過程中每一步的過程描述。8.比較概要設(shè)計復(fù)審和過程設(shè)計復(fù)審的評審內(nèi)容,并闡明他們采用的復(fù)審方式有何異同。答:概要設(shè)計復(fù)審的重點放在系統(tǒng)的總體構(gòu)造、模塊劃分、內(nèi)外構(gòu)造等方面。例如軟件構(gòu)造與否滿足需求?構(gòu)造形態(tài)與否合理?層次與否清晰?模塊的劃分是不是符合優(yōu)化原則?系統(tǒng)的人機界面、內(nèi)外部接口、以及出錯處理是不是合理等。過程設(shè)計復(fù)審的重點放在模塊的詳細(xì)設(shè)計上。例如模塊設(shè)計能否滿足其功能與性能規(guī)定?選擇算法與數(shù)據(jù)構(gòu)造與否合理,與否符合編程語言的特點?設(shè)計描述簡樸、清晰等。概要設(shè)計復(fù)審常用的復(fù)審方式是正式復(fù)審。老式的設(shè)計措施簡釋事務(wù)、事務(wù)型構(gòu)造和變換型構(gòu)造。答:一次動作、時間或狀態(tài)變化也可以成為一次事務(wù)。事務(wù)型構(gòu)造由至少一條接受途徑、一種事務(wù)中心與若干條動作途徑構(gòu)成。變換型構(gòu)造由至少一條傳入途徑、變換中心和傳出途徑構(gòu)成。簡述從DFD圖到SC圖的映射規(guī)則。答:(1)復(fù)審DFD圖,必要時可再次進行修改或細(xì)化;(2)鑒別DFD圖所示的軟件系統(tǒng)的構(gòu)造特性,確定它所代表的軟件構(gòu)造是屬于變換型還是事務(wù)型。(3)按照SD措施規(guī)定一組規(guī)則,把DFD圖轉(zhuǎn)換為初始的SC圖;(4)按照優(yōu)化設(shè)計的指導(dǎo)原則改善初始的SC圖,獲得最終SC圖。5.某事務(wù)系統(tǒng)具有下列功能:(1)讀入顧客命令,并檢查其有效性;(2)按照命令的編號(1-4號)進行分類處理(3)1號命令計算產(chǎn)品共識,能根據(jù)顧客給出的多種產(chǎn)品數(shù)量,計算出各工種的需要工時和缺額工時;(4)2號命令計算材料消耗,根據(jù)產(chǎn)品的材料定額和顧客給出的生產(chǎn)數(shù)量,計算多種材料的需求量(5)3號命令編制材料訂貨計劃(6)4號命令計算產(chǎn)品成品試用構(gòu)造化分析和設(shè)計措施畫出該系統(tǒng)的DFD圖并據(jù)此到處系統(tǒng)的SC圖。對動作分支中的1號和2號命令要詳細(xì)描述和設(shè)計,3號命令和4號命令容許從略,可僅用示意圖表達。7.簡述過程(詳細(xì))設(shè)計闡明書的重要內(nèi)容,怎樣對它進行復(fù)審?答:(1)為每個模塊確定采用的算法。選擇某種合適的工詳細(xì)現(xiàn)算法的過程,寫出模塊的詳細(xì)過程描述;(2)確定每一模塊使用的數(shù)據(jù)構(gòu)造;(3)確定模塊接口的細(xì)節(jié),包括對系統(tǒng)外部的接口和顧客界面,對系統(tǒng)內(nèi)部其他模塊的接口,以及有關(guān)模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的所有細(xì)節(jié)。8.簡化比較本章講解的幾種過程設(shè)計體現(xiàn)工具的優(yōu)缺陷。答:流程圖和N-S圖,偽代碼和PDL語言。流程圖具有能隨意體現(xiàn)任何程序邏輯的有點,伴隨構(gòu)造化程序設(shè)計措施的普及,流程圖在描述程序邏輯時的隨意性與靈活性恰恰變成了它的缺陷。N-S圖所有的程序構(gòu)造均用方框來表達,無論并列或者嵌套,程序的構(gòu)造清晰可見。輕易養(yǎng)成良好的程序設(shè)計風(fēng)格。缺陷是當(dāng)程序內(nèi)嵌的層數(shù)增多時,內(nèi)層的方塊越畫越小,不僅增長畫圖的困難,也使圖形的清晰性受到影響。偽代碼工作量比畫圖小,又輕易轉(zhuǎn)換為真正的代碼,PDL具有很強的描述功能,是一種十分靈活和有用的過程體現(xiàn)工具。9.任選一種排序(從小到大)算法,分別用流程圖、N-S圖和PDL語言描述其詳細(xì)過程。試將下列用PDL偽代碼表達的某種模塊的過程性描述改用N-S圖表達。……ExecuteprocessaREPEATUNTILconditionX8ExecuteprocessbIFconditionX1

THENBEGIN

ExecuteprocessfIFconditionX6

THEN

REPEATUNTILconditionX7

Executeprocessi

ENDREPELSEBEGIN

ExecuteprocessgExecuteprocesshENDENDIFELSECASEOFXiWHENcontditionX2SELECT

DOWHILEcontitionX5executeprocessCENDDOWHENconditionX3SELECTprocessdWHENconditionX4SELECTprocesseENDCASEENDIFENDREPExecuteprocessjENDexecuteprocessa

executeprocessbTX1Fexecuteprocessf

TX3

FTX4

FTX6F

executeprocessd

executeprocesse

executeprocessiexecuteprocessgREPEATUNTIL

X7executeprocesshexecuteprocessjREPEATUNTILconditionX8圖5-63顯示了某倉庫零件收發(fā)管理程序的數(shù)據(jù)構(gòu)造,用Jackson圖表達。圖中Part表達零件,Issue和Recept分別表達零件的出庫量和入庫量?,F(xiàn)規(guī)定:(1)找出輸入構(gòu)造與輸出構(gòu)造之間的對應(yīng)單元(2)畫出用Jackson圖表達的程序構(gòu)造(3)列出程序所需要的操作,并加到第(2)步畫出的程序構(gòu)造圖上(4)用偽代碼寫出收發(fā)管理程序的過程性表達Input

filepartgroup*receptMovementrecord*issueNetmovementline*bodyheadingOutputreport

13.某工資管理程序的輸入/輸出數(shù)據(jù)中包括:輸入數(shù)據(jù):職工姓名,日工資率,工作天數(shù),加班天數(shù),病事假天數(shù),補助變更,扣款變更等;輸出數(shù)據(jù):職工姓名,基本工資,各項補助,各項扣款,事發(fā)工資等;試用Jackson措施設(shè)計這一程序

。軟件測試1.軟件測試的基本任務(wù)是什么?測試與糾錯有什么不一樣?測試的目的是發(fā)現(xiàn)程序錯誤;測試的任務(wù)是通過在計算機上執(zhí)行程序,暴露程序中潛在的錯誤。糾錯的目的是定位和糾正錯誤;糾錯的任務(wù)是軟件故障,保證程序的可靠運行。一般把一次程序執(zhí)行需要的測試數(shù)據(jù)成為一種測試用例,每個測試用例產(chǎn)生一種對應(yīng)的測試成果,假如它與期望成果不符,便闡明程序中存在錯誤,需要用糾錯來改正。2.怎樣理解下面的話所蘊含的意義:“程序測試只能證明錯誤的存在,但不能證明錯誤不存在”、“測試是為了證明程序有錯,而不是證明程序無錯”揭示了測試固有的一種重要性質(zhì)——不徹底性。徹底測試就是讓被測程序在一切也許的輸入狀況下所有執(zhí)行一遍,又稱窮舉測試。在實際狀況中是主線無法實現(xiàn)的。這就注定了一切實際測試都是不徹底的,當(dāng)然也就不能保證測試后的程序不存在遺留的錯誤?!魷y試的分類◆測試措施測試用例和測試成果測試用例={測試數(shù)據(jù)+期望成果}測試成果={測試數(shù)據(jù)+期望成果+實際成果}黑盒測試①

等價測試把輸入數(shù)據(jù)的也許值劃分為若干個等價類,使每類中的任何一種測試用例,都能代表同一等價類中的其他測試用例。采用等價測試注意如下兩點:劃分等價類不僅要考慮代表“有效”輸入值的有效等價類,還要考慮代表“無效”輸入值得無效等價類;每一無效等價類至少要用一種測試用例,否則也許遺漏某一類錯誤,但容許若干個有效等價類合用一種測試用例,以便深入減少測試的次數(shù)。【例】某工廠公開招工,規(guī)定報名者年齡在16周歲至35周歲(在1967年2月到1986年3月)。假如出生年月不在上述范圍內(nèi),將拒絕接受,并顯示“年齡不合格”等出錯信息。試用等價分類法設(shè)計這一程序功能的測試用例。第一步:劃分等價類輸入數(shù)據(jù)有效等價類無效等價類出生年月(1)6位數(shù)字字符(2)有非數(shù)字字符(3)少于6個數(shù)字字符(4)多于6個數(shù)字字符對應(yīng)數(shù)值(5)在19之間(6)<196702(7)>198603月份對應(yīng)數(shù)值(8)在1-12之間(9)等于“0”(10)>12第二步:設(shè)計有效等價類需要的測試用例測試數(shù)據(jù)期望成果測試范圍197011輸入有效(1)、(5)、(8)第三步:為每一無效等價類設(shè)計一種測試用例測試數(shù)據(jù)期望成果測試范圍MAY,70輸入無效(2)19705輸入無效(3)1968011輸入無效(4)1955齡不合格(6)1960齡不合格(7)196200輸入無效(9)197222輸入無效(10)②

邊界測試程序員在處理邊界狀況時,很輕易因忽視或考慮不周發(fā)生編碼錯誤。例如,數(shù)組容量、循環(huán)次數(shù)以及輸入數(shù)據(jù)與輸出數(shù)據(jù)在邊界值附近程序出錯概率往往較大。采用邊界值分析法就是要這樣來選擇測試用例,使得被測試程序能在邊界值及其附近運行,從而更有效地暴露程序中潛在的錯誤。例如程序也許設(shè)有語句If(196702<=value(birthdate)<=198603)

thenread(birthdate)

elsewrite“invalidage”將上式<=寫成<,以上所有測試都不能發(fā)現(xiàn)該錯誤?!纠可项}年月日的測試用例(邊界分析法)輸入等價類測試用例闡明測試數(shù)據(jù)期望成果選用理由出生年月1個數(shù)字字符5個數(shù)字字符7個數(shù)字字符有1個非數(shù)字字符全是非數(shù)字字符51119705AAUGUST輸入無效僅有一種合法字符比有效長度恰少一種字符比有效字符恰多一種字符非法字符至少非法字符最多6個數(shù)字字符196702輸入有效類型與長度均有效對應(yīng)數(shù)值35周歲16周歲3合格年齡最大符合年齡最小符合年齡>35周歲<16周歲4不合格年齡恰不小于合格年齡恰不不小于合格年齡月份對應(yīng)數(shù)值月份為1月份為122輸入有效最小月份最大月份月份<1月份>123輸入無效恰不不小于最小月份恰不小于最大月份③

錯誤猜測法猜錯就是猜測被測程序放在哪些地方輕易出錯,然后針對也許的微弱環(huán)節(jié)來設(shè)計測試用例。一般先用等價分類法和邊界值分析法設(shè)計測試用例,然后用猜錯法補充某些例子作為輔助的手段。白盒測試①

邏輯覆蓋測試:用流程圖來設(shè)計測計用例。重要考察的重點是圖中的鑒定框(選擇或循環(huán))。按照被測試程序所作測試的有效程度,邏輯測試可由弱到強辨別5種覆蓋原則:語句覆蓋:每條語句至少執(zhí)行一次。鑒定覆蓋:每一鑒定的每個分支至少執(zhí)行一次。條件覆蓋:每一鑒定中的每個條件,分別按“真”、“假”至少各執(zhí)行一次。鑒定/條件覆蓋:同步滿足鑒定覆蓋和條件覆蓋的規(guī)定。條件組合覆蓋:求出鑒定中所有條件的多種也許組合值,每一也許的條件子和至少執(zhí)行一次。覆蓋原則程序構(gòu)造舉例測試用例應(yīng)滿足的條件語句覆蓋AÙB=.T.鑒定覆蓋AÙB=.T.,AÙB=.F.條件覆蓋A=.T.,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í)行一次。途徑測試具有如下特性:滿足構(gòu)造測試的最低規(guī)定。語句覆蓋加鑒定覆蓋是對白盒測試的最低規(guī)定,同步滿足這兩種原則的覆蓋為“完全覆蓋”。從對途徑測試的規(guī)定可見,它自身就包括了語句覆蓋和鑒定覆蓋(在程序圖上分別為點覆蓋與邊覆蓋)。

軟件復(fù)用什么是軟件復(fù)用?答:在構(gòu)造新的軟件系統(tǒng)的過程中,對已存在的軟件人工制品的使用技術(shù)。什么是領(lǐng)域工程?簡述其活動內(nèi)容。答:領(lǐng)域工程是指通過領(lǐng)域分析找出最優(yōu)復(fù)用,把它們設(shè)計和構(gòu)造為可復(fù)用構(gòu)件,進而建立大規(guī)模的軟件構(gòu)件倉庫的過程。答:按復(fù)用活動所應(yīng)用的領(lǐng)域范圍,復(fù)用可劃分為橫向復(fù)用和縱向復(fù)用。橫向復(fù)用是指復(fù)用不一樣應(yīng)用領(lǐng)域中的軟件元素如數(shù)據(jù)構(gòu)造、分類算法等??v向復(fù)用是指在一類具有較多公共性的應(yīng)用領(lǐng)域之間進行軟部分復(fù)用??v向復(fù)用包括如下幾種方面的活動:(1)實行領(lǐng)域分析:根據(jù)應(yīng)用領(lǐng)域的特性及相似性,可預(yù)測軟構(gòu)件的可復(fù)用性,發(fā)現(xiàn)并描述可復(fù)用實體,進而建立有關(guān)的模型和需求規(guī)約。(2)開發(fā)可復(fù)用構(gòu)件:一旦確認(rèn)了構(gòu)件的復(fù)用價值,即可進行構(gòu)件的開發(fā),并對具有復(fù)用價值的軟構(gòu)件進行抽象、一般化和參數(shù)化,以便它們可以適應(yīng)新的類似的應(yīng)用領(lǐng)域。(3)建立可復(fù)用構(gòu)件庫:將軟件構(gòu)件及其文檔進行分類歸并,形成有關(guān)的分類檢索機制,成為可供后繼項目使用的可復(fù)用資源。什么是CBSD?實行軟件構(gòu)件技術(shù)要處理哪些問題?答:基于構(gòu)件的軟件開發(fā)(Component-BasedSoftwareDevelopment,簡稱CBSD)是在一定構(gòu)件模型的支持下,復(fù)用構(gòu)件庫中的一種或多種軟件構(gòu)件,通過組合構(gòu)件來構(gòu)造應(yīng)用軟件系統(tǒng)的開發(fā)過程。要處理的問題:構(gòu)件應(yīng)具有的特性:通用性、可變性、易組裝性。在建造構(gòu)件時,必須考略應(yīng)用領(lǐng)域的特性。領(lǐng)域構(gòu)件設(shè)計框架:原則數(shù)據(jù)、原則接口協(xié)議、程序模板。軟件維護為何說軟件維護是不可防止的?答:滿足顧客對已開發(fā)產(chǎn)品的性能與運行環(huán)境不停提高的需要,進而到達延長軟件的壽命。糾錯和糾錯性維護有哪些異同?答:糾錯的目的是定位和糾正錯誤;糾錯的任務(wù)是軟件故障,保證程序的可靠運行。糾錯性維護是由于軟件測試的不徹底性,任何大型軟件交付使用后,都會繼續(xù)發(fā)現(xiàn)潛在的錯誤,對它們進行診斷和改正。目的在于糾正在開發(fā)期間未能發(fā)現(xiàn)的遺留錯誤。什么是軟件配置?闡明搞好維護時期配置的意義與措施。答:軟件配置是一種軟件在生存周期內(nèi),它的多種形式、多種版本的文檔與程序的總稱。對軟件配置進行科學(xué)的管理,是保證軟件質(zhì)量的重要

溫馨提示

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

評論

0/150

提交評論