《軟件工程》例子和練習(xí)分析課件_第1頁
《軟件工程》例子和練習(xí)分析課件_第2頁
《軟件工程》例子和練習(xí)分析課件_第3頁
《軟件工程》例子和練習(xí)分析課件_第4頁
《軟件工程》例子和練習(xí)分析課件_第5頁
已閱讀5頁,還剩165頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當(dāng)倉庫中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫存清單主文件,如果哪種零件的庫存量少于它的庫存量臨界值,則應(yīng)該報(bào)告給采購部門以便定貨,規(guī)定每天向采購部門送一次定貨報(bào)告。例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量1裝配廠使用一臺(tái)微機(jī)處理更新庫存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)。零件庫存量的每一次變換稱為一個(gè)事務(wù),由倉庫的CRT終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫存清單程序負(fù)責(zé)對(duì)事務(wù)進(jìn)行處理,更新存儲(chǔ)在磁盤上的庫存清單主文件;必要的定貨信息寫在磁帶上;每天由報(bào)告生成程序讀一次磁帶,生成并打印出定貨報(bào)告;庫存清單程序;報(bào)告生成程序。裝配廠使用一臺(tái)微機(jī)處理更新庫存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)2《軟件工程》例子和練習(xí)分析課件3【例:問題陳述】某家工廠的采購部每天需要一張定貨報(bào)表,報(bào)表按零件編號(hào)排序,表中列出所有需要再次定貨的零件。對(duì)于每個(gè)需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號(hào),零件名稱,定貨數(shù)量,目前價(jià)格,主要供應(yīng)者,次要供應(yīng)者。零件的出庫或入庫稱為事務(wù),通過CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。某種零件的庫存量少于庫存量臨界值時(shí)就要再次定貨。請(qǐng)給出該系統(tǒng)定貨情況的數(shù)據(jù)流圖?!纠簡栴}陳述】4【分析】第一步:確定系統(tǒng)的源點(diǎn)和終點(diǎn)倉庫管理員是數(shù)據(jù)的源點(diǎn)采購員是數(shù)據(jù)的終點(diǎn)處理本題應(yīng)該完成定貨系統(tǒng)這樣一個(gè)功能 【分析】5數(shù)據(jù)流事務(wù)需從倉庫送到系統(tǒng)中,顯然事務(wù)是一個(gè)數(shù)據(jù)流;系統(tǒng)要把定貨報(bào)表送給采購部,定貨報(bào)表也是一個(gè)數(shù)據(jù)流。根據(jù)問題的陳述,把整個(gè)數(shù)據(jù)處理過程看作一個(gè)加工,它的輸入數(shù)據(jù)和輸出數(shù)據(jù)實(shí)際上反映了本系統(tǒng)與外界環(huán)境的接口。系統(tǒng)的頂層數(shù)據(jù)流圖如下所示:數(shù)據(jù)流6任何系統(tǒng)的基本模型都由若干個(gè)數(shù)據(jù)源點(diǎn)/終點(diǎn)以及一個(gè)處理組成,這個(gè)處理就代表了系統(tǒng)對(duì)數(shù)據(jù)加工變換的基本功能。任何系統(tǒng)的基本模型都由若干個(gè)數(shù)據(jù)源點(diǎn)/終點(diǎn)以及7第二步:把基本系統(tǒng)模型細(xì)化,描繪系統(tǒng)的主要功能將數(shù)據(jù)處理過程—定貨系統(tǒng)進(jìn)行功能分解成處理事務(wù)和產(chǎn)生報(bào)表兩部分考慮有關(guān)數(shù)據(jù)存儲(chǔ)問題,題中涉及到存儲(chǔ)的信息有:庫存清單、定貨信息處理事務(wù)需要“庫存清單”數(shù)據(jù)產(chǎn)生報(bào)表和處理事務(wù)在不同時(shí)間進(jìn)行,因此需要存儲(chǔ)“定貨信息”第二步:把基本系統(tǒng)模型細(xì)化,描繪系統(tǒng)的主要功能8《軟件工程》例子和練習(xí)分析課件9第三步:根據(jù)需要,對(duì)處理功能進(jìn)行分解將處理事務(wù)進(jìn)一步分解為接收事務(wù)、更新庫存清單、處理定貨三部分畫出進(jìn)一步分解后的數(shù)據(jù)流圖第三步:根據(jù)需要,對(duì)處理功能進(jìn)行分解10《軟件工程》例子和練習(xí)分析課件11根據(jù)下列描述,畫出學(xué)生申請(qǐng)IC借書卡的第一層數(shù)據(jù)流圖。學(xué)生入學(xué)后到圖書館申請(qǐng)IC借書卡,圖書館管理人員根據(jù)IC借書卡庫存情況分析是否需要購買新的IC借書卡,如需購買,則向IC借書卡提供商購買。各種資金往來通過學(xué)校的會(huì)計(jì)科辦理。根據(jù)下列描述,畫出學(xué)生申請(qǐng)IC借書卡的第一層12欲開發(fā)一個(gè)銀行的活期存取款業(yè)務(wù)的處理系統(tǒng):儲(chǔ)戶將填好的存/取款單和存折交給銀行工作人員,然后由系統(tǒng)作以下處理;(1)業(yè)務(wù)分類處理:系統(tǒng)首先根據(jù)儲(chǔ)戶所填的存/取款單,確定本次業(yè)務(wù)的性質(zhì),并將存/取款單和存折交下一步處理;(2)存款處理:系統(tǒng)將存款單上的存款金額分別記錄在存折和帳目文件中,并將現(xiàn)金存入現(xiàn)金庫;最后將存折還給儲(chǔ)戶;(3)取款處理:系統(tǒng)將取款單上的取款金額分別記錄在存折和帳目文件中,并從現(xiàn)金庫提取現(xiàn)金;最后將現(xiàn)金和存折還給儲(chǔ)戶。 該系統(tǒng)的總體圖如下圖所示,請(qǐng)畫出該系統(tǒng)的零級(jí)圖。欲開發(fā)一個(gè)銀行的活期存取款業(yè)務(wù)的處理系統(tǒng):儲(chǔ)戶將填13《軟件工程》例子和練習(xí)分析課件14某個(gè)學(xué)生成績管理系統(tǒng)的部分功能如下:A.基本信息管理:教務(wù)管理人員輸入或修改學(xué)期教學(xué)執(zhí)行計(jì)劃、學(xué)生名單和教師名單;B.學(xué)生選課:學(xué)生根據(jù)教學(xué)執(zhí)行計(jì)劃進(jìn)行選課;C.分配任課教師:教務(wù)管理人員為符合開課條件的課程分配教師,并打印任課通知單給教師;D.成績管理:每門課程的教師在考試評(píng)分結(jié)束后將考試成績交給教務(wù)管理人員,教務(wù)管理人員輸入、維護(hù)成績,系統(tǒng)可生成成績單(發(fā)給學(xué)生)、成績統(tǒng)計(jì)分析表(發(fā)給教務(wù)管理人員)。根據(jù)以上的描述,完成下列題目:(1)請(qǐng)用數(shù)據(jù)流圖描繪本系統(tǒng)的功能。(2)請(qǐng)用實(shí)體-聯(lián)系圖描繪本系統(tǒng)的功能。某個(gè)學(xué)生成績管理系統(tǒng)的部分功能如下:15IPO1學(xué)生信息IPO2學(xué)生選課IPO3成績查詢IPO4教師信息IPO6分配教師IPO5成績錄入IPO7教學(xué)計(jì)劃管理IPO1IPO2IPO3IPO4IPO6IPO5IPO716例:一個(gè)應(yīng)用軟件系統(tǒng)的開發(fā)成本需5000元,系統(tǒng)投入運(yùn)行后每年可節(jié)約2500元,當(dāng)年利率為12%時(shí),計(jì)算該軟件系統(tǒng)的投資回收期、純收入和投資回收率。年將來值(1+i)現(xiàn)在值累計(jì)現(xiàn)在值125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.94

