網(wǎng)上商城購物系統(tǒng)畢業(yè)論文(設(shè)計(jì))論文正文_第1頁
網(wǎng)上商城購物系統(tǒng)畢業(yè)論文(設(shè)計(jì))論文正文_第2頁
網(wǎng)上商城購物系統(tǒng)畢業(yè)論文(設(shè)計(jì))論文正文_第3頁
網(wǎng)上商城購物系統(tǒng)畢業(yè)論文(設(shè)計(jì))論文正文_第4頁
網(wǎng)上商城購物系統(tǒng)畢業(yè)論文(設(shè)計(jì))論文正文_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目錄TOC\o”1-3”\h\z\uHYPERLINK\l”_Toc325965338"摘要 IIIHYPERLINK\l”_Toc325965339”Abstract IVHYPERLINK\l”_Toc325965340"第一章緒論 1HYPERLINK\l”_Toc325965341”1.1課題背景 11。3系統(tǒng)開發(fā)環(huán)境 2_Toc325965345”1。5相關(guān)技術(shù)簡介 3HYPERLINK\l”_Toc325965346”1.5.1JSP開發(fā)技術(shù)簡介 3HYPERLINK\l”_Toc325965347”1。5.2SQLServer2005數(shù)據(jù)庫簡介 3第二章可行性研究 5HYPERLINK\l”_Toc325965349"2。1技術(shù)可行性 52。2經(jīng)濟(jì)可行性 5HYPERLINK\l”_Toc325965351"2。3法律可行性 62。4運(yùn)行可行性 6HYPERLINK\l”_Toc325965353”第三章需求分析 7HYPERLINK\l”_Toc325965354"3。1前臺(tái)業(yè)務(wù)流程分析 7HYPERLINK\l”_Toc325965355"3。2后臺(tái)業(yè)務(wù)流程分析 73.3數(shù)據(jù)流程分析 8HYPERLINK\l”_Toc325965357"第四章系統(tǒng)總體設(shè)計(jì) 10HYPERLINK\l”_Toc325965358”4。1系統(tǒng)結(jié)構(gòu)分析 104。2功能模塊設(shè)計(jì) 114.2.2后臺(tái)模塊的功能模塊設(shè)計(jì) 12HYPERLINK\l”_Toc325965362”4。3數(shù)據(jù)庫設(shè)計(jì) 13HYPERLINK\l”_Toc325965363”4。3.1E—R圖 14HYPERLINK\l”_Toc325965364”4。3.2基本表設(shè)計(jì) 18HYPERLINK\l”_Toc325965365"第五章系統(tǒng)詳細(xì)設(shè)計(jì) 225。2系統(tǒng)前臺(tái)各主要模塊的功能設(shè)計(jì) 235。2.1用戶登陸模塊的實(shí)現(xiàn) 23HYPERLINK\l”_Toc325965369”5.2。2新會(huì)員注冊(cè)模塊的實(shí)現(xiàn) 245。2。3購物車模塊的實(shí)現(xiàn) 26_Toc325965372"5。3后臺(tái)管理模塊的實(shí)現(xiàn) 30HYPERLINK\l”_Toc325965373"第六章系統(tǒng)測(cè)試及性能分析 34HYPERLINK\l”_Toc325965374"6。1測(cè)試的基本概念 346。3系統(tǒng)測(cè)試 35HYPERLINK\l”_Toc325965377”6.4系統(tǒng)的性能分析 37HYPERLINK\l”_Toc325965378"6。5系統(tǒng)中所存在的問題及解決方案 38_Toc325965380”6。5.2開發(fā)功能模塊所遇到的難點(diǎn) 39HYPERLINK\l”_Toc325965381”6.5。3系統(tǒng)中存在的問題及擬定的解決方法 39HYPERLINK\l”_Toc325965382”總結(jié) 41HYPERLINK\l”_Toc325965383”參考文獻(xiàn) 42HYPERLINK\l”_Toc325965384”致謝 43\t"_blank”程序所需的可靠性和伸縮性。其中,用以提高可靠性的特性包括日志傳送、在線備份和故障切換群集。在伸縮性方面的改進(jìn)包括對(duì)多達(dá)32顆CPU和64GBRAM的支持.通過自動(dòng)優(yōu)化和改進(jìn)后的管理特性——諸如數(shù)據(jù)文件尺寸的自動(dòng)管理、基于向?qū)У臄?shù)據(jù)庫拷貝、自動(dòng)內(nèi)存管理和簡化的故障切換群集安裝與管理,在線商務(wù)應(yīng)用程序能夠被迅速部署并有效管理。

第二章可行性研究可行性分析是在全面調(diào)查基礎(chǔ)上,針對(duì)新系統(tǒng)的開發(fā)是否具備必要性的可能性,對(duì)新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟(jì)、運(yùn)行的方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)開發(fā)成功,可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決.這部分將從以下幾個(gè)方面進(jìn)行研究:技術(shù)可行性、經(jīng)濟(jì)可行性、法律可行性和運(yùn)行可行性.2。1技術(shù)可行性技術(shù)可行性是對(duì)現(xiàn)有技術(shù)進(jìn)行評(píng)價(jià),分析系統(tǒng)是否可以用現(xiàn)有技術(shù)來實(shí)施以及技術(shù)發(fā)展對(duì)系統(tǒng)建設(shè)有什么影響。新系統(tǒng)可以用現(xiàn)有的技術(shù)來實(shí)現(xiàn),針對(duì)目前的開發(fā)工具而言,新系統(tǒng)比較適合采用流行的WEB開發(fā)工具J2EE.這種開發(fā)工具非常適合于B/S結(jié)構(gòu)的應(yīng)用系統(tǒng),提供了強(qiáng)大的軟件生成器.與其他開發(fā)工具相比,J2EE能夠支持跨平臺(tái)客戶端應(yīng)用程序開發(fā)的工具,除WINDOWS外,它還支持MACINTOSH和UNIX平臺(tái),可提供優(yōu)秀的報(bào)表生成方法和完整的在線幫助以及豐富的INTERNET訪問功能和組件特征.J2EE安全可靠,對(duì)于開發(fā)人員而言開發(fā)方便,對(duì)于使用人員而言界面友好,開發(fā)出來的軟件簡單易用,掌握方便。開發(fā)出的軟件易學(xué)易用,即便原來沒有什么計(jì)算機(jī)操作基礎(chǔ)也會(huì)很容易學(xué)會(huì)使用.2.2經(jīng)濟(jì)可行性系統(tǒng)的經(jīng)濟(jì)可行性指的是對(duì)組織的經(jīng)濟(jì)狀況和投資能力進(jìn)行分析,對(duì)系統(tǒng)建設(shè)、運(yùn)行和維護(hù)費(fèi)用進(jìn)行估算,對(duì)系統(tǒng)建成后可能取得的社會(huì)及經(jīng)濟(jì)效益進(jìn)行估計(jì).但該平臺(tái)設(shè)計(jì)只是作為本人的畢業(yè)設(shè)計(jì),又因?yàn)楸救说脑O(shè)計(jì)能力有限,其功能還不能完善,所以沒有什么經(jīng)濟(jì)效益可談.2。3法律可行性該電子商務(wù)系統(tǒng)是本人自主開發(fā)的網(wǎng)上購物系統(tǒng),還是個(gè)比較粗糙、功能還不完善的系統(tǒng),開發(fā)這個(gè)系統(tǒng)不同于開發(fā)普通的系統(tǒng)軟件,即該系統(tǒng)不同于原來已有的現(xiàn)代化的系統(tǒng),不存在侵權(quán)等問題,本系統(tǒng)開發(fā)不會(huì)侵犯他人、集體或國家利益,不違反國家法律,因此具有法律可行性.2。4運(yùn)行可行性操作可行性是指系統(tǒng)對(duì)組織機(jī)構(gòu)的影響,現(xiàn)有人員和機(jī)構(gòu)、設(shè)施、環(huán)境等對(duì)系統(tǒng)的適應(yīng)性以及進(jìn)行人員培訓(xùn)的補(bǔ)充計(jì)劃可行性。該系統(tǒng)需要搭建JVM即JAVA虛擬機(jī)和Tomcat環(huán)境,在此環(huán)境下系統(tǒng),并且在正確連接數(shù)據(jù)庫后可以正常運(yùn)行.而且從新系統(tǒng)使用難易程度上來看,新系統(tǒng)使用起來并不復(fù)雜,界面設(shè)計(jì)親切,容易上手,使用起來還是比較方便的。

