華東交通大學軟件工程實驗報告_第1頁
華東交通大學軟件工程實驗報告_第2頁
華東交通大學軟件工程實驗報告_第3頁
華東交通大學軟件工程實驗報告_第4頁
華東交通大學軟件工程實驗報告_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上華東交通大學軟件學院上機實驗報告課程名稱:軟件工程指導老師:唐懷琴專業(yè)班級:12軟件+交通設(shè)備信息工程2班姓 名:徐錦陶學 號:214學 期:大二下學期實驗一:數(shù)據(jù)流圖實驗一、實驗目的通過繪制數(shù)據(jù)流圖掌握數(shù)據(jù)流圖的基本原理,并能對簡單問題進行數(shù)據(jù)流圖的分析,獨立地完成數(shù)據(jù)流圖的分析與設(shè)計。此外,學會使用Case工具完成數(shù)據(jù)流圖和系統(tǒng)流程圖的分析與實現(xiàn)。二、實驗內(nèi)容實驗內(nèi)容如下:a) 用visio繪制出如下定貨系統(tǒng)的SFD(系統(tǒng)流程圖)的模型。圖1 某定貨系統(tǒng)SFDb) 用visio繪制教材中分別繪制出定貨系統(tǒng)的DFD的頂層模型、第一層模型和第二層模型。(具體參考課本上

2、P69P70的圖3.4,圖3.5和圖3.6)c) 用visio 繪制如下圖所示的取款手續(xù)的數(shù)據(jù)流圖。圖2 取款手續(xù)d) 請結(jié)合目前的銀行柜臺取款手續(xù),對圖2的取款數(shù)據(jù)流圖進行改進,繪制當前銀行柜臺取款過程的頂層和第一層數(shù)據(jù)流圖。三、實驗結(jié)果(a)、定貨系統(tǒng)的SFD(系統(tǒng)流程圖)的模型(b)、圖3.4 DFD的頂層模型 (b)、圖3.5 DFD的第一層模型 (b)、 DFD的第二層模型(c)、取款手續(xù)的數(shù)據(jù)流圖(d)、當前銀行柜臺取款過程的頂層數(shù)據(jù)流圖 當前銀行柜臺取款過程的第一層數(shù)據(jù)流圖實驗二、軟件設(shè)計實驗一、實驗目的學會使用Case工具完成描述軟件結(jié)構(gòu)的軟件結(jié)構(gòu)圖和軟件層次圖的設(shè)計,并熟練地

3、掌握幾種常用的軟件詳細設(shè)計的工具,如程序流程圖、盒圖、PAD圖和判定表,并能把給定的軟件問題描述轉(zhuǎn)化為過程設(shè)計結(jié)果。二、實驗內(nèi)容1、軟件結(jié)構(gòu)設(shè)計:(1) 采用visio繪制教材的圖4.26中的軟件結(jié)構(gòu)圖;(2) 采用visio繪制教材的圖4.41的軟件層次圖。(3) 分析如下所示的數(shù)據(jù)流圖,并把它轉(zhuǎn)換成軟件結(jié)構(gòu)圖,然后用visio把結(jié)果畫出來。(注意,請用結(jié)構(gòu)圖)圖1 某系統(tǒng)的數(shù)據(jù)流圖2、軟件的詳細設(shè)計:某航空公司規(guī)定,乘客可以免費托運重量不超過20公斤的行李,當行李重量超過20公斤,對頭等艙的國內(nèi)乘客超重部分每公斤收費6元,對其他艙的國內(nèi)乘客超重部分每公斤收費8元,對外國顧客超重部分每公斤收