9011.94-5000=4011.94(元)2+(5000-4225.12)/1779.45=2.44(年)本題的投資回收率為41%-42%。例:一個(gè)應(yīng)用軟件系統(tǒng)的開發(fā)成本需5000元,系統(tǒng)投入運(yùn)行后每17

例:某校教學(xué)管理ER圖

對(duì)象教師屬性學(xué)生屬性課程屬性聯(lián)系屬性關(guān)系例:某校教學(xué)管理ER圖對(duì)象教師屬性學(xué)生屬性課程屬性18下面是一個(gè)人們打電話時(shí)的系統(tǒng)狀態(tài)圖。(見書67頁)。

圖中表明,沒有人打電話時(shí)電話處于閑置狀態(tài);有人拿起聽筒則進(jìn)入撥號(hào)音狀態(tài),到達(dá)這個(gè)狀態(tài)后,電話的行為是響起撥號(hào)音并計(jì)時(shí);這時(shí)如果拿起聽筒的人改變主意不想打了,他把聽筒放下(掛斷),電話重又回到閑置狀態(tài);如果拿起聽筒很長時(shí)間不撥號(hào)(超時(shí)),則進(jìn)入超時(shí)狀態(tài);……。下面是一個(gè)人們打電話時(shí)的系統(tǒng)狀態(tài)圖。(見書67頁)。圖中表19例如,描繪一家計(jì)算機(jī)公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)可以用圖中的層次方框圖表示。例如,描繪一家計(jì)算機(jī)公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)可以用圖中的層次方20例:用Warnier圖描繪一類軟件產(chǎn)品例:用Warnier圖描繪一類軟件產(chǎn)品21圖正文加工系統(tǒng)的層次圖層次圖圖正文加工系統(tǒng)的層次圖層次圖22圖帶編號(hào)的層次圖(H圖)和H圖中每個(gè)方框相對(duì)應(yīng),應(yīng)該有一張IPO圖描繪這個(gè)方框代表的模塊的處理過程。模塊在H圖中的編號(hào)便于追蹤了解這個(gè)模塊在軟件結(jié)構(gòu)中的位置。HIPO圖圖帶編號(hào)的層次圖(H圖)和H圖中每個(gè)方框相對(duì)應(yīng),應(yīng)該有一張23圖結(jié)構(gòu)圖的例子——產(chǎn)生最佳解的一般結(jié)構(gòu)結(jié)構(gòu)圖圖結(jié)構(gòu)圖的例子——產(chǎn)生最佳解的一般結(jié)構(gòu)結(jié)構(gòu)圖241.變換分析例子:汽車數(shù)字儀表板的設(shè)計(jì)。(教材P106)假設(shè)的儀表板將完成下述功能:(1)通過模數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理機(jī)接口;(2)在發(fā)光二極管面板上顯示數(shù)據(jù);(3)指示每小時(shí)英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等;(4)指示加速或減速;(5)超速警告:如果車速超過55英里/小時(shí),則發(fā)出超速警告鈴聲。在軟件需求分析階段應(yīng)該對(duì)上述每條要求以及系統(tǒng)的其他特點(diǎn)進(jìn)行全面的分析評(píng)價(jià),建立起必要的文檔資料,特別是數(shù)據(jù)流圖。1.變換分析例子:汽車數(shù)字儀表板的設(shè)計(jì)。(教材P106)25《軟件工程》例子和練習(xí)分析課件26《軟件工程》例子和練習(xí)分析課件27第一級(jí)分解第一級(jí)分解28《軟件工程》例子和練習(xí)分析課件29《軟件工程》例子和練習(xí)分析課件30《軟件工程》例子和練習(xí)分析課件31精化精化32例題:某程序流程圖如右圖所示,請(qǐng)分別用N-S圖和PAD圖表示。例題:某程序流程圖如右圖所示,請(qǐng)分別用N-S圖和PAD圖表示33aUNTILx8jbiceWHILEx5dx1x2x3x4fghUNTILx7x6xi=PAD圖:aUNTILx8jbiceWHILEx5dx1x2x34x8ajx1bTFfx6TFx7ighCASExix2x4x3x5cdeN-S圖:ajx1bTFfx6TFighCASExix2x4x3x535判定表例題:假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過30kg的行李。當(dāng)行李重量超過30kg時(shí),對(duì)頭等艙的國內(nèi)乘客超重部分每公斤收費(fèi)4元,對(duì)其他艙的國內(nèi)乘客超重部分每公斤收費(fèi)6元。對(duì)外國乘客超重部分每公斤收費(fèi)比國內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。判定表例題:36例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法37

圖用判定樹表示計(jì)算行李費(fèi)的算法判定樹

圖用判定樹表示計(jì)算行李費(fèi)的算法判定樹38例題:某校制定了教師的講課課時(shí)津貼標(biāo)準(zhǔn)。對(duì)于各種性質(zhì)的講座,無論教師是什么職稱,每課時(shí)津貼費(fèi)一律是50元;對(duì)于一般的授課,則根據(jù)教師的職稱來決定每課時(shí)津貼費(fèi):教授30元,副教授25元,講師20元,助教15元。請(qǐng)分別用判定表和判定樹表示津貼標(biāo)準(zhǔn)。

