劉 波,朱麗華
(安陽(yáng)工學(xué)院a.飛行學(xué)院;b.計(jì)算機(jī)科學(xué)與信息工程學(xué)院,河南安陽(yáng)455000)
基于Java語(yǔ)言的超市賬單管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
劉 波a,朱麗華b
(安陽(yáng)工學(xué)院a.飛行學(xué)院;b.計(jì)算機(jī)科學(xué)與信息工程學(xué)院,河南安陽(yáng)455000)
系統(tǒng)以O(shè)racle作為后臺(tái)數(shù)據(jù)庫(kù),Java作為前臺(tái)開發(fā)工具,運(yùn)用自頂向下逐層分解的模塊化結(jié)構(gòu)設(shè)計(jì)思想和面向?qū)ο蟮脑O(shè)計(jì)方法,完成管理系統(tǒng)的主要模塊。最后對(duì)軟件的頁(yè)面功能以及后期軟件Bug進(jìn)行測(cè)試,測(cè)試結(jié)果表明該軟件可實(shí)現(xiàn)賬單管理的基本功能。
Java;Oracle;數(shù)據(jù)庫(kù);超市管理
D01∶10.19329/j.cnki.1673-2928.2016.06.009
現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展使得科技產(chǎn)品不斷更新,尤其是以計(jì)算機(jī)為代表的科技產(chǎn)品,已經(jīng)成為人們離不開的工具,已經(jīng)滲入到人們生活的方方面面。計(jì)算機(jī)越來(lái)越普及,隨之各種軟件也相應(yīng)而出。許多企業(yè)為加速發(fā)展,也用上了相應(yīng)軟件。超市行業(yè)的不斷發(fā)展壯大,同樣需要一套系統(tǒng)軟件來(lái)管理,超市賬單管理系統(tǒng)是小型超市商品銷售和管理的重要工具,對(duì)于日常的管理和運(yùn)營(yíng)起到重要的作用。
本系統(tǒng)采用面向?qū)ο缶幊趟枷氲腏ava語(yǔ)言,借助于Eclipse平臺(tái),為用戶提供可視化結(jié)構(gòu)設(shè)計(jì)界面,可以滿足系統(tǒng)的開發(fā)。
1.1 Java語(yǔ)言
Java語(yǔ)言是一種面向?qū)ο蟮木幊陶Z(yǔ)言[1],不僅僅是其跨平臺(tái)性,更多的是因?yàn)樗撵`活性和實(shí)用性較強(qiáng),可以說(shuō)是比較經(jīng)典和強(qiáng)悍的,而且Java有強(qiáng)大的文件和標(biāo)準(zhǔn)庫(kù)支持以及快捷方便的數(shù)據(jù)庫(kù)接口等優(yōu)勢(shì)[2]。這些優(yōu)點(diǎn)可以滿足系統(tǒng)功能的要求,結(jié)合使用Eclipse和Oracle數(shù)據(jù)庫(kù)工具,可以將軟件高效率開發(fā)出來(lái)。
1.2 Eclipse開發(fā)平臺(tái)
Eclipse的前身是IBM的Visual Age。由于意識(shí)到Visual Age存在難以擴(kuò)展、底層技術(shù)較為脆弱、很難與WebSphere Studio軟件集成、進(jìn)一步發(fā)展甚為困難、面臨包括Symantec公司的Visual和Borland公司的JBuilder等開發(fā)工具的競(jìng)爭(zhēng)壓力,IBM決定創(chuàng)建一個(gè)更開放的并且可以為IBM其他開發(fā)工具提供支持的一體化開發(fā)平臺(tái)。Eclipse采用開放源碼的授權(quán)和運(yùn)作模式發(fā)布,以增強(qiáng)業(yè)界對(duì)Eclipse的關(guān)注度并加快其推廣應(yīng)用速度。
Eclipse測(cè)試和性能工具平臺(tái)(TPTP):提供一個(gè)允許軟件開發(fā)者構(gòu)建諸如測(cè)試調(diào)試、概況分析、基準(zhǔn)評(píng)測(cè)等測(cè)試和性能工具的平臺(tái)。
Eclipse Web工具平臺(tái)計(jì)劃(WTP):用Java企業(yè)版Web應(yīng)用程序開發(fā)工具來(lái)擴(kuò)展Eclipse平臺(tái),它由以下部分組成:HTML、JavaScript、CSS、JSP、SQL、XML、DTD、XSD和WSDL的源代碼編輯器;XSD和WSDL的圖形界面編輯器;Java企業(yè)版的“項(xiàng)目性質(zhì)”(project nature)、建構(gòu)器(builder)和模型(model);一個(gè)Java企業(yè)版的導(dǎo)航(navigator)、一個(gè)Web服務(wù)(Web service)向?qū)Ш蜑g覽器;一個(gè)WS-I測(cè)試工具和數(shù)據(jù)庫(kù)訪問(wèn)查詢的工具與模型。
1.3 數(shù)據(jù)庫(kù)技術(shù)
本系統(tǒng)采用Oracle數(shù)據(jù)庫(kù),Oracle是以高級(jí)結(jié)構(gòu)化查詢語(yǔ)言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫(kù),通俗地講它是用方便邏輯管理的語(yǔ)言操縱大量有規(guī)律數(shù)據(jù)的集合,是目前最流行的客戶/服務(wù)器(Cli?ent/Server)體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。它由至少一個(gè)表空間和數(shù)據(jù)庫(kù)模式對(duì)象組成,模式是對(duì)象的集合,而模式對(duì)象是直接引用數(shù)據(jù)庫(kù)數(shù)據(jù)的邏輯結(jié)構(gòu)。模式對(duì)象包括這樣一些結(jié)構(gòu):表、視圖、序列、存儲(chǔ)過(guò)程、同義詞、索引、簇和數(shù)據(jù)庫(kù)鏈等。邏輯存儲(chǔ)結(jié)構(gòu)包括表空間、段和范圍,用于描述怎樣使用數(shù)據(jù)庫(kù)的物理空間,而其中的模式對(duì)象和關(guān)系形成了數(shù)據(jù)庫(kù)的關(guān)系設(shè)計(jì),使用數(shù)據(jù)庫(kù)建表時(shí)需要考慮表中的屬性、類型以及表之間的主外鍵關(guān)系,作為目前儲(chǔ)存數(shù)據(jù)的主要工具,在常見的系統(tǒng)開發(fā)中Oracle不可缺少。
2.1 設(shè)計(jì)思想
該系統(tǒng)主要分為前臺(tái)顯示和后臺(tái)維護(hù)兩大部
分,采用目前流行的面向?qū)ο蟮乃枷?,將?shí)體封裝成對(duì)應(yīng)的數(shù)據(jù)類,增加程序的可讀性、擴(kuò)展性并提高效率。主要分為幾個(gè)相對(duì)獨(dú)立的模塊,但是各模塊要進(jìn)行集中式管理。按照SpringMVC模式進(jìn)行設(shè)計(jì),模型層使用三層架構(gòu)來(lái)實(shí)現(xiàn)(如圖1),控制層使用Controller,顯示層使用jsp頁(yè)面,系統(tǒng)采用這樣的架構(gòu)有較強(qiáng)的可維護(hù)和擴(kuò)展性[3]。方便用戶操作,提高用戶的體驗(yàn)感,前端顯示的頁(yè)面簡(jiǎn)潔大方。合理健全的數(shù)據(jù)庫(kù)設(shè)計(jì),在設(shè)計(jì)表時(shí)要考慮表中的屬性、類型和長(zhǎng)度以及所需使用的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,以便提高程序的安全性。高內(nèi)聚低耦合,一個(gè)良好的設(shè)計(jì)是由若干個(gè)強(qiáng)內(nèi)聚模塊以弱耦合的方式組裝起來(lái)的,在系統(tǒng)模塊設(shè)計(jì)時(shí)合理的規(guī)劃職能,多使用接口而不是繼承,滿足易于變更和重用的特點(diǎn),提高程序的健壯性[3]。編寫該程序時(shí)參考一些大型網(wǎng)站或者經(jīng)典系統(tǒng)的設(shè)計(jì)思想進(jìn)行開發(fā),提高程序的可行性。該系統(tǒng)的主要設(shè)計(jì)如圖2。
圖1 MVC各層之間的關(guān)系
2.2 設(shè)計(jì)原則
本系統(tǒng)在滿足開發(fā)需求基礎(chǔ)上,遵循操作便捷且良好的用戶體驗(yàn),以更好地滿足用戶[4],在這次開發(fā)過(guò)程中遵循如下原則:
1)操作方便的原則:設(shè)計(jì)的系統(tǒng)操作便捷、界面美觀大方,功能滿足設(shè)計(jì)需求;
2)準(zhǔn)確原則:輸入的信息有誤(如加賬單時(shí)不存在對(duì)應(yīng)的供應(yīng)商、賬單出現(xiàn)負(fù)數(shù)、已經(jīng)生成的賬單被刪除、添加用戶時(shí)信息的及時(shí)驗(yàn)證等),可以提示用戶信息有誤,使用戶能夠及時(shí)準(zhǔn)確的進(jìn)行輸入;
3)后臺(tái)程序的可讀性原則:為了便于后期在此基礎(chǔ)上修改程序,方便IT人員及時(shí)、高效的對(duì)代碼處理和升級(jí)維護(hù),在編寫項(xiàng)目時(shí)應(yīng)該做好代碼注釋;
4)實(shí)用性的原則:軟件的功能滿足實(shí)際需求并能夠處理一些額外的要求,同時(shí)應(yīng)擴(kuò)大空間,便于功能的增加;
5)優(yōu)化的原則:去掉沒有必要的操作和高效的算法,多使用接口,少使用繼承,減少代碼量;
圖2 系統(tǒng)的主要功能流程圖
2.3 系統(tǒng)功能設(shè)計(jì)
根據(jù)超市業(yè)務(wù)的基本分析和其所需要解決的問(wèn)題,設(shè)計(jì)出該系統(tǒng)的功能(如圖3)。軟件設(shè)計(jì)首先進(jìn)入登錄頁(yè)面,根據(jù)用戶登錄的名字和密碼,賦予不同的權(quán)限;軟件設(shè)計(jì)可以有賬單管理,可以查詢賬單信息,添加賬單(前提是賬單上的產(chǎn)品和供應(yīng)商已經(jīng)存在,否則添加不上),修改賬單的狀態(tài)(經(jīng)理有此權(quán)限);軟件設(shè)計(jì)可以有供應(yīng)商管理,可以添加查詢供應(yīng)商信息、修改供貨商信息操作;軟
件設(shè)計(jì)可以有用戶管理,可以添加用戶信息、查詢用戶信息、修改用戶信息操作;軟件設(shè)計(jì)可以提供管理員和經(jīng)理對(duì)于相同管理的不同操作,從而實(shí)現(xiàn)賬單的不同管理;軟件設(shè)計(jì)能實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)的初始化,數(shù)據(jù)庫(kù)的備份和還原。
圖3 系統(tǒng)功能設(shè)計(jì)圖
3.1 數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)
根據(jù)本項(xiàng)目的實(shí)際需求以及應(yīng)用規(guī)模,我們只需要建立一個(gè)數(shù)據(jù)庫(kù),在該數(shù)據(jù)庫(kù)中建立五個(gè)數(shù)據(jù)表,分別是:賬戶表數(shù)據(jù)庫(kù)的設(shè)計(jì)(m_user),權(quán)限表數(shù)據(jù)庫(kù)的設(shè)計(jì)(powers),用戶信息表數(shù)據(jù)庫(kù)的設(shè)計(jì)(u_user),供應(yīng)商信息表數(shù)據(jù)庫(kù)的設(shè)計(jì)(suppli?er),其中賬戶表、權(quán)限表、供應(yīng)商表如下圖所示∶
表1 賬戶表(m_user)
表2 權(quán)限表(powers)
表3 供應(yīng)商(supplier)
3.2 系統(tǒng)首界面
本項(xiàng)目的所有用戶登錄頁(yè)面如圖4,如果用戶點(diǎn)擊退出系統(tǒng),也會(huì)返回該頁(yè)面。
圖4 登錄退出頁(yè)面
3.3 管理員操作
管理員沒有操作賬單的權(quán)限,但是可以提交賬單,提交之后的狀態(tài)為未審核并且顯示提交用戶的名字。添加賬單時(shí)商品的名稱必須和供應(yīng)商對(duì)應(yīng)且已經(jīng)存在,此時(shí)可以按照商品名稱和是否付款進(jìn)行組合查詢,如圖5所示。
3.4 普通用戶操作
普通用戶沒有操作賬單的權(quán)限,可以通過(guò)商品名稱和供應(yīng)商名稱查看對(duì)應(yīng)的詳細(xì)信息,如圖6所示。
4.1 功能測(cè)試
首先對(duì)用戶登錄界面進(jìn)行測(cè)試,當(dāng)輸入用戶名和密碼登錄后,系統(tǒng)會(huì)進(jìn)行信息正確性的驗(yàn)證,如果不正確,則給出提示信息要求用戶重新輸入登錄信息;如果正確,則根據(jù)用戶名賦給用戶對(duì)應(yīng)的權(quán)限進(jìn)行操作。本系統(tǒng)是一個(gè)賬單管理系統(tǒng),會(huì)有經(jīng)理、管理員和普通用戶三個(gè)角色,所以用戶登錄時(shí)權(quán)限的分配是該系統(tǒng)的一個(gè)重點(diǎn)。進(jìn)入主界面后,會(huì)顯示賬單管理、供應(yīng)商管理、用戶管理(此為管理員所特有模塊)以及退出系統(tǒng)。測(cè)試采用黑盒測(cè)試法進(jìn)行測(cè)試是否滿足開發(fā)需求,發(fā)現(xiàn)問(wèn)題或者Bug及時(shí)更正錯(cuò)誤,不斷反復(fù)測(cè)試,直到
運(yùn)行效果達(dá)到預(yù)期目標(biāo)。
圖5 管理員賬單
圖6 用戶的賬單管理
1)賬單管理模塊
測(cè)試內(nèi)容包括:信息輸入的正確性和合法性測(cè)試,對(duì)賬單的增、刪、改、查進(jìn)行測(cè)試。生成的賬單為未審核的狀態(tài),在未經(jīng)審核的情況下經(jīng)理可對(duì)賬單進(jìn)行修改,經(jīng)理審核之后賬單不能修改且不能刪除。管理員可以提交賬單,但是生成賬單的前提是賬單上的供應(yīng)商和對(duì)應(yīng)的產(chǎn)品都存在,否則管理員不能提交該賬單,同時(shí)還可以按照賬單號(hào)進(jìn)行查詢,普通用戶可以查看賬單信息。
2)供應(yīng)商管理模塊
測(cè)試內(nèi)容包括:可以按照供應(yīng)商名字進(jìn)行查詢,同一個(gè)供應(yīng)商可能供應(yīng)不同的產(chǎn)品。管理員可以添加供應(yīng)商,前提是該供應(yīng)商存在供應(yīng)商品。經(jīng)理可以查看供應(yīng)商信息、按照供應(yīng)商的名字進(jìn)行查詢。對(duì)于沒有添加的操作,普通用戶可以查看、添加供應(yīng)商信息。
3)用戶管理模塊
測(cè)試內(nèi)容包括:管理員所特有的模塊,可以按照用戶的名字進(jìn)行查詢,顯示用戶的詳細(xì)信息。
4)數(shù)據(jù)的測(cè)試
為了防止意外,造成數(shù)據(jù)丟失,所以在測(cè)試時(shí)應(yīng)該有重置數(shù)據(jù)的測(cè)試以及數(shù)據(jù)庫(kù)的備份和還原功能的測(cè)試。
5)測(cè)試結(jié)果
功能模塊經(jīng)測(cè)試實(shí)現(xiàn)其功能且請(qǐng)求響應(yīng)時(shí)間都在范圍內(nèi),存在的Bug已經(jīng)完善,則測(cè)試結(jié)束。
4.2 功能測(cè)試
總體測(cè)試是軟件開發(fā)完之后不可缺少的步驟,本系統(tǒng)采用漸增測(cè)試,將測(cè)試過(guò)功能塊加入系統(tǒng)功能中,依次類推,在測(cè)試時(shí)采用有主到次的方式,最終實(shí)現(xiàn)把所有模塊結(jié)合一起。在測(cè)試中常用到的調(diào)試技術(shù):
1)利用Eclipse自帶的debug斷點(diǎn)調(diào)試,如圖7所示。
2)打印輸出語(yǔ)句,測(cè)試結(jié)果是否達(dá)到預(yù)期,如圖8所示。
3)從調(diào)試窗口觀測(cè)數(shù)據(jù)的變化。
4)在jsp頁(yè)面中使用alert確定方法是否調(diào)用等。
圖7 debug模式調(diào)試
圖8 控制臺(tái)輸出信息如圖
本系統(tǒng)結(jié)合了超市管理的實(shí)際情況,根據(jù)信息管理的要求,各個(gè)功能模塊設(shè)計(jì)的實(shí)現(xiàn)能滿足超市管理實(shí)際工作的要求,可以實(shí)現(xiàn)對(duì)超市管理信息的查詢、修改、刪除、增加還可以進(jìn)行有條件的數(shù)據(jù)查詢,并且按照指定的條件或條件組合進(jìn)行計(jì)算統(tǒng)計(jì)等。此外該系統(tǒng)對(duì)使用的信息對(duì)象有很高的安全要求,對(duì)用戶有嚴(yán)格的管理權(quán)限,對(duì)后臺(tái)數(shù)據(jù)庫(kù)有安全備份、升級(jí)等功能要求,完全可以保證此系統(tǒng)對(duì)數(shù)據(jù)操作的安全性及可靠性。
[1]侯俊杰.Java程序設(shè)計(jì)教程與實(shí)訓(xùn)[M].北京:科學(xué)出版社,2005.
[2]夏寬理.Java語(yǔ)言程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2008.
[3]HUMPHREY W S.軟件工程規(guī)范[M].北京:人民郵電出版社,2004.
[4]劉炳國(guó),韓旭,楊富榮.基于ERP系統(tǒng)的物資采購(gòu)超市化管理[J],河北企業(yè),2013(05):23-27.
(責(zé)任編輯:周小露)
TP311.52
A
1673-2928(2016)06-0026-04
2016-03-20
劉波(1979-)男,河南安陽(yáng)人,安陽(yáng)工學(xué)院飛行學(xué)院講師,研究方向:計(jì)算機(jī)應(yīng)用、數(shù)據(jù)庫(kù)及信息管理系統(tǒng)的研究。