軟件工程導(dǎo)論-課程設(shè)計(jì)-飯卡管理系統(tǒng)開發(fā)文檔_第1頁
軟件工程導(dǎo)論-課程設(shè)計(jì)-飯卡管理系統(tǒng)開發(fā)文檔_第2頁
軟件工程導(dǎo)論-課程設(shè)計(jì)-飯卡管理系統(tǒng)開發(fā)文檔_第3頁
軟件工程導(dǎo)論-課程設(shè)計(jì)-飯卡管理系統(tǒng)開發(fā)文檔_第4頁
軟件工程導(dǎo)論-課程設(shè)計(jì)-飯卡管理系統(tǒng)開發(fā)文檔_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《軟件工程》實(shí)驗(yàn)報(bào)告——飯卡管理系統(tǒng)開發(fā)文檔

TOC\o"1-4"\h\u——飯卡管理系統(tǒng)開發(fā)文檔 1前言 41可行性研究 41.1系統(tǒng)概述 41.2初步的系統(tǒng)分析設(shè)計(jì) 41.3技術(shù)可行性分析 71.4經(jīng)濟(jì)/效益可行性分析 71.4.1支出方面 71.4.2收益方面 81.5系統(tǒng)開發(fā)計(jì)劃 82需求分析 82.1總體目標(biāo) 82.2具體目標(biāo) 92.3系統(tǒng)數(shù)據(jù)建模 92.4系統(tǒng)功能建模 92.5數(shù)據(jù)字典 123總體設(shè)計(jì) 153.1系統(tǒng)結(jié)構(gòu)圖 153.2數(shù)據(jù)庫設(shè)計(jì) 173.2.1邏輯設(shè)計(jì)要點(diǎn) 183.2.2物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn) 193.2.3觸發(fā)器設(shè)計(jì) 203.3系統(tǒng)模塊IPO圖 213.3.1驗(yàn)證用戶登錄功能模塊 213.3.2用戶注冊功能管理模塊 223.3.3查詢用戶詳細(xì)信息功能模塊 233.3.4用戶掛失功能模塊 243.3.5用戶消費(fèi)功能模塊 253.3.6用戶查詢消費(fèi)歷史功能模塊 273.3.7新建持卡者功能模塊 283.3.8存款功能模塊 293.3.9注銷用戶功能模塊 303.3.10更改學(xué)生信息功能模塊 313.3.11掛失,解鎖功能模塊 323.3.12查詢更改消費(fèi)歷史功能模塊 333.3.13數(shù)據(jù)庫功能模塊 344詳細(xì)設(shè)計(jì) 354.1登錄模塊詳細(xì)設(shè)計(jì) 354.2學(xué)生信息模塊詳細(xì)設(shè)計(jì) 364.3消費(fèi)模塊詳細(xì)設(shè)計(jì) 385系統(tǒng)實(shí)現(xiàn) 405.1編碼過程與特點(diǎn) 405.2部分功能模塊實(shí)現(xiàn) 405.2.1對消費(fèi)模塊進(jìn)行實(shí)現(xiàn)與測試 405.2.2對登陸模塊進(jìn)行實(shí)現(xiàn)與測試 435.2.3對查詢模塊的實(shí)現(xiàn)與測試 465.3測試 495.3.1本系統(tǒng)的測試計(jì)劃 495.3.2測試方法和步驟 505.3.3測試過程 506維護(hù) 606.1系統(tǒng)維護(hù)工作內(nèi)容 606.2系統(tǒng)維護(hù)策略 617總結(jié)與體會(huì) 617.1總結(jié) 617.2體會(huì) 61前言本文檔根據(jù)軟件工程的基本原理、開發(fā)方法以及開發(fā)過程進(jìn)行了多次的討論與實(shí)踐,主要包括可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測試等章節(jié),每一章節(jié)都圖文并茂地闡述具體的設(shè)計(jì)過程。1可行性研究1.1系統(tǒng)概述隨著高校擴(kuò)招,大學(xué)生人數(shù)的逐年遞增。關(guān)于學(xué)生生活切身利益的日常消費(fèi)亟需解決,全國高校校園卡的升級,也是提高學(xué)生日常生活質(zhì)量的一種方式。校園卡將安全、消費(fèi)、學(xué)習(xí)集為一身,需要新的校園卡管理系統(tǒng)給予管理部門的技術(shù)支持。如校園卡管理系統(tǒng)采取銀行卡的金融功能與校園卡的校務(wù)管理功能整合的方式,使師生操作更方便。校園卡系統(tǒng)的建設(shè),為學(xué)校實(shí)現(xiàn)財(cái)務(wù)統(tǒng)一管理提供科學(xué)的、現(xiàn)代化的手段,將提高學(xué)校的管理水平,極大提高效率。1.2初步的系統(tǒng)分析設(shè)計(jì)根據(jù)校園卡管理所涉及的領(lǐng)域,將校園卡的業(yè)務(wù)分為學(xué)生與商戶信息管理、消費(fèi)記錄收益記錄管理、飯卡信息管理三大類,形成初步的業(yè)務(wù)流程圖如下1.2.1、1.2.2、1.2.3圖所示。圖1.2.1學(xué)生消費(fèi)業(yè)務(wù)流圖圖1.2.2學(xué)生信息查詢業(yè)務(wù)流圖圖1.2.3商戶信息查詢業(yè)務(wù)流圖根據(jù)以上業(yè)務(wù)流圖可以畫出數(shù)據(jù)流圖,如圖1.2.4、1.2.5。圖1.2.4頂層數(shù)據(jù)流圖圖1.2.50層數(shù)據(jù)流圖根據(jù)初步的分析,我們需要管理員表,學(xué)生表,和飯卡信息表等。初步的數(shù)據(jù)字典如下:名稱:管理員描述:對飯卡管理系統(tǒng)管理的人員定義:管理員=工號(hào)+密碼+姓名+性別+聯(lián)系方式工號(hào)=字符/20位密碼=字符/20位姓名=字符/20位 性別=【男/女】聯(lián)系方式=字符/11位位置:管理員表名稱:學(xué)生描述:在校的學(xué)生定義:學(xué)生=學(xué)號(hào)+姓名+性別+聯(lián)系方式+宿舍學(xué)號(hào)=字符/12位姓名=字符/10位 性別=【男/女】 聯(lián)系方式=字符/11位宿舍=字符/8位位置:學(xué)生表名稱:飯卡描述:飯卡管理系統(tǒng)被操作的對象定義:飯卡=卡ID+余額+卡狀態(tài)+消費(fèi)限額+卡密碼+學(xué)號(hào)卡ID=字符/8位余額=浮點(diǎn)型(>=0) 卡狀態(tài)=字符/4位 卡上額=浮點(diǎn)型(>=0) 卡密碼=字符/6位 學(xué)號(hào)=字符/12位位置:飯卡信息表1.3技術(shù)可行性分析對于高校人數(shù)數(shù)據(jù)量大約是萬級左右,數(shù)據(jù)量并不大,對數(shù)據(jù)庫的性能要求技術(shù)完全可行。對于每個(gè)學(xué)生消費(fèi)并發(fā)性不高,消費(fèi)補(bǔ)助數(shù)據(jù)庫修改可以對接銀行接口。同時(shí),為了高質(zhì)量完成本軟件系統(tǒng)開發(fā)工作,還需要遵循如下準(zhǔn)則:好戰(zhàn)略數(shù)據(jù)的規(guī)劃,建立穩(wěn)定的信息模型;在功能模型的劃分上,按組織機(jī)構(gòu)來劃分子系統(tǒng)或模塊;應(yīng)用軟件的開發(fā)設(shè)計(jì),要充分考慮應(yīng)用軟件的適應(yīng)性,建立友好的人機(jī)界面。綜上所述,系統(tǒng)的實(shí)現(xiàn)技術(shù)上完全可行。1.4經(jīng)濟(jì)/效益可行性分析1.4.1支出方面借助校園本身的數(shù)據(jù)進(jìn)行管理,數(shù)據(jù)庫本地存儲(chǔ)。除編程人力支出并無其他經(jīng)濟(jì)消費(fèi)。(1)工作負(fù)荷人工操作頻繁加減存款。工作繁瑣,枯燥,容易出錯(cuò),完成工作所需要的時(shí)間較長,工作效率比較低。(2)費(fèi)用開支由于運(yùn)行現(xiàn)有系統(tǒng)所引起的費(fèi)用開支,如人力、設(shè)備、空間、支持性服務(wù)、材料等項(xiàng)開支以及開支總額。(3)人員配備由于現(xiàn)有系統(tǒng)的技術(shù)性含量比較低,操作不便,工作量大,因此需要較多的人才能完成工作。而新系統(tǒng)將具有較高的技術(shù)操作性,但它確使工作變得較為簡便,因此只需要少量的高素質(zhì)人才就可完成。1.4.2收益方面項(xiàng)目投入使用后,將有效的提高高校校園卡管理工作中所涉及的信息管理,學(xué)生管理,商鋪管理的效率,減少信息管理上的人力投入和出現(xiàn)錯(cuò)誤的概率,對于校園卡的管理使用極為有利。1.5系統(tǒng)開發(fā)計(jì)劃本項(xiàng)目初步計(jì)劃在3周內(nèi)完成需求分析、原型設(shè)計(jì)工作,隨后在3天內(nèi)完成代碼編寫和初步調(diào)試工作,再后在2周內(nèi)完成內(nèi)部測試、改進(jìn)、修補(bǔ)和公開測試工作。2需求分析2.1總體目標(biāo)本系統(tǒng)力求讓飯卡管理變得傻瓜化,集成學(xué)生管理以及在學(xué)校運(yùn)營商戶營業(yè)狀況地智能化管理。2.2具體目標(biāo)前端:刷卡消費(fèi)、確認(rèn)身份(門禁)2)公共:查詢使用記錄、掛失、拾遺查詢3)管理:新開、充值、掛失、解掛、注銷、補(bǔ)辦、消費(fèi)保護(hù)、設(shè)置密碼2.3系統(tǒng)數(shù)據(jù)建模初步的E-R圖設(shè)計(jì),如圖2.3圖2.3初步E-R圖2.4系統(tǒng)功能建模如圖2.4.1為頂層數(shù)據(jù)流圖,分為四個(gè)實(shí)體,分別為學(xué)生,管理員,刷卡機(jī)、刷卡員圖2.4.1頂層數(shù)據(jù)流圖0層數(shù)據(jù)流圖如圖2.4.2將學(xué)生與商戶信息管理、飯卡信息管理、消費(fèi)記錄等數(shù)據(jù)流進(jìn)行第一步細(xì)化圖2.4.20層數(shù)據(jù)流圖如圖2.4.3-2.4.5位1層數(shù)據(jù)流圖,分別細(xì)化的是學(xué)生信息管理,飯卡信息管理,商戶營業(yè)信息管理。如圖2-4-3新增飯卡/入駐商戶的數(shù)據(jù)流處理過程,學(xué)生基本表提供基本數(shù)據(jù)流后,數(shù)據(jù)經(jīng)過處理流入飯卡基本表2.4.3學(xué)生信息管理數(shù)據(jù)流圖如圖2.4.4位飯卡消費(fèi)/掛失過程:2.4.4飯卡信息管理如圖2.4.5為消費(fèi)收益數(shù)據(jù)處理過程:2.4.5商戶信息管理數(shù)據(jù)流圖2.5數(shù)據(jù)字典名稱:管理員描述:對飯卡管理系統(tǒng)管理的人員定義:管理員=工號(hào)+密碼+姓名+性別+聯(lián)系方式工號(hào)=字符/20位密碼=字符/20位姓名=字符/20位 性別=【男/女】聯(lián)系方式=字符/11位位置:管理員表名稱:學(xué)生描述:在校的學(xué)生定義:學(xué)生=學(xué)號(hào)+姓名+性別+聯(lián)系方式+宿舍學(xué)號(hào)=字符/12位姓名=字符/10位 性別=【男/女】 聯(lián)系方式=字符/11位宿舍=字符/8位位置:學(xué)生表名稱:刷卡員描述:對飯卡進(jìn)行刷卡操作的人員定義:刷卡員=工號(hào)+姓名工號(hào)=字符/8位姓名=字符/20位位置:刷卡員表名稱:飯卡描述:飯卡管理系統(tǒng)被操作的對象定義:飯卡=卡ID+余額+卡狀態(tài)+消費(fèi)限額+卡密碼+學(xué)號(hào)卡ID=字符/8位余額=浮點(diǎn)型(>=0) 卡狀態(tài)=字符/4位 卡上額=浮點(diǎn)型(>=0) 卡密碼=字符/6位 學(xué)號(hào)=字符/12位位置:飯卡信息表名稱:刷卡機(jī)描述:消費(fèi)付款定義:刷卡機(jī)=機(jī)號(hào)+位置+刷卡員工號(hào)機(jī)號(hào)=字符/4位 位置=字符/50位 刷卡員工號(hào)=字符/8位位置:刷卡機(jī)信息表名稱:消費(fèi)信息表描述:飯卡管理系統(tǒng)中記錄消費(fèi)的信息定義:飯卡=卡ID+刷卡機(jī)號(hào)+消費(fèi)時(shí)間+消費(fèi)金額卡ID=字符/8位 刷卡機(jī)號(hào)=字符/4位 消費(fèi)時(shí)間=字符/14位 消費(fèi)金額=浮點(diǎn)型(>=0)位置:消費(fèi)信息表名稱:飯卡管理描述:管理員對飯卡進(jìn)行管理定義:飯卡管理=管理員工號(hào)+卡ID+操作時(shí)間+管理類別+管理內(nèi)容+充值金額 管理員工號(hào)=字符/20位卡ID=字符/8位操作時(shí)間=字符/14位管理類別=字符/8位管理內(nèi)容=字符/50位充值金額=浮點(diǎn)型/(>=0)位置:飯卡管理信息表名稱:消費(fèi)額描述:描述消費(fèi)款額定義:消費(fèi)額=浮點(diǎn)型(>=0)位置:消費(fèi)信息表名稱:余額描述:顯示卡上的現(xiàn)有金額數(shù)定義:余額=浮點(diǎn)型(>=0)位置:飯卡信息表名稱:充值金額描述:對管理員充值金額的統(tǒng)計(jì)定義:充值金額=浮點(diǎn)型(>=0)位置:飯卡管理信息表名稱:消費(fèi)限額描述:若消費(fèi)超過限額則需要輸入密碼定義:消費(fèi)限額=浮點(diǎn)型(>=0)位置:飯卡信息表3總體設(shè)計(jì)3.1系統(tǒng)結(jié)構(gòu)圖系統(tǒng)的0層數(shù)據(jù)流圖,以及1層細(xì)化數(shù)據(jù)流圖如圖3.1.1-3.1.4所示。圖3.1.10層數(shù)據(jù)流圖圖3.1.21層數(shù)據(jù)流圖(消費(fèi)記錄細(xì)化)圖3.1.31層數(shù)據(jù)流圖(飯卡信息管理模塊細(xì)化)圖3.1.41層數(shù)據(jù)流圖(學(xué)生與商戶信息管理模塊細(xì)化)功能結(jié)構(gòu)圖如圖3.1.5所示。圖3.1.5系統(tǒng)功能模塊圖3.2數(shù)據(jù)庫設(shè)計(jì)3.2.1邏輯設(shè)計(jì)要點(diǎn)管理員表(工號(hào),密碼,姓名,性別,聯(lián)系方式)工號(hào)密碼姓名性別聯(lián)系方式學(xué)生(學(xué)號(hào),姓名,性別,聯(lián)系方式,宿舍)學(xué)號(hào)姓名性別聯(lián)系方式宿舍飯卡信息表(卡ID,余額,卡狀態(tài),消費(fèi)限額,密碼,學(xué)號(hào))卡ID余額卡狀態(tài)消費(fèi)限額密碼學(xué)號(hào)刷卡機(jī)表(機(jī)號(hào),位置,刷卡員工號(hào))機(jī)號(hào)位置刷卡員工號(hào)刷卡員表(刷卡員工號(hào),姓名)刷卡員工號(hào)姓名消費(fèi)信息表(機(jī)號(hào),卡ID,消費(fèi)時(shí)間,消費(fèi)金額)機(jī)號(hào)卡ID消費(fèi)時(shí)間消費(fèi)金額飯卡管理表(管理員工號(hào),卡ID,操作時(shí)間,操作類型,操作內(nèi)容,充值金額)管理員工號(hào)卡ID操作時(shí)間操作類型操作內(nèi)容充值金額3.2.2物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)管理員表數(shù)據(jù)項(xiàng)類型主鍵備注工號(hào)char(20)是不為空密碼char(20)否不為空姓名char(20)否不為空性別char(2)否可為空聯(lián)系方式char(11)否可為空學(xué)生表數(shù)據(jù)項(xiàng)類型主鍵備注學(xué)號(hào)char(12)是不為空姓名char(10)否不為空性別char(2)否可為空聯(lián)系方式char(11)否可為空宿舍char(8)否可為空飯卡信息表數(shù)據(jù)項(xiàng)類型主鍵備注卡IDchar(8)是不為空余額float否可為空卡狀態(tài)char(4)否可為空消費(fèi)限額float否可為空密碼char(6)否可為空學(xué)號(hào)char(12)否外鍵刷卡機(jī)表數(shù)據(jù)項(xiàng)類型主鍵備注機(jī)號(hào)char(4)是不為空位置char(50)否可為空刷卡員工號(hào)char(8)否外鍵刷卡員表數(shù)據(jù)項(xiàng)類型主鍵備注刷卡員工號(hào)char(8)是不為空姓名char(20)否可為空消費(fèi)信息表數(shù)據(jù)項(xiàng)類型主鍵備注機(jī)號(hào)char(4)是不為空卡IDchar(8)是外鍵消費(fèi)時(shí)間char(14)是不為空消費(fèi)金額float否可為空飯卡管理信息表數(shù)據(jù)項(xiàng)類型主鍵備注管理員工號(hào)char(20)是外鍵卡IDchar(8)是外鍵操作時(shí)間char(14)是不為空操作類型char(8)否不為空操作內(nèi)容char(50)否可為空充值金額float否可為空3.2.3觸發(fā)器設(shè)計(jì)由于在消費(fèi)和充值時(shí),需要對余額進(jìn)行更新操作,因此需要添加對應(yīng)的觸發(fā)器如下:createtriggerUpdateCardRemain1onConsumeforupdate,insertas updateCard setCardRemain-= (selecttop1ConNumfromConsume whereConsume.CardNoIN (selectCardNofrominserted) orderbyContimedesc ) whereCard.CardNoin (selectCardNofrominserted)createtriggerUpdateCardRemain2onManCardforupdate,insertas updateCard setCardRemain+= (selecttop1ChargeNumfromManCard whereManCard.CardNoIN (selectCardNofrominserted) orderbyManTimedesc ) whereCard.CardNoin (selectCardNofrominserted)3.3系統(tǒng)模塊IPO圖3.3.1驗(yàn)證用戶登錄功能模塊功能描述對登錄系統(tǒng)的用戶進(jìn)行身份驗(yàn)證。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱用戶登錄模塊編號(hào)1作者翟天亨日期2015/12/25模塊描述用于系統(tǒng)對用戶的登錄進(jìn)行身份驗(yàn)證調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目用戶名,密碼,用戶類型,驗(yàn)證碼格式用戶名:varchar(20)密碼:varchar(20)類別:char(10)驗(yàn)證碼:char(4)處理1、用戶輸入用戶名、密碼,選擇用戶類型及輸入驗(yàn)證碼2、模塊獲得用戶名密碼等信息3、模塊調(diào)用數(shù)據(jù)庫表進(jìn)行比較及程序進(jìn)行驗(yàn)證碼校驗(yàn)4、模塊返回登錄信息輸出用戶登錄成功或登錄失敗。局部數(shù)據(jù)元素?cái)?shù)據(jù)庫表約束條件驗(yàn)證碼驗(yàn)證注釋需要數(shù)據(jù)庫用戶表主要算法【登錄】按鈕:驗(yàn)證用戶的合法性?!救∠堪粹o:關(guān)閉用戶登錄窗口?!咀浴堪粹o:彈出用戶注冊功能窗口。3.3.2用戶注冊功能管理模塊功能描述用戶注冊一個(gè)登錄帳號(hào)。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱用戶注冊模塊編號(hào)2作者翟天亨日期2015/12/25模塊描述學(xué)生用戶注冊登錄帳號(hào)調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目用戶名,密碼,確認(rèn)密碼,綁定學(xué)號(hào),綁定飯卡號(hào),驗(yàn)證碼格式用戶名:varchar(20)密碼:varchar(20)學(xué)號(hào):nvarchar(50)飯卡號(hào):nvarchar(50)驗(yàn)證碼:char(4)處理用戶點(diǎn)擊登錄頁面的注冊鏈接系統(tǒng)返回注冊頁面用戶輸入注冊信息系統(tǒng)調(diào)用數(shù)據(jù)庫模塊進(jìn)行數(shù)據(jù)信息比對信息確認(rèn)無誤系統(tǒng)彈出注冊成功對話框輸出注冊成功或失敗局部數(shù)據(jù)元素?cái)?shù)據(jù)庫表約束條件驗(yàn)證碼驗(yàn)證注釋需要數(shù)據(jù)庫用戶表及持卡者信息表主要算法【注冊】按鈕:注冊一個(gè)新用戶?!救∠堪粹o:關(guān)閉登錄窗口?!痉祷氐卿洝堪粹o:返回上層界面。3.3.3查詢用戶詳細(xì)信息功能模塊功能描述用于用戶查詢本人信息。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱查詢用戶詳細(xì)信息模塊編號(hào)3作者翟天亨日期2015/12/25模塊描述用于用戶查詢本人詳細(xì)信息調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目點(diǎn)擊按鈕格式無處理用戶登錄成功進(jìn)入用戶界面用戶點(diǎn)擊查詢用戶詳細(xì)信息系統(tǒng)根據(jù)用戶登錄的帳號(hào)從數(shù)據(jù)庫中查詢用戶的信息系統(tǒng)顯示查詢出的信息輸出用戶的詳細(xì)信息局部數(shù)據(jù)元素?cái)?shù)據(jù)庫中持卡者信息表及照片表約束條件無注釋需要數(shù)據(jù)庫中持卡者信息表及照片表主要算法【查詢用戶詳細(xì)信息】按鈕:顯示用戶信息?!静樵兿M(fèi)歷史】按鈕:查詢用戶的消費(fèi)歷史?!緬焓А堪粹o:用戶掛失飯卡?!鞠M(fèi)】按鈕:進(jìn)入用戶消費(fèi)界面。【上傳照片】按鈕:上傳用戶照片?!咎峤徽掌堪粹o:確認(rèn)上傳照片。3.3.4用戶掛失功能模塊功能描述用于用戶掛失自己的飯卡。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱用戶掛失模塊編號(hào)4作者翟天亨日期2015/12/25模塊描述用于用戶掛失自己的卡調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目點(diǎn)擊按鈕格式無處理用戶登錄進(jìn)入用戶界面用戶點(diǎn)擊掛失按鈕系統(tǒng)根據(jù)用戶登錄的帳號(hào)查詢用戶信息系統(tǒng)顯示用戶學(xué)號(hào)及飯卡好信息用戶確認(rèn)信息,點(diǎn)擊掛失按鈕系統(tǒng)彈出確認(rèn)對話框用戶點(diǎn)擊確認(rèn),提交掛失系統(tǒng)更改用戶信息并添加記錄到系統(tǒng)中輸出掛失成功局部數(shù)據(jù)元素?cái)?shù)據(jù)庫中飯卡信息表及飯卡歷史表約束條件注釋需要數(shù)據(jù)庫用戶表主要算法【掛失】按鈕:掛失自己的帳號(hào)?!敬_定】按鈕:確認(rèn)所掛失的帳號(hào)?!救∠堪粹o:返回掛失界面。3.3.5用戶消費(fèi)功能模塊功能描述用于用戶消費(fèi)使用。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱用戶消費(fèi)模塊編號(hào)5作者翟天亨日期2015/12/25模塊描述用于用戶消費(fèi)使用調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目點(diǎn)擊按鈕,消費(fèi)金額格式消費(fèi)金額:數(shù)字類型處理用戶登錄系統(tǒng)進(jìn)入用戶界面用戶點(diǎn)擊消費(fèi)按鈕系統(tǒng)根據(jù)用戶帳號(hào)返回用戶飯卡號(hào)及余額用戶輸入消費(fèi)金額用戶點(diǎn)擊消費(fèi)系統(tǒng)查詢消費(fèi)金額是否小于余額當(dāng)小于余額是系統(tǒng)彈出確認(rèn)對話框用戶確認(rèn)消費(fèi)系統(tǒng)返回消費(fèi)成功對話款及修改數(shù)據(jù)庫余額并添加歷史記錄輸出確認(rèn)用戶消費(fèi)局部數(shù)據(jù)元素?cái)?shù)據(jù)庫中飯卡信息表及飯卡歷史表及用戶表約束條件消費(fèi)輸入框中限定為數(shù)字輸入,其他字符無法輸入進(jìn)去注釋需要數(shù)據(jù)庫中飯卡信息表及飯卡歷史表及用戶表(4)主要算法【消費(fèi)】按鈕:消費(fèi)金額?!厩蹇铡堪粹o:清空消費(fèi)金額?!敬_定】按鈕:確認(rèn)消費(fèi)金額?!救∠堪粹o:返回消費(fèi)界面。3.3.6用戶查詢消費(fèi)歷史功能模塊功能描述用于用戶查詢自己卡的歷史記錄模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱用戶查詢消費(fèi)歷史模塊編號(hào)6作者翟天亨日期2015/12/25模塊描述用于用戶查詢自己卡的歷史記錄調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目起始時(shí)間,終止時(shí)間,款額,操作格式起始時(shí)間:datetime終止時(shí)間:datetime款額:float操作:char(20)處理用戶登錄系統(tǒng)進(jìn)入用戶界面用戶點(diǎn)擊查詢消費(fèi)歷史系統(tǒng)根據(jù)用戶登錄的帳號(hào)返回用戶所有歷史記錄用戶輸入查詢條件系統(tǒng)根據(jù)查詢條件查詢數(shù)據(jù)庫系統(tǒng)返回查詢結(jié)果輸出用戶根據(jù)查詢條件查詢的結(jié)果局部數(shù)據(jù)元素用戶表及飯卡歷史表約束條件只能查詢本卡,時(shí)間通過鼠標(biāo)點(diǎn)入,操作類型由下拉框輸入注釋需要數(shù)據(jù)庫用戶表及飯卡歷史表(4)主要算法【查找】按鈕:選擇起始時(shí)間查詢用戶消費(fèi)歷史?!厩蹇铡堪粹o:清空所輸入的款額,操作。3.3.7新建持卡者功能模塊功能描述用于管理員錄入新建學(xué)生信息。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱新建持卡者模塊編號(hào)7作者翟天亨日期2015/12/25模塊描述用于管理員錄入新建學(xué)生的信息調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目學(xué)號(hào)|工號(hào),飯卡號(hào),姓名,電話,性別,地址,照片格式學(xué)號(hào)|工號(hào):nvarchar(50)飯卡號(hào):nvarchar(50)姓名:char(20)電話:char(10)性別:char(20)地址:char(50)照片:jpg,bmp,png處理管理員登錄系統(tǒng)進(jìn)入管理員界面管理員打開新建持卡者信息管理員輸入信息并選擇照片管理員點(diǎn)擊提交系統(tǒng)將信息寫入數(shù)據(jù)庫中系統(tǒng)彈出信息錄入成功對話框輸出信息錄入成功對話框局部數(shù)據(jù)元素輸入信息到持卡者信息表及飯卡歷史表約束條件所有信息必須填寫完整除照片信息外。注釋需要數(shù)據(jù)庫中持卡者信息表及飯卡歷史表主要算法【提交】按鈕:提交用戶信息?!厩蹇铡堪粹o:清空所填用戶信息。【上傳照片】按鈕:上傳用戶照片?!敬_定】按鈕:建卡成功,返回操作。3.3.8存款功能模塊功能驗(yàn)證用于管理員對用戶的充值。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱存款模塊編號(hào)8作者翟天亨日期2015/12/25模塊描述用于管理員對用戶的充值調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目學(xué)號(hào)|工號(hào),充值金額格式學(xué)號(hào)|工號(hào):nvarchar(50)充值金額:float處理管理員登錄系統(tǒng)進(jìn)入管理員界面管理員輸入要充值的學(xué)生學(xué)號(hào)管理員點(diǎn)擊充值按鈕系統(tǒng)根據(jù)管理員輸入的學(xué)生學(xué)號(hào)查詢學(xué)生信息返回到充值頁面管理員輸入充值金額管理員點(diǎn)擊提交按鈕系統(tǒng)彈出確認(rèn)對話框管理員確認(rèn)系統(tǒng)彈出充值成功對話框輸出充值成功對話框局部數(shù)據(jù)元素輸出信息記錄到飯卡信息表及飯卡歷史表約束條件注釋需要數(shù)據(jù)庫飯卡信息表、飯卡歷史表(4)主要算法【充值】按鈕:充值金額?!敬_定】按鈕:確定充值金額?!救∠堪粹o:取消充值并返回。3.3.9注銷用戶功能模塊功能描述用于管理元對畢業(yè)學(xué)生及過期用戶的注銷。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱注銷模塊編號(hào)9作者翟天亨日期2015/12/25模塊描述用于管理員對畢業(yè)學(xué)生及過期用戶注銷調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目學(xué)號(hào)|工號(hào)格式學(xué)號(hào)|工號(hào):nvarchar(50)處理管理員登錄系統(tǒng)進(jìn)入管理員界面管理員輸入要注銷的學(xué)生學(xué)號(hào)管理員點(diǎn)擊注銷按鈕系統(tǒng)根據(jù)管理員輸入的學(xué)號(hào)進(jìn)行查詢系統(tǒng)顯示查詢結(jié)果在注銷頁面管理員核對信息并提交注銷系統(tǒng)接收信息寫入數(shù)據(jù)庫并刪除注銷用戶的飯卡歷史信息輸出是否注銷對話框及注銷成功對話框局部數(shù)據(jù)元素寫入記錄到飯卡歷史表及飯卡信息表約束條件注釋需要數(shù)據(jù)庫飯卡歷史表及飯卡信息表主要算法【注銷此卡】按鈕:注銷次飯卡?!敬_定】按鈕:確認(rèn)注銷次卡?!救∠堪粹o:返回注銷界面。3.3.10更改學(xué)生信息功能模塊功能描述用于管理員對需要更改的學(xué)生信息進(jìn)行查詢更改。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱更改學(xué)生信息模塊編號(hào)10作者翟天亨日期2015/12/25模塊描述用于管理員對需要更改的學(xué)生信息進(jìn)行查詢更改調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目學(xué)號(hào)|工號(hào),飯卡號(hào),姓名,電話,性別,地址,照片格式學(xué)號(hào)|工號(hào):nvarchar(50)飯卡號(hào):nvarchar(50)姓名:char(20)電話:char(10)性別:char(20)地址:char(50)照片:jpg,bmp,png處理管理員登錄系統(tǒng)進(jìn)入管理員界面管理員輸入要更改信息的學(xué)生學(xué)號(hào)系統(tǒng)根據(jù)學(xué)生學(xué)號(hào)查詢數(shù)據(jù)庫系統(tǒng)返回學(xué)生信息到更改學(xué)生信息頁面管理員修改要更改的學(xué)生信息管理員提交更改后的學(xué)生信息系統(tǒng)接收信息寫入數(shù)據(jù)庫中系統(tǒng)彈出更新成功對話框輸出更新成功對話框局部數(shù)據(jù)元素寫入記錄到持卡者信息表及照片表約束條件學(xué)生學(xué)號(hào)無法更改注釋需要數(shù)據(jù)庫持卡者信息表及照片表(3)主要算法【提交】按鈕:確認(rèn)提交所填的資料信息。【刪除】按鈕:刪除每一個(gè)信息?!厩蹇铡堪粹o:清空所有信息。【上傳照片】按鈕:上傳更改用戶照片信息。3.3.11掛失,解鎖功能模塊功能描述用于管理員對掛失用戶進(jìn)行解鎖并對需要掛失用戶進(jìn)行掛失。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱掛失,解鎖模塊編號(hào)11作者翟天亨日期2015/12/25模塊描述用于管理員對掛失用戶進(jìn)行解鎖及對需要掛失用戶進(jìn)行掛失調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目學(xué)號(hào)|工號(hào)格式學(xué)號(hào)|工號(hào):nvarchar(50)處理管理員登錄進(jìn)入管理員頁面管理員輸入要掛失或解鎖的用戶學(xué)號(hào)系統(tǒng)根據(jù)管理員輸入的信息進(jìn)行查詢系統(tǒng)返回信息到頁面管理員點(diǎn)擊掛失或解鎖按鈕系統(tǒng)接收信息寫入數(shù)據(jù)庫系統(tǒng)彈出掛失成功或解鎖成功對話框輸出掛失成功或解鎖成功對話框局部數(shù)據(jù)元素寫入記錄到飯卡歷史表及更新飯卡信息表約束條件注銷卡及已上鎖的卡系統(tǒng)不予此操作注釋需要數(shù)據(jù)庫用戶表主要算法【掛失此卡】按鈕:掛失需要掛失的飯卡。【解鎖此卡】按鈕:解鎖需要解鎖的飯卡?!敬_定】按鈕:確認(rèn)掛失,解鎖的飯卡?!救∠堪粹o:取消掛失,解鎖,并返回上層界面。3.3.12查詢更改消費(fèi)歷史功能模塊功能描述用于管理員對用戶消費(fèi)歷史進(jìn)行查詢更改模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱查詢更改消費(fèi)歷史模塊編號(hào)12作者翟天亨日期2015/12/25模塊描述用于管理員對用戶消費(fèi)歷史進(jìn)行查詢更改調(diào)用模塊數(shù)據(jù)庫模塊被調(diào)用模塊無輸入項(xiàng)目學(xué)號(hào)|工號(hào),起始時(shí)間,終止時(shí)間,款額,操作格式學(xué)號(hào)|工號(hào):nvarchar(50)起始時(shí)間:datetime終止時(shí)間:datetime款額:float操作:char(20)處理管理員登錄系統(tǒng)進(jìn)入管理員頁面管理員點(diǎn)擊查詢更改消費(fèi)歷史按鈕系統(tǒng)根據(jù)管理員輸入的學(xué)號(hào)信息進(jìn)行查詢并返回該學(xué)號(hào)的歷史信息,如果管理員沒有輸入學(xué)號(hào)信息則返回所有學(xué)生的歷史信息管理員在更改歷史頁面上重新選擇查詢條件系統(tǒng)根據(jù)查詢條件返回結(jié)果管理員對結(jié)果進(jìn)行更改系統(tǒng)接收更改信息寫入數(shù)據(jù)庫輸出更改信息成功對話框局部數(shù)據(jù)元素更改飯卡歷史表中的記錄約束條件注釋需要數(shù)據(jù)庫用戶表(3)主要算法【刪除】按鈕:刪除選定的消費(fèi)記錄。【清空】按鈕:清空消費(fèi)記錄?!静檎摇堪粹o:查找指定的消費(fèi)記錄。3.3.13數(shù)據(jù)庫功能模塊功能描述記錄系統(tǒng)所有數(shù)據(jù)信息。模塊IPO表系統(tǒng)名稱飯卡管理系統(tǒng)模塊名稱數(shù)據(jù)庫模塊模塊編號(hào)13作者翟天亨日期2015/12/25模塊描述記錄系統(tǒng)所有數(shù)據(jù)信息調(diào)用模塊無被調(diào)用模塊無輸入項(xiàng)目持卡者信息表,飯卡歷史表,飯卡信息表,用戶表,照片表格式無處理系統(tǒng)調(diào)用的各個(gè)處理輸出學(xué)生信息表,商鋪表,飯卡表,飯卡信息表,用戶表局部數(shù)據(jù)元素?zé)o約束條件無注釋各表數(shù)據(jù)類型給定4詳細(xì)設(shè)計(jì)4.1登錄模塊詳細(xì)設(shè)計(jì)登錄模塊的程序流程圖圖4.1登陸模塊流程圖偽代碼設(shè)計(jì)Begin用戶登錄輸入用戶名,密碼,驗(yàn)證碼if(用戶名/密碼/驗(yàn)證碼==””)則給出相應(yīng)提示信息否則連接數(shù)據(jù)庫If(Count<=0)則提示用戶名或者密碼錯(cuò)誤否則調(diào)用frmMangerMainEnd4.2學(xué)生信息模塊詳細(xì)設(shè)計(jì)圖4.2學(xué)生信息管理模塊流程圖偽代碼設(shè)計(jì)注:在本系統(tǒng)中,查詢操作涉及學(xué)生發(fā)卡信息查詢和商戶查詢,查詢的過程基本相同,但查詢出后對結(jié)果的處理有些不同,這里只進(jìn)行一種簡單描述:Begin查詢學(xué)生信息輸入學(xué)號(hào)if(學(xué)號(hào)為空)則提示錯(cuò)誤信息否則連接數(shù)據(jù)庫if(學(xué)號(hào)&&密碼錯(cuò)誤)則提示學(xué)號(hào)/密碼錯(cuò)誤否則{進(jìn)入查詢區(qū)域UsesqlsentencetoSelect;Textbox.Text=result;End}4.3消費(fèi)模塊詳細(xì)設(shè)計(jì)消費(fèi)模塊作為一個(gè)獨(dú)立的模塊單獨(dú)建立了一個(gè)工程,在此模塊用戶是無法進(jìn)行查詢?nèi)魏涡畔ⅲ惶峁╋埧ㄏM(fèi)功能。流程圖如圖4.3圖4.3消費(fèi)模塊流程圖偽代碼設(shè)計(jì)開始GetcardnumberPosnumberpriceThenif(price>limit){輸入卡號(hào)密碼if(密碼正確)則continueelse提示密碼錯(cuò)誤,重新輸入}if(余額>消費(fèi)金額)余額=余額–消費(fèi)金額否則提示余額不足結(jié)束5系統(tǒng)實(shí)現(xiàn)5.1編碼過程與特點(diǎn)編譯語言:C#編譯環(huán)境:visualstudio2010框架:WPF數(shù)據(jù)庫:對數(shù)據(jù)庫進(jìn)行查詢,修改5.2部分功能模塊實(shí)現(xiàn)5.2.1對消費(fèi)模塊進(jìn)行實(shí)現(xiàn)與測試運(yùn)行界面截圖具體代碼分析對數(shù)據(jù)庫進(jìn)行查詢并將查詢結(jié)果顯示在界面相應(yīng)位置上。具體代碼如下:namespaceTheCardManagerSystem_Server{///<summary>///frmLogin.xaml的交互邏輯///</summary>publicpartialclassfrmLogin:Window{SQLconectsqlconnect;DataSetds;stringusr;stringpsw;stringcode;IdentifyingCodevalidCode;stringsql;publicfrmLogin(){InitializeComponent();sqlconnect=newSQLconect();}privatevoidconBtn_Click(objectsender,RoutedEventArgse){usr=usrTextBox.Text.Trim();psw=pswTextBox.Password.ToString().Trim();code=codeTextBox.Text.Trim();if(usrTextBox.Text=="")MessageBox.Show("請輸入用戶名!","錯(cuò)誤信息",MessageBoxButton.OK,MessageBoxImage.Error);elseif(pswTextBox.Password.ToString()=="")MessageBox.Show("請輸入密碼!","錯(cuò)誤信息",MessageBoxButton.OK,MessageBoxImage.Error);elseif(!String.Equals(validCode.CheckCode,code,StringComparison.CurrentCultureIgnoreCase)||codeTextBox.Text=="")MessageBox.Show("驗(yàn)證碼錯(cuò)誤!","錯(cuò)誤信息",MessageBoxButton.OK,MessageBoxImage.Error);else{sql="selectManNo,ManPswfromManagerwhereManNo='"+usr+"'andManPsw='"+psw+"'";ds=sqlconnect.GetDs(sql);if(ds.Tables[0].Rows.Count>0){frmManagerMainMain=newfrmManagerMain(usr);Main.Show();this.Hide();}else{MessageBox.Show("有戶名或密碼錯(cuò)誤,請重新輸入","錯(cuò)誤信息",MessageBoxButton.OK,MessageBoxImage.Error);}}}privatevoidWindow_Loaded(objectsender,RoutedEventArgse){validCode=newIdentifyingCode (5,IdentifyingCode.CodeType.Alphas);codeImage.Source=BitmapFrame.Create(validCode.CreateCheckCodeImage());}privatevoidcodeImage_MouseDown(objectsender,MouseButtonEventArgse){validCode=newIdentifyingCode(5,IdentifyingCode.CodeType.Alphas);codeImage.Source=BitmapFrame.Create(validCode.CreateCheckCodeImage());}}}5.2.2對登陸模塊進(jìn)行實(shí)現(xiàn)與測試運(yùn)行界面截圖具體代碼分析界面上有三個(gè)需要判斷的數(shù)據(jù),分別是用戶名,密碼以及驗(yàn)證碼。如果為空或者經(jīng)數(shù)據(jù)庫查詢后用戶名與密碼不匹配或者驗(yàn)證碼輸入錯(cuò)誤則提示錯(cuò)誤信息,不然則通過驗(yàn)證進(jìn)入下一界面,具體代碼如下:namespaceTheCardManagerSystem_Server{///<summary>///frmLogin.xaml的交互邏輯///</summary>publicpartialclassfrmLogin:Window{SQLconectsqlconnect;DataSetds;stringusr;stringpsw;stringcode;IdentifyingCodevalidCode;stringsql;publicfrmLogin(){InitializeComponent();sqlconnect=newSQLconect();}privatevoidconBtn_Click(objectsender,RoutedEventArgse){usr=usrTextBox.Text.Trim();psw=pswTextBox.Password.ToString().Trim();code=codeTextBox.Text.Trim();if(usrTextBox.Text=="")MessageBox.Show("請輸入用戶名!","錯(cuò)誤信息",MessageBoxButton.OK,MessageBoxImage.Error);elseif(pswTextBox.Password.ToString()=="")MessageBox.Show("請輸入密碼!","錯(cuò)誤信息",MessageBoxButton.OK,MessageBoxImage.Error);elseif(!String.Equals(validCode.CheckCode,code,StringComparison.CurrentCultureIgnoreCase)||codeTextBox.Text=="")MessageBox.Show("驗(yàn)證碼錯(cuò)誤!","錯(cuò)誤信息",MessageBoxButton.OK,MessageBoxImage.Error);else{sql="selectManNo,ManPswfromManagerwhereManNo='"+usr+"'andManPsw='"+psw+"'";ds=sqlconnect.GetDs(sql);if(ds.Tables[0].Rows.Count>0){frmManagerMainMain=newfrmManagerMain(usr);Main.Show();this.Hide();}else{MessageBox.Show("有戶名或密碼錯(cuò)誤,請重新輸入","錯(cuò)誤信息",MessageBoxButton.OK,MessageBoxImage.Error);}}}privatevoidWindow_Loaded(objectsender,RoutedEventArgse){validCode=newIdentifyingCode(5,IdentifyingCode.CodeType.Alphas);codeImage.SourceBitmapFrame.Create(validCode.CreateCheckCodeImage());}privatevoidcodeImage_MouseDown(objectsender,MouseButtonEventArgse){ validCode=newIdentifyingCode(5,IdentifyingCode.CodeType.Alphas);codeImage.Source=BitmapFrame.Create(validCode.CreateCheckCodeImage());}}}5.2.3對查詢模塊的實(shí)現(xiàn)與測試運(yùn)行界面截圖具體代碼分析通過輸入卡號(hào)對數(shù)據(jù)庫進(jìn)行查詢,如果查到需要的信息則顯示在界面相應(yīng)位置上,如果沒有該卡號(hào)或者卡號(hào)輸入錯(cuò)誤則提示錯(cuò)誤,具體代碼如下:privatevoidbutton3_Click(objectsender,RoutedEventArgse){stringCardID=textBox9.Text.Trim();if(Validator.IsCardNo(CardID)){sql="select*fromStuInfo,CardwhereCardNo='"+CardID+"'andCard.StuNo=StuInfo.StuNo";sqlconnect=newSQLconect();ds=sqlconnect.GetDs(sql);if(ds.Tables[0].Rows.Count>0){textBox10.Text=ds.Tables[0].Rows[0][0].ToString();textBox11.Text=ds.Tables[0].Rows[0][1].ToString();textBox12.Text=ds.Tables[0].Rows[0][2].ToString();textBox13.Text=ds.Tables[0].Rows[0][3].ToString();textBox14.Text=ds.Tables[0].Rows[0][4].ToString();textBox15.Text=ds.Tables[0].Rows[0][6].ToString();textBox16.Text=ds.Tables[0].Rows[0][7].ToString();if(textBox16.Text.Trim()=="掛失")textBox16.Foreground=Brushes.Red;elsetextBox16.Foreground=Brushes.Black;textBox17.Text=ds.Tables[0].Rows[0][8].ToString();available=true;}else{available=false;MessageBox.Show("沒有該飯卡,請確認(rèn)后重新輸入!","錯(cuò)誤信息",MessageBoxButton.OK,MessageBoxImage.Error);textBox9.Clear();textBox10.Clear();textBox11.Clear();textBox12.Clear();textBox13.Clear();textBox14.Clear();textBox15.Clear();textBox16.Clear();textBox17.Clear();}}else{MessageBox.Show("卡號(hào)格式錯(cuò)誤,請重新輸入","卡號(hào)錯(cuò)誤",MessageBoxButton.OK,MessageBoxImage.Error);textBox9.Clear();textBox10.Clear();textBox11.Clear();textBox12.Clear();textBox13.Clear();textBox14.Clear();textBox15.Clear();textBox16.Clear();textBox17.Clear();}}5.3測試5.3.1本系統(tǒng)的測試計(jì)劃系統(tǒng)的每一個(gè)模塊都需要進(jìn)行單元測試,只有在通過了單元測試后,才能進(jìn)行系統(tǒng)的集成測試。在所有的集成測試(包括模塊測試、系統(tǒng)測試)都完成以后,方可在用戶參與下進(jìn)行驗(yàn)收測試。只有通過了用戶的驗(yàn)收測試后,系統(tǒng)才能交給最終的用戶。在系統(tǒng)項(xiàng)目及其所屬的各個(gè)模塊的編制與開發(fā)期間,要進(jìn)行各種測試活動(dòng),準(zhǔn)確記錄、及時(shí)分析并妥善保存有關(guān)這些測試的記錄,是確保系統(tǒng)運(yùn)行的重要條件。在系統(tǒng)測試中,應(yīng)有專人負(fù)責(zé)收集、匯總與保存有關(guān)系統(tǒng)測試的記錄。具體如下:需求分析階段列出的系統(tǒng)的每個(gè)功能都要求是“可測試的”。設(shè)計(jì)階段每個(gè)具體功能的實(shí)現(xiàn)都要考慮到其測試用例的設(shè)計(jì)。編碼實(shí)現(xiàn)階段對每個(gè)模塊做單元測試,然后做集成測試。最后和用戶一起做驗(yàn)收測試。系統(tǒng)測試是為了驗(yàn)證各階段所完成的工作是否滿足需求分析和詳細(xì)設(shè)計(jì)要求,識(shí)別出期望的結(jié)果和真正結(jié)果之間的差別,以便修正系統(tǒng)設(shè)計(jì)和代碼實(shí)現(xiàn)中的潛在錯(cuò)誤,保證系統(tǒng)運(yùn)行的正確性和功能完備性,提高系統(tǒng)運(yùn)行的性能。5.3.2測試方法和步驟本系統(tǒng)采取以黑盒測試方案為主,白盒測試方案為輔的測試方法。先分別進(jìn)行單元測試,再進(jìn)行集成測試,遵循自底向上的策略。對于每一個(gè)測試用例都有考慮到合法和非法的測試情況。5.3.3測試過程5.3.3.1單元測試(黑盒測試)用戶登錄模塊測試:表1“用戶登錄模塊”輸入條件等價(jià)類表輸入等價(jià)類有效等價(jià)類無效等價(jià)類登錄信息無空值且與數(shù)據(jù)庫信息匹配并且輸入驗(yàn)證碼2.無效用戶名3.無效密碼4.存在空值5.驗(yàn)證碼錯(cuò)誤表2有效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的有效等價(jià)類1.用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確)輸入有效1表3無效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的無效等價(jià)類1.用戶名(aaaaaa)、密碼(admin)、驗(yàn)證碼(輸入正確)2.用戶名(管理員)、密碼(admin)、驗(yàn)證碼(輸入正確)無效輸入2用戶名(admin)、密碼(aaaaa)、驗(yàn)證碼(輸入正確)2.用戶名(admin)、密碼(123456)、驗(yàn)證碼(輸入正確)無效輸入3用戶名(admin)、密碼()、驗(yàn)證碼(輸入正確)用戶名()、密碼(admin)、驗(yàn)證碼(輸入正確)用戶名(admin)、密碼(admin)、驗(yàn)證碼()無效輸入41.用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入錯(cuò)誤)無效輸入5持卡者信息管理測試:表4“查詢持卡者信息測試”輸入條件等價(jià)類表輸入等價(jià)類有效等價(jià)類無效等價(jià)類持卡者登錄信息1.顯示持卡者信息2.無效持卡者表5有效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的有效等價(jià)類1.201301012.20130102輸入有效1表6無效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的無效等價(jià)類持卡者無效輸入2飯卡信息管理測試:表7“加鎖與解鎖”輸入條件等價(jià)類表輸入等價(jià)類有效等價(jià)類無效等價(jià)類管理員登錄信息1.提示“是否掛失學(xué)號(hào)為的飯卡”2.此卡已上鎖管理員登錄信息3.顯示“是否解鎖學(xué)號(hào)為的飯卡”4.請輸入學(xué)號(hào)|工號(hào)5.學(xué)號(hào)|工號(hào)不存在,出現(xiàn)異常表8有效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的有效等價(jià)類登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130101)點(diǎn)擊“掛失”輸入有效1登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130101)點(diǎn)擊“解掛”輸入有效3表9無效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的無效等價(jià)類登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130102)點(diǎn)擊“掛失”無效輸入2登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);點(diǎn)擊“解掛”無效輸入4登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);點(diǎn)擊“解掛”查詢:學(xué)號(hào)(20130103)無效輸入5表10“充值”輸入條件等價(jià)類表輸入等價(jià)類有效等價(jià)類無效等價(jià)類管理員登錄信息,點(diǎn)擊“充值”1.可填寫充值金額2.提示“請輸入學(xué)號(hào)|工號(hào)”3.提示“沒有找到此學(xué)生”4.充值金額為負(fù)表11有效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的有效等價(jià)類登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130101)點(diǎn)擊“充值”,金額100輸入有效1表12無效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的無效等價(jià)類登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);點(diǎn)擊“充值”無效輸入2登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130103)無效輸入3登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130101)點(diǎn)擊“充值”,金額-100無效輸入4表13“修改卡密碼”輸入條件等價(jià)類表輸入等價(jià)類有效等價(jià)類無效等價(jià)類管理員登錄信息,點(diǎn)擊“修改卡密”1.可填寫密碼2.提示“請輸入學(xué)號(hào)|工號(hào)”3.提示“沒有找到此學(xué)生”4.密碼為空表14有效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的有效等價(jià)類登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130101)點(diǎn)擊“修改卡密”,密:123輸入有效1表15無效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的無效等價(jià)類登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);點(diǎn)擊“修改卡密”無效輸入2登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130103)無效輸入3登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130101)點(diǎn)擊“充值”無效輸入4飯卡消費(fèi)記錄管理測試:表16“查詢飯卡消費(fèi)記錄”輸入條件等價(jià)類表輸入等價(jià)類有效等價(jià)類無效等價(jià)類持卡者登錄信息,點(diǎn)擊“查詢消費(fèi)記錄”1.消費(fèi)記錄根據(jù)查詢條件正確顯示在控件中2.消費(fèi)記錄未顯示出來3.顯示出來的記錄與查詢條件不匹配表17有效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的有效等價(jià)類登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130101)點(diǎn)擊“查詢消費(fèi)記錄”輸入有效1表18無效等價(jià)類測試用例表測試數(shù)據(jù)期望結(jié)果覆蓋的無效等價(jià)類登陸:用戶名(admin)、密碼(admin)、驗(yàn)證碼(輸入正確);查詢:學(xué)號(hào)(20130101)點(diǎn)擊“查詢消費(fèi)記錄”無效輸入2、35.3.3.2集成測試(白盒測試)持卡者信息管理模塊的測試:①利用申請飯卡模塊完成申請者的飯卡和學(xué)號(hào)綁定任務(wù),然后調(diào)用查詢持卡者信息模塊看剛注冊的持卡者信息能否查詢到。若查到則進(jìn)入下一步,否則查找錯(cuò)誤。②若在查詢過程中發(fā)現(xiàn)此持卡者的某項(xiàng)記錄有誤,調(diào)用修改持卡者信息模塊修改這個(gè)不正確的記錄,以完善此持卡者的信息,如果可以進(jìn)入下一步,否則查找錯(cuò)誤。③調(diào)用查詢持卡者信息模塊查詢上面所說的持卡者,看看是否修改了該持卡者不正確的記錄,如果是,并且該持卡者再無其余不正確的記錄則此次測試成功,否則發(fā)現(xiàn)錯(cuò)誤,立即回到第二步繼續(xù)測試。流程圖程序圖測試路徑:路徑1:1->2->3->5->1路徑2:1->2->3->4->7路徑3:1->2->3->4->6->4->7測試用例:路徑1:輸入飯卡信息管理測試:①利用加鎖與解鎖模塊完成對卡的鎖定任務(wù),然后調(diào)用消費(fèi)模塊看剛加鎖的卡號(hào)能否進(jìn)行消費(fèi),若不能則進(jìn)入下一步,否則查找錯(cuò)誤。