例題:39√15√20√25√30√50FFFFT講座TFFF助教FTFF講師FFTF副教授FFFT教授54321判定表:√15√20√25√30√50FFFFT講座TFFF助教FT40課時(shí)津貼一般授課講座教授副教授講師助教3025201550判定樹:課時(shí)津貼一般授課講座教授副教授講師助教3025201550判41練習(xí)題1:習(xí)題6.3畫出下列偽碼程序的程序流程圖和盒圖: START IFpTHEN WHILEqDO fENDDO ELSE BLOCK g n ENDBLOCK ENDIF STOP練習(xí)題1:習(xí)題6.342《軟件工程》例子和練習(xí)分析課件43Jackson方法例:一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。要求的輸出數(shù)據(jù)格式是,每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。Jackson方法例:44(1)用Jackson圖描繪輸入、輸出數(shù)據(jù)結(jié)構(gòu)輸入數(shù)據(jù)的格式為:①若干記錄——構(gòu)成文件②若干字符——構(gòu)成一條記錄③字符是由空格與非空格兩類元素組成的輸出數(shù)據(jù)的格式為:①一行字符串②本行字符串中的空格數(shù)③文件中的空格總數(shù)(1)用Jackson圖描繪輸入、輸出數(shù)據(jù)結(jié)構(gòu)45(1)用Jackson圖描繪的輸入輸出數(shù)據(jù)結(jié)構(gòu)。設(shè)計(jì)步驟如下:(1)用Jackson圖描繪的輸入輸出數(shù)據(jù)結(jié)構(gòu)。設(shè)計(jì)步驟46(2)分析確定在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。(2)分析確定在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)47(3)從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖。(3)從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖。48(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(1)停止 (2)打開文件(3)關(guān)閉文件 (4)印出字符串(5)印出空格數(shù)目 (6)印出空格總數(shù)(7)sum:=sum+1 (8)totalsum:=totalsum+sum(9)讀入字符串 (10)sum:=0(11)totalsum:=0 (12)pointer:=1(13)pointer:=pointer+1 I(1)文件結(jié)束I(2)字符串結(jié)束 S(3)字符是空格(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)49(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(5)用偽碼表示程序處理過程。

(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)50流圖的表示:結(jié)點(diǎn):用圓表示,一個(gè)圓代表一條或多條語句。邊:箭頭線稱為邊,代表控制流。在流圖中一條邊必須終止于一個(gè)結(jié)點(diǎn),即使這個(gè)結(jié)點(diǎn)并不代表任何語句。區(qū)域:由邊和結(jié)點(diǎn)圍成的面積稱為區(qū)域,包括圖外部未被圍起來的區(qū)域。流圖的表示:51映射方法:任何方法表示的過程設(shè)計(jì)結(jié)果,都可以翻譯成流圖。對(duì)于順序結(jié)構(gòu),一個(gè)順序處理序列和下一個(gè)選擇或循環(huán)的開始語句,可以映射成流圖中的一個(gè)結(jié)點(diǎn)。映射方法:52對(duì)于選擇結(jié)構(gòu),開始語句映射成一個(gè)結(jié)點(diǎn);兩條分支至少各映射成一個(gè)結(jié)點(diǎn);結(jié)束映射成一個(gè)結(jié)點(diǎn)。對(duì)于選擇結(jié)構(gòu),開始語句映射成一個(gè)結(jié)點(diǎn);兩條分支至少各映射成一53對(duì)于循環(huán)結(jié)構(gòu),開始和結(jié)束語句各映射成一個(gè)結(jié)點(diǎn)。對(duì)于循環(huán)結(jié)構(gòu),開始和結(jié)束語句各映射成一個(gè)結(jié)點(diǎn)。54《軟件工程》例子和練習(xí)分析課件55V(G)=區(qū)域數(shù)=4V(G)=E-N+2=11-9+2=4V(G)=P+1=3+1=4V(G)=區(qū)域數(shù)56例:例:57邏輯覆蓋邏輯覆蓋58

1、語句覆蓋選擇足夠多的測(cè)試數(shù)據(jù),至少執(zhí)行程序中所有語句一次。在該例子中,只要設(shè)計(jì)能通過路徑SacbdR的測(cè)試用例就覆蓋了所有的語句。所以可選擇測(cè)試用例如:【A=2,B=0,X=3】

1、語句覆蓋59

2.判定覆蓋(分支覆蓋)程序中的每個(gè)語句至少執(zhí)行一次,并且每個(gè)判定的每個(gè)可能結(jié)果都至少執(zhí)行一次。所有判定分支:(1)a點(diǎn)判定為T(2)a點(diǎn)判定為F(3)b點(diǎn)判定為T(4)b點(diǎn)判定為F

2.判定覆蓋(分支覆蓋)60

2.判定覆蓋(分支覆蓋)測(cè)試用例:

Ⅰ.滿足(1)(4)(A=3,B=0,X=1) 覆蓋SacbRⅡ.滿足(2)(3)(A=2,B=1,X=1)

覆蓋SabdR

2.判定覆蓋(分支覆蓋)61

2.判定覆蓋(分支覆蓋)或者:Ⅰ.滿足(1)(3)(A=2,B=0,X=3)覆蓋sacbdRⅡ.滿足(2)(4)(A=3,B=1,X=1)覆蓋sabR特點(diǎn):比語句覆蓋強(qiáng),但對(duì)程序邏輯的覆蓋程度仍不高。

2.判定覆蓋(分支覆蓋)623.條件覆蓋不僅每個(gè)語句至少執(zhí)行一次,而且使判定表達(dá)式中的每個(gè)條件都取到各種可能的結(jié)果。為達(dá)到條件覆蓋標(biāo)準(zhǔn),應(yīng)選取測(cè)試數(shù)據(jù),使得:在a點(diǎn)判定有各種結(jié)果出現(xiàn):①A>1②A≤1

③B=0④B≠0在b點(diǎn)判定有各種結(jié)果出現(xiàn):⑤A=2⑥A≠2

⑦X>1⑧X≤13.條件覆蓋633.條件覆蓋因此,可選取測(cè)試用例:⑴滿足①③⑤⑦【A=2,B=0,X=4】

(滿足A>1,B=0,A=2,X>1的條件,執(zhí)行路徑SacbdR)⑵滿足②④⑥⑧【A=1,B=1,X=1】

(滿足A≤1,B≠0,A≠2,X≤1的條件,執(zhí)行路徑SabR)3.條件覆蓋643.條件覆蓋或者,可選取測(cè)試用例:⑴滿足①③⑤⑧【A=2,B=0,X=1】

(滿足A>1,B=0,A=2,X≤1的條件,執(zhí)行路徑SacbdR)⑵滿足②④⑥⑦【A=1,B=1,X=2】

(滿足A≤1,B≠0,A≠2,X>1的條件,執(zhí)行路徑SabdR)3.條件覆蓋654.判定/條件覆蓋選取足夠多的測(cè)試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)條件都取到各種可能的值,而且每個(gè)判定表達(dá)式

都取到各種可能的結(jié)果。測(cè)試用例:Ⅰ.滿足條件①③⑤⑦和判定①③

A=2,B=0,X=4 覆蓋SacbdRⅡ.滿足條件②④⑥⑧和判定②④ A=1,B=1,X=1 覆蓋SabR特點(diǎn):有時(shí)判定/條件覆蓋也并不比條件覆蓋更強(qiáng)。4.判定/條件覆蓋66在例子中,對(duì)于a、b點(diǎn)的判定共有八種可能的條件組合,它們是:⑴A>1,B=0

⑵A>1,B≠0

⑶A≤1,B=0

⑷A≤1,B≠0

⑸A=2,X>1

⑹A=2,X≤1 ⑺A≠2,X>1 ⑻A≠2,X≤1

條件組合覆蓋在例子中,對(duì)于a、b點(diǎn)的判定共有八種可能的條件組合,它們是:67因此,可選取下面四組測(cè)試用例,使上面列出的八種條件組合每種至少出現(xiàn)一次:Ⅰ.A=2,B=0,X=4

(針對(duì)1、5兩種組合,執(zhí)行路徑SacbdR)Ⅱ.A=2,B=1,X=1

(針對(duì)2、6兩種組合,執(zhí)行路徑SabdR)Ⅲ.A=1,B=0,X=2

(針對(duì)3、7兩種組合,執(zhí)行路徑SabdR)Ⅳ.A=1,B=1,X=1

(針對(duì)4、8兩種組合,執(zhí)行路徑SabR)因此,可選取下面四組測(cè)試用例,使上面列出的八種條件組合每種至68

測(cè)試用例:【A=2,B=0,X=4】

執(zhí)行路徑:SacbdR點(diǎn)覆蓋

測(cè)試用例:【A=2,B=0,X=4】

執(zhí)行路徑:Sacb69為使程序執(zhí)行路徑經(jīng)過程序圖的邊覆蓋(1,2,3,4,5,6,7),可使用測(cè)試用例:⑴【A=3,B=0,X=1】

執(zhí)行路徑:1-4-5-3⑵【A=2,B=1,X=1】

執(zhí)行路徑:1-2-6-7為使程序執(zhí)行路徑經(jīng)過程序圖的邊覆蓋(1,2,3,4,5,6,708.路徑覆蓋選取足夠多的測(cè)試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)行一次(如果程序圖中有環(huán),則要求每個(gè)環(huán)至少經(jīng)過一次)。例中共有四條可能的執(zhí)行路徑:1-2-3;1-2-6-7;1-4-5-3;1-4-5-6-7。8.路徑覆蓋71為滿足路徑覆蓋,可使用測(cè)試用例:⑴【A=1,B=1,X=1】

執(zhí)行路徑:1-2-3⑵【A=1,B=1,X=2】

執(zhí)行路徑:1-2-6-7⑶【A=3,B=0,X=1】

執(zhí)行路徑:1-4-5-3⑷【A=2,B=0,X=4】

執(zhí)行路徑:1-4-5-6-7為滿足路徑覆蓋,可使用測(cè)試用例:72下面用等價(jià)劃分法設(shè)計(jì)一個(gè)簡單程序的測(cè)試方案(實(shí)例研究):某一8位計(jì)算機(jī),其十六進(jìn)制常數(shù)的定義為:以0x或0X開頭的數(shù)是十六進(jìn)制整數(shù),其值的范圍是-7f至7f(大小寫字母不加區(qū)別),如0x13,0X6A,-0x3c。下面用等價(jià)劃分法設(shè)計(jì)一個(gè)簡單程序的測(cè)試方案(實(shí)例研究):73第一步:建立等價(jià)類表輸入條件有效等價(jià)類無效等價(jià)類十六進(jìn)制整數(shù)1、0x或0X開頭的1-2位數(shù)字串

2、以-0x開頭的1-2位數(shù)字串

3、在-7f至7f之間

4、非0x或非-開頭的串

5、含有非數(shù)字且(a,b,c,d,e,f)以外字符

6、多于5個(gè)字符

7、-后跟非0的多位串

8、-0后跟數(shù)字串

9、-后多于3個(gè)數(shù)字

10、小于-7f

11、大于7f

第一步:建立等價(jià)類表輸入條件有效等價(jià)類無效等價(jià)類十六進(jìn)制整數(shù)74

第二步:為有效等價(jià)類設(shè)計(jì)測(cè)試用例測(cè)試用例期望結(jié)果覆蓋范圍0x23顯示有效輸入1,3-0x15顯示有效輸入2,3第二步:為有效等價(jià)類設(shè)計(jì)測(cè)試用例測(cè)試用例期望結(jié)果覆蓋范圍075

第三步:為無效等價(jià)類至少設(shè)計(jì)一個(gè)測(cè)試用例

測(cè)試用例期望結(jié)果覆蓋范圍2顯示無效輸入4G12顯示無效輸入5123311顯示無效輸入6-1012顯示無效輸入7-011顯示無效輸入8-0134顯示無效輸入9-0x777顯示無效輸入100x87顯示無效輸入11

第三步:為無效等價(jià)類至少設(shè)計(jì)一個(gè)測(cè)試用例

測(cè)試用例期望結(jié)果76邊界值分析例:計(jì)算機(jī)輸出整數(shù)的范圍在-32768-32767之間,若我們要測(cè)試機(jī)器所能表示整數(shù)的邊界情況,則有如下測(cè)試方案和輸出結(jié)果:1、輸入-32769,輸出“無效輸入”2、輸入-32768,輸出-327683、輸入-32767,輸出-327674、輸入32766,輸出327665、輸入32767,輸出327676、輸入32678,輸出“無效輸入”邊界值分析例:計(jì)算機(jī)輸出整數(shù)的范圍在-32768-3276777Gantt(甘特)圖假設(shè)有一座陳舊的矩形木板房需要重新油漆。這項(xiàng)工作必須分3步完成:首先刮掉舊漆,然后刷上新漆,最后清除濺在窗戶上的油漆。假設(shè)一共分配了15名工人去完成這項(xiàng)工作,然而工具卻有限:只有5把刮舊漆用的刮板,5把刷漆用的刷子,5把清除濺在窗戶上的油漆用的小刮刀。怎樣安排才能使工作進(jìn)行得更有效呢?Gantt(甘特)圖78要提高效率,應(yīng)該采用“流水作業(yè)法”,即首先由5名工人刮板刮掉第1面墻上的舊漆,當(dāng)?shù)?面墻刮凈后,另外5名工人立即用刷子給這面墻刷新漆(與此同時(shí)拿刮板的5名工人轉(zhuǎn)去刮第2面墻上的舊漆)。一旦刮漆的工人轉(zhuǎn)到第3面墻而且刷新漆的工人轉(zhuǎn)到第2面墻以后,余下的5名工人立即拿起刮刀去清除濺在第1面墻窗戶上的油漆,……。這樣安排使每個(gè)工人都有活干,因此在較短的時(shí)間內(nèi)完成任務(wù)。要提高效率,應(yīng)該采用“流水作業(yè)法”,即首先由5名工人刮板刮掉79表13.5各道工序估計(jì)需要用的時(shí)間(小時(shí))工序墻壁刮舊漆刷新漆清理1或32312或4462圖13.1舊木板房刷漆工程的Gantt圖表13.5各道工序估計(jì)需要用的時(shí)間(小時(shí))工序刮80工程網(wǎng)絡(luò)在工程網(wǎng)絡(luò)中用箭頭表示作業(yè)(例如,刮舊漆,刷新漆,清理等),用圓圈表示事件(一項(xiàng)作業(yè)開始或結(jié)束)。注意,事件僅僅是可以明確定義的時(shí)間點(diǎn),并不消耗時(shí)間和資源。作業(yè)通常既消耗資源又需要持續(xù)一定的時(shí)間。用開始事件和結(jié)束事件的編號(hào)標(biāo)識(shí)一個(gè)作業(yè),因此“刮第1面墻上舊漆”是作業(yè)1-2。工程網(wǎng)絡(luò)在工程網(wǎng)絡(luò)中用箭頭表示作業(yè)(例如,刮舊漆,刷新漆,清81圖13.2是舊木板房刷漆工程的工程網(wǎng)絡(luò)。圖13.2舊木板房刷漆工程的工程網(wǎng)絡(luò)圖13.2是舊木板房刷漆工程的工程網(wǎng)絡(luò)。82圖13.3舊木板房刷漆工程的完整的工程網(wǎng)絡(luò)

圖13.3舊木板房刷漆工程的完整的工程網(wǎng)絡(luò)

83作業(yè)LET(結(jié)束)EET(開始)持續(xù)時(shí)間機(jī)動(dòng)時(shí)間2-462313-5116234-71861115-6128045-8158436-71812067-92012268-92015059-10211515表13.6舊木板房刷漆網(wǎng)絡(luò)中的機(jī)動(dòng)時(shí)間(小時(shí))作業(yè)LET(結(jié)束)EET(開始)持續(xù)時(shí)間機(jī)動(dòng)時(shí)間2-462384圖13.4舊木板房刷漆工程改進(jìn)的Gantt圖之一圖13.4舊木板房刷漆工程改進(jìn)的Gantt圖之一85例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當(dāng)倉庫中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫存清單主文件,如果哪種零件的庫存量少于它的庫存量臨界值,則應(yīng)該報(bào)告給采購部門以便定貨,規(guī)定每天向采購部門送一次定貨報(bào)告。例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量86裝配廠使用一臺(tái)微機(jī)處理更新庫存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)。零件庫存量的每一次變換稱為一個(gè)事務(wù),由倉庫的CRT終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫存清單程序負(fù)責(zé)對(duì)事務(wù)進(jìn)行處理,更新存儲(chǔ)在磁盤上的庫存清單主文件;必要的定貨信息寫在磁帶上;每天由報(bào)告生成程序讀一次磁帶,生成并打印出定貨報(bào)告;庫存清單程序;報(bào)告生成程序。裝配廠使用一臺(tái)微機(jī)處理更新庫存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)87《軟件工程》例子和練習(xí)分析課件88【例:問題陳述】某家工廠的采購部每天需要一張定貨報(bào)表,報(bào)表按零件編號(hào)排序,表中列出所有需要再次定貨的零件。對(duì)于每個(gè)需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號(hào),零件名稱,定貨數(shù)量,目前價(jià)格,主要供應(yīng)者,次要供應(yīng)者。零件的出庫或入庫稱為事務(wù),通過CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。某種零件的庫存量少于庫存量臨界值時(shí)就要再次定貨。請(qǐng)給出該系統(tǒng)定貨情況的數(shù)據(jù)流圖?!纠簡栴}陳述】89【分析】第一步:確定系統(tǒng)的源點(diǎn)和終點(diǎn)倉庫管理員是數(shù)據(jù)的源點(diǎn)采購員是數(shù)據(jù)的終點(diǎn)處理本題應(yīng)該完成定貨系統(tǒng)這樣一個(gè)功能 【分析】90數(shù)據(jù)流事務(wù)需從倉庫送到系統(tǒng)中,顯然事務(wù)是一個(gè)數(shù)據(jù)流;系統(tǒng)要把定貨報(bào)表送給采購部,定貨報(bào)表也是一個(gè)數(shù)據(jù)流。根據(jù)問題的陳述,把整個(gè)數(shù)據(jù)處理過程看作一個(gè)加工,它的輸入數(shù)據(jù)和輸出數(shù)據(jù)實(shí)際上反映了本系統(tǒng)與外界環(huán)境的接口。系統(tǒng)的頂層數(shù)據(jù)流圖如下所示:數(shù)據(jù)流91任何系統(tǒng)的基本模型都由若干個(gè)數(shù)據(jù)源點(diǎn)/終點(diǎn)以及一個(gè)處理組成,這個(gè)處理就代表了系統(tǒng)對(duì)數(shù)據(jù)加工變換的基本功能。任何系統(tǒng)的基本模型都由若干個(gè)數(shù)據(jù)源點(diǎn)/終點(diǎn)以及92第二步:把基本系統(tǒng)模型細(xì)化,描繪系統(tǒng)的主要功能將數(shù)據(jù)處理過程—定貨系統(tǒng)進(jìn)行功能分解成處理事務(wù)和產(chǎn)生報(bào)表兩部分考慮有關(guān)數(shù)據(jù)存儲(chǔ)問題,題中涉及到存儲(chǔ)的信息有:庫存清單、定貨信息處理事務(wù)需要“庫存清單”數(shù)據(jù)產(chǎn)生報(bào)表和處理事務(wù)在不同時(shí)間進(jìn)行,因此需要存儲(chǔ)“定貨信息”第二步:把基本系統(tǒng)模型細(xì)化,描繪系統(tǒng)的主要功能93《軟件工程》例子和練習(xí)分析課件94第三步:根據(jù)需要,對(duì)處理功能進(jìn)行分解將處理事務(wù)進(jìn)一步分解為接收事務(wù)、更新庫存清單、處理定貨三部分畫出進(jìn)一步分解后的數(shù)據(jù)流圖第三步:根據(jù)需要,對(duì)處理功能進(jìn)行分解95《軟件工程》例子和練習(xí)分析課件96根據(jù)下列描述,畫出學(xué)生申請(qǐng)IC借書卡的第一層數(shù)據(jù)流圖。學(xué)生入學(xué)后到圖書館申請(qǐng)IC借書卡,圖書館管理人員根據(jù)IC借書卡庫存情況分析是否需要購買新的IC借書卡,如需購買,則向IC借書卡提供商購買。各種資金往來通過學(xué)校的會(huì)計(jì)科辦理。根據(jù)下列描述,畫出學(xué)生申請(qǐng)IC借書卡的第一層97欲開發(fā)一個(gè)銀行的活期存取款業(yè)務(wù)的處理系統(tǒng):儲(chǔ)戶將填好的存/取款單和存折交給銀行工作人員,然后由系統(tǒng)作以下處理;(1)業(yè)務(wù)分類處理:系統(tǒng)首先根據(jù)儲(chǔ)戶所填的存/取款單,確定本次業(yè)務(wù)的性質(zhì),并將存/取款單和存折交下一步處理;(2)存款處理:系統(tǒng)將存款單上的存款金額分別記錄在存折和帳目文件中,并將現(xiàn)金存入現(xiàn)金庫;最后將存折還給儲(chǔ)戶;(3)取款處理:系統(tǒng)將取款單上的取款金額分別記錄在存折和帳目文件中,并從現(xiàn)金庫提取現(xiàn)金;最后將現(xiàn)金和存折還給儲(chǔ)戶。 該系統(tǒng)的總體圖如下圖所示,請(qǐng)畫出該系統(tǒng)的零級(jí)圖。欲開發(fā)一個(gè)銀行的活期存取款業(yè)務(wù)的處理系統(tǒng):儲(chǔ)戶將填98《軟件工程》例子和練習(xí)分析課件99某個(gè)學(xué)生成績管理系統(tǒng)的部分功能如下:A.基本信息管理:教務(wù)管理人員輸入或修改學(xué)期教學(xué)執(zhí)行計(jì)劃、學(xué)生名單和教師名單;B.學(xué)生選課:學(xué)生根據(jù)教學(xué)執(zhí)行計(jì)劃進(jìn)行選課;C.分配任課教師:教務(wù)管理人員為符合開課條件的課程分配教師,并打印任課通知單給教師;D.成績管理:每門課程的教師在考試評(píng)分結(jié)束后將考試成績交給教務(wù)管理人員,教務(wù)管理人員輸入、維護(hù)成績,系統(tǒng)可生成成績單(發(fā)給學(xué)生)、成績統(tǒng)計(jì)分析表(發(fā)給教務(wù)管理人員)。根據(jù)以上的描述,完成下列題目:(1)請(qǐng)用數(shù)據(jù)流圖描繪本系統(tǒng)的功能。(2)請(qǐng)用實(shí)體-聯(lián)系圖描繪本系統(tǒng)的功能。某個(gè)學(xué)生成績管理系統(tǒng)的部分功能如下:100IPO1學(xué)生信息IPO2學(xué)生選課IPO3成績查詢IPO4教師信息IPO6分配教師IPO5成績錄入IPO7教學(xué)計(jì)劃管理IPO1IPO2IPO3IPO4IPO6IPO5IPO7101例:一個(gè)應(yīng)用軟件系統(tǒng)的開發(fā)成本需5000元,系統(tǒng)投入運(yùn)行后每年可節(jié)約2500元,當(dāng)年利率為12%時(shí),計(jì)算該軟件系統(tǒng)的投資回收期、純收入和投資回收率。年將來值(1+i)現(xiàn)在值累計(jì)現(xiàn)在值125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.94