4、費比國內(nèi)乘客多1.5倍,對殘疾乘客超重部分每公斤收費比正常乘客少一半。實驗包含三部分的內(nèi)容:e) 用word設(shè)計描述其詳細設(shè)計結(jié)果的PAD圖、判定表。f) 用viso畫出它的程序流程圖,并計算它的Mccabe程序復雜度。(要求把計算過程寫到實驗報告中)三、實驗結(jié)果1、(1). 采用visio繪制教材的圖4.26中的軟件結(jié)構(gòu)圖;(2) .采用visio繪制教材的圖4.41的軟件層次圖。 (3) .分析如下所示的數(shù)據(jù)流圖,并把它轉(zhuǎn)換成軟件結(jié)構(gòu)圖,然后用visio把結(jié)果畫出來。開始2、PAD圖輸入行李重量XY=0 TY=9*(X-20)X>20 F頭 TY=12*(X-20) 國外乘客 等 艙

5、 FY=6*(X-20) 頭 TY=8*(X-20)普通乘客 等 艙 FY=3*(X-20) 頭 TY=4*(X-20) 殘疾乘客 等 艙 F輸出托運費Y結(jié)束判定表判定條件行李重量XX<20YYYY-狀態(tài)X>20-YYYY乘客類別外國人YNNYYNYN普通人NYYNNNNY殘疾人NNNNNYNN乘坐規(guī)格頭等艙YNYYNYNN普通艙NYNNYNYY托運費用Y=0判定規(guī)則Y=12*(X-20)Y=9*(X-20)Y=8*(X-20)Y=6*(X-20)Y=4*(X-20)Y=3*(X-20)程序流程圖求McCabe程序復雜度步驟:步驟1:將程序流程圖退化成有向圖,將程序流程圖的每個處理

6、框退化成一個節(jié)點,將控制流箭頭退化成連接各節(jié)點的有向弧。步驟2:在有向圖中,由程序出口到入口連接一條虛有向弧,使有向圖達到強連通。步驟3:計算V(G)=m-n+1V(G)是有向圖的G中的環(huán)數(shù),m是有向圖G中的弧數(shù),n是有向圖G中的節(jié)點數(shù)因此環(huán)形復雜度為:V(G)=17-13+5=9,所以McCabe程序復雜度為9。實驗三、軟件測試實驗一、實驗目的學會使用CASE工具完成軟件測試用例的設(shè)計以及初步完成對單元測試,深刻理解單元測試的基本原理及CASE工具的基本使用。二、 實驗內(nèi)容1、單元測試的邏輯覆蓋測試驗證實驗:運用工具完成對如下例子的單元測試,要求分別完成語句覆蓋、判定覆蓋、條件覆蓋、判定條件

7、覆蓋、條件組合覆蓋和路徑覆蓋測試的測試用例編寫以及測試。要求首先按格式編寫出該測試所需要的測試用例,然后編寫測試程序,對其進行測試,最后把你寫的測試用例按格式記錄到實驗報告中。測試用例的格式如下: 輸入, 期望結(jié)果,對于本例請遵循如下格式: A,B,X,X(A>1) and (B=0)(A=2) or (X>1)X = X/AX = X+1TTFFabdce圖1 單元測試邏輯覆蓋的驗證實驗此外,請測試如下情況:(1). 如果將第1個判定中的“AND”錯寫成了“OR”,用數(shù)據(jù)2,0,3,2.5(首先,該組數(shù)據(jù)滿足何種邏輯覆蓋)對程序進行測試,可否發(fā)現(xiàn)錯誤?為什么?請先測試,然后把結(jié)論

