基于.NET模擬超市購物結(jié)算功能-PSP設(shè)計過程_第1頁
基于.NET模擬超市購物結(jié)算功能-PSP設(shè)計過程_第2頁
基于.NET模擬超市購物結(jié)算功能-PSP設(shè)計過程_第3頁
基于.NET模擬超市購物結(jié)算功能-PSP設(shè)計過程_第4頁
基于.NET模擬超市購物結(jié)算功能-PSP設(shè)計過程_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件過程與管理大作業(yè)題目《基于.NET模擬超市購物結(jié)算功能》——PSP設(shè)計過程

目錄TOC\o"1-3"\h\u第一章項目概述 31.項目業(yè)務(wù) 31.1業(yè)務(wù)流程 31.2需求分析 32.項目結(jié)構(gòu) 32.1整體模塊流程圖 32.4付款模塊流程圖 33.數(shù)據(jù)庫的設(shè)計 33.1用戶表的設(shè)計 33.2商品表的設(shè)計 33.2注冊表的設(shè)計 3第二章項目PSP設(shè)計 31.項目模塊OST設(shè)計 32.項目模塊FST設(shè)計 33.項目模塊SST設(shè)計 34.項目模塊LST設(shè)計 3第三章項目PSP度量 31.項目時間度量 32.項目缺陷度量 33.項目規(guī)模估算 34.項目計劃總結(jié) 3第四章項目實現(xiàn)與評審 31.項目實現(xiàn) 31.1代碼實現(xiàn) 32.項目評審 32.1代碼評審 32.2設(shè)計評審 3第五章項目展示 31.超市結(jié)算的首界面 32.登錄失敗 32.1失敗情況一 32.2失敗情況二 33.注冊模塊 34.登錄成功情況 35.付款頁面情況 3第六章總結(jié) 3第七章參考文獻 3第一章項目概述1.項目業(yè)務(wù)1.1業(yè)務(wù)流程網(wǎng)上超市購物系統(tǒng)的功能流程:顧客成功登錄后就可以進入網(wǎng)上購物系統(tǒng)里進行查看商品信息和選購自己所需物品,若顧客沒有賬號,可以先到注冊頁面中注冊一個賬號后登錄系統(tǒng)。顧客在添加商品時,需要添加商品的名稱,價格以及數(shù)量。系統(tǒng)便對查看庫房信息,當貨物充足的時候提取貨物給用戶,然后進行結(jié)賬交易。顧客也可以刪除易購買商品,也可以查詢自己易購買的那些商品的詳細信息,查詢時要指明查詢的商品的記錄號是多少,還可以指定查詢第一個或最后一個購買的商品信息。顧客還可以打印要購買的商品的清單,顧客在付款交易時首先生成一張臨時的訂單,然后顧客可以選擇支付方式,完成付款后,系統(tǒng)會提示顧客購成功。1.2需求分析1)用戶可以添加購買一種商品,添加的信息包括商品名稱、數(shù)量和單價2)用戶可以刪除已購買的一種商品3)用戶可以查詢已購買的一種商品的詳細信息,查詢時要指明查詢的商品的記錄號是多少(商品記錄號是按照商品購買次序編的),還可以指定查詢第一個或最后一個購買的商品信息。4)用戶可以刪除所有已添加到購物車的商品5)用戶可以打印要購買的商品的清單6)用戶可以清空顯示信息的窗口7)用戶可以要求結(jié)帳,系統(tǒng)會打印出用戶購物清單,并給出總價。

