第一篇:網上購物系統測試報告[模版]
網上購物系統測試報告
M10 計算機科學與技術(專轉本)1021413002
一、題目描述
在互聯網日益流行的今天,網絡已經變的越來越重要,而在網絡這個大家庭里,用戶商城系統則是一個熱點。它具有信息時代的快捷方便等特征。事實上網上購物商城的出現,給消費者的消費觀念帶來了重要的變化。同時一個用戶商城系統是否具有良好的人機界面,其系統最大限度地實現易維護性和易操作性,運行穩定、安全可靠如何,都是用戶及運營者所關心的。本次測試就本用戶商城系統的用戶管理等安全性進行測試。
二、測試分析
本次我進行測試的是用戶商城系統的會員管理:用戶在前臺注冊成功后,管理員可以在該功能項中進行管理。主要是用戶在購買商品前需要先進行登錄,如果您還未注冊會員,需要先進行注冊。注冊成功后進行登錄,登錄成功后用戶即可購買商品。我所思考的主要是安全性方面,看是否有服務器注入漏洞,是否有Session對象的使用,以及其他的安全性問題。
三、測試設計 3.1測試總體結構
3.2白盒測試用例設計
1.用戶在前臺注冊,在對比數據庫中沒有相重或不合法的地方后,即提交注冊信息,將新用戶信息寫入數據庫。
注冊代碼:
public partial class Register : System.Web.UI.Page {
UserInfoClass uiObj = new UserInfoClass();
public static int G_Int_MemberID;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSave_Click(object sender, EventArgs e)
{
1.if(txtPostCode.Text.Trim()== “" && txtPassword.Text.Trim()==”“)
{
2.Response.Write(”“);
}
else
{
3.bool P_Bl_Sex;
4.if(Convert.ToInt32(ddlSex.SelectedItem.Value.Trim())==1)
{
5.P_Bl_Sex =true;
}
else
{
6.P_Bl_Sex =false;
}
7.G_Int_MemberID = uiObj.AddUInfo(txtName.Text.Trim(), P_Bl_Sex, txtPassword.Text.Trim(), txtTrueName.Text.Trim(), ”“, ”“, txtPhone.Text.Trim(), txtEmail.Text.Trim(), ddlCity.SelectedItem.Text.Trim(), txtAddress.Text.Trim(), txtPostCode.Text.Trim());
8.Session[”Username“] = ”“;
9.Session[”Username“] =txtName.Text.Trim();
10.Response.Write(”“);
}
} } 1)控制流圖
2)環路復雜度計算
由上圖可得,有四條不同的環路,所以環路復雜度為四。
3)基本路徑集設計
基本路徑為:
A.1、2、4、5、7、8、9、10 B.1、2、4、6、7、8、9、10 C.1、3、4、5、7、8、9、10 D.1、3、4、6、7、8、9、10 4)測試用例集設計
2.用戶登錄,用戶在注冊完后,獲取得屬于自己的合法身份,即可通過獲得的身份進行相應的權限操作。同時也看其是否使用了Session對象對網頁的安全性進行進一步鞏固,每個用戶的操作都有時效限制。
登錄代碼:
protected void btnLoad_Click(object sender, EventArgs e)
{
1.Session[”UID“] = null;
2.Session[”Username“] = null;
3.if(txtName.Text.Trim()== ”“ || txtPassword.Text.Trim()== ”“)
{
4.}
else
{
5.if(txtValid.Text.Trim()== lbValid.Text.Trim())
{
6.int P_Int_IsExists = uiObj.UserExists(txtName.Text.Trim(), txtPassword.Text.Trim());
7.if(P_Int_IsExists == 100)
{
8.DataSet ds = uiObj.ReturnUIDs(txtName.Text.Trim(), txtPassword.Text.Trim(), ”UserInfo“);
9.Session[”UID“] = Convert.ToInt32(ds.Tables[”UserInfo“].Rows[0][0].ToString());
10.Session[”Username“] = ds.Tables[”UserInfo“].Rows[0][1].ToString();
11.Response.Redirect(”index.aspx“);
}
else
{
12.Response.Write(”“);
Response.Write(”“);
}
}
else
{
13.}
} }
Response.Write(”");
1)控制流圖
2)環路復雜度計算
由上圖可得,有四條不同的環路,所以環路復雜度為四。
3)基本路徑集設計
基本路徑: A.1、2、3、4 B.1、2、3、5、6、7、8、9、10、11、12 C.1、2、3、5、7、12 D.1、2、3、5、7、8、9、10、11、12 4)測試用例集設計
四、測試報告
五、測試小結
通過本次測試實驗,我基本了解掌握了基本的白盒測試方法及測試用例分析方法。本次測試是針對一網上購物系統進行的,網購系統對安全性的要求是很高的,其安全影響方面頗多,真正的網購系統一旦有漏洞所造成的損失將是巨大的。所以,本次所測系統雖小但影響或是說對我的印象是十分深刻的,深深讓我體會到了測試工作的重要性。測試工作看著雖小,但實際上他的所負是極為有用的。一系統的問題及改進方向有重大影響與指導,一個合格的軟件測試工作者,能為日后軟件的維護、服務等都可省卻一大筆,為客戶、公司避免過大的損失。這次實驗后也糾正了我的很多思想,我已不再單純的認為軟件測試比軟件開發容易了,在進行測試前,首先必須理解業務和需求。需求和業務理解了,才知道客戶想要系統實現什么。然后按照需求來進行測試,不滿足需求要求的都可以認為是BUG。雖然在實際工作中,拿到一份完整詳細的需求是很不容易的,但要做好一個功能測試,前提就是要對需求比較熟悉,各個業務細節都很了解,甚至做到比開發人員還要了解。而且對一個軟件測試人員最重要的素質要求就是要追求完美,不容許哪些缺點。
實驗結束,給了我對軟件測試這一行業新的理解,
第二篇:網上購物系統報告
網上購物系統UML實驗報告
實驗目的: 1.2.3.4.掌握用例圖的涵義和內容 掌握用例圖的繪制方法 掌握用例圖的使用范圍
理解活動圖及狀態圖表示界面遷徙的方法。
實驗內容:
有如下案例:
某網絡購物系統,這次開發的軟件項目是一個網上購物系統。使用此系統的顧客通過互聯網進行網上購物;使用此系統的管理員通過互聯網進行系統的管理。這個系統的主要功能如下。
? 顧客能夠按照商品類別,關鍵字等信息對商品進行查詢,取得商品概要信息,并能進一步查看商品詳細信息。? 顧客能夠注冊及登陸,能夠添加商品到購物車,也能修改購物車中商品,并能夠進行結賬。結賬時,顧客可以選擇多種結賬方式。? 顧客可以查看及修改自己的訂單(在系統發貨前)。
? 管理員能夠維護業務數據,包括商品,訂單,會員數據等。? 該系統與財務系統交互,更新訂單付款狀態。
? 該系統也與庫存系統以及物流系統(確定訂單配送狀態)交互。
畫出該案例用例圖,詳細書寫其中至少2個主要用例的用例文本,畫出主要界面原型,并用狀態圖表示界面之間的遷徙。
將上述用例分析結果形成完成的用例模型文檔。
實驗步驟: 用例分析:
本系統共有三類用戶:
普通用戶是指沒有登陸權限(主要指網絡用戶),以匿名用戶的身份訪問系統網站。此類用戶主要有瀏覽系統信息、查看商品信息,注冊成為會員。把本網站設為首頁,添加到收藏夾,聯系開發人,查看交款方式,退換貨原則,配送范圍,交易條款,保密協議等操作。瀏覽的內容包括:商品信息、商品分類信息。
網絡購物系統實驗報告
會員:這類用戶擁有普通用戶的所有權限;普通用戶可以注冊成為會員,并根據會員ID和密碼登陸系統,登陸之后可以對更改自己的信息但會員ID做為數據庫表主鍵不能修改。會員登陸后可以查看商品信息,查看各種分類商品信息,將商品添加到購物車中。修改購物車中商品數量,或是刪除某些不想要的商品。
系統管理員:系統管理員主要負責管理著系統后臺信息;主要有訂單管理,商品管理,會員管理,留言管理和系統管理。訂單管理有未確認訂單和已確認訂單管理,未付款訂單和已付款訂單管理,未發貨和已發貨訂單管理,未歸檔和已歸檔訂單管理。商品管理主要有商品添加和商品管理,商品類別添加和商品類別管理。會員管理主要有添加管理員和管理管理員,管理會員。物流系統主要有支付方式添加和管理,配送方式添加和管理,配送地點添加和管理。系統管理主要是上傳管理。
因此,本系統主要功能是對商品進行管理規劃,方便會員購買。
前臺模塊功能有:商品信息查看、會員注冊、會員登錄、會員信息修改、購物車管理、購物留言。
后臺模塊功能有:商品管理、訂單管理、會員管理、管理員管理、留言管理
網絡購物系統實驗報告
一、系統總體用例圖
二、分層用例
2.1 添加購物車用例
用例名稱:添加購物車 主要參與者:顧客
前置條件:
顧客已登錄,擁有一臺聯網的電腦
主成功場景:
顧客登陸購物網站
按關鍵字查找商品,系統返回幾項結果
用戶點擊所選商品
系統返回商品詳細信息
顧客添加商品到購物車
系統返回購物車信息
后置條件:
購物車有更新
用例圖:
網絡購物系統實驗報告
系統順序圖:
網絡購物系統實驗報告
交互圖之順序圖:
2.2 一次交易過程用例
主要參與者:顧客
主成功場景:
1.顧客登陸系統
2.顧客按關鍵字查詢商品
3.系統顯示商品的信息
4.顧客將商品加入購物車
顧客重復2到4步直到結束
5.系統生成訂單并顯示訂單信息
6.顧客選擇支結帳式
7.顧客確認訂單進行結帳
8.系統記錄銷售信息、并將銷售信息和支付信息發送到財務系統(進行訂單
處理)、庫存系統(更新庫存)和物流系統(確認訂單配送狀態)
擴展
a.管理員可以隨時對商品、訂單、會員等數據進行操作
b.系統在任意時刻失敗
管理員重啟系統
1a.用戶名無效或密碼錯誤
重新輸入或注冊為新會員
2a.無相應的商品
1.系統提示錯誤并提示重新輸入商品信息
2.顧客重新輸入或退出系統
網絡購物系統實驗報告
3a.當按關鍵字查詢到多個商品時
1.沒有顧客想要的商品或商品缺貨
2.重新查找或退出
4a.添加購物車失敗
1.系統提示顧客為登陸
2.顧客登陸系統
3.操作購物車
1a.顧客修改購物車信息或刪除購物車中的商品
6a.銀行匯款
1.輸入顧客銀行信息
2.系統顯示支付信息
6b.貨到付款 用例圖:
交易處理順序圖:
網絡購物系統實驗報告
2.3 用戶注冊用例:
主要參與者:顧客,管理員
前置條件:系統運行正常
主成功場景:
1、顧客登錄購物網站,點擊注冊按鈕;
2、用戶進入顧客注冊頁面;
3、顧客填寫注冊信息,提交頁面;
4、系統管理員驗證顧客的所有注冊信息是合法;
5、系統返回用戶注冊成功信息;
擴展流程:
3a、用戶填寫信息有誤,提交失?。?/p>
3b、系統提示顧客重新填寫失敗的信息; 后置條件
系統數據庫增加一條顧客信息
網絡購物系統實驗報告
2.4、用戶登錄用例
主要參與者:用戶
前置條件:用戶已注冊
主成功場景:
1、用戶瀏覽購物網站
2、點擊登錄按鈕,跳轉到登錄界面
3、顧客填寫登錄信息。
4、系統驗證登錄信息存在5、跳轉到之前登錄的界面
擴展流程:
1a、用戶輸入網址錯誤
1b、提示用戶重新輸入
4a、用戶填寫用戶名或密碼信息錯誤
4b、系統提示用戶重新輸入用戶名和密碼
網絡購物系統實驗報告
2.5查詢商品用例:
用例文本:
主要參與者:顧客
前置條件:用戶已登錄購物網站
主成功場景:
1.用戶登錄購物網站(用例開始)
2.用戶輸入商品關鍵字,查詢對應的商品
3.系統返回該關鍵字所對應的網站里的所有的商品
4.顧客選擇適合自己的商品添加到購物車
擴展流程:
3a:系統返回的商品中沒有顧客想要的3b:顧客重新輸入關鍵字或退出系統
查詢商品用例圖:
網絡購物系統實驗報告
查詢商品順序圖:
網絡購物系統實驗報告
三、領域模型
系統領域模型:
四.頁面跳轉圖
交易成功場景頁面跳轉圖
網絡購物系統實驗報告
五.活動圖及操作契約:
更新購物車系統活動圖:
網絡購物系統實驗報告
結束瀏覽開始查詢信息瀏覽信息添加購物車查看購物車更新購物車條件檢查
更新購物車操作契約 契約名稱:添加購物車 交叉引用:處理交易
前置條件:正在進行中的購物活動
網絡購物系統實驗報告
后置條件:系統創建購物車實例;
顧客被關聯到購物車實例當中; 購物車有更新
系統總體活動圖:
六、順序圖:
網絡購物系統實驗報告
顧客留言管理順序圖
網絡購物系統實驗報告
服務人員能夠提供在線幫助也能夠向普通顧客那樣查詢商品,其順序圖類似于顧客瀏覽商品順序圖
網絡購物系統實驗報告
網站管理人員管理商品的系統順序圖:
網絡購物系統實驗報告
交互圖之交易處理順序圖:
七、實驗感想:
通過本次實驗,我對uml建模有了深入的理解,能夠熟練使用UML的繪圖工具,為以后的學習和工作奠定的堅實的基礎。
第三篇:網上購物系統系統分析
一、系統流程分析
(1)普通用戶分為注冊會員用戶和非會員用戶。進入網站首頁,會員用戶登錄成功后具有查看商品信息并訂購商品、查看訂購信息、查看公告信息、修改個人信息等權限;非會員用戶不用登錄,只能查看商品信息、公告信息,不能訂購商品.只有注冊成為會員用戶并成功登錄后。方可訂購商品。
(2)部門管理員只可以對本部門銷售的商品的分類、商品品牌和商品信息進行管理,也可對自己的個人信息進行管理維護。
(3)總管理員可以對商城銷售的商品大類、各部門的管理員、公告信息和客戶訂單進行管理.并可以修改個人信息和密碼。
圖1-1 系統流程示意圖
二、系統數據庫設計
本系統客觀存在的實體有:管理員(gly)、注冊會員用戶user)、商品種類(spzl)、商品子類(splx)、商品品牌(ppxx)、商品(sp)、商城公告(board)。共7個實體,圖2-1 網上購物全局E-R圖
三、邏輯結構設計
管理員:包括管理員編號、注冊名、密碼、真實姓名、地址、電話、E-mail、其他。當管理員編號為“0000”時,代表系統總管理員,其他編號為對應的部門管理員。注冊會員用戶信息:包括用戶ID、姓名、密碼、性別、地址、手 機號、電話、E—mail。
商品種類:包括商品種類編號,商品種類名稱。每一個商品種類可以有多個商品子類。商品子類:包括子類編號、子類名稱、指標名稱I、指標名稱
2、指標名稱
3、指標名稱
4、指標名稱5。5個指標名稱中分別存
放每一子類商品的5個主要的指標名稱。
商品品牌:包括品牌編號、品牌名稱、品牌生產商、業務聯系 信息。
商品:包括商品編號、商品名稱、商品型號、商品指標值
1、商品指標值
2、商品指標值3,商品指標值
4、商品指標值
5、參考銷售單價、上市日期、圖片、簡介。5個商品指標值巾分別存放各商品的具體指標參數值。
商城公告信息:包括公告編號、公告標題、公告內容、發布時閱。
商品銷售信息:包括訂單編號、用戶編號、商品種類編號、商品分類編號、商品品牌編號、商品編號、訂購日期、訂購數量、實際銷售價、用戶確認、發貨日期、管理員確認。
四、數據庫邏輯結構設計
1.公告信息表(題目,內容,時間,編號,提交人)
2.商品類別表(編號,類別,名稱,序號,廠家,包裝類型,銷售價格,進貨價格,商品簡介,瀏覽次數,銷售數量,相關圖片)
3.購物車表(編號,用戶名,商品編號,訂購時間,訂購數量,銷售價格,用戶確認,訂單號,提交時間,管理員確認)
4.用戶投訴表(投訴編號,投訴時間,用戶名,訂單號,投訴內容,處理結果,處理標志)5.用戶信息表(用戶名,用戶密碼,用戶姓名,性別,地址,電子郵件地址,固定電話,移動電話)
6.管理員表(用戶名,密碼,用戶姓名)
五、模塊功能設計
(1)顧客注冊,登錄模塊
顧客可以通過填寫注冊信息注冊成為會員,會員注冊,登錄需要填寫附加碼,保證 系統的安全性。會員登錄后才能進行購物,購物車的管理與意見反饋,為登錄的會員或 未注冊的顧客只能檢索與瀏覽商品信息。(2)購物車模塊
顧客輸入帳號與密碼登錄后便可以進行購物車的管理,可以查看購物車,將商品添 加到購物車中,也可以刪除購物車中的商品,修改購物車中商品的數量,在線下訂單及 訂單查看。
(3)商品檢索,瀏覽模塊,特價商品檢索,瀏覽模塊
顧客可以根據不同的商品種類瀏覽商品信息(如商品名稱,商品圖片,商品型號,價格,生產廠商,生產日期等),也可以輸入關鍵字進行商品檢索。顧客可以根據不同 的商品種類瀏覽特價商品信息(如商品名稱,商品圖片,商品型號,價格,生產廠商,生產日期等),也可以輸入關鍵字進行特價商品檢索。(4)顧客留言模塊
顧客登錄成功后,進入反饋信息界面,可以發表自己的意見或建議。(5)后臺登錄模塊
系統管理員輸入帳號,密碼和附加碼可以登錄后臺界面,登錄驗證模塊根據輸入的 帳號密碼識別不同角色的管理員,然后進入不同的后臺管理模塊,賬號密碼輸入錯誤后 給出錯誤提示并要求從新輸入。(6)訂單管理模塊
訂單管理員登錄后,可以根據日期范圍,訂單完成狀態,訂單編號等取得訂單列表 與查看某訂單的詳情,也可以修改訂單的完成狀態及訂單中的商品或數量,還可以刪除 訂單本身及訂單中的商品。(7)商品管理模塊
商品管理員可以查看商品種類和商品信息,也可以新增,修改,刪除商品的種類和 商品本身。
(8)特價商品管理模塊
該模塊也和商品管理模塊一樣,商品管理員可以查看特價商品種類和信息,也可以 新增,修改,刪除商品的種類和特價商品本身,并且可以將商品列為特價商品以及將特 價商品修改為一般商品(9)會員管理模塊
會員管理員登錄后,可以根據注冊時間范圍,會員級別及會員D取得會員列表,然后對某個會員可以進行詳細資料的查看,級別調整與刪除操作;也可以根據留言時間 范圍,回復狀態及會員D取得留言列表,然后對某個留言進行內容查看,回復與刪除 操作。
(10)系統用戶管理模塊
系統管理員登錄后,可以根據用戶列表進行用戶詳細資料的查看,新增用戶,修改 用戶與刪除用戶操作。論文
1. 網上購物系統的開發背景+可行性分析(經濟,技術)2. 系統需求
3. 系統設計+系統分析、實現 4. 系統工作流程 5.
第四篇:網上購物系統論文
目錄
第一章 系統設計概述 1 1.1引言 1 1.1.1系統開發的背景 1 1.1.2系統開發的目的與意義 1 第二章 可行性研究與需求分析 3 2.1可行性研究 3 2.1.1技術可行性 3 2.1.2經濟可行性 3 2.1.3運行可行性 3 2.1.4法律可行性 3 2.2需求分析 3 2.2.1系統目的 3 2.2.2數據流圖 4 2.2.3數據字典 6 2.2.4功能需求 8 2.2.5性能要求 8 第三章 項目設計的基本原理和采用的主要方法與技術 9 3.1項目設計的基本原理 9 3.2項目設計采用的主要方法與技術 9 第四章 總體設計 12 4.1總體設計原理 12 4.2運行環境 12 4.3系統流程圖 12 4.4系統功能模塊圖 14 4.5系統安全與維護 15 第五章 詳細設計 17 5.1程序流程圖 17 5.2數據庫設計 19 5.2.1概念結構設計 20 5.2.2邏輯結構設計 23 第六章 編碼實現與測試用例設計 28 6.1登錄界面 28 6.2管理界面 30 6.3網站主界面 33 6.4訂單查詢界面 34 第七章 測試用例設計、測試與運行記錄 37 7.1測試目的 37 7.2 測試目標 37 7.3測試方法 37 7.4測試項目 37 7.5測試界面 37 7.5.1管理員登錄測試 37 7.5.2管理商品信息測試 38 7.5.3管理訂單信息測試 39 7.5.4用戶管理測試 40 7.5.5管理員密碼修改測試 40 7.5.6用戶登錄測試 41 7.5.7用戶個人管理測試 42 7.5.8添加商品信息測試 42 總結 44 參考文獻 47 本系統必須具備以下幾個功能如下:
1.顧客登錄及身份驗證功能:接受游客的基本信息。
2.顧客在線購物功能:顧客瀏覽商品信息,進行選購,提交訂單后進行交易。3.管理員功能:管理員對整個系統進行管理。
4.購物車功能:在顧客提交訂單之前,一直存放顧客選購得商品
第五篇:網上購物管理系統
課程實踐報告
課程名稱:軟件工程實踐II 項目名稱:網上購物系統 專業班級:
姓
名: 學
號:
指導教師:
成績:______ 報告日期:2014年12月9日
網上購物管理系統
摘要
隨著計算機技術在各行各業日益廣泛和深入的應用,網絡的概念早已深入人心。網絡在各行各頁的發展戰略占據了重要的位置,成為了商家不可分割的一部分。網絡已經成為了商家展示自己的另一個舞臺。商家建立網站,通過網站可以實現,瀏覽商品,網上購物,結賬
本系統實現了網上購物商城的基本功能和購物流程。主要模塊有:商品查詢、商品管理、商品顯示、購物車、訂單管理、用戶管理等功能。其開發主要包括:數據庫的建立,前臺Web頁面設計,后臺管理。本系統采用MySql數據庫和Tomcat服務器實現,并且使用HTML、JSP等技術來編輯網頁,并運用Hibernate技術把數據庫和動態網頁相關聯。
關鍵字
關鍵詞:網上商場,購物車,結賬,Tomcat,Sevlet,JSP,MySql數據庫
目錄
摘要..............................................................................................................................................2 關鍵字..........................................................................................................................................2 1需求分析.......................................................................................................................................4 1.1背景.........................................................................................................................................4 1.2可行性分析.............................................................................................................................4 1.3對性能的規定.........................................................................................................................4 1.3.1時間特性要求..................................................................................................................4 1.3.2靈活性..............................................................................................................................5 1.4其他專門要求.........................................................................................................................5 1.5運行環境的規定.....................................................................................................................5 1.6設備.........................................................................................................................................5 1.7支持軟件.................................................................................................................................5 2功能分析.......................................................................................................................................6 2.1功能分析的目的.....................................................................................................................6 2.2業務描述.................................................................................................................................6 2.3用例圖.....................................................................................................................................8 2.4 狀態圖..................................................................................................................................10 3模塊設計.....................................................................................................................................10 3.1系統功能模塊.......................................................................................................................10 3.2模塊分析...............................................................................................................................11 4數據庫分析與設計.....................................................................................................................18 4.1數據庫分析...........................................................................................................................18 4.2系統整體ER圖的設計........................................................................................................19 4.3數據庫設計...........................................................................................................................20 5編碼,實現及測試.....................................................................................................................22 5.1各功能源代碼.......................................................................................................................22 6 結論............................................................................................................................................29 6.1系統優點...............................................................................................................................29 6.2系統缺點...............................................................................................................................29 6.3未來發展...............................................................................................................................29 7實驗小結.....................................................................................................................................30 7.1 孫佳偉實驗小結..................................................................................錯誤!未定義書簽。7.2 喻道斌實驗小結..................................................................................錯誤!未定義書簽。7.3 金龍實驗小結......................................................................................錯誤!未定義書簽。1需求分析
1.1背景
在發達國家,電子商務的發展非常迅速,通過Internet進行交易己成為一種潮流?;陔娮由虅账B帶出的商品交易方案、電子結賬方案和信息安全方案等,已逐步成為國際信息技術市場競爭的焦點。隨著電子商務的日益發展,產生了網上購物、網絡廣告等新興信息產業,從側面反應了電子商務正在對社會和經濟產生著深刻的影響。
在我國,網上購物從無到有也不過短短幾年時間。但是就在這幾年時間,網絡購物已經深入千家萬戶,普通的購物已經不能滿足人們的消費。網上購物以其諸多優勢,獲得人們的青睞。它以其方便,快捷,高效,高選擇性等優點,迅速得到了廣大網友的喜愛與青睞,現在的網上購物已經非常普及。本系統設計就是為了滿足廣大網友的這些需求,改變傳統的交易模式,通過互聯網完成查看商品,購買商品等完成網上交易。方便消費者,同時對商家的商品信息進行管理,便于商家的商品數據分析。截止2013年1月中國有網上購物的用戶將近5000萬人,這足以證明網上購物具有良好的群眾基礎,網上購物方式日趨被大家所接受。因此我們小組致力于做一個基于B/S架構的網上購物管理系統,使廣大用戶可以享受網上購物的種種優勢。
1.2可行性分析
隨著計算機的普及,Internet的發展,網購已經成為人們生活消費中一大部分。一個網上購物系統可以為消費者提供軟件條件,使其可以更加快捷,方便,實惠的選擇商品,而商家也可以更好的管理商品,節約成本,兩全其美。所以構建一個網上購物商城在運行上是完全可行的。
此次開發使用JSP作為開發語言,采用Servlet技術,Tomcat7.0座位Web服務器,采用MySql作為數據庫,這幾種技術及工具的方便,快捷,免費大大的縮短了開發的時間,減少了開發的成本。并且使得開發更方便安全,更利于后期的維護。網上購物服務系統給人們帶來了方便,成為一種全新的商務模式。因此,不用出門就可以在家購物的新時尚已經到來,構建一個網上購物服務系統在經濟上是完全可行的。
綜上所述:開發本系統是完全可行的。
1.3對性能的規定 1.3.1時間特性要求
對于商品基本信息,訂單信息管理的增加刪除修改必須是實時響應,與客戶端的交互響應時間不超過5s 1.3.2靈活性
操作方式的變化,可以直接從UI或從數據庫輸入行,對初始行進行增加,刪除,刪除等操作。
1.4其他專門要求
文字描述必須準確,精煉,通俗易懂。安全性要得以保障,可移植性要高,為了適應不同系統,程序吞吐量必須要大,否則不能動態適應購物網站的需要。
1.5運行環境的規定 1.6設備
開發環境: 操作系統:windows 7 硬件環境:
客戶終端:pc機; 服務器:Tomcat 編譯環境:Jdk 1.6 1.7支持軟件
操作系統:** 開發軟件:MyEclipse 數據庫: Mysql
2功能分析
2.1功能分析的目的
從用戶需求出發,對于網上購物系統做細致全面的功能分析,準確地定義網上購物系統的目標,確定系統必須做什么,再用UML建模,并以Rational Rose工具畫出功能模型,以此形式分析確定此網上購物系統的功能。
2.2業務描述
用戶進入網站后,可以根據價格高低確定是否進行篩選,不篩選則進入所有的商品瀏覽界面,篩選則得出篩選后的瀏覽界面。接著可以點擊商品加入購物車,可以自己選擇加入的數量。加入購物車以后可以查看購物車,在購物策劃模塊中可以選擇添加或刪除購物車商品,接著用戶可以自行判斷是否繼續購物,如果繼續購物則返回首頁,不購物則進行結賬。結賬之后可以查看訂單界面,這里有詳細的訂單信息。,否則注銷退出。
下圖為網上購物系統的業務流程圖。
開始用戶進入網站按照價格高低進行篩選篩選后的瀏覽界面瀏覽商品加入購物車查看購物車添加或刪除購物車商品繼續購物結賬查看訂單訂單界面注銷退出結束
圖 1-1 系統業務流程圖
2.3用例圖
用例圖
? 瀏覽商品用例,可以實現瀏覽商品
? 搜索商品用例,可以根據商品的價格進行篩選查詢商品。? 管理商品詳情用例,可以實現對商品中所有信息的瀏覽。
? 加入購物車用例,是用戶才有的功能,能在瀏覽商品后把商品加入購物車 ? 管理購物車用例,在加入購物車后擴展的功能,對于購物車內的商品可以增加刪除 ? 購買商品用例,用戶可以對于商品顯示頁面的商品進行購買 ? 管理自身訂單,用戶可以對自身的訂單進行搜索,刪除功能。? 清空購物車用例,用戶對購物車中所有商品進行清空
? 瀏覽曾經的商品(歷史記錄)用例,用戶可以在這里瀏覽曾經使用的商品 ? 結賬模塊用例,用戶可以在這里進行結賬功能。
<
圖1-2主用例圖
刪除商品用戶瀏覽購物車清空購物車繼續購物結賬
圖 1-3 購物車用例圖
結賬用戶事務管理查看訂單信息
圖 1-4 結賬用例圖
2.4 狀態圖
對于系統進行狀態細節分析如下 a)b)c)d)e)f)g)h)用戶首頁輸入網址進入首頁界面 用戶瀏覽商品進入商品展示界面
瀏覽完之后可選擇喜歡的商品進入購物車界面 在購物車中可以添加或刪除商品進入更改商品界面
更改接受后確定是否繼續購物,若繼續擇返回商品展示界面 若不繼續購物則進入結賬界面
在結賬界面中進行查看訂單,進入訂單確認狀態
訂單確認無誤后,則系統提交,之后用戶可以注銷退出。
按價格篩選用戶輸入網址首頁瀏覽商品商品展示界面加入購物車購物車界面結賬界面發出結賬請求查看訂單注銷繼續購物確定是否購物添加或刪除商品訂單確認狀態退出
3模塊設計
3.1系統功能模塊
功能模塊圖:
系統總體分為前臺展示模塊,購物車模塊,結賬模塊。
前臺展示模塊包括:瀏覽商品模塊,篩選商品模塊,商品詳情模塊,歷史紀錄模塊。購物車模塊包括:購物車展示模塊,刪除商品模塊,清空購物車模塊,繼續購物模塊。
結賬模塊包括:訂單確認模塊,提交訂單模塊,事務處理模塊。
網上購物管理系統前臺展示模塊購物車模塊結賬模塊瀏覽商品模塊篩選商品模塊商品詳情模塊歷史紀錄模塊購物車展示模塊刪除商品模塊清空購物車模塊繼續購物模塊訂單確認模塊提交訂單模塊事務處理模塊
圖3-1 功能模塊圖
3.2模塊分析
1:商品展示模塊
這是網站的主頁面,用戶不登陸也可以進入該頁面,登陸成功后,頁面會顯示用戶的信息。此頁面主要是顯示一些主要商品的圖片、名稱、價格等信息,用戶可以輸入商品名稱,種類等進行搜索,也可以直接點擊商品查看商品細節信息。
圖 3-2 商品展示模塊
在主界面中可以根據價格的高低排序
2:商品詳情模塊
當你點擊一個商品的鏈接,可以進入商品的詳情頁面,這里會相識一個商品的所有具體信息,可以看到書名,作者,價格,出版日期
圖3-3 商品詳情模塊
3:購物車模塊
用戶喜歡的商品可以選擇放進購物車里,可以在購物車里產看用戶選擇的商品的名稱價格以及購物車商品的總價,用戶可以對購物車中的商品進行操作,修改購買數量,刪除商品,清空購物車,結賬等。
圖3-3 購物車前臺模塊
圖3-4購物車展示界面
清空購物車
刪除購物車中的某教材
圖3-5清空購物車界面
圖3-6刪除購物車某教材
4:回顧商品模塊
當您想看曾經瀏覽過的商品時,可以點擊查看瀏覽的歷史記錄,根據最近瀏覽的顯示記錄排序
5:結賬模塊
圖3-7 回顧商品模塊
在購物車進行結算以后,會跳轉至結賬界面,系統會顯示當前的信用卡姓名,信用卡帳號,當您提交時就會結算成功,并且通過事務管理防止重復提交
圖3-8 結賬模塊界面
余額不足時提示
圖3-8 余額不足界面
6:訂單頁面模塊
在購物車進行結算以后,就會生成訂單,訂單會顯示訂單號、收貨人、地址、電話等信息。點擊查看詳情就可以進入訂單詳情頁面
圖 3-9 訂單頁面模塊
4數據庫分析與設計
4.1數據庫分析
對于以上模塊的劃分以及分析我們建立網上購物管理系統數據庫,建了5個表,分別是帳戶表(account),書籍信息表(mybooks),訂單表(trade),訂單項目表(tradeItem),用戶信息管理(usersInfo),各表的實現的功能在上述模塊設計中已經指出,此刻不再贅述。
帳戶表(account)中的各列分別為:帳戶編號(accounted)主碼,帳戶余額balance 書籍信息表(mybooks)中的各列分別為:書籍(Id)主碼,作者(Author),標題(Title),價格(Price),出版日期(Publishingdate),車輛類型(Salesamount),車輛規格(Storenumber),單價預算(Remark)訂單表(trade)中的各列分別為:訂單編號(tradeid)主碼,用戶編號(userid)外碼,訂單日期(tradetime)訂單項目表(tradeItem)中的各列分別為:訂單編號(itemid)主碼,書籍編號(bookid)外碼,(quantity),使用年限(tradeid)用戶信息管理(usersInfo)中的各列分別為:用戶編號(userid),用戶名(username),帳戶編號(accountid)
4.2系統整體ER圖的設計
用戶編號訂單編號帳戶編號帳戶余額訂單表訂單日期帳戶表用戶名用戶編號帳戶編號生成擁有用戶信息管理擁有購買訂單項目表書籍信息表訂單編號書籍價格作者出版日期標題書籍編號使用年限
圖4-1 系統整體ER圖設計
4.3數據庫設計
帳戶表(account)設計
書籍信息表(mybooks)設計
圖4-2帳戶表(account)設計
訂單表(trade)設計
圖4-3書籍信息表(mybooks)設計
圖 4-4訂單表(trade)設計
訂單項目表(tradeItem)設計
用戶信息表(userinfo)設計
圖4-5訂單項目表(tradeItem)設計
圖4-6 用戶信息表(userinfo)設計 5編碼,實現及測試
5.1各功能源代碼
5.1.1 分頁的實現
public List
String sql=null;System.out.println(“ method------------>”+method);if(method.equals(“price”)){ sql=“SELECT id, author, title, price, publishingDate, ” +
} elseif(method.equals(“salesamount”)){
} elseif(method.equals(“publishingdate”)){
} else{
} returngetForList(sql, sql=“SELECT id, author, title, price, publishingDate, ” +
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by price ”+ “LIMIT ?, ?”;sql=“SELECT id, author, title, price, publishingDate, ” +
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by publishingdate ”+ “LIMIT ?, ?”;sql=“SELECT id, author, title, price, publishingDate, ” +
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by salesamount ”+ “LIMIT ?, ?”;
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by price desc ”+ “LIMIT ?, ?”;cb.getMinPrice(),cb.getMaxPrice(),(cb.getPageNo()-1)*pageSize,pageSize);5.1.2:運用ajax技術實現頁面的局部刷新
//ajax修改單個商品的數量
//1.獲取頁面中所有的text,并為其添加onclick事件 $(“:text”).change(function(){
varquantityVal = $.trim(this.value);varreg=/^d+$/g;varquantity=-1;
varflag=false;if(reg.test(quantityVal)){
} if(!flag){ alert('輸入的數量不合法');$(this).val($(this).attr(“class”));return;}
var$tr = $(this).parent().parent();vartitle = $.trim($tr.find(“td:first”).text());if(quantity==0){
} varflag = confirm(“確定要修改” + title + “的數量嗎?”);if(!flag){ $(this).val($(this).attr(“class”));} //2.請求地址為: bookServlet varurl = “Books”;
//3.請求參數為: method:updateItemQuantity, id:name屬性值, varidVal = $.trim(this.name);varargs = {“method”:“updateItemQuantity”, “id”:idVal,//4.在updateItemQuantity方法中, 獲取quanity, id, 再獲取購物車對象, //5.傳回 JSON 數據: bookNumber:xx, totalMoney return;
varflag2=confirm(“確定要刪除”+title+“嗎?”);if(flag2){ varserializeVal = $(“:hidden”).serialize();varhref=$tr.find(“td:last”).find(“a”).attr(“href”);window.location.href=href+ “&” + serializeVal;;return;} quantity=parseInt(quantityVal);if(quantity>=0)flag=true;
quantity:val, time:new Date()
“quantity”:quantityVal, “time”:newDate()};調用 service 的方法做修改
//6.更新當前頁面的bookNumber和totalMoney $.post(url, args, function(data){
varbookNumber = data.bookNumber;vartotalMoney = data.totalMoney;$(“#totalMoney”).text(“總金額: ¥” + totalMoney);$(“#bookNumber”).text(“您的購物車中共有” + bookNumber + “本書”);},“JSON”);});5.1.3:運用ThreadLocal類實現數據庫的連接與當前線程綁定,實現結賬的事務操作
publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {
Connection connection = null;try {
connection = DBUtils.getConnection();
connection.setAutoCommit(false);
ConnectionContext.getInstance().bind(connection);
chain.doFilter(request, response);
connection.commit();e.printStackTrace();try {
}
HttpServletResponseresp =(HttpServletResponse)response;HttpServletRequestreq =(HttpServletRequest)request;resp.sendRedirect(req.getContextPath()+ “/error-1.jsp”);connection.rollback();e1.printStackTrace();} catch(SQLException e1){ } catch(Exception e){
}
}
ConnectionContext.getInstance().remove();DBUtils.Release(connection);
} finally{ 5.1.4:使用過濾器實現頁面的編碼
publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {
} String encoding = request.setCharacterEncoding(encoding);chain.doFilter(request, response);filterConfig.getServletContext().getInitParameter(“encoding”);5.1.5:數據庫底層操作,運用泛型技術和反射技術
public class BaseDao
private Class
publicBaseDao(){
} @Override public long insert(String sql, Object...args){
long id=0;Connection conn=ConnectionContext.getInstance().get();try {
PreparedStatement for(inti=0;i prepareStatement.setObject(i+1, args[i]);clazz = ReflectionUtils.getSuperGenericType(getClass());System.out.println(clazz); privateQueryRunnerqueryRunner=new QueryRunner();prepareStatement=conn.prepareStatement(sql,java.sql.Statement.RETURN_GENERATED_KEYS); } } { } // TODO Auto-generated catch block e.printStackTrace();id=resultSet.getLong(1);} catch(SQLException e){ return id;@Override public void update(String sql, Object...args){ } @Override public T query(String sql, Object...args){ } @SuppressWarnings(“unchecked”)@Override public Connection conn=ConnectionContext.getInstance().get();try { } return(V)queryRunner.query(conn, sql, new ScalarHandler(), args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){ Connection conn=ConnectionContext.getInstance().get();try { } return null;return(T)queryRunner.query(conn, sql, new BeanHandler } queryRunner.update(conn, sql, args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){ } } return null;@Override public void batch(String sql, Object[]...args){ } @Override public List } Connection conn=ConnectionContext.getInstance().get();try { } return null;System.out.println(“sql-----------”+sql);returnqueryRunner.query(conn, sql, new BeanListHandler e.printStackTrace();Connection conn=ConnectionContext.getInstance().get();try { } queryRunner.batch(conn, sql, args);e.printStackTrace();} catch(SQLException e){ } catch(SQLException e){ 5.1.6:使用session防止表單重復提交 publicvoidcash(HttpServletRequest request, HttpServletResponse response) HttpSession session=request.getSession(); Thread.sleep(5000);String username=request.getParameter(“username”);String accountId=request.getParameter(“accountId”);StringBuffer errors=validateFormField(username, accountId);if(errors.toString().equals(“")){ errors=validateUser(username, accountId);if(errors.toString().equals(”“)){ throwsServletException, IOException, InterruptedException { ; } } errors=validateBookStoreNumber(request);if(errors.toString().equals(”“)){ } errors=validateBalance(request,accountId);String code=(String)session.getAttribute(”code“);System.out.println(code+”---------“);String codeRe=request.getParameter(”checkCode“);if(!code.equals(codeRe)){ } if(!errors.toString().equals(”“)){ request.setAttribute(”errors“, errors);errors.append(”驗證碼輸入不正確“);request.getRequestDispatcher(”/WEB-INF/pages/cash.jsp“).forward(request,service.cash(BookStoreWebUtils.getShopCart(request),username,accountId) request.getRequestDispatcher(”/WEB-INF/pages/error.jsp“).forward(reques } } } if(valS==null){ request.setAttribute(”username“, username);request.getRequestDispatcher(”/success.jsp“).forward(request, session.removeAttribute(”date“);} String val=request.getParameter(”date“); String valS=(String)session.getAttribute(”date“); if(valS!=null&&valS.equals(val)){ return;response);response);t, response);5.1.7:使用數據庫連接池 root 123456 jdbc:mysql:///bookstore com.mysql.jdbc.Driver 2 5 5 10 20 5 結論 6.1系統優點 系統實現了網上購物商城的基本功能,可以很好的完成網上購物的一系列流程。而且方便快捷,高效。頁面也很美觀,大方。對整個系統的框架設計合理,大大提升了系統的整體性與耦合性。也方便了后期的進一步開發與維護。 6.2系統缺點 系統缺乏創新性,沒有自己過多的新增功能,沒有特別突出的特點??梢栽黾右恍┕δ?,來豐富系統,提升系統的實用性。例如增加商品的銷量排行榜,方便用戶查看暢銷商品。增加商品的交易評價,方便用戶判斷是否購買此商品。 6.3未來發展 這里指為了使本系統更好的適應環境的變化,有必要進行適應性維護。一方面由于計算機技術的飛速發展,原來的系統不能適應新的軟硬件,另一方面,應用對象也在不斷的發生變化,將導致系統不能適應新的應用環境,因此,有必要對系統進行調整,以保證系統時時都能滿足用戶要求。 7實驗小結