8、記錄到實驗報告中。(2). 如果將第2個判定中的“x>1”錯寫成了“x<=1”,則用數(shù)據(jù)2,0,3,2.5對程序進行測試,可否發(fā)現(xiàn)錯誤?為什么?請先測試,然后把結(jié)論記錄到實驗報告中。(3). 如果將第1個判定中的“AND”錯寫成了“OR”,則用數(shù)據(jù)3,0,1,1/3和2,1,2,3(首先,該組數(shù)據(jù)滿足何種邏輯覆蓋)對程序進行測試,可否發(fā)現(xiàn)錯誤?為什么?請先測試,然后把結(jié)論記錄到實驗報告中。(4). 如果將第2個判定中的“x>1”錯寫成了“x<=1”,則用數(shù)據(jù)3,0,1,1/3和2,1,2,3)對程序進行測試,可否發(fā)現(xiàn)錯誤?為什么?請先測試,然后把結(jié)論記錄到實驗報告中。(

9、5). 如果將第2個判定中的“x>1”錯寫成了“x<=1”,則用數(shù)據(jù)2,0,3,2.5和1,1,1,1(首先,該組數(shù)據(jù)滿足何種邏輯覆蓋)對程序進行測試,可否發(fā)現(xiàn)錯誤?為什么?請先測試,然后把結(jié)論記錄到實驗報告中。(6). 如果將第1個判定中的“a>1”錯寫成了“a<=1”,且把“b=0”錯寫成了“b<>0”,則用數(shù)據(jù)2,1,1,2和1,0,2,3對程序進行測試,可否發(fā)現(xiàn)錯誤?為什么?請先測試,然后把結(jié)論記錄到實驗報告中。(7). 如果將第1個判定中的“a>1”錯寫成了“a<=1”,且把“b=0”錯寫成了“b<>0”,則用數(shù)據(jù)2,1,1

10、,2、2,0,2,2、1,1,1,1和1,0,2,3對程序進行測試,可否發(fā)現(xiàn)錯誤?為什么?請先測試,然后把結(jié)論記錄到實驗報告中。2、循環(huán)結(jié)構(gòu)測試現(xiàn)有一個簡單循環(huán),需要對其進行測試,其程序偽代碼如下:Int i,a;Input(i,a);While(i<=10)a += 2; if(a>4) a *= 2; a += 3;Else If(a>1) a -= 4; else a += 5;i+;a *=4;Output(a);要求為該程序設(shè)計滿足簡單循環(huán)的所有測試用例,記錄到實驗報告中。3、 等價類劃分及邊界值測試的驗證實驗:有如下算法A和B均是非負整型變量(注:int型),如果

11、10<A<100,則B=A*20-5,如果0<A<=10,則B=A*15+20,如果A>=100,則B=A*100-200,請分別用等價類劃分方法和邊界值分析方法設(shè)計測試用例,然后編寫測試程序完成測試。并把測試結(jié)論寫入到實驗報告中。3、 實驗結(jié)果1、 (1)語句覆蓋不能發(fā)現(xiàn)錯誤,因為and比or要求的要嚴格一些,故and可以滿足的數(shù)據(jù)or也一定可以滿足。(2)不能發(fā)現(xiàn)錯誤,第二個判定or只要滿足一個條件即可,因為A=2必然成立,故第二個條件一定為真,所以不能發(fā)現(xiàn)錯誤。(3) 語句覆蓋和判定覆蓋第一組測試數(shù)據(jù)不能發(fā)現(xiàn)錯誤,因為第一組數(shù)據(jù)可以滿足第一個判定的and判定

12、,肯定可以通過or判定條件。而第二組測試數(shù)據(jù)可以發(fā)現(xiàn)錯誤,因為A=2,B=1,只有A滿足條件而B不能滿足條件,痛多AND返回0。又由于把and錯寫成了or,返回值為1,影響了X的值,所以能發(fā)現(xiàn)錯誤。(4) 第一組測試數(shù)據(jù)能發(fā)現(xiàn)錯誤。經(jīng)過第一個阿婆那段,執(zhí)行c操作結(jié)果得到X=1/3,第二個判定條件是X<=1,判定成功返回值為1,進行e操作,最后得到結(jié)果X=4/3。與期望結(jié)果不同,系統(tǒng)想、提示錯誤,故能發(fā)現(xiàn)錯誤。第二組測試數(shù)據(jù)不能發(fā)現(xiàn)錯誤。他、因為第一個判定條件是B=0,而B實際值為1判定不成功,將進行操作b,進行第二個判定時,因為判定條件為A=2,此時X=2,故判定成功返回1,進行e操作,