第三章需求分析軟件需求分析工作是軟件生存周期中重要的一步.只有通過需求分析才能把軟件功能和性能的總體概念描述為具體上的軟件需求規(guī)格說明,從而奠定軟件開發(fā)的基礎(chǔ).軟件需求分析工作也是一個(gè)不斷認(rèn)識(shí)和逐步細(xì)化的過程。該過程將軟件調(diào)研階段的需求資料進(jìn)行分析和設(shè)計(jì),使軟件范圍逐步細(xì)化到詳細(xì)定義的程度,并分析出各種不同的軟件元素,然后為這些元素找到可行的解決辦法。本章將從不同角度的需求分析問題,講述軟件需求類型,分析過程,并部分給出了數(shù)據(jù)字典和數(shù)據(jù)流圖。3.1前臺(tái)業(yè)務(wù)流程分析前臺(tái)業(yè)務(wù)主要面向客戶。用戶可以瀏覽網(wǎng)站主頁、商品的介紹和一些新聞信息。前臺(tái)業(yè)務(wù)流程如圖3。1所示。商品信息瀏覽商品信息瀏覽瀏覽商品清單訂購訂單用戶購物車瀏覽商品清單訂購訂單用戶購物車查看訂單查看訂單修改資料修改資料修改資料修改資料圖3。1前臺(tái)業(yè)務(wù)流程3。2后臺(tái)業(yè)務(wù)流程分析在網(wǎng)站設(shè)計(jì)中,管理員完成對(duì)網(wǎng)站的維護(hù)與管理的工作.使用數(shù)據(jù)庫中權(quán)限的功能對(duì)管理員設(shè)置權(quán)限,管理員可以對(duì)管理及商品分類的信息進(jìn)行新增,修改、刪除,也可以對(duì)訂單信息進(jìn)行查看、撤銷、編輯狀態(tài)等處理,同時(shí)管理員也可以對(duì)用戶信息進(jìn)行管理。后臺(tái)業(yè)務(wù)流程如圖3。2所示。管理員管理員維護(hù)網(wǎng)站取出訂單維護(hù)網(wǎng)站取出訂單受理訂單受理訂單網(wǎng)站信息網(wǎng)站信息訂單提交訂單提交網(wǎng)站信息網(wǎng)站信息圖3。2后臺(tái)業(yè)務(wù)流程3。3數(shù)據(jù)流程分析在分析了系統(tǒng)的業(yè)務(wù)流程之后,就要分析系統(tǒng)的數(shù)據(jù)流,為后面設(shè)計(jì)網(wǎng)站的數(shù)據(jù)庫做好準(zhǔn)備.這里主要利用數(shù)據(jù)流程圖來說明數(shù)據(jù)流程。數(shù)據(jù)流程圖是一個(gè)圖示工具,容易理解,容易在開發(fā)和用戶之間進(jìn)行交流,以及在開發(fā)組織內(nèi)部交流。因此數(shù)據(jù)流圖作為一種模型工具已經(jīng)廣泛使用在軟件工程的事件中。根據(jù)前臺(tái)業(yè)務(wù)流程,可以將用戶的活動(dòng)分為兩類.用戶瀏覽所使用到的數(shù)據(jù)歸納為站內(nèi)信息,如商品信息等。而用戶提交的訂單則作為網(wǎng)站的訂單數(shù)據(jù)。相應(yīng)的,根據(jù)后臺(tái)業(yè)務(wù)流程,管理員對(duì)網(wǎng)站內(nèi)容的添加、更新和刪除等所操作的數(shù)據(jù)定義為商城信息.網(wǎng)站數(shù)據(jù)流的總體圖如圖3。3所示。商城信息0網(wǎng)站系統(tǒng)商城信息0網(wǎng)站系統(tǒng)管理員站內(nèi)信息用戶站內(nèi)信息用戶訂單數(shù)據(jù)用戶訂單數(shù)據(jù)用戶圖3。3網(wǎng)站數(shù)據(jù)流的總體圖進(jìn)一步分析網(wǎng)站的數(shù)據(jù)流程,得到網(wǎng)站數(shù)據(jù)流程的零級(jí)圖,如圖3。4所示.圖3.4網(wǎng)站數(shù)據(jù)流的零級(jí)圖第四章系統(tǒng)總體設(shè)計(jì) 本階段設(shè)計(jì)的基本目標(biāo)是解決系統(tǒng)如何實(shí)現(xiàn)問題,也叫做概要設(shè)計(jì),本階段主要任務(wù)是劃分出系統(tǒng)的物理元素及設(shè)計(jì)軟件的結(jié)構(gòu),完成軟件定義時(shí)期的任務(wù)之后就應(yīng)該對(duì)系統(tǒng)進(jìn)行總體設(shè)計(jì),即根據(jù)系統(tǒng)分析產(chǎn)生的分析結(jié)果來確定這個(gè)系統(tǒng)由哪些系統(tǒng)和模塊組成,這些系統(tǒng)和模塊又如何有機(jī)的結(jié)合在一起,每個(gè)模塊的功能如何實(shí)現(xiàn)。系統(tǒng)設(shè)計(jì)的目標(biāo)是使系統(tǒng)實(shí)現(xiàn)擁有所要求的功能,同時(shí),力爭達(dá)到高效率、高可靠性、可修改性,并且容易掌握和使用??傮w設(shè)計(jì)過程通常有兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì),其中系統(tǒng)設(shè)計(jì)確定系統(tǒng)的具體實(shí)現(xiàn)方案,結(jié)構(gòu)設(shè)計(jì)確定軟件結(jié)構(gòu).結(jié)構(gòu)化設(shè)計(jì)技術(shù)的核心是模塊分解設(shè)計(jì),模塊上系統(tǒng)結(jié)構(gòu)圖的主要元素.其設(shè)計(jì)思想是,采用自頂向下、逐層分解的方法,先給出總的模塊功能,再逐層分解,使其分為多個(gè)大小適當(dāng),功能明確,具有一定獨(dú)立性且容易實(shí)現(xiàn)的模塊,從而把一個(gè)復(fù)雜的系統(tǒng)設(shè)計(jì)轉(zhuǎn)變成為多個(gè)簡單模塊的設(shè)計(jì).4.1系統(tǒng)結(jié)構(gòu)分析根據(jù)業(yè)務(wù)流程,需要將網(wǎng)站劃分為前臺(tái)、后臺(tái)和數(shù)據(jù)庫。前臺(tái)中,客戶在登錄網(wǎng)站主頁后即可鏈接查看網(wǎng)站等信息,還可以做訂購商品等活動(dòng)。為了方便客戶搜索感興趣的商品信息,將商品搜索嵌入到主頁面中。數(shù)據(jù)庫將要作為網(wǎng)站后臺(tái)重要的組成部分,管理員的主要操作幾乎圍繞數(shù)據(jù)庫,最后將更新的數(shù)據(jù)顯示給前臺(tái).前臺(tái)是一個(gè)比較大的功能群,它所包含的信息不僅數(shù)量多,而且種類不同.將它設(shè)計(jì)成比較優(yōu)化的結(jié)構(gòu)形式能組織好網(wǎng)站的信息內(nèi)容并將其歸類,方便用戶獲得所需要的信息.其中每一部分都以盡量少內(nèi)容顯示,以免瀏覽者看的眼花繚亂而失去耐心。除了這些作用外,設(shè)計(jì)好前臺(tái)的結(jié)構(gòu)形式,也是為后面程序的編寫做出了框架.在為系統(tǒng)劃分功能模塊,并以模塊為單位來實(shí)現(xiàn)設(shè)計(jì)時(shí)也是以這個(gè)結(jié)構(gòu)為基礎(chǔ)的。系統(tǒng)的后臺(tái)要對(duì)整個(gè)網(wǎng)站的信息和數(shù)據(jù)進(jìn)行維護(hù)。網(wǎng)站前臺(tái)所顯示的信息在后臺(tái)都應(yīng)該有對(duì)應(yīng)的維護(hù)。這樣,除了設(shè)計(jì)后臺(tái)的各個(gè)管理界面外,為了方便管理員的工作,可以將各個(gè)管理的界面結(jié)合到一個(gè)頁面中.因此,各個(gè)管理的界面會(huì)作為主管理的分支。在設(shè)計(jì)好網(wǎng)站前臺(tái)和后臺(tái)的結(jié)構(gòu)后,就將數(shù)據(jù)庫加入到結(jié)構(gòu)中。后臺(tái)將更新的數(shù)據(jù)寫入到數(shù)據(jù)庫中,前臺(tái)再將數(shù)據(jù)庫中的信息取出來并顯示。4.2功能模塊設(shè)計(jì)層次模塊結(jié)構(gòu)是將系統(tǒng)劃分為若干子系統(tǒng),子系統(tǒng)下在劃分為若干的模塊。而模塊是指具備輸入輸出、邏輯功能、運(yùn)行程序和內(nèi)部數(shù)據(jù)四種屬性的一組程序。在結(jié)構(gòu)化設(shè)計(jì)中,模塊一般都是按功能劃分的,通常稱為功能模塊。合理的功能模塊的劃分能夠極大限度地減少重復(fù)勞動(dòng)、提高開發(fā)工作的效率并增大系統(tǒng)的可維護(hù)性.以前面的系統(tǒng)分析為基礎(chǔ),將系統(tǒng)分為兩大模塊,即前臺(tái)模塊和后臺(tái)模塊。網(wǎng)上購物系統(tǒng)的功能結(jié)構(gòu)如圖4。1所示。網(wǎng)上購物平臺(tái)網(wǎng)上購物平臺(tái)index.jsp。商品修改用戶管理管理者進(jìn)入新聞管理用戶注冊(cè)商品管理商品添加會(huì)員管理新聞修改新聞添加商品名稱用戶修改會(huì)員刪除商品搜索網(wǎng)站布局圖4.1網(wǎng)上購物系統(tǒng)的功能結(jié)構(gòu)4.2.1前臺(tái)模塊的功能模塊設(shè)計(jì)前臺(tái)模塊主要為登陸網(wǎng)站的用戶提供商品和服務(wù)的信息,填寫并提交訂單的服務(wù).這樣,將前臺(tái)模塊再細(xì)分為用戶管理模塊、商品查詢模塊、購物車模塊、修改個(gè)人資料模塊。顧名思義,這些模塊的名稱基本概況了它們的功能。下面詳細(xì)說明一下這些功能模塊的設(shè)計(jì):(1)用戶管理模塊:為了方便于網(wǎng)站的管理,必須由一套完整的用戶管理體系.該網(wǎng)站用戶管理模塊主要實(shí)現(xiàn)用戶的注冊(cè)、登陸、修改密碼等功能。(2)購物車模塊:在超市購物,可以根據(jù)自己的需要將很多商品挑選至購物車或購物籃中,然后到收銀臺(tái)結(jié)賬。而在網(wǎng)上虛擬的商城中,當(dāng)然沒有辦法使用真正的購物工具,因此,通常都會(huì)采用一種被稱為“購物車"的技術(shù)來模擬現(xiàn)實(shí)生活。在網(wǎng)上商城中,所選商品須通過購物車進(jìn)行暫存,然后生成訂單.這種技術(shù)使用起來十分方便,不但可以隨時(shí)添加、查看、修改、清空購物車中的內(nèi)容,還可以隨時(shí)去收銀臺(tái)結(jié)賬。(3)商品搜索模塊:用戶根據(jù)商品的名稱可以搜索到所需要的商品信息。(4)個(gè)人資料管理模塊:用戶資料修改是為更改個(gè)人信息所提供的窗口,為了保護(hù)用戶信息不受非法侵入,用戶只有登錄后才有權(quán)限修改自己的個(gè)人資料.這樣,子模塊各自的內(nèi)容基本設(shè)計(jì)好。下面可以設(shè)計(jì)如何將這些模塊組織在一起,構(gòu)成一個(gè)結(jié)構(gòu)比較合理的前臺(tái)了.除了在主頁中建立面向其他模塊的鏈接外,也要在其他模塊中建立返回主頁面的鏈接。另外各個(gè)模塊間也應(yīng)該互相鏈接起來。4。2。2后臺(tái)模塊的功能模塊設(shè)計(jì)后臺(tái)管理模塊的功能是對(duì)站內(nèi)的資源進(jìn)行管理和維護(hù).以后臺(tái)的業(yè)務(wù)流程分析和前臺(tái)各個(gè)模塊的設(shè)計(jì)為基礎(chǔ),根據(jù)用戶的需求分析來確定后臺(tái)管理模塊應(yīng)具有的功能.后臺(tái)管理模塊的各個(gè)子功能模塊如下:(1)管理員身份驗(yàn)證模塊:為合法用戶提供一個(gè)后臺(tái)入口。該模塊的功能是對(duì)管理員身份進(jìn)行驗(yàn)證.用戶輸入登陸ID和密碼的有效性,如果通過驗(yàn)證則跳轉(zhuǎn)后臺(tái)主頁,否則提示錯(cuò)誤。(2)商品管理模塊:向商品表插入前臺(tái)首頁展示的商品信息,也就是添加商品信息的功能。(3)處理訂單模塊:網(wǎng)站管理者對(duì)用戶訂單的執(zhí)行和編輯狀態(tài)。(4)用戶信息管理模塊:查詢所有注冊(cè)用戶,對(duì)一些非法或失信用戶進(jìn)行刪除操作。(5)新聞管理模塊:新聞管理即對(duì)網(wǎng)站信息的管理,新聞管理是一個(gè)商務(wù)網(wǎng)站中不可缺少的組成部分,它可以增進(jìn)用戶與網(wǎng)站之間的交流。4。3數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫是數(shù)據(jù)庫應(yīng)用程序的重要組成部分。一個(gè)設(shè)計(jì)結(jié)構(gòu)合理的數(shù)據(jù)庫對(duì)于應(yīng)用程序的開發(fā)效率和程序的性能都是非常重要的。數(shù)據(jù)庫的設(shè)計(jì)過程大致如下:(1)根據(jù)用戶需求,確定數(shù)據(jù)庫要保存的信息。對(duì)用戶需求進(jìn)行分析時(shí)數(shù)據(jù)庫設(shè)計(jì)的第一個(gè)階段。對(duì)用戶需求進(jìn)行分析是數(shù)據(jù)庫設(shè)計(jì)的第一個(gè)階段.(2)設(shè)計(jì)數(shù)據(jù)庫的概念模型。概念模型是按用戶的觀點(diǎn)來對(duì)數(shù)據(jù)建模,使用與進(jìn)行信息世界建模的工具。它對(duì)整個(gè)數(shù)據(jù)庫的設(shè)計(jì)具有深刻的影響。(3)邏輯結(jié)構(gòu)設(shè)計(jì)。邏輯結(jié)構(gòu)是把概念結(jié)構(gòu)轉(zhuǎn)化為與所采用的數(shù)據(jù)庫管理系統(tǒng)所支持系統(tǒng)的數(shù)據(jù)模型相符合的過程。(4)數(shù)據(jù)庫的實(shí)施與維護(hù)。在設(shè)計(jì)好前臺(tái)與后天的功能模塊后,就開始進(jìn)行數(shù)據(jù)庫的設(shè)計(jì)了。根據(jù)網(wǎng)站系統(tǒng)的分析,數(shù)據(jù)庫是整個(gè)網(wǎng)站的核心。從前臺(tái)顯示的信息到后臺(tái)操作的對(duì)象,都是圍繞數(shù)據(jù)庫展開的.4.3。1E—R圖E—R圖是一種概念模型.概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。概念模型用于信息世界的建模,是顯示世界到信息世界的第一層抽象,使數(shù)據(jù)庫設(shè)計(jì)人員進(jìn)行設(shè)計(jì)的有利工具,也是數(shù)據(jù)庫設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言,因此概念模型一方面應(yīng)該具有較強(qiáng)的語義表達(dá)能力,能夠方便直接的表達(dá)受眾的各種語義知識(shí),另一方面它還應(yīng)該簡單、清晰并且易于用戶理解。以下是各個(gè)數(shù)據(jù)表的實(shí)體圖。(1)商品信息表hw的實(shí)體圖商品編號(hào)商品名稱圖片路徑商品類別編商品編號(hào)商品名稱圖片路徑商品類別編號(hào)商品描述商品數(shù)量會(huì)員價(jià)格正常價(jià)格是否推薦發(fā)布時(shí)間是否特價(jià)商品信息會(huì)員信息表member的實(shí)體圖會(huì)員信息會(huì)員信息會(huì)員密碼會(huì)員電話會(huì)員編號(hào)會(huì)員帳號(hào)注冊(cè)時(shí)間會(huì)員地址圖4.3用戶信息表tb_User的實(shí)體圖訂單表saleorder的實(shí)體圖訂單信息訂單信息訂單編號(hào)購物時(shí)間箱是否已經(jīng)處理稱用戶編號(hào)用戶地址圖4。4訂單表saleorder的實(shí)體圖