2.項目結(jié)構(gòu)2.1整體模塊流程圖2.4付款模塊流程圖3.數(shù)據(jù)庫的設(shè)計3.1用戶表的設(shè)計3.2商品表的設(shè)計3.2注冊表的設(shè)計第二章項目PSP設(shè)計1.項目模塊OST設(shè)計表1付款模塊的OST設(shè)計人員:董琪日期:2015/4/21教練:李戀語言:C#場景編號1用戶目的場景目的描述一次商品付款失敗的過程操作來源步驟動作備注信息用戶1啟動系統(tǒng)系統(tǒng)2要求用戶輸入品名檢查是否超時用戶3輸入品名檢查是否超時系統(tǒng)4檢驗是否品名是否存在系統(tǒng)5要求用戶輸入數(shù)量檢查是否超時用戶6輸入數(shù)量系統(tǒng)7要求用戶輸入單價用戶8輸入單價檢查是否超時系統(tǒng)9檢驗單價是否正確單價不正確系統(tǒng)10付款失敗2.項目模塊FST設(shè)計表2付款模塊的FST設(shè)計人員:董琪日期:2015/4/21教練:李戀語言:C#類名Shop繼承關(guān)系屬性聲明描述MaxTime:Integer,Minutes系統(tǒng)初始化n:Integer計算嘗試次數(shù)nMax:Integer最大允許嘗試次數(shù)ValidIdSet一個集合,包含所有合法品名,單價方法聲明描述VoidShop.Start(n:Int)系統(tǒng)初始化BooleanShop.Getnname(nname:String)獲取String類型的品名,如果是合法字符串,則返回true,超時或者非法字符串則返回falseBooleanShop.Checknname(nname:String)Nname是否存在合法用戶集中,如果屬于則認為合法,反之,不合法IntShop.Getnum(num:Int)獲取商品數(shù)量,如果是合法字符串,則返回true,超時或者不是合法字符串則返回falseIntShop.GetPrise(Prise:String)獲取商品的價格,如果是合法字符串,則返回true,超時或者不是合法字符串則返回falseIntShop.CheckPrise(Prise:String)Nname是否存在合法用戶集中,如果屬于則認為合法,反之,不合法VoidShop.Pay(nname:String,n:Int)嘗試次數(shù)超過最大次數(shù)時,拒絕用戶進行下面操作,反之允許當前用戶操作以及付款。3.項目模塊SST設(shè)計表3付款模塊的SST設(shè)計人員:董琪日期:2015/4/21教練:李戀語言:C#狀態(tài)名稱描述Start付款系統(tǒng)啟動方法/參數(shù)描述Name商品的名稱num商品的數(shù)量Prise商品的價格n名稱價格輸入錯誤的次數(shù)nMax出錯的最大上限,超出拒絕付款Fail付款結(jié)果:成功Fail=0,失敗Fail=1狀態(tài)/下一個狀態(tài)轉(zhuǎn)換條件動作StartStart不存在Checknname永真Getname,n:=0;nameandPrise!ValidCheckPrise不存在End不存在ChecknnameStart不存在Checknname不存在CheckPriseValidnameGetpriseEnd超時File:=trueCheckPriseStart不存在Checknname不存在CheckPrise不存在EndValidname^ValidPriseFail:=false,paysuccsessEndN>=nMax^TimeoutFail:=false,payfailEndEnd不存在4.項目模塊LST設(shè)計表4付款模塊的LST設(shè)計人員:董琪日期:2015/4/21教練:李戀語言:C#參考:n:theerrorcounter,maximunvaluenMaxname:BooleanindicatorofnameValidandname!Validnum:intindicatorofnumValidandnum!ValidPrise:BooleanindicatorofpirseValidandprise!ValidFial:Booleanindicatoroffailurecondition,endsessionPayontothesystemStartbyiniiallizingthenerrorcounter,setname:=!Valid,num:=!Valid,Prise:=!Valid,andFail:=falseGetnameRepeatthemainloopuntilavalidnameandnumandPriseorFailChecknameforValidity.{Checknamestart}IfnonameresponseinMaxtime,setFail:=trueGetnumforchecknullor!nullGetPriseandcheckforvalidity.{checkPrisestart}IfnoPriseresponseinMaxtime,setFail:=trueIfname!ValidorPrise!Valid,stepthencounterIfnexceedsnMax,setFail:=trueUntilnameandPriseValidorFail=trueOtherwise,repeatthemainloop.IfFail=truecutoffpay,otherwisepaysuccess{Endstart}第三章項目PSP度量1.項目時間度量

表5時間記錄日志學生董琪日期4/14/15教員李戀課程軟件過程與管理日

期開始時間結(jié)束時間中斷時間凈時間活動備注CU15/5/18:008:25520設(shè)計設(shè)計登錄模塊15/5/18:309:001020設(shè)計設(shè)計登陸模塊異步處理情況15/5/2