13、最后得結(jié)果X=3與期望結(jié)果相同,不能發(fā)現(xiàn)“x>1”錯寫成了“x<=1”。故不能發(fā)現(xiàn)錯誤。(5) 判定覆蓋條件、語句覆蓋、判定覆蓋和條件覆蓋 第一組測試數(shù)據(jù)不能發(fā)現(xiàn)錯誤,在第2個判定時,因為A = = 2正確,滿足條件,進行e操作。最后x = 2.5,與期望結(jié)果相同。所以不能發(fā)現(xiàn)“x>1”錯寫成了“x<=1”。對于第二組測試數(shù)據(jù),因為對于第二個判定A=2,而A的實際值為1,此時后面的判定X>1或者X<=1對結(jié)果就有影響了,錯寫之后由于X=1,對于X<=1判定成立,返回1,影響X的值,故能發(fā)現(xiàn)錯誤。(6)第一組測試數(shù)

14、據(jù)不能發(fā)現(xiàn)錯誤,因為原本執(zhí)行路徑是abe。出錯后執(zhí)行路徑仍為abe,所以不能發(fā)現(xiàn)錯誤。 第二組測試數(shù)據(jù)也不能發(fā)現(xiàn)錯誤,因為原本執(zhí)行路徑是abe。出錯后執(zhí)行路徑仍為abe,所以也不能發(fā)現(xiàn)錯誤。(7) 第一組測試數(shù)據(jù)不能發(fā)現(xiàn)錯誤,因為原本執(zhí)行路徑是abe。出錯后執(zhí)行路徑仍為abe,所以不能發(fā)現(xiàn)錯誤。 第二組測試數(shù)據(jù)可以發(fā)現(xiàn)錯誤,因為原本執(zhí)行路徑是ace。出錯后執(zhí)行路徑仍為abe,所以能發(fā)現(xiàn)錯誤。 第三組測試數(shù)據(jù)不能發(fā)現(xiàn)錯誤,因為原本執(zhí)行路徑是abd。出錯后執(zhí)行路徑仍為acd,所以不能發(fā)現(xiàn)錯誤。 第四組測試數(shù)據(jù)不能發(fā)現(xiàn)錯誤,因為原本執(zhí)行路徑是abe。出錯后執(zhí)行路徑仍為abe,所以

15、也不能發(fā)現(xiàn)錯誤。程序代碼:#include<stdio.h>void main()int A,B;float X,Y;printf("請輸入A,B,X:n");scanf("%d%d%f",&A,&B,&X);printf("請輸入期望值Y:");scanf("%f",&Y);if(A>1&&B=0) X=X/A;if(A=2|X>1) X=X+1;else if(A=2|X>1) X=X+1;else printf("輸出X的

16、值:");printf("%f",X);printf("輸出X的值:");printf("%fn",X);2、 循環(huán)結(jié)構(gòu) 程序:#include<iostream.h>void main()int i,a;cout<<"請輸入i和a:"<<endl;cin>>i>>a;while(i<=10)a=a+2;if(a>4)a=a*2;a=a+3;elseif(a>1)a=a-4;else a=a+5;i+;a=a*4;cout<

17、;<a<<endl;測試用例:(i,a)為(11,2)(1,5)(1,1)(1,-3)3、 驗證實驗實驗程序:#include<stdio.h>void main()int A,B;printf("請輸入A的值:");scanf("%d",&A);if(A>10&&A<100) B=20*A-5;if(A>0&&A<=10) B=15*A+20;if(A>=100) B=100*A-200;printf("請輸出B的值:");print

18、f("%dn",B);輸入條件的等價類劃分 ID 輸入 期望結(jié)果 備注 1 50 輸入有效覆蓋有等價類1 2 5輸入有效 覆蓋有等價類2 3 150輸入有效覆蓋有等價類3有效等價類測試用例  ID輸入期望結(jié)果備注150輸入有效覆蓋有效等價類12 5輸入有效覆蓋有效等價類23150輸入有效覆蓋有效等價類3 無效等價類測試用例ID輸入期望結(jié)果備注1 -1 輸入無效覆蓋無效等價類42Abc輸入無效覆蓋無效等價類5邊界值分析:    根據(jù)題意可以?。?1,0,1,9,10,11,99,100,101,102 實驗四:軟件動態(tài)模型建模實驗一、 實驗目的運用Vis

溫馨提示

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

評論

0/150

提交評論