版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程一一原理、方法與應(yīng)用緒論兒什么是軟件危機?為什么會產(chǎn)生軟件危機?答:軟件危機是指在計算機軟件的開發(fā)和維護過程中遇到的一系列嚴覓問題。(1).軟件維護費用急劇上升,直接威脅計算機應(yīng)用的夸大。(2).軟件生產(chǎn)技術(shù)進步緩慢2. 什么是軟件生產(chǎn)工程化?工程化生產(chǎn)方法與早期的程序設(shè)計方法主要差別在哪里?答:結(jié)構(gòu)化程序設(shè)計地出現(xiàn),使許多產(chǎn)業(yè)界認識認識到必須把軟件生產(chǎn)從個人化方式改變?yōu)楣こ袒?釆用工程的概念、原理、技術(shù)和方法開發(fā)與維護軟件,把經(jīng)過時間考驗而證明止確的管理技術(shù)和當(dāng)前 能夠得到的最好的技術(shù)方法結(jié)介起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它,這就足軟件工 程,同時這也是工程化生產(chǎn)方法
2、。3. 分別說明(丄)軟件開發(fā)方法與開發(fā)工具;(2)軟件技術(shù)與軟件管理的相互關(guān)系。答:(1)工具利方法,是軟件開發(fā)技術(shù)的兩人支柱,它們密切相關(guān)。肖一種方法提出來并證明有效后, 往往隨之研制出相應(yīng)的工具,來幫助實現(xiàn)和推行這種方法。新方法在推行初期,總存人不愿接受和采 用。若將新方法融合于工具之中,使人們通過使用工具來了解新方法,就能更快促進新方法的推廣。(2)在工業(yè)生產(chǎn)中,即使有先進的技術(shù)和設(shè)備,管理不善的企業(yè)也不能獲得良好的效益。軟件在生產(chǎn)中不能按質(zhì)按時完成計劃,管理混亂往往是其屮的巫要原因。所以對于個理想的軟件工 程環(huán)境,應(yīng)該同時具備技術(shù)和管理兩個方面。4試從你的親身實踐,談?wù)勡浖ぞ咴谲浖?/p>
3、開發(fā)中的作用。答:用C+開發(fā)一個軟件,是校園一卡通的模塊。首先,要在編輯程序支持下在計算機中輸入源程序. 然后編譯程序,把源程序翻譯成目標(biāo)程序。如果發(fā)現(xiàn)錯誤,就巫新調(diào)入編輯程序?qū)υ闯绦蜻M行修改。 編譯通過后,再調(diào)用連接程序吧所冇通過了編譯目標(biāo)程序連同與之冇關(guān)的程序連接起來,構(gòu)成一個能 在計算機上運行的可執(zhí)行軟件。編譯程序,編輯程序,連接程序以及支持他們的計算機操作系統(tǒng),都 屬于軟件工具。離開這些工具,軟件開發(fā)就是去了支持,變得十分困難和低效,茯至不能運行。5什么是軟件工程環(huán)境?談?wù)勀銓Νh(huán)境重要性的認識。答:方法與工具相結(jié)介,再加上配套的軟、硬件支持就形成環(huán)境。例如在批處理時代,用戶開發(fā)的程 序
4、是分批送入計算機中心的計算機的,有了錯誤,就得下機修改。程序員對自己寫的程序只能繼續(xù)地 跟蹤,思路經(jīng)常被迫中斷,效率難于提高。分時系統(tǒng)的使用,使開發(fā)人員從此能在自己的終端上跟蹤 程序的開發(fā),僅此一點,就明顯提高了開發(fā)的效率。6何謂面向?qū)ο筌浖こ??簡述它與傳統(tǒng)軟件工程在各型軟件開發(fā)中的作用。 答:以面向?qū)ο蟪绦蛟O(shè)計為基礎(chǔ)。7.軟件按規(guī)模大小可分成哪幾類?簡述軟件工程中各型軟件開發(fā)中的作用。答:按規(guī)模分為極小、小、中、大、甚人、極犬。(1)中小型軟件:軟件工程對改進軟件質(zhì)量,提高程序員生產(chǎn)率和滿足用戶的需求,冇很大的作用(2)大型軟件:這類軟件必須從頭至尾堅持軟件工程的方法,嚴格遵守標(biāo)準文檔格式
5、和正規(guī)的復(fù)審 制度,才能避免或減少混亂,真正開發(fā)出大型的軟件。8什么是形式化軟件開發(fā)方法?實現(xiàn)這類開發(fā)的困難和出路在哪里?答:它定一種基于數(shù)學(xué)的開發(fā)技術(shù),主要采用數(shù)學(xué)的方法來描述系統(tǒng)的性質(zhì)(例如程序變換和程序驗 證等)。形式化的方法加上自動化的開發(fā)環(huán)境,可能是解決這一難題的出路。軟件開發(fā)模型1. 什么是軟件生存周期?把生存周期劃分為階段的目的是什么?答:軟件生存周期劃分為計劃、開發(fā)和運行3個時期:把整個生存周期劃分為較小的階段,給每個階 段賦予確定而有限的任務(wù),就能夠化簡每一步的工作內(nèi)容,使因為軟件規(guī)模而增長而大人增加了軟件 復(fù)雜性變得交易控制和管理。2. 傳統(tǒng)的瀑布模型把生存周期分為哪些階段
6、?瀑布模型軟件開發(fā)有哪些特點?答:瀑布模型在編碼以前安排了分析階段和設(shè)計階段;階段間貝有順序性和依賴性。S.說明文檔和復(fù)審對于軟件質(zhì)量的控制的作用.答:每一階段都要完成規(guī)定的文檔,沒仃完成文檔,就認為沒右完成該階段的任務(wù)。軟件開發(fā)足許多 人共同參加的計劃,完整與介格的文檔,不僅是開發(fā)時期軟件人員之間互相通信的媒介,也是運行時 期對軟件進行維護的中要依據(jù)。每一階段都要對己完成的文檔進行復(fù)審,以便盡早發(fā)現(xiàn)問題,消除隱 患。愈是早期潛伏卜來的故障,暴露出來的時間愈晚,排除故障需付出的代價也就愈高。及時復(fù)審是 保證軟件質(zhì)量,降低開發(fā)成本的重要措施。4. 什么是快速原型法?其快速表現(xiàn)在哪里?答:首先建立
7、一個能夠反映用戶主要需求的原型,讓用戶實際看一看未來系統(tǒng)的概貌,以便判斷哪些功 能是符合需要的,哪些方面還需要改進。然后將原型改進,最終建立完全符合用戶要求的新系統(tǒng)。它 的快速表現(xiàn)在能夠縮短開發(fā)周期的語言和工具,能在短時間內(nèi)提供出成品,但不包括成品中的細節(jié), 然后讓客戶進行對比。5. 實現(xiàn)快速原型法的最終系統(tǒng)可以有幾種方法?請說明并加以比較.答:原型系統(tǒng)僅包括未來系統(tǒng)的主要功能,以及系統(tǒng)的重要接門。為了盡快向用戶提供原型,開發(fā)原 型系統(tǒng)時應(yīng)盡量使用能縮短開發(fā)周期的語言和工具。最終條統(tǒng)的形成可以采用原型廢棄不用,另一方 法是補充修改模型獲得最終系統(tǒng)。方法一不包括系統(tǒng)的細節(jié)。后一種方法在實際工作中
8、,由于原型系 統(tǒng)使用的語言往往存在效率不高等原內(nèi),除了少數(shù)簡單的爭務(wù)系統(tǒng)外,大多數(shù)原型都廢棄不用,僅把 建立原型的過程當(dāng)作幫助定義軟件需求的一種手段。6. 比較增量模型和螺旋模型的特點,有什么不同和相似的地方?答:增杲模型是瀑布模型的順序特征與快速原型法的迭代特征相結(jié)介的產(chǎn)物。螺旋模型是一種迭代模 型,每迭代一次,螺旋線就前進一周。增最模型每個增最具有高內(nèi)聚低耦合,高度的獨立性。而螺旋 模型它在結(jié)合瀑布模型與快速原型的基礎(chǔ)上還增加了風(fēng)險分析。7. 為什么利用轉(zhuǎn)換模型開發(fā)軟件有一定難度?什么是凈室軟件工程?答:從理論上說,一個止確的,滿足客戶需要的形式化規(guī)格說明,經(jīng)過一系列正確的程序變化后,可
9、以確保得到這樣一個形式化規(guī)格說明,目前還有較高的難度,同時,軟件開發(fā)者很少其有實用形式化 方法所需的背景知識,況且,轉(zhuǎn)換模型開發(fā)軟件現(xiàn)在還很費時和昂貴!凈室基本思想是力求在分析和 設(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ā)的迭代方法。軟件需求分析1. 需求分析的任務(wù)是什么?怎樣理解分析階段的任務(wù)是決定“做什么',而不是“怎么做” ?答:需求分析主要有兩
10、個任務(wù):第一足通過對問題及其環(huán)境的理解、分析和綜合建立分析模型;第 是在完全弄消用戶對軟件系統(tǒng)的確切要求的基礎(chǔ)上,用“軟件需求規(guī)格說明書”把用戶的需求表達出 來。需求分析的任務(wù)就是為了明確要開發(fā)的是一個什么樣的系統(tǒng),而不是去怎么去實現(xiàn)這個系統(tǒng)。2. 需求分析要經(jīng)過哪些步驟?答:需求獲取、需求提煉、需求描述、需求驗證。S.有哪兩種主要的分析模型,它們有什么聯(lián)系?答:面向?qū)ο蠓治瞿P?、結(jié)構(gòu)化分析模型。前者是釆用面向?qū)澫蟮乃枷脒M行軟件需求分析的建模過程, 而后者模型的核心是DD,它是設(shè)計各種數(shù)據(jù)對象的總和。他們的模型分別起到了描述數(shù)據(jù)模型,功能 模型與行為模型的作用。4. 什么是結(jié)構(gòu)化分析?它的“結(jié)
11、構(gòu)化”體現(xiàn)在哪里?答:是使用DFD、DD、結(jié)構(gòu)化語言、判定表和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化說明書的 目標(biāo)文檔。5. 什么是面向?qū)ο蠓治觯科渲饕枷胧鞘裁???00A面向?qū)澫蟮姆治鍪遣捎妹嫦驅(qū)ο蟮乃枷脒M行軟件需求分析建模的過程.主要思想是采用面向?qū)?象的思想。6. 需求說明(或需求規(guī)格說明書)由哪些部分組成?各部分的主要內(nèi)容是什么? 答:引言、信息描述、功能描述、行為描述、質(zhì)量描述、接口描述、其他描述。引言:主要敘述在文體定義階段確定的關(guān)于軟件的目標(biāo)與范闈,簡要介紹系統(tǒng)背景、蓋帽、軟件項冃 約束和按考資料等。信息描述:給出對軟件所含信息的詳細描述,包括信息的內(nèi)容、關(guān)系、數(shù)據(jù)流向、控制
12、流向和結(jié)構(gòu)等。 功能描述:對軟件功能要求的說明,包括系統(tǒng)功能劃分、毎個功能的處理說明、限制和控制描述等。 行為描述:包括對系統(tǒng)狀態(tài)變化及M件和動作的描述,據(jù)此可以檢箕外部爭件和軟件內(nèi)部的控制特從. 質(zhì)量描述:闡明在軟fl交付使用詢需要進布的共更能測試和性能測試,并且規(guī)定源程庁和乞檔應(yīng)該遵 守的各種標(biāo)準。接II描述:包括系統(tǒng)的用戶界而、硬件接II、軟件接II和通信接II等的說明。其他描述:闡述系統(tǒng)設(shè)計和實現(xiàn)上的限制,系統(tǒng)的假設(shè)和依賴等其他需要說明的內(nèi)容。7. 為什么DFD要分層?畫分層DFD要遵循哪些原則?答:大型復(fù)雜的軟件系統(tǒng),其DFD可能含令數(shù)百乃至數(shù)T個加工,不能設(shè)想一次就將它們?nèi)慨孆R。
13、 正確的做法是:從系統(tǒng)的基木模型(把整個系統(tǒng)看成一個加工)開始,逐層地對系統(tǒng)進行分解。原則: 由頂向下,逐步細化。& DFD和CFD有什么區(qū)別?答:9.什么是系統(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)換圖。10選一個系統(tǒng)(例如工資處理系統(tǒng)、飛機訂票系統(tǒng)、圖書館管理系統(tǒng)等),分別用SA方法和OOA方 法對它進行分析,并給出分析模型
14、。答:軟件設(shè)計概述1 傳統(tǒng)軟件工程把設(shè)計過程分成2步:概要設(shè)計與詳細設(shè)計。試述這2個階段個字主要完成的任務(wù)。 答:概要設(shè)計,包插結(jié)構(gòu)設(shè)計和接II設(shè)計,并編寫設(shè)計文檔。詳細設(shè)計,其任務(wù)足確定各個軟件組件 的數(shù)據(jù)結(jié)構(gòu)和操作,產(chǎn)生描述個軟件組件的詳細設(shè)計文檔。為什么大型軟件設(shè)計必須分成兩步走?答:概要設(shè)計和詳細設(shè)計是軟件設(shè)計的兩步,概要設(shè)計確定模塊的劃分,模塊之間的調(diào)用關(guān)系,接門 等:詳細設(shè)計細分模塊、數(shù)據(jù)結(jié)構(gòu)等;興型系統(tǒng)中分兩步走是必要的,概要設(shè)計確定模塊劃分后,詳 細設(shè)計可把各模塊交給不同的人做詳細設(shè)計,大型系統(tǒng)中這樣的分工是比較合理的,能提高效率,做 到合理分工。2解釋下列名詞:(丄)模塊;(
15、2)模塊化;(3)模塊化設(shè)計。答:模塊是一個擁有明確定義的、輸出和特性的程序?qū)嶓w。模塊化是指解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。每個模塊完 成一個特定的子功能,所有的模塊按某種方法組裝起來,成為一個整體,完成整個系統(tǒng)所要求 的功能。模塊化設(shè)計是把大型軟件按照規(guī)定的原則劃分成一個個較小的、相對獨立但又相互關(guān)聯(lián)的模塊。但又 相互關(guān)聯(lián)的模塊。3什么是模塊獨立性?用什么度量?答:模塊獨立性指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接I I簡單。 模塊獨立的概念是模塊化、抽象、信息隱蔽和局部化概念的II接結(jié)果。獨立性町以從兩個方面來度量:模塊本身的內(nèi)聚件
16、(Cohesion)和模塊之間的耦介(Coupling)。乂具體說明“一個模塊,一個功能”的含義,并試討論這類模塊的優(yōu)點。答:5什么是自頂向下設(shè)計?為什么說它尤其適用于大型軟件的開發(fā)?答:設(shè)計時首先對所設(shè)計的系統(tǒng)有一個全面的理解。然后從頂層開始,連續(xù)的逐層向下分解,直至系 統(tǒng)的所有模塊都笑道便于掌握為止。自底向上設(shè)計反映了軟件規(guī)模較小的設(shè)計思想,隨著軟件規(guī)模的增長,這種方法的缺點逐漸暴需出來. 而自頂向下的設(shè)計需要進行詳細的可行性論證,易于修改和擴展,整體測試較易通過。6自頂向下逐步細化的方法也適用于編寫教材。使用這種方法說明編寫一本教材的過程。答:7輸入三角形的3條邊長(假定這些邊確實能組成
17、一個三角形),用它們來鑒別三角形的性質(zhì)(等腰、 等邊、任意或者宜角),并輸出結(jié)果。試用逐步細化的方法設(shè)計這一程序,并用結(jié)構(gòu)化語言(漢語或 英語)寫出細化過程中每一步的過程描述。答:8比較概要設(shè)計復(fù)審和過程設(shè)計復(fù)審的評審內(nèi)容,并說明他們采取的復(fù)審方式有何異同。答:概要設(shè)計復(fù)審的重點放在系統(tǒng)的總體結(jié)構(gòu)、模塊劃分、內(nèi)外結(jié)構(gòu)等方面。例如軟件結(jié)構(gòu)是否滿足 需求?結(jié)構(gòu)形態(tài)是否合理?層次是否清晰?模塊的劃分是不是符合優(yōu)化原則?系統(tǒng)的人機界面、內(nèi)外 部接I、以及出錯處理是不是合理等。過程設(shè)計復(fù)審的重點放在模塊的幾體設(shè)計上。例如模塊設(shè)計能否滿足其功能與性能要求?選擇算法與 數(shù)據(jù)結(jié)構(gòu)是否合理,是否符合編程語言的特
18、點?設(shè)計描述簡單、清晰等。概要設(shè)計復(fù)審常用的復(fù)審方式是正式復(fù)審。傳統(tǒng)的設(shè)計方法丄簡釋事務(wù)、事務(wù)型結(jié)構(gòu)和變換型結(jié)構(gòu)。答:一次動作、時間或狀態(tài)變化也可以成為一次爭務(wù)。爭務(wù)型結(jié)構(gòu)由至少一條接受路徑、一個爭務(wù)中心與若干條動作路徑組成。變換型結(jié)構(gòu)由至少一條傳入路徑、變換中心和傳出路徑組成。2簡述從DFD圖到SC圖的映射規(guī)則。答:(1)復(fù)審DFD圖,必要時可再次進行修改或細化:(2)鑒別DFD圖所表示的軟件系統(tǒng)的結(jié)構(gòu)特征,確定它所代表的軟件結(jié)構(gòu)是屬于變換型還是出務(wù)型:(3)按照SD方法規(guī)定一組規(guī)則,把DFD圖轉(zhuǎn)換為初始的SC圖;變換映射變換型DFD(Transform Mapping)初始sc事務(wù)|事務(wù)型
19、DFD圖|Mapping) .初始圖(4)按照優(yōu)化設(shè)計的指導(dǎo)原則改進初始的SC圖,獲得il終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)品成品試用結(jié)構(gòu)化分析和設(shè)計方法畫出該系統(tǒng)的DFD圖并據(jù)此到處系統(tǒng)的SC圖。對動作分支中的1巧和2 號命令要詳細描述和設(shè)計,3號命令和4號命令允許從略,可僅用示意圖
20、表示。答:7簡述過程(詳細)設(shè)計說明書的主要內(nèi)容,怎樣對它進行復(fù)審?答:(1)為每個模塊確定采用的算法。選擇某種適當(dāng)?shù)墓妆磉_算法的過程,寫出模塊的詳細過程描述: (2)確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu);(3)確定模塊接II的細節(jié),包括對系統(tǒng)外部的接II和用戶界面,対系 統(tǒng)內(nèi)部其它模塊的接II,以及關(guān)于模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細節(jié)。&簡化比較本章講解的幾種過程設(shè)計表達工具的優(yōu)缺點。答:流程圖和N-S圖,偽代碼和PDL語言。流程圖貝有能隨意表達任何程序邏輯的有點,隨著結(jié)構(gòu)化程序設(shè)計方法的普及,流程圖在描述程序邏 輯時的隨意性與靈活性恰恰變成了它的缺點。N-S圖所有的程序結(jié)構(gòu)均用方
21、框來表示,無論并列或者嵌套,程序的結(jié)構(gòu)清晰可見。容易斥成良好的 程序設(shè)計鳳格。缺點是當(dāng)程序內(nèi)嵌的層數(shù)増多時,內(nèi)層的方塊越畫越小,不僅增加畫圖的困難,也使 圖形的清晰性受到影響。偽代碼工作杲比価圖小,又容易轉(zhuǎn)換為真止的代碼,PDL具仃很強的描述功能,是一種十分靈活和佝 用的過程表達工具。9任選一種排序(從小到大)算法,分別用流程圖、N心圖和PDL語言描述其詳細過程。3試將下列用PDL偽代碼表示的某種模塊的過程性描述改用圖表示.Execute process aREPEAT UNTIL condition X8Execute process bIF condition XITHEN BEGINEx
22、ecute process fIF condition X6THENREPEAT UNTIL condition X7Execute process iENDREPELSE BEGINExecute process gExecute process hENDENDIFELSE CASE OF XiWHEN contdition X2 SELECTDO WHILE con tition X5execute process CENDDOWHEN condition X3 SELECT process d WHEN condition X4 SELECT process e ENDCASEENDIF
23、ENDREPExecute process jENDexecute process aexecute process bXIT-Fexecute process fexecute process dexecute process eexecute process iexecute process gREPEAT UNTIL X7execute process hexecute process jREPEAT UNTIL condition X812圖品63顯示了某倉庫零件收發(fā)管理程序的數(shù)據(jù)結(jié)構(gòu),用Jackson圖表示。圖中p.rt表示零件,|MU« 和Recept分別表示零件的出庫量
24、和入庫量?,F(xiàn)要求:(1)找出輸入結(jié)構(gòu)與輸出結(jié)構(gòu)之間的對應(yīng)單元<2)畫出用Jackson圖表示的程序結(jié)構(gòu)(3)列出程序所需要的操作,并加到第(2)步畫出的程序結(jié)構(gòu)圖上(4)用偽代碼寫出收發(fā)管理程序的過程性表示Innut fileoart grouo*hodvheadi ngissuereceptNet movement line*19某工資管理程序的輸入備出數(shù)據(jù)中包括:輸入數(shù)據(jù):職工姓名,日工資率,工作天數(shù),加班天數(shù),病出假犬?dāng)?shù),補貼變更,扣款變更等; 輸出數(shù)據(jù):職工姓名,基本工資,各項補貼,各項扣款,事發(fā)工資等:試用Jackson方法設(shè)計這一程序。軟件測試軟件測試的基本任務(wù)是什么?測試與
25、糾錯有什么不同?測試的目的是發(fā)現(xiàn)程序錯誤:測試的任務(wù)是通過在計算機上執(zhí)行程序,暴露程序中潛在的錯誤。糾錯的目的是定位和糾正錯誤:糾錯的任務(wù)是軟件故障,保證程序的可靠運行。通常把一次程序執(zhí)行需要的測試數(shù)據(jù)成為一個測試用例,每個測試用例產(chǎn)生一個相應(yīng)的測試結(jié)果,如 果它與期望結(jié)果不符,便說明程序中存在錯誤,需要用糾錯來改正。2怎樣理解下面的話所蘊含的意義:“程序測試只能證明錯誤的存在,但不能證明錯誤不存在氣''測 試是為了證明程序有錯,而不是證明程序無錯”揭示了測試固令的一個巫要性質(zhì)一一不徹底性。徹底測試就是讓被測程序在一切町能的輸入情況下全 部執(zhí)行一遍,又稱窮舉測試。在實際情況中是
26、根本無法實現(xiàn)的。這就注定了一切實際測試都是不徹底 的,當(dāng)然也就不能保證測試后的程序不存在遺留的錯誤。測試的分類-靜態(tài)分析器分折廣代碼會審靜態(tài)測試(程序不執(zhí)行)V代碼評審Y 走查J辦工桌檢查程序測試動態(tài)測試 -(程序執(zhí)行)黑盒測試(測試程序功能)白盒測試(測試程序結(jié)構(gòu))測試方法測試用例和測試結(jié)果測試用例珂測試數(shù)據(jù)+期望結(jié)果測試結(jié)果二測試數(shù)據(jù)+期望結(jié)果+實際結(jié)果黑盒測試等價測試把輸入數(shù)據(jù)的可能值劃分為若干個等價類,使每類中的任何-個測試用例,都能代表同一等價類 中的其它測試用例。采用等價測試注意以下兩點:劃分等價類不僅要考慮代表“有效”輸入值的有效等價類,還要考電代表“無效”輸入值得無效 等價類;
27、每無效等價類至少要用個測試用例,不然可能漏掉某類錯誤,但允許若干個有效 等價類合用一個測試用例,以便進一步減少測試的次數(shù)C【例】某工廠公開招工,規(guī)定報名者年齡在16周歲至35周歲(在1967年2月到1986年3月): 如果出生年月不在上述范罔內(nèi),將拒絕接受,并顯示“年齡不合格”等出錯信息。試用等價分類 法設(shè)計這一程序功能的測試用例。第一步:劃分等價類輸入數(shù)據(jù)有效辱價類無效等價類出生年月(1)6位數(shù)字字符有非數(shù)字字符(3)少于6個數(shù)字字符(4)多于6個數(shù)字字符對應(yīng)數(shù)值(5)在 196702-198603 之間<196702(7)>198603月份對應(yīng)數(shù)值(8)在M2之間(9) 等于“
28、0"(10) >12笫二步:設(shè)計冇效等價類需要的測試用例測試數(shù)據(jù)期望結(jié)果測試范圍197011輸入有效、(8)笫三步:為每-無效等價類設(shè)計-個測試用例測試數(shù)據(jù)期望結(jié)果測試范圍MAY;70輸入無效(2)19705輸入無效(3)1968011輸入無效(4)195512年齡不合格(6)196006年齡不合格196200輸入無效(9)197222輸入無效(10)(2) 邊界測試程序員在處理邊界情況時,很容易因忽略或考虎不周發(fā)生編碼錯誤。例如,數(shù)組容量、循環(huán)次數(shù) 以及輸入數(shù)據(jù)與輸出數(shù)據(jù)在邊界值附近程序出錯概率往往較大。采用邊界值分析法就是要這樣來選擇測試用例,使得被測試程序能在邊界值及其附
29、近運行, 從而更有效地暴銘程序中潛在的錯誤。例如程序可能設(shè)有語句lf(196702<=value(birthdate)<=198603)then read(birthdate)else wHte "invalid age"將上式U寫成V,以上所有測試都不能發(fā)現(xiàn)該錯誤?!纠可项}年月日的測試用例(邊界分析法)輸入等價類測試用例說明測試數(shù)據(jù)期望結(jié)果選取理由出生年月1個數(shù)字字符5輸入無效僅有一個合法字符比有效長度恰少一個字符5個數(shù)字字符197505比有效字符恰多一個字符 非法字符最少7個數(shù)字字符1986011非法字符最多有1個非數(shù)字字符19705A全是非數(shù)字字符AUG
30、UST6個數(shù)字字符196702輸入有效類型與長度均有效對應(yīng)數(shù)值35周歲196702合格年齡最大符合年齡最小符合年齡16周歲198603>35周歲196701不合格年齡恰大于合格年齡恰小于合格年齡<16周歲198604月份對應(yīng)數(shù) 值月份為1196801輸入有效最小月份最大月份月份為12198512月份<L196800輸入無效恰小于最小月份恰大于最大月份月份>12197413錯誤猜測法猜錯就是猜測被測程序放在哪些地方容易出錯,然后針對可能的薄弱環(huán)節(jié)來設(shè)計測試用例。般先用等價分類法和邊界值分析法設(shè)汁測試用例,然后用猜錯法補充些例作為輔助的手 段。白盒測試邏輯覆蓋測試:用流程圖
31、來設(shè)計測計用例。主要考察的重點是圖中的判定框(選擇或循環(huán))。按照被測試程序所作測試的冇效程度,邏輯測試可rti弱到強區(qū)分5種覆蓋標(biāo)準:語句覆蓋:每條語句至少執(zhí)行一次。判定覆蓋:每一判定的每個分支至少執(zhí)行一次。條件覆蓋:每一判定中的每個條件,分別按“真、“假”至少各執(zhí)行一次。判定/條件覆蓋:同時滿足判定覆蓋和條件覆蓋的要求。條件組合覆蓋:求出判定中所有條件的各種可能組合值,每可能的條件了和至少執(zhí)行次。覆蓋標(biāo)準程序結(jié)構(gòu)舉例測試用例應(yīng)滿足的條件語句覆蓋T1<t>HLAaB=.T.判定覆蓋1<t>sTT 1 TAaB=.T.» AaB=.F.條件覆蓋A=.T. 9 A
32、二FB=.T. > B=F.判定/條件覆蓋AaB=.T.» AaB=.F.A=.T. f A=.F.B二T,B二F條件組合覆蓋A=.T. a B=.T.A=.T. a B=.F.A=.F.人 B=.T.A=.F. a B=F路徑測試法程序圖:是一種簡化的流程圖。廠I I流程圖 IA=.F.人 B=.T.對程序圖中每-條可能的程序執(zhí)行路徑至少測試次。如果程序中含有循環(huán)(在程序中表現(xiàn)為環(huán)). 則每個循環(huán)至少執(zhí)行一次。路徑測試具有如下特征:滿足結(jié)構(gòu)測試的最低婆求。語句覆蓋加判定覆蓋是對白盒測試的城低要 求,同時滿足這兩種標(biāo)準的覆蓋為“完全覆蓋。從對路徑測試的要求可見,它本身就包含了語
33、 句覆蓋和判定覆蓋(在程序圖上分別為點覆蓋與邊覆蓋)。軟件復(fù)用1 什么是軟件復(fù)用?答:在構(gòu)造新的軟件系統(tǒng)的過程中,對己存在的軟件人工制品的使用技術(shù)。2什么是領(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ù)結(jié)構(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)并描
34、述可復(fù)用實體, 進而建立相關(guān)的模型和需求規(guī)約。(2) 開發(fā)可復(fù)用構(gòu)件:一旦確認了構(gòu)件的復(fù)用價值,即可進行構(gòu)件的開發(fā),并對具有復(fù)用價值的軟構(gòu)件 進行抽象、一般化和參數(shù)化,以便它們能夠適應(yīng)新的類似的應(yīng)用領(lǐng)域。(3) 建立可復(fù)用構(gòu)件座:將軟件構(gòu)件及其文檔進行分類I丿I并,形成相關(guān)的分類檢索機制,成為可供后繼 項目使用的可復(fù)用資源。3什么是CBSD?實施軟件構(gòu)件技術(shù)要解決哪些問題?答:基于構(gòu)件的軟件開發(fā)(Component-Based Software Development,簡稱CBSD)是在一定構(gòu)件模型的支持 下,復(fù)用構(gòu)件庫中的一個或參個軟件構(gòu)件,通過組合構(gòu)件來構(gòu)造應(yīng)用軟件系統(tǒng)的開發(fā)過程。要解決的
35、問題:構(gòu)件應(yīng)具有的特征:通用性、可變性、易組裝性。在建造構(gòu)件時,必須考略應(yīng)用領(lǐng)域的特征。領(lǐng)域構(gòu)件設(shè)計框架:標(biāo)準數(shù)據(jù)、標(biāo)準接II協(xié)議、程序模板.軟件維護丄為什么說軟件維護是不可避免的?答:滿足用戶對已開發(fā)產(chǎn)品的性能與運行環(huán)境不斷提高的需要,進而達到延長軟件的壽命。2 糾錯和糾錯性維護有哪些異同?答:糾錯的目的足定位和糾正錯誤;糾錯的任務(wù)是軟件故障,保證程序的可靠運行。糾錯性維護是由于軟件測試的不徹底性,任何人型軟件交付使用后,都會繼續(xù)發(fā)現(xiàn)潛在的錯誤,對它 們進行診斷和改正。目的在于糾正在開發(fā)期間未能發(fā)現(xiàn)的遺留錯誤。5什么是軟件配置?說明搞好維護時期配置的意義與方法。答:軟件配置是一個軟件在生存周期內(nèi),
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 戰(zhàn)友聚會發(fā)言稿合集15篇
- 成人禮學(xué)生發(fā)言稿(范文15篇)
- 感恩父母倡議書(15篇)
- 建筑工地質(zhì)量安全會議
- 土地職業(yè)培訓(xùn)平臺
- 插花入門基礎(chǔ)知識
- 數(shù)據(jù)專員培訓(xùn)課件
- 安全健康伴我行班會
- 2025年中考復(fù)習(xí)必背歷史措施類試題答題模板
- 陰囊積液的高頻彩色多普勒超聲特征分析
- 公務(wù)攝影拍攝技巧分享
- 倉儲中心退貨管理制度
- 豐田鋒蘭達說明書
- 白宮-人工智能行業(yè):美國人工智能權(quán)利法案藍圖(英譯中)
- 典范英語8-15Here comes trouble原文翻譯
- 六安市葉集化工園區(qū)污水處理廠及配套管網(wǎng)一期工程環(huán)境影響報告書
- 運動技能學(xué)習(xí)與控制課件第一章運動技能學(xué)習(xí)與控制概述
- 工程設(shè)計費取費標(biāo)準
- 清華大學(xué)考生自述
- 人機工程學(xué)與眼鏡
- 中層后備干部培訓(xùn)心得體會范本
評論
0/150
提交評論