管理員表admin的實(shí)體圖管理員信息管理員信息編號(hào)管理員名稱稱箱密碼用戶地址圖4。5管理員admin的實(shí)體圖(5)新聞列表news的實(shí)體圖新聞編號(hào)新聞標(biāo)題新聞?lì)悇e編號(hào)新聞內(nèi)容新聞列表圖4。新聞編號(hào)新聞標(biāo)題新聞?lì)悇e編號(hào)新聞內(nèi)容新聞列表(6)新聞?lì)悇e列表news_category的實(shí)體圖類別名稱類別名稱類別編號(hào)類別描述商品信息父節(jié)點(diǎn)id類別排序等級(jí)圖4。7新聞?lì)悇e列表news_category的實(shí)體圖(7)訂單產(chǎn)品表saleproduct的實(shí)體圖訂單產(chǎn)品信息訂單產(chǎn)品信息編號(hào)產(chǎn)品編號(hào)箱產(chǎn)品數(shù)量所屬訂單編號(hào)產(chǎn)品價(jià)格圖4.8訂單產(chǎn)品表的實(shí)體圖(8)總體E-R圖

生成生成訂單修改會(huì)員信息111nn1會(huì)員購買商品圖4。9總體E—R圖4。3。2基本表設(shè)計(jì)表的設(shè)計(jì)是這次設(shè)計(jì)的一個(gè)核心內(nèi)容.根據(jù)前面對(duì)網(wǎng)站前臺(tái)與后臺(tái)功能模塊的分析和對(duì)數(shù)據(jù)庫中實(shí)體關(guān)系的設(shè)計(jì),可以看到網(wǎng)站中所用到的數(shù)據(jù)信息基本包括:會(huì)員信息表、訂單表、商品信息表、新聞列表、新聞?lì)悇e列表、管理員表和訂單產(chǎn)品表.下面是為數(shù)據(jù)庫設(shè)計(jì)的表:表4.1商品信息表hw字段字段名類型寬度小數(shù)位索引可否為空Id商品編號(hào)Int是否Pname商品名稱Varchar255否Descr商品描述Varchar255是Normalprice正常價(jià)格Money是Memberprice會(huì)員價(jià)格Money是Count商品數(shù)量Long是Categoryid商品類別編號(hào)Int是Spcialprice是否是特價(jià)產(chǎn)品Int是Commend是否是推薦產(chǎn)品Int是Img圖片路徑Text是Pdate發(fā)布日期Date是對(duì)于商品信息表,因?yàn)榻?jīng)驗(yàn)不足,我將其關(guān)鍵字段id商品編號(hào)采用的是數(shù)據(jù)庫中的自動(dòng)編號(hào),雖然也確定了商品信息的唯一性,但不具備直觀的特點(diǎn),在實(shí)際應(yīng)用中最好是將其設(shè)置一個(gè)命名規(guī)則,管理人員在添加商品的時(shí)候能夠自動(dòng)產(chǎn)生一個(gè)有一定規(guī)則和一定意義的命名規(guī)則,方便管理人員對(duì)其進(jìn)行管理和維護(hù),例如對(duì)于手機(jī)類商品可將其編號(hào)設(shè)置為mobile+型號(hào)+添加日期,這樣更容易對(duì)商品進(jìn)行管理。Img字段代表圖片,但在這里存放的只是它的路徑所以應(yīng)該使用文本類型。表4.2會(huì)員信息表member字段字段名類型寬度小數(shù)位索引可否為空id會(huì)員編號(hào)自動(dòng)編號(hào)是是Username會(huì)員帳號(hào)Varchar50否Password會(huì)員密碼Varchar50否Addr會(huì)員地址Varchar255是Rdate會(huì)員添加日期文本型50是Phone會(huì)員電話Varchar40是對(duì)于會(huì)員信息表需要注意的是用戶密碼,由于數(shù)據(jù)庫本身不提供特殊字段的加密,用戶注冊(cè)以后注冊(cè)密碼是以明碼形式存放在數(shù)據(jù)庫中,這對(duì)系統(tǒng)來說是極不安全的,因此需要我們用一些特殊工具來對(duì)其進(jìn)行加密.表4。3訂單表saleorder字段字段名類型寬度小數(shù)位索引可否為空id訂單編號(hào)Int否odate購物時(shí)間Date是Status是否已經(jīng)處理Int是Userid用戶編號(hào)Int182是Addr用戶地址Varchar255是訂單表則是系統(tǒng)中與其他幾個(gè)表關(guān)系最多的一個(gè)表了,它包含了商品表,會(huì)員表中的幾個(gè)重要字段,是我們進(jìn)行最后購物統(tǒng)計(jì)的主要依據(jù).表4。4管理員表admin字段字段名類型寬度小數(shù)位索引可否為空id編號(hào)自動(dòng)編號(hào)是Admin_name管理員名稱nVarchar50是Password密碼Nvchar50否Level級(jí)別Int是該表和會(huì)員表一樣存在字段的命名規(guī)則的要求,出于安全考慮對(duì)于管理員帳號(hào)發(fā)放應(yīng)該謹(jǐn)慎,管理人員數(shù)量一定要控制,越少越安全,在實(shí)際應(yīng)用中,我們還要對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行加密,以防止系統(tǒng)重要數(shù)據(jù)泄漏。表4.5新聞列表news字段字段名類型寬度小數(shù)位索引可否為空id新聞編號(hào)自動(dòng)編號(hào)否title新聞標(biāo)題Varchar50是content新聞內(nèi)容Text是Categoryid新聞?lì)悇e編號(hào)Date是存儲(chǔ)網(wǎng)站新聞級(jí)別信息,和新聞表關(guān)聯(lián)和產(chǎn)品類別結(jié)構(gòu)相同。表4。6新聞?lì)悇e列表news_category字段字段名類型寬度小數(shù)位索引可否為空id類別編號(hào)自動(dòng)編號(hào)是cname類別名稱Varchar50是Cdescr類別描述text否Pid父節(jié)點(diǎn)idInt是Grade等級(jí)Int是Cno類別排序Int是存儲(chǔ)網(wǎng)站新聞信息,與其他表沒有關(guān)聯(lián)。表4。7訂單產(chǎn)品表saleproduct字段字段名類型寬度小數(shù)位索引可否為空id編號(hào)自動(dòng)編號(hào)是Productid產(chǎn)品編號(hào)Int是Uniprice產(chǎn)品價(jià)格Money否Pcount產(chǎn)品數(shù)量Int是Orderid所屬訂單編號(hào)Int是