②利用加鎖與解鎖模塊完成對卡的解鎖任務(wù),然后調(diào)用消費(fèi)模塊看剛加鎖的卡號(hào)能否進(jìn)行消費(fèi),若能則進(jìn)入下一步,否則查找錯(cuò)誤。③若在消費(fèi)過程中發(fā)現(xiàn)余額不足,則調(diào)用充值功能模塊增加可利用款額,以完成消費(fèi),如果可以進(jìn)入下一步,否則查找錯(cuò)誤④調(diào)用充值模塊增加可用款額,然后調(diào)用消費(fèi)模塊進(jìn)行消費(fèi),看之前不足的余額是否增加,可以消費(fèi),如果可以進(jìn)入下一步,否則查找錯(cuò)誤或重復(fù)本次操作。⑤利用注銷功能模塊完成消除卡信息的任務(wù),然后調(diào)用加鎖與解鎖模塊檢測卡是否還存在,若存在則重復(fù)此過程,否則查找錯(cuò)誤。 流程圖程序圖測試路徑:路徑1:1->2路徑2:1->3->4路徑3:1->3->5->6路徑4:1->3->5->7->8->10->15路徑4:1->3->5->7->8->9->7->8->10->15飯卡消費(fèi)記錄管理測試:①調(diào)用查詢飯卡消費(fèi)記錄模塊功能,若在查詢過程中發(fā)現(xiàn)此卡的某項(xiàng)記錄有誤,則調(diào)用修改飯卡消費(fèi)記錄模塊修改這個(gè)不正確的記錄,以完善此卡的信息,如果可以進(jìn)入下一步,否則查找錯(cuò)誤。②調(diào)用查詢飯卡消費(fèi)記錄模塊查詢上面所說的卡,看看是否修改了該卡不正確的記錄,如果是,并且該卡再無企業(yè)不正確的記錄則此次測試成功,否則發(fā)現(xiàn)錯(cuò)誤,立即回到第一步繼續(xù)測試。流程圖程序圖測試路徑:路徑1:1->2->4路徑2:1->2->3->5->2->4路徑3:1->2->3->5->3->5->2->45.3.3.3系統(tǒng)測試與回歸測試完成了各個(gè)模塊的測試后,要進(jìn)行系統(tǒng)測試。系統(tǒng)測試是針對整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測試,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不相符合或與之矛盾的地方。在系統(tǒng)測試的任何一個(gè)階段,只要發(fā)現(xiàn)了錯(cuò)誤,就要盡可能及時(shí)更正。更正后還要檢驗(yàn)已經(jīng)發(fā)現(xiàn)的缺陷有沒有被正確的修改和修改過程中有沒有引發(fā)新的缺陷,即回歸測試。另外,每當(dāng)一個(gè)新的模塊被當(dāng)作集成測試的一部分加進(jìn)來的時(shí)候,軟件環(huán)境都很發(fā)生改變,即建立起新的數(shù)據(jù)流路徑,還有可能激活了新的控制邏輯。這些改變可能會(huì)使原本工作得很正常的功能產(chǎn)生錯(cuò)誤。因此在集成測試策略的環(huán)境中,要進(jìn)行回歸測試,就是對部分已通過測試的功能要再次進(jìn)行測試,以保證系統(tǒng)在新環(huán)境下能正常工作。6維護(hù)6.1系統(tǒng)維護(hù)工作內(nèi)容沒有文檔的軟件,不能稱之為軟件,更談不到產(chǎn)品,所以我們在設(shè)計(jì)飯卡管理系統(tǒng)的時(shí)候主要從以下兩個(gè)方面做好維護(hù):注釋說明文檔每次在發(fā)布更新的時(shí)候,我們都要在說明文檔中單獨(dú)標(biāo)記出更新的內(nèi)容以方便使用者。6.2系統(tǒng)維護(hù)策略本飯卡管理系統(tǒng)依賴于數(shù)據(jù)庫數(shù)據(jù)的實(shí)時(shí)更新,一旦數(shù)據(jù)庫的數(shù)據(jù)沒有及時(shí)更新到每個(gè)對應(yīng)的表或者出現(xiàn)觸發(fā)器失效的情況,應(yīng)該立即啟用應(yīng)急的措施。具體如下:建立一個(gè)備用數(shù)據(jù)庫,在主數(shù)據(jù)庫失靈的時(shí)候可以使用備用數(shù)據(jù)來保證系統(tǒng)的正確運(yùn)行。備份數(shù)據(jù)庫使用云備份軟件在運(yùn)行的時(shí)候每個(gè)小時(shí)自動(dòng)從數(shù)據(jù)庫中調(diào)用學(xué)生飯卡余額并保存在一個(gè)臨時(shí)的文檔中,每個(gè)小時(shí)都替換更新一次。當(dāng)無法使用本地?cái)?shù)據(jù)庫時(shí)也無法使用云端數(shù)據(jù)庫的時(shí)候,軟件自動(dòng)生成一個(gè)文檔來記錄數(shù)據(jù)庫失效的時(shí)候的消費(fèi)數(shù)據(jù),記錄關(guān)鍵數(shù)據(jù),在數(shù)據(jù)恢復(fù)的時(shí)候保證數(shù)據(jù)的時(shí)時(shí)更新,但是當(dāng)數(shù)據(jù)庫失效的時(shí)候,系統(tǒng)不能提供查詢操作,但是可以依靠之前生成的余額文檔來提供消費(fèi)功能,保證學(xué)生飯卡的正常使用,此時(shí),學(xué)生飯卡的信息是直接保存在文檔中的,當(dāng)數(shù)據(jù)庫恢復(fù)連接的時(shí)候再將文檔中的數(shù)據(jù)更新到數(shù)據(jù)庫。7總結(jié)與體會(huì)7.1總結(jié)經(jīng)過為期8周的軟件工程實(shí)驗(yàn)課程,一個(gè)6人的團(tuán)隊(duì)反復(fù)經(jīng)過討論與實(shí)踐,體驗(yàn)到用軟件工程的思想來設(shè)計(jì)和編寫軟件的科學(xué)性以及必要性。8周過后,我們團(tuán)隊(duì)通過努力成功復(fù)現(xiàn)出想要的結(jié)果,即飯卡管理系統(tǒng)。該系統(tǒng)面向?qū)W生和商戶,學(xué)生可以新辦、查詢、修改飯卡信息,商戶可以入駐、查詢盈利信息,遺憾的是沒有能夠?qū)崿F(xiàn)在設(shè)計(jì)初期希望的門禁功能。本系統(tǒng)具有良好的用戶體驗(yàn)和容錯(cuò)機(jī)制。系統(tǒng)采用WPF編碼,在界面數(shù)據(jù)的處理上采用單獨(dú)的驗(yàn)證類來驗(yàn)證信息是否合法;為了增加安全性,在登錄窗口處增加驗(yàn)證碼類,用于生成和檢驗(yàn)驗(yàn)證碼信息;而在數(shù)據(jù)庫連接方面,也設(shè)計(jì)了單獨(dú)的數(shù)據(jù)庫連接類,類內(nèi)包含豐富的方法可供用戶調(diào)用。7.2體會(huì)石曉霞心得體會(huì):為期八周的課程設(shè)計(jì)結(jié)束了,課程設(shè)計(jì)是我們專業(yè)課程知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,這是我們邁向社會(huì),從事職業(yè)工作前一個(gè)必不可少的過程.”千里之行始于足下”,可以很好的形容我們這次的軟件工程設(shè)計(jì)。在軟件設(shè)計(jì)之初,我們就系統(tǒng)具體功能曾經(jīng)發(fā)生了很多爭執(zhí),我們的小組曾經(jīng)一度陷入了僵局,全組六個(gè)人為幾個(gè)功能爭執(zhí)不下,比如學(xué)生的權(quán)限問題,可以查詢自己飯卡的哪些信息,再比如掛失的時(shí)候,具體流程應(yīng)該如何實(shí)現(xiàn),學(xué)生的飯卡應(yīng)不應(yīng)該設(shè)置為唯一的卡號(hào),掛失的時(shí)候是新生成一個(gè)全新的卡號(hào)還是延續(xù)使用老卡的卡號(hào)等等這些細(xì)節(jié)問題我們都一起討論了許久,當(dāng)一個(gè)個(gè)功能設(shè)計(jì)都確定下來后,組長進(jìn)行了明確的分工,我根據(jù)組員設(shè)計(jì)的數(shù)據(jù)流圖將每一個(gè)數(shù)據(jù)整理下來,整理出的數(shù)據(jù)字典經(jīng)過幾次確認(rèn),我立刻清晰了這次設(shè)計(jì)中的所有元素,在后面的軟件運(yùn)行維護(hù)策略的時(shí)候,我清楚的認(rèn)識(shí)到,數(shù)據(jù)庫,是這個(gè)軟件的血液,沒有了數(shù)據(jù)的軟件就是一個(gè)空架子,數(shù)據(jù)的價(jià)值,遠(yuǎn)遠(yuǎn)大于數(shù)據(jù)的本身,在這個(gè)軟件中,我體會(huì)到了軟件和數(shù)據(jù)之間的聯(lián)系是千絲萬縷的,必須兼得并且處理得當(dāng),才能做出一個(gè)好軟件。當(dāng)我們完成了一些編碼后,系統(tǒng)可以實(shí)現(xiàn)一些功能并且可以對數(shù)據(jù)進(jìn)行一定的處理,我覺得該系統(tǒng)目前還是一個(gè)概念的樣本,如果有大量的數(shù)據(jù)同時(shí)需要處理,那么我們目前的軟件有“崩潰”的危險(xiǎn),這也是為什么軟件需要不斷的維護(hù)的原因。雖然這只是一個(gè)實(shí)驗(yàn),但是他的意義遠(yuǎn)大于單純的編碼,我明白了一個(gè)軟件從誕生到死亡這個(gè)過程究竟是什么在影響著他,也為我日后成為一個(gè)軟件設(shè)計(jì)師做了一個(gè)很好的開始。高澍陽心得體會(huì):一個(gè)我感覺不能再熟悉的飯卡管理系統(tǒng)在設(shè)計(jì)過程中我們遇到了不少問題,很多在我們作為消費(fèi)者的時(shí)候根本不會(huì)考慮的一些問題在設(shè)計(jì)軟件的時(shí)候都成為了不得不重視的問題。例如是用戶使用系統(tǒng)的權(quán)限應(yīng)該如何分配,卡號(hào)的限制金額應(yīng)該輸入多少需要要求輸入密碼。在使用Visio制作數(shù)據(jù)流圖和E-R圖的時(shí)候,從一開始不太會(huì)畫到后

溫馨提示

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

評論

0/150

提交評論