9011.94-5000=4011.94(元)2+(5000-4225.12)/1779.45=2.44(年)本題的投資回收率為41%-42%。例:一個(gè)應(yīng)用軟件系統(tǒng)的開發(fā)成本需5000元,系統(tǒng)投入運(yùn)行后每102

例:某校教學(xué)管理ER圖

對(duì)象教師屬性學(xué)生屬性課程屬性聯(lián)系屬性關(guān)系例:某校教學(xué)管理ER圖對(duì)象教師屬性學(xué)生屬性課程屬性103下面是一個(gè)人們打電話時(shí)的系統(tǒng)狀態(tài)圖。(見書67頁)。

圖中表明,沒有人打電話時(shí)電話處于閑置狀態(tài);有人拿起聽筒則進(jìn)入撥號(hào)音狀態(tài),到達(dá)這個(gè)狀態(tài)后,電話的行為是響起撥號(hào)音并計(jì)時(shí);這時(shí)如果拿起聽筒的人改變主意不想打了,他把聽筒放下(掛斷),電話重又回到閑置狀態(tài);如果拿起聽筒很長時(shí)間不撥號(hào)(超時(shí)),則進(jìn)入超時(shí)狀態(tài);……。下面是一個(gè)人們打電話時(shí)的系統(tǒng)狀態(tài)圖。(見書67頁)。圖中表104例如,描繪一家計(jì)算機(jī)公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)可以用圖中的層次方框圖表示。例如,描繪一家計(jì)算機(jī)公司全部產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)可以用圖中的層次方105例:用Warnier圖描繪一類軟件產(chǎn)品例:用Warnier圖描繪一類軟件產(chǎn)品106圖正文加工系統(tǒng)的層次圖層次圖圖正文加工系統(tǒng)的層次圖層次圖107圖帶編號(hào)的層次圖(H圖)和H圖中每個(gè)方框相對(duì)應(yīng),應(yīng)該有一張IPO圖描繪這個(gè)方框代表的模塊的處理過程。模塊在H圖中的編號(hào)便于追蹤了解這個(gè)模塊在軟件結(jié)構(gòu)中的位置。HIPO圖圖帶編號(hào)的層次圖(H圖)和H圖中每個(gè)方框相對(duì)應(yīng),應(yīng)該有一張108圖結(jié)構(gòu)圖的例子——產(chǎn)生最佳解的一般結(jié)構(gòu)結(jié)構(gòu)圖圖結(jié)構(gòu)圖的例子——產(chǎn)生最佳解的一般結(jié)構(gòu)結(jié)構(gòu)圖1091.變換分析例子:汽車數(shù)字儀表板的設(shè)計(jì)。(教材P106)假設(shè)的儀表板將完成下述功能:(1)通過模數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理機(jī)接口;(2)在發(fā)光二極管面板上顯示數(shù)據(jù);(3)指示每小時(shí)英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等;(4)指示加速或減速;(5)超速警告:如果車速超過55英里/小時(shí),則發(fā)出超速警告鈴聲。在軟件需求分析階段應(yīng)該對(duì)上述每條要求以及系統(tǒng)的其他特點(diǎn)進(jìn)行全面的分析評(píng)價(jià),建立起必要的文檔資料,特別是數(shù)據(jù)流圖。1.變換分析例子:汽車數(shù)字儀表板的設(shè)計(jì)。(教材P106)110《軟件工程》例子和練習(xí)分析課件111《軟件工程》例子和練習(xí)分析課件112第一級(jí)分解第一級(jí)分解113《軟件工程》例子和練習(xí)分析課件114《軟件工程》例子和練習(xí)分析課件115《軟件工程》例子和練習(xí)分析課件116精化精化117例題:某程序流程圖如右圖所示,請(qǐng)分別用N-S圖和PAD圖表示。例題:某程序流程圖如右圖所示,請(qǐng)分別用N-S圖和PAD圖表示118aUNTILx8jbiceWHILEx5dx1x2x3x4fghUNTILx7x6xi=PAD圖:aUNTILx8jbiceWHILEx5dx1x2x119x8ajx1bTFfx6TFx7ighCASExix2x4x3x5cdeN-S圖:ajx1bTFfx6TFighCASExix2x4x3x5120判定表例題:假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過30kg的行李。當(dāng)行李重量超過30kg時(shí),對(duì)頭等艙的國內(nèi)乘客超重部分每公斤收費(fèi)4元,對(duì)其他艙的國內(nèi)乘客超重部分每公斤收費(fèi)6元。對(duì)外國乘客超重部分每公斤收費(fèi)比國內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。判定表例題:121例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法例:用判定表表示計(jì)算行李費(fèi)算法122

