




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
山東農(nóng)業(yè)大學(xué)
掌中校園C2c系統(tǒng)
詳細(xì)設(shè)計(jì)說(shuō)明書
ProceduralDesignSpecification
編寫:董健興
校對(duì):于夢(mèng)
審核:
批準(zhǔn):
開發(fā)單位:山東農(nóng)業(yè)大學(xué)一Perfect
項(xiàng)目負(fù)責(zé)人:董建興
目錄
—.引言4
1.1編寫目的4
1.2.項(xiàng)目背景4
1.3定義4
1.4.參考資料4
二.程序系統(tǒng)的結(jié)構(gòu)6
三.WEB端程序設(shè)計(jì)說(shuō)明7
派消費(fèi)者web端模塊7
3.1程序描述7
3.2功能7
3.3性能8
3.4輸入項(xiàng)8
3.5輸出項(xiàng)8
3.6算法8
?驗(yàn)證碼生成算法9
?HTML字符轉(zhuǎn)換算法11
?圖片轉(zhuǎn)換成byte數(shù)組,并且獲取表單元素算法II
3.7程序邏輯13
?登錄模塊14
?創(chuàng)建商店15
3.8接口17
3.9存儲(chǔ)分配17
3.10.設(shè)計(jì)規(guī)則與約束條件17
3.11測(cè)試計(jì)劃18
四.J2ME端程序設(shè)計(jì)說(shuō)明18
派消費(fèi)者手機(jī)端18
4.1程序描述18
4.2.功能18
4.3.性能19
4.4.輸入項(xiàng)20
4.5輸出項(xiàng)20
4.6算法20
4.7程序邏輯24
?用戶手機(jī)端登錄模塊24
?用戶手機(jī)端修改信息模塊26
?用戶手機(jī)端購(gòu)買模塊27
?用戶手機(jī)端發(fā)布商品模塊29
?管理模塊30
?管理員審核模塊31
4.8接口31
4.9存儲(chǔ)分配31
4.10.限制條件32
4.11測(cè)試計(jì)劃32
五服務(wù)器端程序設(shè)計(jì)說(shuō)明32
5.1程序描述32
5.1.1開發(fā)環(huán)境32
5.1.2應(yīng)用程序模型33
持久層33
邏輯層33
表示層33
5.1.3域模型設(shè)計(jì)33
數(shù)據(jù)庫(kù)表結(jié)構(gòu)的生成35
5.1.4持久層的設(shè)計(jì)35
5.1.5邏輯層設(shè)計(jì)36
5.1.5全文搜索37
全文搜索簡(jiǎn)介37
集成Compass37
實(shí)現(xiàn)全文搜索37
5.1.6發(fā)送E-mail37
配置川S37
JavaMail37
5.1.7發(fā)布web月艮務(wù)38
web服務(wù)38
XFire38
5.2功能38
5.3性能38
5.4輸入項(xiàng)38
5.5輸出項(xiàng)39
5.6算法39
5.7程序邏輯39
5.8接口39
5.9存儲(chǔ)分配40
5.10限制條件40
5.11測(cè)試計(jì)劃40
引言
1.1編寫目的
該詳細(xì)設(shè)計(jì)說(shuō)明書在概要設(shè)計(jì)的基礎(chǔ)上詳細(xì)說(shuō)明了C2C系統(tǒng)的各個(gè)模塊的功
能、所要達(dá)到的性能以及運(yùn)行預(yù)期效果以便開發(fā)小組各個(gè)成員明確了解該軟件各個(gè)
子系統(tǒng)的具體功能分工和實(shí)現(xiàn)。同時(shí)也為大賽評(píng)委了解系統(tǒng)整體設(shè)計(jì)構(gòu)思提供依據(jù)。
預(yù)期讀者:指導(dǎo)老師,大賽評(píng)委,團(tuán)隊(duì)成員,該系統(tǒng)用戶
1.2.項(xiàng)目背景
系統(tǒng)名稱:掌中校園C2c系統(tǒng)
開發(fā)者:山東農(nóng)業(yè)大學(xué)Perfect團(tuán)隊(duì)
面向用戶:
①需要獲取商品信息,進(jìn)行購(gòu)買的在校消費(fèi)者;
②需要擴(kuò)大校園潛在消費(fèi)者的商戶;
③需要發(fā)布商品信息的校園消費(fèi)者
1.3定義
C2C:customertocustomer,即商品和信息從消費(fèi)者直接到消費(fèi)者。
1.4.參考資料
1、《軟件需求說(shuō)明書(GB8567-88)》
2、大賽題目設(shè)置:《基于WebServices的掌上應(yīng)用系統(tǒng)》
3、參考書籍:
《JavaME使用詳解-用Eclipes進(jìn)行移動(dòng)開發(fā)》劉斌編著。北京:電子工業(yè)出
版社,2007.2;
《JavaME核心技術(shù)與最佳實(shí)踐》詹建飛著。北京:電子工業(yè)出版社,2007.1;
《大話設(shè)計(jì)模式》程杰著。北京:清華大學(xué)出版社,2007.12;
《WebService基礎(chǔ)教程》蔡月茹、柳西玲等著;北京:清華大學(xué)出版社,2005;
<WebSerices原理與研發(fā)實(shí)踐》劉家茂、柴曉路著。北京:機(jī)械工業(yè)出版社,
2007.9;
《Spring2.0核心技術(shù)開發(fā)與最佳實(shí)踐》廖雪峰著。北京:電子工業(yè)出版社,
2007.7;
《SpringinAction(第二版)中文版》沃爾斯(美)布雷登巴赫(美)著,
畢慶紅等譯。北京:人民郵電出版社,2008.10;
網(wǎng)上資料及教程
二.程序系統(tǒng)的結(jié)構(gòu)
三.WEB端程序設(shè)計(jì)說(shuō)明
X消費(fèi)者web端模塊
3.1程序描述
3.2功能
功能類別功能名稱、標(biāo)識(shí)符描述
校外商家,商家通過(guò)填寫個(gè)人信息,上傳身
份證復(fù)印件來(lái)注冊(cè),并向系統(tǒng)管理員提交請(qǐng)
求,管理員通過(guò)比對(duì)信息,來(lái)判斷是否允許
商戶注冊(cè)用戶通過(guò),以獲得程序的接入權(quán)限。商家注
冊(cè)完成,并且通過(guò)管理員的審核以后,可以
摭有創(chuàng)建網(wǎng)上商店,上傳商品等功能,宣傳
注冊(cè)
自己的商店、商品,提高自己的經(jīng)濟(jì)效益
學(xué)生,學(xué)生通過(guò)提交自己的真是信息,以及
上傳校園卡影像來(lái)實(shí)現(xiàn)注冊(cè)。注冊(cè)后學(xué)生可
學(xué)生注冊(cè)以在網(wǎng)上實(shí)現(xiàn)網(wǎng)上交易(網(wǎng)上下訂單,面對(duì)
面交易)。也可以在網(wǎng)上瀏覽商品,獲取自己
有用的信息
對(duì)用戶輸入的用戶名、密碼、驗(yàn)證碼進(jìn)行驗(yàn)
用戶登錄用戶登錄證,只有登錄用戶才能使用程序的功能。
登錄后登陸信息將保存在服務(wù)器session中。
查找商品應(yīng)該可以按照商品的各個(gè)屬性查找
查找商品支持查找條件的復(fù)合,為用戶提供盡可能多
的選擇
查找功能
杳找商店也應(yīng)該可以按照商品的各個(gè)屬性查
查找商店找支持查找條件的復(fù)合,為用戶提供盡可能
多的選擇
用戶在瀏覽商品的時(shí)候,可以根據(jù)自己的購(gòu)
買經(jīng)驗(yàn)對(duì)商品的實(shí)用性,性價(jià)比,質(zhì)量?jī)?yōu)劣,
商品評(píng)論
信譽(yù)程度等信息作出評(píng)價(jià),評(píng)價(jià)可以作為其
評(píng)論他消費(fèi)者購(gòu)買的參考
當(dāng)用戶查看商店的時(shí)候,同樣可以對(duì)商店的
商店評(píng)論做出自己的評(píng)價(jià),系統(tǒng)管理員管理評(píng)論,對(duì)
了評(píng)論較差的商店,作出相應(yīng)的處理
功能類別功能名稱、標(biāo)識(shí)符描述
用戶通過(guò)選中商品填寫訂單提交口己的購(gòu)物
請(qǐng)求,并可隨時(shí)查看已發(fā)訂單的狀態(tài)(等待
商品購(gòu)買訂單
中、商戶忽略,正在處理、處理完成)。系統(tǒng)
將訂單轉(zhuǎn)給商品所有者等待其進(jìn)?步處理。
學(xué)生創(chuàng)建的商店不需要再進(jìn)行審核,只要學(xué)
學(xué)生創(chuàng)建商店生的注冊(cè)信息審核完成以后,他就有創(chuàng)建商
店的權(quán)限
創(chuàng)建商店
商戶創(chuàng)建商店需要上傳經(jīng)營(yíng)許可證,商店的
商戶創(chuàng)建商店門頭照,并且需要經(jīng)過(guò)管理員審核后才能對(duì)
該商店進(jìn)行下一步操作
用戶建立商店之后,可以上傳商品到商店,
上傳商品上傳商品商品的信息包括商品的名稱數(shù)量等基本屬性
以及商品的圖片信息
3.3性能
3.4輸入項(xiàng)
Web頁(yè)面用使用了大量的表單,如果只是使用服務(wù)器端驗(yàn)證必定會(huì)加大服務(wù)器的
服務(wù)器負(fù)擔(dān)。所以,程序應(yīng)該采用客戶端與服務(wù)器驗(yàn)證相結(jié)合的方式進(jìn)行驗(yàn)證。
3.5輸出項(xiàng)
系統(tǒng)錯(cuò)誤要打印日志;
用戶錯(cuò)誤給出合理提示,人性化設(shè)計(jì)。
3.6算法
?驗(yàn)證碼生成算法
Bufferedlmagebufflmg=newBufferedlmage(width,height,
BufferedImage.TYPE_INT_RGB);
Graphics2Dg=bufflmg.createGraphics();
Randomrandom=newRandom();
g.setColor(Color.WHITE);
g.fillRect(O,0,width,height);
//設(shè)置字體
Fontfont=newFont("TimesNewRoman",Font.BOLD,20);
g.setFont(font);
//畫邊框
g.setColor(Color.GRAY);
g.drawRect(0,0,width-1,height-1);
g.setColor(Color.GRAY);
//隨機(jī)產(chǎn)生干擾線
for(inti=0;i<50;i++){
intx=random.nextlnt(width);
inty=random.nextlnt(height);
intxl=random.nextlnt(2);
intyl=random.nextlnt(2);
g.drawLine(x,y,x+xl,y+yl);
)
//數(shù)字字母集合
char[]numbersAndLettersStore=
(H0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHUKLMNOPQRSTUVWXYZH)
.toCharArrayO;
StringrandomCode=,n,;
intred=0,green=0,blue=0;
for(inti=0;i<4;i++){
red=random.nextlnt(255);
green=random.nextlnt(255);
blue=random.nextlnt(255);
g.setColor(newColor(red,green,blue));
Stringtem=String.valueOf(numbersAndLettersStore[random
.nextlnt(62)]);
randomCode+=tem;
g.drawString(tem,15*i+16,17);
)
//驗(yàn)證碼保存到Session范圍
HttpSessionsession=req.getSession();
session.setAttribute(ncoden,randomCode.toStringO);
System.out.println(Hservlet里顯示驗(yàn)證碼:H+randomCode.toString());
//禁止緩存
resp.setHeader(nPraman,"no-cache");
resp.setHeaderC^oche-Control",nno-cachen);
resp.setDateHeader(nExpires'\0);
resp.setContentType(nimage/jpegn);
//將圖像輸出到
ServletOutputStreamsos=resp.getOutputStream();
ImageIO.write(bufflmg,njpegn,sos);
sos.close();
?HTML字符轉(zhuǎn)換算法
publicstaticStringHTMLChange(Stringsource){
StringchangeStr=,n,;
changeStr=source.replaceAll(n&',,n&");
changeStr=changeStr.replaceAll(nn,n n);
changeStr=changeStr.replaceAll("v”J<”);
changeStr=changeStr.replaceAll(H>°">H);
changeStr=changeStr.replaceAH(,,\r\n,,,,,<br>");
returnchangeStr;
)
publicstaticStringlextAreaChange(Stringsource){
StringchangeStr=,n,;
changeStr=source.replaceAll(',<br>,,,',\nn);
returnchangeStr;
?圖片轉(zhuǎn)換成byte數(shù)組,并且獲取表單元素算法
while(it.hasNext())
Fileitemfl=(Fileltem)it.next();〃類型轉(zhuǎn)換
if(fi.isFormField())
{〃判斷該Fileitem對(duì)象是否是一個(gè)普通表單類型
try(
Stringname=fi.getFieldName();〃得到普通表單類型的表單名
Stringcontent=fi.getString("UTF-8");〃用指定編碼得到普通表單
的值
System.out.println("formField,Name:"+name+''的值為:"+content);
if(name!=null&&content!=null)
map.put(name,content);
}catch(UnsupportedEncodingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
else
(
try(
StringpathStr=fi.getName。;//得到文件表單的值,就是用戶本地
的文件路徑
〃如果文件表單為空,則不處理
if(pathStr.trim().equals(',n))
(
continue;
picByte=fi.get();〃fi.write(pathDest);〃寫文件
catch(Exceptione)
e.printStackTrace();
returnnull;
finally{〃立即刪除保存表單字段內(nèi)容的臨時(shí)文件
fi.delete();
formlnfo.setPicBytre(picByte);
formlnfo.setMap(map);
returnformInfo;
3.7程序邏輯
?登錄模塊
?創(chuàng)建商店
開始
3.8接口
3.9存儲(chǔ)分配
3.10.設(shè)計(jì)規(guī)則與約束條件
方法命名規(guī)則
符合java命名規(guī)則
Package(包)的命名:采用完整的英文描述符,應(yīng)該都是由小寫字母組成。
Interface(接口)、Class(類)的命名:采用完整的英文描述符說(shuō)明接口封裝,所有
單詞的第一個(gè)字母大寫。通常由多個(gè)單詞合成一個(gè)類名,要求每個(gè)單詞的首字母也
要大寫。
方法的命名:方法名的第一個(gè)單詞應(yīng)該是動(dòng)詞,大小寫可混用,但首字母應(yīng)小
寫。在每個(gè)方法名內(nèi),大寫字母將詞分隔并限制使用下劃線。參數(shù)的名字必須和變
量的命名規(guī)范一致。使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段
--樣的名字(這里方法命名和MyEclipse自動(dòng)生成getter和setter一致):
setCounter(intsize){
this.size=size;
)
避免長(zhǎng)型名稱(小于15個(gè)字符比較合適),巧妙節(jié)儉地使用縮寫,將標(biāo)準(zhǔn)首
字母縮寫詞的第一個(gè)字母大寫。
使用大小寫混合增強(qiáng)名稱的可讀性。
屬性(變量)的第一個(gè)字母要小寫
避免名稱過(guò)于相似或僅在大小寫方面有區(qū)別
包結(jié)構(gòu)
Com.cc2c.bean放javaBean
Com.cc2c.filter放置servlet
Com.cc2c.menu放置用于生成菜單的servlet
Com.cc2c.servlet主要的servlet
Com.cc2c.admin.servlet后臺(tái)管理的servlet
Com.cc2c.serviceWebServie客戶端
Com.cc2c.dao數(shù)據(jù)庫(kù)操作類
Com.cc2c.monitor監(jiān)視器類放置在這里
3.11測(cè)試計(jì)劃
四.J2ME端程序設(shè)計(jì)說(shuō)明
派消費(fèi)者手機(jī)端
4.1程序描述
本程序?yàn)檎粕显O(shè)備(手機(jī))開發(fā)是客戶端的主要部分。提供掌上應(yīng)用的所有功
能,可供多個(gè)用戶同時(shí)使用。由于掌上設(shè)備的局限性,此部分不包含用戶開店注冊(cè)
功能。
4.2.功能
具體功能列表如下:
功能類別功能名稱、標(biāo)識(shí)符描述
對(duì)用戶輸入的用戶名、密碼進(jìn)行驗(yàn)證,驗(yàn)證
用戶登錄用戶登錄通過(guò)后,該用戶可以使用系統(tǒng)中分配到的權(quán)
限進(jìn)行操作,否則拒絕使用。
功能類別功能名稱、標(biāo)識(shí)符描述
用戶更新個(gè)人信息,包括資料圖片、地址信
個(gè)人資料維護(hù)
息、登錄密碼、聯(lián)系方式等
維護(hù)基本資料用戶修改,刪除,新增所開店鋪的商品數(shù)據(jù),
店鋪信息更新系統(tǒng)根據(jù)用戶的操作,對(duì)商品資料進(jìn)行更新
或顯示。
用戶通過(guò)輸入查詢的關(guān)鍵字進(jìn)行模糊查詢。
模糊查詢系統(tǒng)內(nèi)部將執(zhí)行相應(yīng)的查詢操作并顯示結(jié)
果。
瀏覽查看
用戶通過(guò)輸入內(nèi)容或選擇動(dòng)態(tài)得到的選項(xiàng)
高級(jí)查詢(包括商品分類,價(jià)格區(qū)間的獲得)等進(jìn)行
精確的查詢。
購(gòu)物車用戶可將瀏覽到的商品其放入購(gòu)物車暫存。
用戶通過(guò)選中商品填寫訂單提交自己的購(gòu)物
商品購(gòu)買請(qǐng)求,并可隨時(shí)查看已發(fā)訂單的狀態(tài)(等待
訂單
中、正在處理、處理完成)。系統(tǒng)將訂單轉(zhuǎn)給
商品所有者等待其進(jìn)一步處理。
評(píng)論設(shè)定限制,只有買過(guò)此店鋪商品的人才
對(duì)店鋪評(píng)論有評(píng)論的權(quán)限。評(píng)論一旦產(chǎn)生只有管理員有
權(quán)限刪除。
評(píng)論
用戶可以針對(duì)某件商品進(jìn)行評(píng)論或提問(wèn)。評(píng)
對(duì)商品評(píng)論
論一旦產(chǎn)生只有管理員有權(quán)限刪除。
對(duì)校內(nèi)新聞評(píng)論用戶可針對(duì)某條校內(nèi)新聞發(fā)表自己的評(píng)論。
一般權(quán)限的用戶即可發(fā)布廣告性質(zhì)的供求信
信息發(fā)布跳蚤市場(chǎng)
息,無(wú)需審核即可發(fā)布成功。
擁有系統(tǒng)維護(hù)權(quán)限的用戶可以增加新用戶,
維護(hù)用戶資料并可以對(duì)用戶的資料進(jìn)行修改、刪除以及查
詢。
擁有權(quán)限管理的用戶可以設(shè)定其他用戶對(duì)軟
處理舉報(bào)及意見建議
件的訪問(wèn)權(quán)限。
系統(tǒng)維護(hù)
用戶重新設(shè)定自己的密碼
修改密碼
擁有系統(tǒng)維護(hù)權(quán)限的用戶可以批準(zhǔn)店鋪,并
維護(hù)店鋪資料
可以對(duì)用戶的資料進(jìn)行修改、刪除以及查詢。
維護(hù)校內(nèi)信息刪除不合法或過(guò)時(shí)的信息
4.3.性能
1、正確性。業(yè)務(wù)邏輯錯(cuò)誤不允許出現(xiàn)。
2、響應(yīng)速度。WebService的調(diào)用及客戶端的響應(yīng)速度要在用戶的忍耐范圍之
內(nèi)。
3、易用性。無(wú)需專門的學(xué)習(xí)即可使用
4、清晰性。業(yè)務(wù)流程明確。
5、可擴(kuò)展性。能根據(jù)變更的需求,在現(xiàn)有系統(tǒng)基礎(chǔ)之上改變擴(kuò)充功能。
6、靈活性。服務(wù)器端可運(yùn)行在大多數(shù)主流的操作平臺(tái)之上。手機(jī)客戶端滿足
定型號(hào)的手機(jī)的使用。
4.4.輸入項(xiàng)
基本數(shù)據(jù)類型的輸入:輸入項(xiàng)由用戶的操作和選擇實(shí)現(xiàn),不同的輸入項(xiàng)對(duì)輸入
要求不同。如密碼輸入時(shí)必須安全顯示;Email輸入時(shí)必須符合Email基本格式;
電話號(hào)碼輸入時(shí)必須全為數(shù)字,長(zhǎng)度不超過(guò)11個(gè)字符等。傳輸格式XML。
圖片數(shù)據(jù)類型:用戶提交個(gè)人信息時(shí)上傳的圖片資料,大小應(yīng)控制在2M內(nèi)。傳
輸格式XML。
4.5輸出項(xiàng)
錯(cuò)誤輸出:對(duì)有用戶操作引起的錯(cuò)誤應(yīng)通過(guò)提示框給出明確的提示。系統(tǒng)內(nèi)部
錯(cuò)誤拋出異常,應(yīng)盡量顯示錯(cuò)誤原因。
基本數(shù)據(jù)類型輸出:Customitem或Form上顯示。
圖片數(shù)據(jù)類型的輸出:Canvas、Form或Customitem上顯示
4.6算法
①圖片放大縮小處理算法:
publicstaticImageZoomlmage(Imagesrc,intdesW,intdesH){
Imagedeslmg=null;
intsrcW=src.getWidth();//原始圖像寬
intsrcH=src.getHeight();//原始圖像高
int[]srcBuf=newint[srcW*srcH];//原始圖片像素信息緩存
src.getRGB(srcBuf,0,srcW,0,0,srcW,srcH);
//計(jì)算插值表
int[]tabY=newint[desH];
int[]tabX=newint[desW];
intsb=0;
intdb=0;
inttems=0;
inttemd=0;
intdistance=srcH>desH?srcH:desH;
for(inti=0;i<=distance;i++){/*垂直方向
tabY[db]=sb;
tems+=srcH;
temd+=desH;
if(tems>distance){
tems-=distance;
sb++;
)
if(temd>distance){
temd-=distance;
db++;
)
)
sb=0;
db=0;
tems=0;
temd=0;
distance=srcW>desW?srcW:desW;
for(inti=0;i<=distance;i++){/*水平方向*/
tabX[db]=(short)sb;
terns+=srcW;
temd+=desW;
if(terns>distance){
terns-=distance;
sb++;
)
if(temd>distance){
temd-=distance;
db++;
)
)
//生成放大縮小后圖形像素亞
int[]desBuf=newint[desW*desH];
intdx=0;
intdy=0;
intsy=0;
intoldy=-1;
for(inti=0;i<desH;i++){
if(oldy==tabY[i]){
System.arraycopy(desBufzdy-desW,desBufzdy,desW);
}else{
dx=0;
for(intj=0;j<desW;j++){
desBuf[dy+dx]=srcBuf[sy+tabX[j]];
dx++;
)
sy+=(tabY[i]-oldy)*srcW;
)
oldy=tabY[i];
dy+=desW;
)
//生成圖片
deslmg=Image.createRGBImage(desBuffdesW,d一sH,false);
returndesImg;
}
②低級(jí)界面自動(dòng)換行算法:
//設(shè)置低級(jí)界面的文木自動(dòng)換行
publicstaticVectorgetSubsection(Stringstr,intCharacterNumber){
Vectorvector=newVector();
int;
while(!str.equals("")){
if(str.length()>CharacterNumber){
vector.addElement(str.substring(0,CharacterNumber));
str=str.substring(CharacterNumber);
)
else{
vector.addElement(str);
str=*'n;
)
)
returnvector;
4.7程序邏輯
?用戶手機(jī)端登錄模塊
?用戶手機(jī)端修改信息模塊
?用戶手機(jī)端購(gòu)買模塊
?用戶手機(jī)端發(fā)布商品模塊
?管理模塊
在管理員端的管理工作主要是對(duì)于被舉報(bào)的,不合法的店鋪、用戶進(jìn)行刪除,
所以主要介紹一下刪除功能的實(shí)現(xiàn)
?管理員審核模塊
4.8接口
參見《掌上校園C2c概要設(shè)計(jì)說(shuō)明》提供的接口。
4.9存儲(chǔ)分配
J2ME客戶端和Web客戶端共用一個(gè)數(shù)據(jù)庫(kù)。
4.10.限制條件
1、圖片大小應(yīng)控制,并對(duì)圖片分辨率進(jìn)行限制。
2、輸入數(shù)據(jù)限定為基本數(shù)據(jù)類型,故開店注冊(cè)不宜在此實(shí)現(xiàn)。
3、由于掌上設(shè)備的局限性對(duì)系統(tǒng)運(yùn)行占用的內(nèi)存和存儲(chǔ)空間有一定要求。
4、在手機(jī)端為避免信息讀取不全,手機(jī)硬件不夠等客觀因素造成管理員管理失當(dāng),
所以只有簡(jiǎn)單的刪除管理和審核管理,讓手機(jī)端的管理權(quán)限有局限性。
4.11測(cè)試計(jì)劃
1、本部分測(cè)試時(shí)輸入的數(shù)據(jù)應(yīng)為基本數(shù)據(jù)類型,輸出的數(shù)據(jù)在手機(jī)屏幕顯示。
2、測(cè)試應(yīng)當(dāng)用真機(jī)作為測(cè)試設(shè)備,檢測(cè)系統(tǒng)運(yùn)行內(nèi)存占用情況和運(yùn)行速度,盡量貼
近實(shí)際。
3、輸入的數(shù)據(jù)要能代表一般性又不乏特殊性。
4、J2ME客戶端實(shí)現(xiàn)的方法都要用數(shù)據(jù)進(jìn)行測(cè)試。
5、鏈接WebService時(shí)用本地PC機(jī)作為服務(wù)器。
五服務(wù)器端程序設(shè)計(jì)說(shuō)明
5.1程序描述
5.1.1開發(fā)環(huán)境
本程序是服務(wù)器端邏輯層以及控制層開發(fā),部署在服務(wù)器上,構(gòu)建系統(tǒng)框架提供通
用接口發(fā)布web服務(wù)。程序使用spring2.0+hibernate3.2+JDK5.0+MySql5配置開發(fā)環(huán)境,
使用ant作為項(xiàng)目的構(gòu)建工具,XDolet自動(dòng)生成配置文件。
5.1.2應(yīng)用程序模型
采用三層應(yīng)用程序模型,數(shù)據(jù)庫(kù)、SpringloC容器部署持久層邏輯層以及表示層,一
方面集成XFire開發(fā)web服務(wù),另一方面使用瀏覽器顯示管理員的基本操作。
持久層
持久層負(fù)責(zé)實(shí)現(xiàn)所有數(shù)據(jù)的訪問(wèn)功能,他將上層傳入的數(shù)據(jù)寫入到持久化的存儲(chǔ)系
統(tǒng)中,并根據(jù)上層的要求讀取或者修改現(xiàn)有的數(shù)據(jù)。數(shù)據(jù)庫(kù)映射采用對(duì)象-關(guān)系映射
(0/RMapping)的方案,采用hibernate構(gòu)建ORM系統(tǒng)。
邏輯層
邏輯層負(fù)責(zé)完成應(yīng)用程序的邏輯功能,包括調(diào)用持久層完成實(shí)體對(duì)象的存取、安全
檢查、事務(wù)控制等。抽象出邏輯層的好處是講應(yīng)用程序的邏輯功能產(chǎn)品那個(gè)表示層中
剝離,這樣就能服用邏輯層的功能。這樣增加一個(gè)新的應(yīng)用程序接口比如web服務(wù)不
會(huì)影響到表示層。此外,邏輯層也可以看作是對(duì)持久層的一個(gè)門面模式,簡(jiǎn)化表示層
對(duì)這些邏輯功能的調(diào)用。
表示層
表示層是與用戶打交道的UI界面。在此我們開發(fā)出web服務(wù)與其他已存在的用戶系
統(tǒng)相結(jié)合,同時(shí)我們開發(fā)出管理員管理界面,采用spring的MVC模式,采用C/S結(jié)構(gòu)
瀏覽器訪問(wèn)相應(yīng)的站點(diǎn)。
5.1.3域模型設(shè)計(jì)
傳統(tǒng)的應(yīng)用程序是先設(shè)計(jì)完成數(shù)據(jù)庫(kù)的表結(jié)構(gòu)然后根據(jù)表的結(jié)構(gòu)設(shè)計(jì)應(yīng)用程序中持
有數(shù)據(jù)的對(duì)象,這種設(shè)計(jì)方式本質(zhì)中仍是以關(guān)系數(shù)據(jù)庫(kù)為基礎(chǔ),不符合面向?qū)ο蟮脑O(shè)
計(jì)方式如圖.1.
在本系統(tǒng)中我們從域模型入手,首先設(shè)計(jì)域?qū)ο蟮哪P停⒋_定其關(guān)聯(lián)模式,然后
通過(guò)Hibernate提供的DDL工具,自動(dòng)地將域模型映射為數(shù)據(jù)庫(kù)的表結(jié)構(gòu),這種方式
符合面向?qū)ο蟮脑O(shè)計(jì)方式,而且更容易建立UML模型,如圖5.1.2。
JavaBean
數(shù)據(jù)庫(kù)表結(jié)構(gòu),hbm配置文件
圖5.5.11圖5.1.2
根據(jù)本系統(tǒng)的功能,我們?cè)O(shè)計(jì)一下幾個(gè)實(shí)體。
1.Student
Student實(shí)體代表一個(gè)用戶,因?yàn)橛脩裘ㄒ凰灾苯幼鳛橹麈I,private屬性用來(lái)表
示用戶的權(quán)限,其他屬性是用戶的基本個(gè)人信息,一是用來(lái)管理員驗(yàn)證信息,二是用
來(lái)填寫訂單時(shí)默認(rèn)的屬性,避免用戶重復(fù)輸入。
2.Businessman
Businessman實(shí)體戶,用戶名直接作為主鍵,其余屬性為基本信息,用于管理員的審
核以及用戶的瀏覽。
3.Category
Category實(shí)體代表這分類,由于商品的分類是一種樹形結(jié)構(gòu),并非關(guān)系數(shù)據(jù)庫(kù)的二
維結(jié)構(gòu),因此需要以?種合適的方式保存這種樹形結(jié)構(gòu)。
根據(jù)參考一系列的資料我們?cè)O(shè)計(jì)根據(jù)整型ID本身的關(guān)系表示層次關(guān)系,這種方式類
似IP地址的掩碼,例如電腦配件的ID是0x0B00,鼠標(biāo)和鍵盤的分類ID分別為OxOBOl
和0X0B02,用戶查詢電腦配件時(shí)使用掩碼就可以一次查詢到所有的電腦配件。
SelectgformGoodsasgwherebitand(Category,OxOBOO)=OxOBOO
注:bitand為hibernate自定義函數(shù),進(jìn)行&運(yùn)算。
4.Basket
Basket為購(gòu)物車,主鍵采用UUID主鍵生成策略,包含Goods和Student以及商品數(shù)
量和加入時(shí)間屬性。
5.Order和orderitem
6.Order實(shí)體用于保存用戶的一個(gè)訂單,一個(gè)Order對(duì)象還包括若干個(gè)Orderitem
對(duì)象,表示訂單的每一項(xiàng)書籍和數(shù)量。
7.Shop
Shop實(shí)體表示一個(gè)商店,商店的ID采用主鍵自動(dòng)生成,其屬性除了店主(host)商
品(list<Goods)外還包括一些商店的基本屬性,比如地址、簡(jiǎn)述等,由于商店不僅僅
是businessman所擁有的,還包括一些學(xué)生開得虛擬店鋪,為了不破壞實(shí)體的完整性,
倉(cāng)促之間設(shè)計(jì)的實(shí)體關(guān)系已經(jīng)不符合3NF標(biāo)準(zhǔn),在以后的優(yōu)化中會(huì)盡快改正。
8.Comment、Commentshop、CommentMarket
這些實(shí)體用于表示一條用戶的餓評(píng)論,分別為對(duì)商品、商店和市場(chǎng)信息的評(píng)論。
9.Campusnews>Inform>suggestion
分別表示校內(nèi)新聞,檢舉信息和意見建議
10.Admin
管理員,主鍵為用戶名。
集體ER關(guān)系見圖
數(shù)據(jù)庫(kù)表結(jié)構(gòu)的生成
完成域?qū)ο竽P驮O(shè)計(jì)后,我們就可以利用工具完成域?qū)ο竽P偷綌?shù)據(jù)庫(kù)關(guān)系模型的
自動(dòng)轉(zhuǎn)化,從而獲得數(shù)據(jù)庫(kù)表結(jié)構(gòu)的DDL腳本。應(yīng)用Hibernate提供的HibernateTools
工具完成轉(zhuǎn)化,hibernatetools以Ant擴(kuò)展任務(wù)形式來(lái)實(shí)現(xiàn)DDL的自動(dòng)生成,編輯
hibemate.cfg.xml配置文件,然后在Ant中建立任務(wù)make-schema,講自動(dòng)生成的
schema.sql放在/sql下,應(yīng)用專用的數(shù)據(jù)庫(kù)工具欲行這個(gè)DDL腳本就可以生成表結(jié)構(gòu)
的創(chuàng)建了。
5.1.4持久層的設(shè)計(jì)
持久層中DAO模式為標(biāo)準(zhǔn)模式,再次我們不采用spring提供的現(xiàn)成的DAO體系,
而是設(shè)計(jì)一個(gè)類型安全的泛型DAO,通過(guò)泛型DAO,能夠講公共代碼以泛型的方式
放入泛型超類中,進(jìn)一步減少代碼量。
注:本設(shè)計(jì)方式參考《Spring2.0核心技術(shù)與最佳實(shí)踐》
分頁(yè)的實(shí)現(xiàn)
設(shè)計(jì)Page對(duì)象,初始化每頁(yè)顯示的記錄數(shù)和顯示的頁(yè)數(shù),然后利用hql語(yǔ)言查詢出
所需要的結(jié)果。
一般hql查詢首先利用selectcount查詢結(jié)果總數(shù)賦予totalCount,對(duì)于
DetachedCriteria的記錄總數(shù)查詢采用專門的方法獲得,具體參照代碼。
5.1.5邏輯層設(shè)計(jì)
邏輯層是需要實(shí)現(xiàn)應(yīng)用程序的邏輯,一般的操作簡(jiǎn)單調(diào)用邏輯層。根據(jù)系統(tǒng)設(shè)計(jì)應(yīng)
該判斷權(quán)限,鑒于能力時(shí)間限制亟待進(jìn)一步開發(fā)。邏輯層設(shè)計(jì)為外觀模式(Faqade)
1.StudentService學(xué)生操作
2.BusinessService商人操作
3.Adminservice管理員操作
4.Publicservice公共的錯(cuò)做
5.Mailservice郵件操作
6.SearchSercice全文搜索操作
7.FileupSercice上傳操作
圖
5.1.5全文搜索
全文搜索簡(jiǎn)介
全文搜索是根據(jù)關(guān)鍵字搜索的一種查詢方式,能夠快速的定位包含該關(guān)鍵字的相關(guān)
記錄,原理是分詞+索引。在Java領(lǐng)域,開源全文搜索引擎Lucene是純Java編寫的
全文搜索引擎,可以嵌套任何Java編寫的程序中。
集成Compass
由于Lucene提供的API的都比較底層,需要手動(dòng)編寫大量的代碼和實(shí)現(xiàn)
引和搜索兩大部分的功能,并且操作的數(shù)據(jù)是Lucene提供的Document和
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 9《朋友讓我們道聲再見》教學(xué)設(shè)計(jì)+教學(xué)設(shè)計(jì)-2023-2024學(xué)年心理健康四年級(jí)下冊(cè)(教科版)
- 2023七年級(jí)數(shù)學(xué)下冊(cè) 第3章 因式分解3.3 公式法第1課時(shí) 用平方差公式因式分解教學(xué)設(shè)計(jì) (新版)湘教版
- WPS表格中的數(shù)據(jù)運(yùn)算(教學(xué)設(shè)計(jì))2023-2024學(xué)年四年級(jí)下冊(cè)信息技術(shù)龍教版
- 2023三年級(jí)數(shù)學(xué)下冊(cè) 三 美麗的街景-兩位數(shù)乘兩位數(shù)信息窗3 多彩的街道夜景第4課時(shí)教學(xué)設(shè)計(jì) 青島版六三制
- 2024-2025學(xué)年高中物理 第十章 熱力學(xué)定律 3 熱力學(xué)第一定律 能量守恒定律(3)教學(xué)設(shè)計(jì) 新人教版選修3-3
- Unit3 My School SectionA Pronunciation 教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版(2024)七年級(jí)英語(yǔ)上冊(cè)
- 8 《世說(shuō)新語(yǔ)》二則2024-2025學(xué)年新教材七年級(jí)上冊(cè)語(yǔ)文新教學(xué)設(shè)計(jì)(統(tǒng)編版2024)
- 一年級(jí)體育上冊(cè) 第四課廣播操第二節(jié)教學(xué)設(shè)計(jì)
- 賀卡創(chuàng)意美術(shù)課件
- Module 7Unit 1教學(xué)設(shè)計(jì)2023-2024學(xué)年外研版英語(yǔ)八年級(jí)下冊(cè)
- TGDNAS 043-2024 成人靜脈中等長(zhǎng)度導(dǎo)管置管技術(shù)
- 安徽省江淮十校2023-2024學(xué)年高一下學(xué)期6月期末測(cè)試語(yǔ)文試題(解析版)
- 茶農(nóng)和公司合作協(xié)議
- 《建設(shè)工程造價(jià)咨詢工期標(biāo)準(zhǔn)(房屋、市政及城市軌道交通工程)》
- DBJ∕T 15-120-2017 城市軌道交通既有結(jié)構(gòu)保護(hù)技術(shù)規(guī)范
- 江蘇省2024年中職職教高考文化統(tǒng)考英語(yǔ)試卷
- (新湘科版)六年級(jí)下冊(cè)科學(xué)知識(shí)點(diǎn)
- 小學(xué)道德與法治小課題研究課題
- 激光干涉儀的相位測(cè)量與信號(hào)處理方法
- 疼痛的中醫(yī)護(hù)理
- 2024年許昌職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
評(píng)論
0/150
提交評(píng)論