第五章系統(tǒng)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的根本目標(biāo)是確定應(yīng)該具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語言書寫的程序。在項(xiàng)目開發(fā)時(shí),使用一種穩(wěn)定成熟的框架是項(xiàng)目成功的重要因素。MVC的基本思想就是邏輯與顯示的分離,Model是應(yīng)用程序的主體部分,它表示業(yè)務(wù)數(shù)據(jù)或者業(yè)務(wù)邏輯,View是應(yīng)用程序中與用戶界面相關(guān)的部分,也就是用戶看到并與之交互的界面,Controller根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)的顯示和更新Model對(duì)象的狀態(tài),MVC不僅實(shí)現(xiàn)了功能模塊和顯示模塊的分離,同時(shí)也提供了應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可重用性。模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。5.1系統(tǒng)主界面設(shè)計(jì)本網(wǎng)站的主界面整體結(jié)構(gòu)還算簡潔、清晰,上面部分為商品搜索條,,左面部分為商品類別框,右面部分為資訊區(qū),中間部分為商品展示區(qū)。本網(wǎng)上購物系統(tǒng)主界面如圖5。1所示。圖5。1系統(tǒng)登陸界面5。2系統(tǒng)前臺(tái)各主要模塊的功能設(shè)計(jì)5。2.1用戶登陸模塊的實(shí)現(xiàn)用戶登陸模塊是防止非法用戶登陸的第一道防線,通過它可以保護(hù)后臺(tái)數(shù)據(jù)庫的安全性,當(dāng)用戶要進(jìn)行定購時(shí),首先要進(jìn)入的就是身份驗(yàn)證界面,只有在密碼正確的情況下才能進(jìn)行以后的購物,如果輸入的密碼不正確,則不能進(jìn)行定購.如果用戶以瀏覽者的身份進(jìn)入網(wǎng)站,則只能進(jìn)行一般的商品瀏覽和搜索,而不能進(jìn)行選購,在點(diǎn)擊添加購物車后,系統(tǒng)會(huì)判斷該用戶是否是登陸用戶,如果不是則彈出提示頁面,提示用戶必須先登陸才能定購商品,如果是第一次登陸,必須先注冊(cè).登陸的具體實(shí)現(xiàn)要通過一個(gè)全程變量,即Session變量來實(shí)現(xiàn)用戶登錄的界面UserLogin。jsp,從shopuser表查得用戶提交的帳戶名和密碼正確后,用一個(gè)全局變量,即Session變量保存這一消息(該變量名稱為Session(“user”))。具體的判斷過程為:若session中user為空即session.getAttribute(”user”)==null,表明沒有經(jīng)過登陸與否的驗(yàn)證,則立即跳轉(zhuǎn)到UserLogin.jsp,請(qǐng)用戶登錄;并將用戶登陸的帳號(hào)和密碼通過通過UserService的check方法,先判斷是否存在這個(gè)用戶如果不存在這個(gè)用戶則拋出自己定義的一個(gè)異常UserNotFoundException,如果存在這個(gè)用戶再和輸入的密碼做對(duì)比,如果密碼不正確則拋出自己定義的PasswordWrongException異常。對(duì)應(yīng)Action中分別截獲這兩種不同的異常來判斷對(duì)應(yīng)的錯(cuò)誤信息.具體代碼實(shí)現(xiàn)如下:Stringusername=request。getParameter(”username");Stringpassword=request。getParameter(”password”);try{ Useru=User.check(username,password); session。setAttribute("user”,u);}catch(UserNotFoundExceptione){ out。println(e。getMessage()); return;}catch(PasswordNotCorrectExceptione){ out.println(e.getMessage()); return;}5。2。2新會(huì)員注冊(cè)模塊的實(shí)現(xiàn)如果用戶還不是會(huì)員則提示用戶進(jìn)行注冊(cè),用戶提交信息之后,系統(tǒng)開始判斷用戶的注冊(cè)信息是否有效,首先是用戶名是否為空,(該處存在用戶名命名規(guī)則的問題,后面問題中會(huì)詳細(xì)解決)用戶輸入的兩次密碼是否一致,然后依次往后判斷用戶所填寫的各項(xiàng)信息是否符合要求,直到所有信息均正確無誤,系統(tǒng)將該用戶注冊(cè)信息寫入會(huì)員表即member并提示用戶注冊(cè)成功,用戶登陸后,就可以進(jìn)行有效的購物了。注冊(cè)頁面的效果圖如下:圖5。2注冊(cè)頁面界面系統(tǒng)對(duì)用戶的注冊(cè)信息的驗(yàn)證實(shí)現(xiàn)如下:用戶輸入的各項(xiàng)信息分別對(duì)應(yīng)字段username,password,phone,addr,再添加用戶之前要有一個(gè)前臺(tái)校驗(yàn):functioncheck{varusername=document.register。username.value;varpassword=document。register。password。value;varpassword2=document.register.password2。value;varaddr=document.register.addr.value;if(username。length==0){alert(“用戶名不能為空”);ruturnfalse;}elseif(username。length<6){ Document。register。username.value=’'; alert(“用戶名長度不能小于6位”); returnfalse;}elseif(password。length<6){ alert(“用戶名長度不能小于6位"); returnfalse;}elseif(password!=password2){ alert(“兩次輸入的密碼不一樣,請(qǐng)返回重新輸入!”); ruturnfalse;}elseif(addr.length==0){ alert(“地址不能為空”); returnfalse;}returntrue;}5.2。3購物車模塊的實(shí)現(xiàn)當(dāng)用戶登陸成功以后,如果找到了希望定購的物品,在點(diǎn)擊物品下方的定購以后,系統(tǒng)會(huì)彈出一個(gè)新的頁面,顯示該物品已經(jīng)添加進(jìn)購物車,然后用戶需要選擇定購的數(shù)量.頁面效果如下:圖5。3購物車界面在點(diǎn)擊確認(rèn)以后,該物品信息被后臺(tái)添加到購物車中,如果用戶需要繼續(xù)購物,可以繼續(xù)選擇,不斷添加,買的物品列表,及合計(jì)價(jià)格.購物車類:publicclassCart{ List〈CartItem〉items=newArrayList〈CartItem>(); publicList<CartItem>getItems(){ returnitems; } publicvoidsetItems(List〈CartItem〉items){ this。items=items; } publicvoidadd(CartItemci){ for(Iterator〈CartItem〉iter=items.iterator();iter。hasNext();){ CartItemitem=iter。next(); if(item。getProduct()。getId()==ci。getProduct()。getId()){ item。setCount(item。getCount()+1); return; } } items。add(ci); } publicdoublegetTotalMemberPrice(){ doubled=0。0; for(Iterator〈CartItem>it=items。iterator();it。hasNext();){ CartItemcurrent=it。next(); d+=current.getProduct()。getMemberPrice()*current。getCount(); } returnd; } publicvoiddeleteItemById(intproductId){ for(Iterator〈CartItem〉iter=items.iterator();iter.hasNext();){ CartItemitem=iter.next(); if(item.getProduct()。getId()==productId){ iter.remove(); } } }}CartItem是購物車?yán)锏拿恳粋€(gè)購物項(xiàng)。里面含有商品的信息及其數(shù)量。購物車類的add方法是添加一類商品的信息,getTotalMemberPrice()方法算取所有商品的總價(jià)格.deleteItemById()從購物車中刪除某一類商品。當(dāng)用戶選購?fù)晁械纳唐窌r(shí),可以點(diǎn)擊下單就會(huì)顯示所訂購的物品的詳細(xì)信息如圖:圖5.4收銀臺(tái)結(jié)帳界面用戶再一次確認(rèn)后,系統(tǒng)會(huì)顯示購物成功并返回給用戶一個(gè)定購單號(hào)。該頁面也就是將用戶提交的訂單信息返回,并產(chǎn)生了一個(gè)唯一訂單號(hào),以方便用戶查詢.訂貨的具體實(shí)現(xiàn)需要填入兩張表:一張是訂單表saleorder另一張是訂單貨物表saleitem表。其中訂單貨物加入的時(shí)用到批處理加入:具體實(shí)現(xiàn)如下:publicintadd(SalesOrderso){ returndao。add(so); } publicintuserBuy(Cartc,Useru){ returnu.buy(c); } publicintgetOrders(List〈SalesOrder〉list,intpageNo,intpageSize){ returndao。getOrders(list,pageNo,pageSize); } publicSalesOrderloadById(intid){ returndao。loadById(id); } publicList〈SalesItem〉getSalesItems(SalesOrderorder){ returndao。getSalesItems(order。getId()); } publicvoidupdateStatus(SalesOrderorder){ dao.updateStatus(order); }}5。2。4商品搜索模塊的實(shí)現(xiàn)網(wǎng)上購物作為一個(gè)在網(wǎng)上展示自己商品的銷售系統(tǒng),如何能讓用戶以最快的速度找到自己希望買到的物品,也是需要非常重視的一個(gè)問題,此時(shí)搜索引擎也就必不可少了.本購物系統(tǒng)也做了一個(gè)小模塊,以供用戶進(jìn)行一些模糊查找,用戶不必輸入全部名稱,只需輸入一些關(guān)鍵詞,系統(tǒng)就可以將符合該查詢條件的所有商品信息以網(wǎng)頁形式返回給用戶.該搜索功能中實(shí)現(xiàn)的關(guān)鍵代碼為:publicintfind(List<Product〉products,intpageNo,intpageSize,Stringkeyword){ StringqueryStr=”wherelike'%"+keyword+”%’orp。descrlike'%"+keyword+”%'"; returndao.find(products,pageNo,pageSize,queryStr); }5。3后臺(tái)管理模塊的實(shí)現(xiàn)網(wǎng)上購物系統(tǒng)除了能夠讓用戶實(shí)現(xiàn)前臺(tái)的瀏覽和購物等操作之外,還必須能夠使管理人員能夠?qū)ο到y(tǒng)的各種信息進(jìn)行維護(hù),比如商品的增加、刪除、修改,會(huì)員的審查,網(wǎng)站新聞的更新等等.管理功能是網(wǎng)上購物系統(tǒng)相當(dāng)重要的一部分功能。管理員可以通過主頁面的“管理進(jìn)入”進(jìn)入系統(tǒng)后臺(tái)進(jìn)行維護(hù),點(diǎn)擊之后,首要的就是進(jìn)行身份驗(yàn)證,輸入正確的帳號(hào),密碼之后,方能進(jìn)入。由于涉及到交易,出于安全性考慮,管理員帳號(hào)應(yīng)盡量少分配,密碼也要盡量復(fù)雜,經(jīng)常更換.進(jìn)入之后系統(tǒng)管理的主頁面采用了框架結(jié)構(gòu),左邊是一個(gè)樹型菜單,右邊顯示具體信息。管理的主要功能有商品信息的更新,會(huì)員信息維護(hù),產(chǎn)品種類,新聞模塊,訂單管理設(shè)置等五大模塊,商品信息管理,主要就是添加新的商品,刪除和修改已經(jīng)添加的商品.如下圖所示:圖5.7商品管理界面這一部分的實(shí)現(xiàn)也沒有新的方法,只是從添加商品的頁面獲取數(shù)據(jù)然后實(shí)例化一個(gè)product對(duì)象,利用其成員函數(shù)進(jìn)行初始化,最后寫入數(shù)據(jù)庫中。Stringaction=request。getParameter(”action");if(action!=null&&action.trim().equals(”add”)){ Stringname=request.getParameter(”name"); doublenormalPrice=Double.parseDouble(request。getParameter("normalPrice”)); doublememberPrice=Double。parseDouble(request.getParameter("memberPrice")); Stringdescr=request。getParameter("descr"); Productp=newProduct(); p。setName(name); p。setNormalPrice(normalPrice); p。setMemberPrice(memberPrice); p.setDescr(descr); p。setCategoryId(categoryId); p。setPdate(newDate()); ProductMgr.getInstance()。add(p);修改則使用update語句。會(huì)員信息管理,則主要是對(duì)一些惡意注冊(cè)用戶進(jìn)行刪除,該功能設(shè)計(jì)存在一定問題,具體在后面會(huì)有一定說明。圖5。8會(huì)員信息管理界面網(wǎng)站信息管理,進(jìn)行網(wǎng)上新聞的發(fā)布,修改刪除,以及系統(tǒng)公告等信息的設(shè)置,這些功能雖然無關(guān)緊要,但在實(shí)際中卻能方便用戶,提高網(wǎng)站效益.圖5。9新聞信息管理界面在完成系統(tǒng)的更新之后,作為管理人員,應(yīng)該及時(shí)注銷自己的帳戶,樹型菜單的上方提供了注銷登陸的選項(xiàng),點(diǎn)擊之后,注銷用戶,并返回到前臺(tái)頁面,防止他人惡意修改網(wǎng)站信息,造成不必要的損失。以上兩個(gè)部分都是比較簡單的功能實(shí)現(xiàn),具體實(shí)現(xiàn)過程與前幾個(gè)類似。

第六章系統(tǒng)測(cè)試及性能分析經(jīng)過需求分析、設(shè)計(jì)和編碼等階段的開發(fā)后,得到了源程序,開始進(jìn)入到軟件測(cè)試階段.然而,在測(cè)試之前的各階段中都可能在軟件產(chǎn)品中遺留下許多錯(cuò)誤和缺陷,如果不及時(shí)找出這些錯(cuò)誤和缺陷,并將其改正,這個(gè)軟件產(chǎn)品就不能正常使用,甚至?xí)?dǎo)致巨大的損失。目前,程序的正確性證明尚未得到根本的解決,因此軟件測(cè)試仍是發(fā)現(xiàn)軟件中錯(cuò)誤和缺陷的主要手段。6.1測(cè)試的基本概念(1)測(cè)試的目的軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)軟件產(chǎn)品(主要是指程序)中的錯(cuò)誤和缺陷.明確測(cè)試的目的是一件非常重要的事,因?yàn)樵诂F(xiàn)實(shí)世界中對(duì)測(cè)試工作存在著許多模糊或者錯(cuò)誤的看法,這些看法嚴(yán)重影響著測(cè)試工作的順利進(jìn)行。有人認(rèn)為測(cè)試是為了證明程序是正確的,也就是說程序不再有錯(cuò)誤,事實(shí)證明這是不現(xiàn)實(shí)的。因?yàn)橐ㄟ^測(cè)試來發(fā)現(xiàn)程序中的所有錯(cuò)誤就要窮舉所有可能的輸入數(shù)據(jù),檢查它們是否產(chǎn)生正確的結(jié)果.例如,一個(gè)需要3個(gè)16位字長的整型輸入數(shù)據(jù)的程序,輸入數(shù)據(jù)的所有組合情況大約有3×1014種,若每組數(shù)據(jù)的測(cè)試時(shí)間為1ms,那么即使一年365天,每天24小時(shí)地測(cè)試,也大約需要1萬年的時(shí)間。(2)測(cè)試用例要進(jìn)行測(cè)試,除了要有測(cè)試數(shù)據(jù)(或稱輸入數(shù)據(jù))外,還應(yīng)同時(shí)給出該組測(cè)試數(shù)據(jù)應(yīng)該得到怎樣的輸出結(jié)果,我們稱它為預(yù)期結(jié)果.在測(cè)試時(shí)將實(shí)際的輸出結(jié)果與預(yù)期結(jié)果比較,若不同則表示發(fā)現(xiàn)了錯(cuò)誤。因此測(cè)試用例是由測(cè)試數(shù)據(jù)和預(yù)期結(jié)果構(gòu)成的。為了發(fā)現(xiàn)程序中的錯(cuò)誤,應(yīng)竭力設(shè)計(jì)能暴露錯(cuò)誤的測(cè)試.一個(gè)好的測(cè)試用例是極有可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試用例。一次成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。(3)白盒測(cè)試和黑盒測(cè)試測(cè)試的關(guān)鍵是測(cè)試用例,其方法可分成兩類:白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試是把程序看成裝在一只透明的白盒子里,測(cè)試者完全了解程序的結(jié)構(gòu)和處理過程。它根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測(cè)試用例,檢查程序中的邏輯通路是否都按預(yù)定的要求正確地工作.黑盒測(cè)試是把程序看成一只黑盒子,測(cè)試者完全不了解(或不考慮)程序的結(jié)構(gòu)和處理過程。它根據(jù)規(guī)格說明書規(guī)定的功能來設(shè)計(jì)測(cè)試用例,檢查程序的功能是否符合規(guī)格說明的要求。6。2測(cè)試步驟軟件測(cè)試的主要步驟有單元測(cè)試、集成測(cè)試和確認(rèn)測(cè)試。(1)單元測(cè)試(UnitTesting)單元測(cè)試也稱模塊測(cè)試。通常單元測(cè)試可放在編碼階段,程序員在編寫好一個(gè)模塊后,總會(huì)對(duì)自己編寫的模塊進(jìn)行測(cè)試,檢查它是否實(shí)現(xiàn)了詳細(xì)設(shè)計(jì)說明書中規(guī)定的模塊功能和算法。單元測(cè)試主要發(fā)現(xiàn)編碼和詳細(xì)設(shè)計(jì)中產(chǎn)生的錯(cuò)誤,通常采用白盒測(cè)試。(2)集成測(cè)試(IntegrationTesting)集成測(cè)試也稱組裝測(cè)試,它是對(duì)由各模塊組裝而成的程序進(jìn)行測(cè)試,主要檢查模塊間的接口和通信。集成測(cè)試主要發(fā)現(xiàn)設(shè)計(jì)階段產(chǎn)生的錯(cuò)誤,通常采用黑盒測(cè)試。(3)確認(rèn)測(cè)試(ValidationTesting)確認(rèn)測(cè)試的任務(wù)是檢查軟件的功能、性能及其他特征與用戶的需求一致,它是以需求規(guī)格說明書(即需求規(guī)約)作為依據(jù)的測(cè)試.確認(rèn)測(cè)試通常采用黑盒測(cè)試。確認(rèn)測(cè)試產(chǎn)生測(cè)試程序是否滿足需求規(guī)格說明書所列的各項(xiàng)要求,然后要進(jìn)行軟件配置復(fù)查,特別是文檔是否齊全,各方面的質(zhì)量是否符合要求等.6。3系統(tǒng)測(cè)試軟件測(cè)試方法從測(cè)試人員角度看,可分為人工測(cè)試和機(jī)器測(cè)試。人工測(cè)試又稱為代碼復(fù)審.主要有三種方法:個(gè)人復(fù)查、走查、會(huì)審。機(jī)器測(cè)試分為黑盒測(cè)試(又稱功能測(cè)試)和白盒測(cè)試(又稱結(jié)構(gòu)測(cè)試)兩種。下面對(duì)本網(wǎng)上購物系統(tǒng)進(jìn)行測(cè)試,以檢查系統(tǒng)能否正確完成各種操作,是否能夠?qū)崿F(xiàn)預(yù)期具有的功能。(1)系統(tǒng)后臺(tái)登陸模塊此模塊是進(jìn)入本系統(tǒng)操作的一個(gè)入口,用于維護(hù)系統(tǒng)的安全.只有將正確的用戶名和密碼輸入系統(tǒng),才能繼續(xù)進(jìn)行操作現(xiàn)在輸入用戶名和錯(cuò)誤的密碼,測(cè)試是否能夠登錄。測(cè)試結(jié)果是系統(tǒng)提示“用戶名與密碼不相符!",如圖6—1所示。圖6.1提示用戶名或密碼錯(cuò)誤消息窗口(2)用戶購物模塊用戶瀏覽商品,點(diǎn)擊購買商品按鈕,系統(tǒng)檢查該用戶是否已登陸,如果沒登陸給出提示信息,用戶進(jìn)入購物車頁面后,可修改商品數(shù)量,對(duì)于非數(shù)字的將不能輸入,在用戶下單界面,對(duì)各個(gè)表單進(jìn)行了驗(yàn)證,不符合要求的將給予提示信息,如圖6。3所示。圖6。2用戶購物測(cè)試(3)購物車模塊經(jīng)過上面部分的分析,我們可以得知,購物車模塊是我們需要特別注意的地方,因?yàn)樗婕暗搅宋覀償?shù)據(jù)庫中的大部分?jǐn)?shù)據(jù),并且是進(jìn)行網(wǎng)上交易的最關(guān)鍵部分,絕對(duì)不能出現(xiàn)任何的差錯(cuò),下面我們就針對(duì)這一模塊進(jìn)行用例測(cè)試:我們以用戶12的身份登入系統(tǒng),用戶名是:12,密碼是:12然后點(diǎn)擊定購商品:諾基亞6100,單價(jià)為1222元彈出購物車清單:選擇商品數(shù)量3,確認(rèn)。如圖6.3所示。圖6.3物車模塊測(cè)試出現(xiàn)清單:顯示商品名稱諾基亞6100,數(shù)量3,合計(jì)3666元。與我們估算的數(shù)據(jù)相符。在測(cè)試過程中,我經(jīng)過模塊測(cè)試和組裝測(cè)試,排除了系統(tǒng)的大部分錯(cuò)誤。當(dāng)然排除所有錯(cuò)誤是不太可能的,我想應(yīng)該還有些不易檢測(cè)到的錯(cuò)誤還沒有被發(fā)現(xiàn),需要在使用的過程中進(jìn)一步的完善,數(shù)據(jù)庫的加密是一個(gè)重要的概念,在實(shí)際的應(yīng)用過程中是一個(gè)尚待解決的問題,應(yīng)該做好數(shù)據(jù)庫的完善工作,特別是備份和安全工作;另一方面本系統(tǒng)沒有制作相關(guān)的打印,由于時(shí)間倉促難免有錯(cuò)誤和不完善的地方,希望老師能夠幫我指點(diǎn)和糾正。6.4系統(tǒng)的性能分析網(wǎng)上購物系統(tǒng)的性質(zhì)決定了它的服務(wù)端工作負(fù)荷比較大,這就要求服務(wù)端的硬件配置要盡可能的高,主要是內(nèi)存,而且操作系統(tǒng)也要盡可能的穩(wěn)定。基于java的系統(tǒng)一般來說網(wǎng)絡(luò)安全性比較好,但并不能說就一定安全,尤其在windows操作系統(tǒng)下,由于windows的漏洞比較多,系統(tǒng)裝配在windows下并不是最佳的選擇,如果有條件,建議可將系統(tǒng)裝配在unix操作系統(tǒng)下,提高系統(tǒng)的抗侵入能力.系統(tǒng)的核心數(shù)據(jù)庫,隨著數(shù)據(jù)的不斷增多,必然會(huì)產(chǎn)生冗余,導(dǎo)致系統(tǒng)運(yùn)行效率降低,建議管理員定期備份和清理冗余數(shù)據(jù),以保證系統(tǒng)的正常高效運(yùn)行。6。5系統(tǒng)中所存在的問題及解決方案6。5.1系統(tǒng)的整體設(shè)計(jì)和規(guī)劃中的問題由于是基于B/S的系統(tǒng),網(wǎng)頁在其中就承擔(dān)著非常大的工作,包括向服務(wù)端后臺(tái)寫入和修改數(shù)據(jù),以及服務(wù)端響應(yīng)客戶端的請(qǐng)求,向客戶端頁面返回?cái)?shù)據(jù),這些工作不可能只由幾個(gè)網(wǎng)頁來完成,但網(wǎng)頁數(shù)量一多又必然結(jié)構(gòu)混亂,造成開發(fā)過程難以控制。為解決這個(gè)問題,我采用了現(xiàn)代軟件開發(fā)過程的模塊化思想,先將系統(tǒng)功能進(jìn)行分解,大致可分為兩部分,即前臺(tái)和后臺(tái),前臺(tái)又包括主頁面及產(chǎn)品信息展示頁面、搜索功能頁面、新聞頁面、購物車及訂單頁面等幾個(gè)大的部分,后臺(tái)包括會(huì)員信息管理、商品信息管理、新聞信息管理、等幾個(gè)部分,各個(gè)部分又由許多小的頁面組成,這樣一來雖然網(wǎng)頁數(shù)量沒有減少,但結(jié)構(gòu)清晰了很多,在開發(fā)過程中可以逐步,逐個(gè)模塊的實(shí)現(xiàn),提高了開發(fā)效率。該系統(tǒng)的可維護(hù)性和可擴(kuò)展性不夠好.雖然系統(tǒng)基于MVC模式來分析設(shè)計(jì)。但是Service(業(yè)務(wù)邏輯類),DAO(持久化類)沒有基于接口編程,這樣如果以后如果有業(yè)務(wù)邏輯有什么需求變化需要深入代碼內(nèi)部直接修改,而且修改的復(fù)雜度加重了,也增加了許多重復(fù)性的勞動(dòng)。改系統(tǒng)控制器是主要是基于Servlet這樣每一個(gè)請(qǐng)求都要寫一個(gè)Servlet帶來了很多重復(fù)性勞動(dòng),而且也不利于以后代碼的維護(hù)。建議用Struts統(tǒng)一對(duì)所有請(qǐng)求,和響應(yīng)進(jìn)行統(tǒng)一管理.改系統(tǒng)的健壯性和安全性做的不夠好,想多個(gè)人對(duì)同一種物品進(jìn)行操作時(shí)沒有做數(shù)據(jù)同步操作.尤其是再對(duì)數(shù)據(jù)庫操作時(shí)建議用線程同步機(jī)制.對(duì)于有惡意行為的用戶記錄其ip地址然后禁止改用戶的所有權(quán)限.6.5.2開發(fā)功能模塊所遇到的難點(diǎn)因?yàn)槭堑谝淮巫鲞@么完整的系統(tǒng),所以碰到的問題也很多,除了一些基本的語法之外,感覺還是一些考慮問題的思維方式不太得當(dāng),比如我的這個(gè)網(wǎng)上購物系統(tǒng),我感覺難度比較大的還是購物車這個(gè)模塊比較的難設(shè)計(jì),因?yàn)檫^程比較復(fù)雜,他的一些邏輯處理就比較的難以用代碼實(shí)現(xiàn)。當(dāng)用戶完成選購,點(diǎn)擊去收銀臺(tái)結(jié)算時(shí),系統(tǒng)開始判斷商品庫中的這些商品數(shù)量是否大于用戶所選數(shù)量,如果大于提示用戶選擇一個(gè)小于該物品數(shù)量的數(shù)量,否則直接加入該購物車中這樣就基本上實(shí)現(xiàn)了購物車的功能.6。5。3系統(tǒng)中存在的問題及擬定的解決方法(1)第一個(gè)問題是用戶在注冊(cè)過程中,一些關(guān)鍵字段的命名規(guī)則存在著比較大的缺陷,比如用戶名的選擇上,一般的習(xí)慣是規(guī)定只能從a~z和數(shù)字0~9的隨機(jī)組合,不能有特殊字符,而且只能以字母開頭,不能以數(shù)字開頭,用戶名的長度也有限制,我在系統(tǒng)中只考慮了為空的情況,這是不夠的,我們可以在jsp頁面添加一段javascript驗(yàn)證代碼,主要是使用正則表達(dá)式對(duì)用戶名進(jìn)行限制,具體的代碼如下:if(form.username.value.length〈5||form。username.value.length〉20){alert("\您的用戶名長度應(yīng)該在5-20個(gè)字符之間!");長度判斷if(fIsNumber(form。username。value.charAt(0),"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”)!=1){alert(”\您的用戶名只能以字母開頭!");開頭判斷if(fIsNumber(form.username.value,特殊字符判斷”1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_”)!=1){alert("\您的用戶名應(yīng)該是數(shù)字、字母、下劃線,不允許出現(xiàn)漢字等其他字符!”);(2)第二個(gè)問題就是用戶登陸以后,如果需要修改資料,系統(tǒng)會(huì)先將數(shù)據(jù)庫中該用戶的所有信息以列表形式顯示出來,問題就是此時(shí)出現(xiàn)的用戶密碼信息是以明碼形式出現(xiàn)的,這對(duì)用戶來說就存在這很大的風(fēng)險(xiǎn),容易被他人看到,最好是以一些特殊符號(hào)來代替從而防止信息泄漏,在參考了其他網(wǎng)站的登陸模塊之后,我對(duì)代碼進(jìn)行了簡單修改,即可實(shí)現(xiàn),問題是由密碼的輸入框?qū)傩砸鸬?,原始的代碼為:<inputtype=”text"name=”user_pass”size=”36”class=inputvalue=”〈%=rs。getString(”user_pass”)%〉"〉此時(shí)密碼輸入框的屬性為text也就是文本框,它會(huì)直接將數(shù)據(jù)以明碼形式原封不動(dòng)的輸出,我們只需將其改為password屬性即可,它以默認(rèn)的黑色圓點(diǎn)代替真實(shí)數(shù)據(jù),這樣一個(gè)簡單的修改,就保證了該部分的安全性.(3)第三個(gè)問題是管理人員對(duì)用戶的管理部分,一個(gè)是用戶信息,尤其是密碼的加密,處于對(duì)系統(tǒng)安全性的考慮,數(shù)據(jù)庫中的用戶密碼應(yīng)該對(duì)于所有人都是加密狀態(tài),包括管理人員,但因本人水平有限對(duì)這個(gè)方面也不是很了解,所以準(zhǔn)備采用現(xiàn)有的加密軟件對(duì)相關(guān)數(shù)據(jù)進(jìn)行加密,如或“備注”,因此對(duì)于需要加密的關(guān)鍵字段,我們必須事先將其設(shè)置為文本類型。如果需要我們可以也可將整個(gè)數(shù)據(jù)庫進(jìn)行加密,增加系統(tǒng)的安全性.還有一個(gè)漏洞就是對(duì)會(huì)員的管理功能做的不夠,沒有考慮到用戶密碼丟失的問題,解決方法有兩個(gè),一個(gè)就是采取通常的做法,讓用戶在注冊(cè)過程中,設(shè)置一些問題,通過回答問題的方式來取回密碼,還有一個(gè)方法就是讓管理員通過后臺(tái),初始化用戶的密碼,然后用戶登陸對(duì)密碼進(jìn)行修改,這兩個(gè)方法都可以達(dá)到目的,具體的實(shí)現(xiàn)過程不再一一說明。對(duì)于網(wǎng)上購物系統(tǒng)來說安全性無疑是最重要的,層層驗(yàn)證雖然保證了系統(tǒng)的安全性,但對(duì)于用戶來說又是極不人性化的,如何在最簡單的驗(yàn)證流程下,保證用戶數(shù)據(jù)的安全,是在做網(wǎng)上購物系統(tǒng)中需要考慮的一個(gè)問題。