14:00

15:00

20

40

設(shè)計

設(shè)計注冊模塊

15/5/7

12:0014:00

20

100編碼實現(xiàn)登錄模塊

15/5/714:1014:3020測試測試登錄模塊的功能

15/5/813:0013:501040修復(fù)修復(fù)登錄模塊的缺陷

15/5/1217:0020:003030編碼實現(xiàn)登錄模塊的異步處理15/5/1220:1020:35520測試測試登錄模塊異步處理的功能15/5/138:008:502030修復(fù)修復(fù)異步處理出現(xiàn)的缺陷

15/5/1413:0015:0010110編碼實現(xiàn)注冊模塊

15/5/1415:3016:00525測試測試注冊模塊的功能

15/5/1416:0017:203050修復(fù)修復(fù)注冊模塊的缺陷

15/5/1514:0015:0060設(shè)計設(shè)計付款模塊

15/5/16

12:00

14:00

20

100

編碼

實現(xiàn)付款模塊的功能

15/5/1614:2014:55530測試測試付款模塊的功能15/5/1615:0016:001050修復(fù)修復(fù)付款模塊的缺陷15/5/1713:0015:003090測試測試所有模塊的整體功能

15/5/17

15:00

16:00

10

50

修復(fù)

修復(fù)完善整個項目的小缺陷

2.項目缺陷度量表6缺陷記錄日志學生董琪日期2015-5-7教員李戀程序號01日期編號類型引入階段排除階段修復(fù)時間相關(guān)缺陷2015-5-81數(shù)據(jù)編碼修復(fù)40在數(shù)據(jù)庫連接出現(xiàn)了問題,導(dǎo)致數(shù)據(jù)庫無法連接2015-5-132函數(shù)編碼測試30異步處理的功能函數(shù)沒有實現(xiàn)2015-5-143函數(shù)編碼測試50在注冊模塊中的異步處理沒有實現(xiàn),不能提醒用戶已存在2015-5-164語法編碼測試10在代碼中總是少;導(dǎo)致語法出現(xiàn)錯誤2015-5-165函數(shù)編碼測試20在付款模塊中,添加商品信息的函數(shù)沒有實現(xiàn)2015-5-166賦值編碼測試10在定義變量時沒有初始化變量2015-5-177接口編碼修復(fù)30在登錄模塊和注冊模塊的跳轉(zhuǎn)沒有實現(xiàn)好2015-5-178環(huán)境編碼測試30測試的時候出現(xiàn)了中斷現(xiàn)象3.項目規(guī)模估算

表7:董琪的程序規(guī)模估計學生

董琪

日期

15/5/15

教員

李戀

課程

軟件過程與管理

程序代碼行以前的功能估計的功能最小平均最大Loops

410簡單While-loop514中等repeat-untilRepeat-until71114

Case211小的Case語句Case5811314大的Case語句

Data618小的鏈表

Calc.120小的計算calculation101520

估計

2234454.項目計劃總結(jié)表8:PSP項目計劃總結(jié)表

學生

董琪

日期

2015/4/21程序

001

程序號#

001

教師

李戀

程序設(shè)計語言

C#

總結(jié)

計劃

實際

累計

Minutes/LOC

6.30

4.93

5.92

LOC/Hour

10.47

12.90

10.95

Defects/KLOC

96.90

77.9

92.53

過程效益33.380.040.0A/FR

程序規(guī)模(LOC)

新開發(fā)與更改的

67

77

335

最大規(guī)模

85

最小規(guī)模

49

開發(fā)階段時間/min

計劃

實際

累計

累計百分比

計劃

23

32

120

6.5

設(shè)計

39

44

195

10.6

編碼

166

155

792

43.1

代碼復(fù)查

29

34

145

7.9

編譯

24

8

100

5.5

測試

62

39

279

15.2

后置處理

41

46

206

11.2

總計

384

358

1837

100.0

最大時間

487

最小時間

281

引入的缺陷

計劃

實際

累計

累計百分比

Def/Hour

計劃

設(shè)計

1

1

5

16.1

1.54

編碼

5

4

25

80.7

1.89

代碼復(fù)查