圖用判定樹表示計(jì)算行李費(fèi)的算法判定樹

圖用判定樹表示計(jì)算行李費(fèi)的算法判定樹123例題:某校制定了教師的講課課時(shí)津貼標(biāo)準(zhǔn)。對(duì)于各種性質(zhì)的講座,無論教師是什么職稱,每課時(shí)津貼費(fèi)一律是50元;對(duì)于一般的授課,則根據(jù)教師的職稱來決定每課時(shí)津貼費(fèi):教授30元,副教授25元,講師20元,助教15元。請(qǐng)分別用判定表和判定樹表示津貼標(biāo)準(zhǔn)。

例題:124√15√20√25√30√50FFFFT講座TFFF助教FTFF講師FFTF副教授FFFT教授54321判定表:√15√20√25√30√50FFFFT講座TFFF助教FT125課時(shí)津貼一般授課講座教授副教授講師助教3025201550判定樹:課時(shí)津貼一般授課講座教授副教授講師助教3025201550判126練習(xí)題1:習(xí)題6.3畫出下列偽碼程序的程序流程圖和盒圖: START IFpTHEN WHILEqDO fENDDO ELSE BLOCK g n ENDBLOCK ENDIF STOP練習(xí)題1:習(xí)題6.3127《軟件工程》例子和練習(xí)分析課件128Jackson方法例:一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。要求的輸出數(shù)據(jù)格式是,每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。Jackson方法例:129(1)用Jackson圖描繪輸入、輸出數(shù)據(jù)結(jié)構(gòu)輸入數(shù)據(jù)的格式為:①若干記錄——構(gòu)成文件②若干字符——構(gòu)成一條記錄③字符是由空格與非空格兩類元素組成的輸出數(shù)據(jù)的格式為:①一行字符串②本行字符串中的空格數(shù)③文件中的空格總數(shù)(1)用Jackson圖描繪輸入、輸出數(shù)據(jù)結(jié)構(gòu)130(1)用Jackson圖描繪的輸入輸出數(shù)據(jù)結(jié)構(gòu)。設(shè)計(jì)步驟如下:(1)用Jackson圖描繪的輸入輸出數(shù)據(jù)結(jié)構(gòu)。設(shè)計(jì)步驟131(2)分析確定在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。(2)分析確定在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)132(3)從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖。(3)從數(shù)據(jù)結(jié)構(gòu)圖導(dǎo)出程序結(jié)構(gòu)圖。133(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(1)停止 (2)打開文件(3)關(guān)閉文件 (4)印出字符串(5)印出空格數(shù)目 (6)印出空格總數(shù)(7)sum:=sum+1 (8)totalsum:=totalsum+sum(9)讀入字符串 (10)sum:=0(11)totalsum:=0 (12)pointer:=1(13)pointer:=pointer+1 I(1)文件結(jié)束I(2)字符串結(jié)束 S(3)字符是空格(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)134(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(5)用偽碼表示程序處理過程。

(4)列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)135流圖的表示:結(jié)點(diǎn):用圓表示,一個(gè)圓代表一條或多條語句。邊:箭頭線稱為邊,代表控制流。在流圖中一條邊必須終止于一個(gè)結(jié)點(diǎn),即使這個(gè)結(jié)點(diǎn)并不代表任何語句。區(qū)域:由邊和結(jié)點(diǎn)圍成的面積稱為區(qū)域,包括圖外部未被圍起來的區(qū)域。流圖的表示:136映射方法:任何方法表示的過程設(shè)計(jì)結(jié)果,都可以翻譯成流圖。對(duì)于順序結(jié)構(gòu),一個(gè)順序處理序列和下一個(gè)選擇或循環(huán)的開始語句,可以映射成流圖中的一個(gè)結(jié)點(diǎn)。映射方法:137對(duì)于選擇結(jié)構(gòu),開始語句映射成一個(gè)結(jié)點(diǎn);兩條分支至少各映射成一個(gè)結(jié)點(diǎn);結(jié)束映射成一個(gè)結(jié)點(diǎn)。對(duì)于選擇結(jié)構(gòu),開始語句映射成一個(gè)結(jié)點(diǎn);兩條分支至少各映射成一138對(duì)于循環(huán)結(jié)構(gòu),開始和結(jié)束語句各映射成一個(gè)結(jié)點(diǎn)。對(duì)于循環(huán)結(jié)構(gòu),開始和結(jié)束語句各映射成一個(gè)結(jié)點(diǎn)。139《軟件工程》例子和練習(xí)分析課件140V(G)=區(qū)域數(shù)=4V(G)=E-N+2=11-9+2=4V(G)=P+1=3+1=4V(G)=區(qū)域數(shù)141例:例:142邏輯覆蓋邏輯覆蓋143

1、語句覆蓋選擇足夠多的測(cè)試數(shù)據(jù),至少執(zhí)行程序中所有語句一次。在該例子中,只要設(shè)計(jì)能通過路徑SacbdR的測(cè)試用例就覆蓋了所有的語句。所以可選擇測(cè)試用例如:【A=2,B=0,X=3】

1、語句覆蓋144

2.判定覆蓋(分支覆蓋)程序中的每個(gè)語句至少執(zhí)行一次,并且每個(gè)判定的每個(gè)可能結(jié)果都至少執(zhí)行一次。所有判定分支:(1)a點(diǎn)判定為T(2)a點(diǎn)判定為F(3)b點(diǎn)判定為T(4)b點(diǎn)判定為F

2.判定覆蓋(分支覆蓋)145

2.判定覆蓋(分支覆蓋)測(cè)試用例:

Ⅰ.滿足(1)(4)(A=3,B=0,X=1) 覆蓋SacbRⅡ.滿足(2)(3)(A=2,B=1,X=1)

覆蓋SabdR

2.判定覆蓋(分支覆蓋)146

2.判定覆蓋(分支覆蓋)或者:Ⅰ.滿足(1)(3)(A=2,B=0,X=3)覆蓋sacbdRⅡ.滿足(2)(4)(A=3,B=1,X=1)覆蓋sabR特點(diǎn):比語句覆蓋強(qiáng),但對(duì)程序邏輯的覆蓋程度仍不高。

2.判定覆蓋(分支覆蓋)1473.條件覆蓋不僅每個(gè)語句至少執(zhí)行一次,而且使判定表達(dá)式中的每個(gè)條件都取到各種可能的結(jié)果。為達(dá)到條件覆蓋標(biāo)準(zhǔn),應(yīng)選取測(cè)試數(shù)據(jù),使得:在a點(diǎn)判定有各種結(jié)果出現(xiàn):①A>1②A≤1

③B=0④B≠0在b點(diǎn)判定有各種結(jié)果出現(xiàn):⑤A=2⑥A≠2

⑦X>1⑧X≤13.條件覆蓋1483.條件覆蓋因此,可選取測(cè)試用例:⑴滿足①③⑤⑦【A=2,B=0,X=4】

(滿足A>1,B=0,A=2,X>1的條件,執(zhí)行路徑SacbdR)⑵滿足②④⑥⑧【A=1,B=1,X=1】

(滿足A≤1,B≠0,A≠2,X≤1的條件,執(zhí)行路徑SabR)3.條件覆蓋1493.條件覆蓋或者,可選取測(cè)試用例:⑴滿足①③⑤⑧【A=2,B=0,X=1】

(滿足A>1,B=0,A=2,X≤1的條件,執(zhí)行路徑SacbdR)⑵滿足②④⑥⑦【A=1,B=1,X=2】

(滿足A≤1,B≠0,A≠2,X>1的條件,執(zhí)行路徑SabdR)3.條件覆蓋1504.判定/條件覆蓋選取足夠多的測(cè)試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)條件都取到各種可能的值,而且每個(gè)判定表達(dá)式

