張 文,方 巍,2,賈雪磊
(1.南京信息工程大學(xué) 計(jì)算機(jī)與軟件學(xué)院,江蘇 南京 210044;2.蘇州大學(xué) 江蘇省計(jì)算機(jī)信息處理技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇 蘇州 215006)
在信息發(fā)達(dá)的當(dāng)下,隨著科技的發(fā)展和時(shí)代的進(jìn)步,互聯(lián)網(wǎng)在國(guó)內(nèi)始終保持著一種迅猛發(fā)展的態(tài)勢(shì),互聯(lián)網(wǎng)代替和完善傳統(tǒng)模式順應(yīng)了時(shí)代發(fā)展的潮流,計(jì)算機(jī)應(yīng)用技術(shù)的發(fā)展帶來(lái)的便利已經(jīng)在生活的方方面面得到了直觀的體現(xiàn)。
由于國(guó)內(nèi)有著相對(duì)較高的住房自有率和流動(dòng)人口量,住房問(wèn)題是當(dāng)前一項(xiàng)嚴(yán)重的社會(huì)問(wèn)題。而經(jīng)過(guò)數(shù)年的租賃市場(chǎng)情況可以發(fā)現(xiàn),傳統(tǒng)中介式租屋模式已無(wú)法滿足人們對(duì)高效實(shí)時(shí)信息資源的需求,房屋租賃管理系統(tǒng)也在不斷研究開(kāi)發(fā)并在實(shí)際應(yīng)用中得以體現(xiàn)。然而,目前實(shí)現(xiàn)的房屋租賃系統(tǒng)大多還依賴于中介,但中介這一角色在很多地區(qū)都普遍存在著服務(wù)不規(guī)范,合租者之間租賃關(guān)系不穩(wěn)定,市場(chǎng)上房源信息虛假有隱瞞等一系列問(wèn)題,這在很大程度上影響了租賃市場(chǎng)的發(fā)展,造成交易成本較高,風(fēng)險(xiǎn)較大,中間商賺取差價(jià)過(guò)高,作息不能磨合的合租人毀約等嚴(yán)重后果。針對(duì)以上問(wèn)題,該系統(tǒng)在實(shí)現(xiàn)了房屋租賃系統(tǒng)基本功能的基礎(chǔ)之上,不再過(guò)多依賴于中介角色,為用戶直接上傳房源信息提供平臺(tái),并增加了為用戶個(gè)性化推薦房源和作息喜好相似舍友的功能。文中旨在開(kāi)發(fā)一款功能完善、操作簡(jiǎn)單的智能化合租系統(tǒng),順應(yīng)當(dāng)代人們的需求。近年來(lái),開(kāi)發(fā)出可以使得租房流程自主化、透明化、高效化的在線個(gè)性化推薦合租系統(tǒng)具有一定的研究?jī)r(jià)值和意義。
文中基于SSM的在線合租系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)展開(kāi)論述,主要介紹了系統(tǒng)總體設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、系統(tǒng)功能設(shè)計(jì)實(shí)現(xiàn)和系統(tǒng)測(cè)試設(shè)計(jì)等。
該系統(tǒng)采用B/S結(jié)構(gòu)和SSM框架設(shè)計(jì)[1-4],主要分為四個(gè)層次:視圖層、控制層、服務(wù)層、數(shù)據(jù)持久層。系統(tǒng)架構(gòu)[5]如圖1所示。
圖1 系統(tǒng)架構(gòu)
(1)視圖層:主要用于系統(tǒng)界面的顯示。主要采用Bootstrap框架進(jìn)行開(kāi)發(fā),系統(tǒng)所有功能模塊直接面向用戶,是用戶對(duì)系統(tǒng)最直接的感受。
(2)控制層:在調(diào)用修改數(shù)據(jù)時(shí),涉及到form表單中字段信息變化通過(guò)Controller函數(shù)寫JavaBean對(duì)象,Spring框架自動(dòng)對(duì)其封裝。
(3)服務(wù)層:它是數(shù)據(jù)庫(kù)訪問(wèn)接口,用于從數(shù)據(jù)源處獲取數(shù)據(jù)。業(yè)務(wù)邏輯層與訪問(wèn)數(shù)據(jù)庫(kù)代碼之間的耦合度可以通過(guò)服務(wù)層降低。
(4)數(shù)據(jù)持久層:主要是將系統(tǒng)采集到的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,或者用于從數(shù)據(jù)源處獲取數(shù)據(jù),Mybatis創(chuàng)建的SqlSessionFactory實(shí)例可以在配置文件中得到Sqlsession對(duì)象,該對(duì)象包含數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法。
該系統(tǒng)主要是為上傳房源的戶主以及想找房找人合租用戶之間的信息流通和交易提供平臺(tái)。該系統(tǒng)設(shè)置了前臺(tái)客戶端和后臺(tái)管理端兩種訪問(wèn)子系統(tǒng)[6],登錄后權(quán)限也不同,分別具有與登錄身份對(duì)應(yīng)的功能模塊[7]。其中,客戶端只可以進(jìn)行個(gè)人權(quán)限范圍內(nèi)的相關(guān)操作,而管理員從后臺(tái)登錄后可獲取系統(tǒng)中全部用戶、房源、需求信息、房源預(yù)訂單信息的管理權(quán)限。圖2為系統(tǒng)總功能模塊結(jié)構(gòu)[8]。
圖2 系統(tǒng)總功能結(jié)構(gòu)
在實(shí)現(xiàn)系統(tǒng)功能流程中,數(shù)據(jù)庫(kù)起著至關(guān)重要的作用,數(shù)據(jù)庫(kù)的設(shè)計(jì)直接影響了整個(gè)系統(tǒng)的運(yùn)行效率[9-11]。針對(duì)房屋合租流程的實(shí)際情況,需要對(duì)所有在系統(tǒng)中注冊(cè)的用戶信息、上傳的房源信息、尋求同居舍友需求信息、預(yù)訂單信息、登錄用戶收藏的舍友信息等分別進(jìn)行存儲(chǔ)。在項(xiàng)目運(yùn)行過(guò)程中,調(diào)用相關(guān)業(yè)務(wù)所需的數(shù)據(jù)信息。
用戶信息表主要記錄所有在系統(tǒng)中注冊(cè)過(guò)的用戶信息,包括用戶名、用戶id、密碼、性別、年齡、聯(lián)系方式等相關(guān)屬性;房源信息表主要為了保存房源相關(guān)信息,包括房源id、房型、所在街區(qū)、出租狀態(tài)、房屋組成、所在地區(qū)、戶主id、面積、報(bào)價(jià)、房源圖片等具體屬性;尋友需求表主要包括尋友需求id、尋友性別要求、尋友年齡范圍、房源所在地區(qū)、房屋組成要求、價(jià)格范圍、房型、生活模式、用戶id、是否接受寵物等具體屬性;房源預(yù)訂單表主要包含預(yù)約用戶id、預(yù)約單id、房源id、訂單狀態(tài)以及預(yù)約時(shí)間等具體屬性;舍友收藏?cái)?shù)據(jù)表主要是記錄登錄用戶收藏的所有舍友信息,主要包括收藏id、用戶id以及被收藏的舍友id等具體屬性。
整個(gè)系統(tǒng)流轉(zhuǎn)過(guò)程中,各表之間相互關(guān)聯(lián)進(jìn)行信息交互,系統(tǒng)的E-R圖如圖3所示。
圖3 系統(tǒng)E-R圖
考慮到成本、效率、時(shí)間等多方面因素,本系統(tǒng)選擇開(kāi)源數(shù)據(jù)庫(kù)服務(wù)器MySQL作為網(wǎng)站的信息存儲(chǔ)工具[12-14],MySQL數(shù)據(jù)庫(kù)體積小、速度快、總體成本較低,是小型網(wǎng)站系統(tǒng)開(kāi)發(fā)的優(yōu)先選擇。
本系統(tǒng)的設(shè)計(jì)遵循SSM框架設(shè)計(jì),將視圖層、數(shù)據(jù)層和業(yè)務(wù)邏輯層分開(kāi),嚴(yán)格遵循模型(model)-視圖(view)-控制器(controller)模式[15-16]。視圖層采用XML文件進(jìn)行設(shè)計(jì),主要包含注冊(cè)頁(yè)面、登錄頁(yè)面、房源列表頁(yè)、房源信息上傳頁(yè),根據(jù)登錄權(quán)限用戶訪問(wèn)個(gè)人已預(yù)約房源頁(yè)面、舍友收藏頁(yè)面等,后臺(tái)管理端管理員可以訪問(wèn)全部用戶信息界面、房源信息列表頁(yè)面、尋友需求列表頁(yè)面等。業(yè)務(wù)邏輯層實(shí)現(xiàn)數(shù)據(jù)的傳輸和操作主要是通過(guò)消息——活動(dòng)機(jī)制(intent-activity)。數(shù)據(jù)層主要是在系統(tǒng)運(yùn)行過(guò)程中,通過(guò)Service方式調(diào)用MySQL數(shù)據(jù)庫(kù)中存儲(chǔ)的相關(guān)業(yè)務(wù)所需要的數(shù)據(jù)[17]。
訪問(wèn)在線合租系統(tǒng)時(shí),用戶和管理員擁有不同的登錄界面,成功登錄后也將進(jìn)入不同的子系統(tǒng)。成功登錄的用戶具有查看系統(tǒng)中所有已上傳的房源信息和尋友需求信息的權(quán)限,對(duì)自己個(gè)人上傳的一切信息具有隨時(shí)修改的權(quán)限。而成功登錄的管理員擁有對(duì)系統(tǒng)中上傳的絕大多數(shù)信息的管理權(quán)限。
房源信息模塊的功能針對(duì)成功登錄系統(tǒng)網(wǎng)站的用戶,可進(jìn)行上傳最新房源信息,了解房源詳情,預(yù)約看房時(shí)間,與房源戶主聯(lián)系等權(quán)限范圍內(nèi)的操作,系統(tǒng)客戶端查找房源部分效果如圖4所示。
圖4 客戶端房源列表界面
在尋友需求模塊,可以感受到系統(tǒng)為不同用戶提供的個(gè)性化服務(wù)。系統(tǒng)通過(guò)加入?yún)f(xié)同過(guò)濾推薦算法和基于內(nèi)容的推薦算法,根據(jù)用戶歷史行為和搜索記錄,為當(dāng)前用戶推送可能感興趣的信息?;谟脩舻膮f(xié)同過(guò)濾算法是按照用戶的偏好信息找到他的相鄰鄰居用戶,根據(jù)鄰居的相似度權(quán)重和對(duì)物品信息的偏好,將相似度最高的k條信息返回給當(dāng)前用戶。
用戶所有預(yù)約的房源和收藏的舍友信息都可以在個(gè)人中心模塊進(jìn)行查看,已預(yù)約的房源實(shí)時(shí)狀態(tài)變化將直接在個(gè)人中心列表中顯示。已租的房源將不能被選擇進(jìn)入預(yù)約及之后流程中去,個(gè)人中心模塊預(yù)約房源界面如圖5所示。
圖5 個(gè)人中心模塊預(yù)約房源界面
為了方便管理員對(duì)系統(tǒng)中全部信息的準(zhǔn)確度能及時(shí)進(jìn)行核對(duì)更改,經(jīng)過(guò)登錄驗(yàn)證成功進(jìn)入后臺(tái)管理系統(tǒng)的管理員具有對(duì)系統(tǒng)中所有上傳的用戶、房源、尋友需求等進(jìn)行增刪改查的權(quán)限。
后臺(tái)管理端的設(shè)計(jì)同樣采用了MVC框架[18]。視圖層是面向管理員的界面顯示層,將數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息可視化,借助Bootstrap框架界面設(shè)計(jì)布局規(guī)范,可視化效果更好。業(yè)務(wù)邏輯層中,將Servlet作為控制器接受前端傳送過(guò)來(lái)的請(qǐng)求,并根據(jù)請(qǐng)求生成Bean實(shí)例,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢和處理[19]。操作數(shù)據(jù)庫(kù)采用的是JDBC技術(shù)實(shí)現(xiàn),系統(tǒng)中所有對(duì)數(shù)據(jù)庫(kù)的操作都在數(shù)據(jù)層完成,當(dāng)Servlet接收到瀏覽器端傳送的HTTP數(shù)據(jù)請(qǐng)求后,根據(jù)JDBC提供的標(biāo)準(zhǔn)API對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)處理,執(zhí)行XML文件中相應(yīng)的SQL語(yǔ)句,并將處理結(jié)果返回給管理員[20]。
后臺(tái)管理端主要可以分為用戶管理模塊、房源信息管理模塊、尋友需求信息管理模塊以及房源預(yù)訂單管理模塊。管理員后臺(tái)用戶管理頁(yè)面如圖6所示;后臺(tái)用戶信息更新界面如圖7所示。
圖6 管理員后臺(tái)用戶管理界面
圖7 管理員后臺(tái)更新用戶信息界面
系統(tǒng)測(cè)試一般包括功能測(cè)試、性能測(cè)試、安全測(cè)試等等,目前常用的測(cè)試方法有黑盒測(cè)試、白盒測(cè)試和灰盒測(cè)試等,這套流程可以發(fā)現(xiàn)系統(tǒng)分析和設(shè)計(jì)實(shí)現(xiàn)中的錯(cuò)誤,是一個(gè)完善項(xiàng)目的重要組成部分。
該系統(tǒng)進(jìn)行的測(cè)試也包含了多個(gè)方面。首先對(duì)用戶界面進(jìn)行測(cè)試,檢驗(yàn)用戶界面設(shè)計(jì)是否人性化,文字圖片內(nèi)容是否顯示正常,系統(tǒng)總體效果是否美觀等。又采用白盒測(cè)試方法,白盒測(cè)試不關(guān)注系統(tǒng)的功能,根據(jù)系統(tǒng)內(nèi)部工作邏輯思路,對(duì)整個(gè)項(xiàng)目進(jìn)行檢查,檢驗(yàn)內(nèi)部結(jié)構(gòu)是否都按照預(yù)期要求在工作。
黑盒測(cè)試是系統(tǒng)測(cè)試中的重要環(huán)節(jié)。一般包含任務(wù)測(cè)試、臨界測(cè)試、中斷測(cè)試等。基于整個(gè)系統(tǒng)需求說(shuō)明書的要求,對(duì)各個(gè)模塊的不同功能寫出相應(yīng)的用例進(jìn)行測(cè)試,將測(cè)試結(jié)果與預(yù)期結(jié)果進(jìn)行對(duì)比,檢測(cè)是否一致,確認(rèn)功能實(shí)現(xiàn)效果是否達(dá)到預(yù)期效果,對(duì)于存在較多缺陷的程序塊,進(jìn)行更深入的測(cè)試,從而實(shí)現(xiàn)對(duì)程序的改正與完善。相關(guān)功能測(cè)試以預(yù)約房源流程為例,測(cè)試用例設(shè)計(jì)與結(jié)果分析如圖8所示。
本系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)順應(yīng)了社會(huì)發(fā)展的趨勢(shì),更符合如今的信息化時(shí)代。網(wǎng)站前端采用的Bootstrap框架支持各種瀏覽設(shè)備,使項(xiàng)目兼容不同分辨率的設(shè)備,響應(yīng)式布局在方便快捷的同時(shí)也為用戶提供極佳的視覺(jué)效果。后端采用的是SSM框架技術(shù),節(jié)省了大量的編碼時(shí)間,一定程度上也提高了程序的可擴(kuò)展性和可維護(hù)性,提升了系統(tǒng)性能,近年來(lái)被廣泛使用。為了在傳統(tǒng)租賃系統(tǒng)基礎(chǔ)功能上進(jìn)一步滿足用戶需求,系統(tǒng)中加入了推薦算法,為不同用戶提供個(gè)性化服務(wù),根據(jù)不同用戶的歷史操作記錄和偏好選擇,自動(dòng)為用戶進(jìn)行信息的篩選,按照相似度的排序?yàn)橛脩敉扑]當(dāng)前偏好里未收藏但有可能感興趣的內(nèi)容。