編譯

1

1

3.2

測試

總計

6

6

31

100.0

排除的缺陷

計劃

實際

累計

累計百分比

Def/Hour

計劃

設(shè)計

編碼

代碼復(fù)查

2

4

12

38.7

4.97

編譯

3

1

13

41.9

7.80

測試

1

1

6

19.4

1.29

總計

6

5

31

100.0

第四章項目實現(xiàn)與評審1.項目實現(xiàn)1.1代碼實現(xiàn)登錄模塊的代碼:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceshop{publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){Stringname=this.textBox1.Text;//(this.textBox1.Text為輸入用戶名的文本框的名字)Stringpass=this.textBox2.Text;//(這里是輸入密碼的)Stringconn=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;IntegratedSecurity=True;UserInstance=True";//(使用本地數(shù)據(jù)庫,我的數(shù)據(jù)庫名為XKGL)SqlConnectionconnection=newSqlConnection(conn);Stringsql=String.Format("select*fromuserwherename='{dao}'andpass='{0000}'",name,pass);connection.Open();SqlCommandcommand=newSqlCommand(sql,connection);intnum=Convert.ToInt32(command.ExecuteScalar());if(num>0){MessageBox.Show("登錄成功!");Form4form=newForm4();form.Show();this.Hide();}else{MessageBox.Show("用戶或密碼錯誤!請重新登陸!");}connection.Close();}privatevoidbutton2_Click(objectsender,EventArgse){this.Hide();Form1yourForm=newForm1();yourForm.Show();}}}付款模塊的代碼:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceshop{publicpartialclassForm4:Form{stringconnStr,insertCmd;publicForm4(){InitializeComponent();}privatevoidShow(){StringstrConn=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1;IntegratedSecurity=True;UserInstance=True";SqlConnectionconn=newSqlConnection(strConn);stringselectCmd="select*fromshop";DataSetmyDataSet=newDataSet();SqlDataAdaptermyAdpt=newSqlDataAdapter(selectCmd,conn);myAdpt.Fill(myDataSet,"shop");textBox1.DataBindings.Add("Text",myDataSet,"shop.Sname");textBox2.DataBindings.Add("Text",myDataSet,"shop.count");textBox3.DataBindings.Add("Text",myDataSet,"shop.prise");dataGridView1.DataSource=myDataSet;dataGridView1.DataMember="shop";}privatevoidForm4_Load(objectsender,EventArgse){Show();}//添加privatevoidbutton1_Click(objectsender,EventArgse){connStr=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1;IntegratedSecurity=True;UserInstance=True";insertCmd="InsertIntoshop(Sname,count,prise)Values(@t1,@t2,@t3)";SqlConnectionconn;SqlCommandcmd;conn=newSqlConnection(connStr);conn.Open();cmd=newSqlCommand(insertCmd,conn);cmd.Parameters.Add(newSqlParameter("@t1",SqlDbType.VarChar));cmd.Parameters.Add(newSqlParameter("@t2",SqlDbType.Int));cmd.Parameters.Add(newSqlParameter("@t1",SqlDbType.NChar));cmd.Parameters["@t1"].Value=textBox1.Text;cmd.Parameters["@t1"].Value=textBox2.Text;cmd.Parameters["@t1"].Value=textBox3.Text;cmd.ExecuteNonQuery();conn.Close();}//刪除privatevoidbutton2_Click(objectsender,EventArgse){stringconnStr,deleteCmd;connStr=@"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1;IntegratedSecurity=True;UserInstance=True";deleteCmd="DeleteFromshopWhereSname=@t1";SqlConnectionconn;SqlCommandcmd;conn=newSqlConnection(connStr);conn.Open()}}}2.項目評審2.1代碼評審表9代碼評審檢查表示例姓名:董琪日期:2015-5-20教練:李戀語言:C#目的指導(dǎo)用戶有效開展代碼評審活動####累計累計%一般性說明在完成每個復(fù)查步驟之后,將發(fā)現(xiàn)的某個類型的缺陷的個數(shù)記錄在右面的欄目中。如果該步驟沒有發(fā)現(xiàn)缺陷,就在右面的欄目中打個表示檢查無誤的交叉符號(X)。在開始復(fù)查下一個程序單元之前,要按照檢查表完成對程序、類、對象或方法的檢查。建議每次評審只檢查一項內(nèi)容,而不要同時檢查多項內(nèi)容。每檢查完一項,在該項所在行右側(cè)表格中加以標注,如OK表示通過評審,NG表示發(fā)現(xiàn)缺陷。完整性驗證設(shè)計的所有功能都已經(jīng)編碼初始化檢查變量和參數(shù)的初始化:在程序的開始;在函數(shù)/過程的入口OKOK名字檢查名字的拼寫和使用:是否前后一致?結(jié)構(gòu)和類中變量的引用是否使用了‘?!疧KOK輸出格式檢查輸出格式:換行是否合適?間隔是否合適?OKNG{}對保證檢查{}是適當?shù)牟⑶沂浅蓪Φ腛K邏輯操作符驗證==,=,||等邏輯操作符的使用是合適的。檢查每個邏輯函數(shù)()是合適的OK逐行檢查檢查每一行代碼:指令的語法是否正確?表點是否正確、符號是否正確?OKOK標準保證所有代碼符合編程標準OK文件的打開與關(guān)閉驗證所有的文件:是合適地聲明的;是合適地打開的;是合適地關(guān)閉的;OKOKOK全面檢查全面檢查以發(fā)現(xiàn)系統(tǒng)問題和非期望OK總計2.2設(shè)計評審表10設(shè)計評審檢查表示例姓名:董琪日期:2015-5-20教練:李戀語言:C#目的指導(dǎo)用戶有效開展設(shè)計評審活動####累計累計%概述建議每次評審只檢查一項內(nèi)容,而不要同時檢查多項內(nèi)容。每檢查完一項,在該項所在行右側(cè)表格中加以標注,如OK表示通過評審,NG表示發(fā)現(xiàn)缺陷。完整性驗證設(shè)計覆蓋所有的需求內(nèi)容:包含所有需要的輸入。OK方法調(diào)用驗證方法、過程等:驗證所有的方法被正確調(diào)用;驗證所有的外部引用被正確定義。OKOK系統(tǒng)環(huán)境的考慮系統(tǒng)安全和保密性檢查:;安全性。OK命名驗證命名:命名清晰、定義清楚;變量、參數(shù)的范圍有清晰定義。OKNG標準設(shè)計符合標準。OK總計項目展示1.超市結(jié)算的首界面如圖1所示圖1超市結(jié)算系統(tǒng)首頁圖登錄失敗2.1失敗情況一登錄界面,使用不正確的賬號的登錄結(jié)果如圖2所示:圖2登錄失敗圖2.2失敗情況二登錄界面,使用正確的賬號和不正確的密碼登錄結(jié)果如圖3所示:圖3登錄失敗圖3.注冊模塊如果沒有賬號可以選擇注冊功能如圖4所示:圖4注冊選項圖跳轉(zhuǎn)注冊頁面如圖5所示:圖5注冊頁面圖4.登錄成功情況登錄界面,使用正確的賬號和正確的密碼登錄結(jié)果如圖6所示:圖6登錄成功圖就會跳轉(zhuǎn)到超時結(jié)算界面如圖7所示圖7付款界面圖5.付款頁面情況添加一個商品,如圖8所示:圖8添加商品圖第一件商品顯示如圖9所示:圖9顯示第一件商品圖清屏的效果圖如圖10所示:圖10清屏效果圖第六章總結(jié)在這次的大作業(yè)中,根據(jù)老師給的大作業(yè)題目,我首先對拿到的項目進行了規(guī)模估計。自己先完成了項目計劃總結(jié)表,剛開始沒有弄清楚自己想要怎么完成這個項目,所以在填寫計劃總結(jié)表有點沒有頭緒,后來經(jīng)過了自己的反復(fù)琢磨,還是比較好的完成了。在緊跟著的PSP設(shè)計,自己對付款模塊這一個模塊進行了OST,F(xiàn)ST,SST,LST的設(shè)計。在這個過程中,有些問題沒有弄清楚,導(dǎo)致我的設(shè)計不是很合理,后來經(jīng)過請

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論