都取到各種可能的結(jié)果。測(cè)試用例:Ⅰ.滿足條件①③⑤⑦和判定①③

A=2,B=0,X=4 覆蓋SacbdRⅡ.滿足條件②④⑥⑧和判定②④ A=1,B=1,X=1 覆蓋SabR特點(diǎn):有時(shí)判定/條件覆蓋也并不比條件覆蓋更強(qiáng)。4.判定/條件覆蓋151在例子中,對(duì)于a、b點(diǎn)的判定共有八種可能的條件組合,它們是:⑴A>1,B=0

⑵A>1,B≠0

⑶A≤1,B=0

⑷A≤1,B≠0

⑸A=2,X>1

⑹A=2,X≤1 ⑺A≠2,X>1 ⑻A≠2,X≤1

條件組合覆蓋在例子中,對(duì)于a、b點(diǎn)的判定共有八種可能的條件組合,它們是:152因此,可選取下面四組測(cè)試用例,使上面列出的八種條件組合每種至少出現(xiàn)一次:Ⅰ.A=2,B=0,X=4

(針對(duì)1、5兩種組合,執(zhí)行路徑SacbdR)Ⅱ.A=2,B=1,X=1

(針對(duì)2、6兩種組合,執(zhí)行路徑SabdR)Ⅲ.A=1,B=0,X=2