總結(jié)我的畢業(yè)設(shè)計(jì)論文具體論述了網(wǎng)上購物系統(tǒng)的主要功能及體系結(jié)構(gòu),重點(diǎn)討論了系統(tǒng)數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)庫的邏輯結(jié)構(gòu)分析、各模塊系統(tǒng)流程各功能模塊的關(guān)聯(lián)和響應(yīng),JSP與后臺(tái)數(shù)據(jù)庫鏈接等關(guān)鍵技術(shù)。這些技術(shù)的實(shí)現(xiàn),滿足了系統(tǒng)的需要,優(yōu)化了系統(tǒng)的性能。目前基于該模型的系統(tǒng)處于實(shí)驗(yàn)室階段,還存在許多問題與不足,如安全性能還不完善,缺少必要的數(shù)據(jù)加密系統(tǒng)等,,這些功能與技術(shù)還需要加以提高和實(shí)現(xiàn)。

網(wǎng)上購物系統(tǒng)無論是在開發(fā)過程中,還是建成后的日常維護(hù)過程中,都需要進(jìn)行嚴(yán)格的檢測(cè),以保證購物系統(tǒng)的服務(wù)質(zhì)量.隨著網(wǎng)上購物系統(tǒng)技術(shù)的日趨成熟、網(wǎng)上購物的優(yōu)勢(shì)日趨明顯,會(huì)有更多的人參與到網(wǎng)上購物的浪潮中來,人類最終將迎接電子商務(wù)時(shí)代的來臨。

參考文獻(xiàn)[1]張思亮,王曉峰,靳瑞勇。網(wǎng)上購物系統(tǒng)的研發(fā)[J]。商場(chǎng)現(xiàn)代化。2008(13):67-67。

[2]李順云,郭勁夫,楊月輝.網(wǎng)上購物系統(tǒng)的建設(shè)[J]。商場(chǎng)現(xiàn)代化.2008(12):145—146.

[3]陳巧蓉,陳剛,熊恩成。網(wǎng)上購物系統(tǒng)htm1版開發(fā)研究[J]。西南民族大學(xué)學(xué)報(bào):自然科學(xué)版。2007,33(4):961—963。

[4]袁愛香.基于MDA的網(wǎng)上購物系統(tǒng)代碼自動(dòng)生成開發(fā)研究[J]。北京聯(lián)合大學(xué)學(xué)報(bào):自然科學(xué)版.2008,22(1):41—45。

[5]李賢華.基于JSP技術(shù)的大型網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化。2008(8):82—84,89。

[6]何靜,譚新民?;贘2EE的網(wǎng)上購物系統(tǒng)的設(shè)計(jì)[J]。山西電子技術(shù).2008(1):66—68。

[7]張健。XML技術(shù)在網(wǎng)上購物系統(tǒng)中的應(yīng)用與安全分析[J]??萍紕?chuàng)新導(dǎo)報(bào)。2008(14):2-3。[8]武延軍,黃飛躍。精通JSP編程技術(shù)[M]。北京:人民郵電出版社,2001。8[9]柏亞軍。JSP編程基礎(chǔ)及應(yīng)用實(shí)例集錦[M]。北京:人民郵電出版社,2001。7[10]清宏計(jì)算機(jī)工作室.JSP編程技巧[M]。北京:機(jī)械工業(yè)出版社,2000。1[11]周影。網(wǎng)絡(luò)編程語言JSP實(shí)例教程[M]。北京:電子工業(yè)出版社,2003.6[12]陳海山.深入JavaServlet網(wǎng)絡(luò)編程[M]。北京:清華大學(xué)出版社,2002.2

致謝在這次畢業(yè)設(shè)計(jì)中,指導(dǎo)老師劉老師從課題的研究動(dòng)態(tài)、當(dāng)今優(yōu)秀的開發(fā)工具以及課題的功能需求到具體的實(shí)現(xiàn)上,都給予了我很大的幫助.同時(shí),我還從劉老師身上學(xué)到了很多東西,劉老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺,這對(duì)于我以后的學(xué)習(xí)和工作都將是一種先導(dǎo)作用.在這課題設(shè)計(jì)、論文完成之際,我衷心的向劉老師表示感謝。其次,我要特別感謝我的父母,感謝我的家人,

溫馨提示

  • 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)論