(針對(duì)3、7兩種組合,執(zhí)行路徑SabdR)Ⅳ.A=1,B=1,X=1

(針對(duì)4、8兩種組合,執(zhí)行路徑SabR)因此,可選取下面四組測(cè)試用例,使上面列出的八種條件組合每種至153

測(cè)試用例:【A=2,B=0,X=4】

執(zhí)行路徑:SacbdR點(diǎn)覆蓋

測(cè)試用例:【A=2,B=0,X=4】

執(zhí)行路徑:Sacb154為使程序執(zhí)行路徑經(jīng)過程序圖的邊覆蓋(1,2,3,4,5,6,7),可使用測(cè)試用例:⑴【A=3,B=0,X=1】

執(zhí)行路徑:1-4-5-3⑵【A=2,B=1,X=1】

執(zhí)行路徑:1-2-6-7為使程序執(zhí)行路徑經(jīng)過程序圖的邊覆蓋(1,2,3,4,5,6,1558.路徑覆蓋選取足夠多的測(cè)試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)行一次(如果程序圖中有環(huán),則要求每個(gè)環(huán)至少經(jīng)過一次)。例中共有四條可能的執(zhí)行路徑:1-2-3;1-2-6-7;1-4-5-3;1-4-5-6-7。8.路徑覆蓋156為滿足路徑覆蓋,可使用測(cè)試用例:⑴【A=1,B=1,X=1】

執(zhí)行路徑:1-2-3⑵【A=1,B=1,X=2】

執(zhí)行路徑:1-2-6-7⑶【A=3,B=0,X=1】

執(zhí)行路徑:1-4-5-3⑷【A=2,B=0,X=4】

執(zhí)行路徑:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論