Springboot基于微信小程序的校園外賣系統(tǒng)
摘要
隨著生活質(zhì)量的日益改善以及生活節(jié)奏的日益加快,人們對(duì)餐飲需求的質(zhì)量以及速度也隨之發(fā)生著變化。為了滿足社會(huì)需求,餐飲的高質(zhì)量和快節(jié)奏也漸漸使電話訂餐和網(wǎng)上訂餐業(yè)日益發(fā)展壯大。這也促使了以大學(xué)生為主的校園外賣業(yè)的發(fā)展。校園外賣主要是以大學(xué)生為主的一種個(gè)性化、多樣化的服務(wù)產(chǎn)業(yè)。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和普及,方便、快捷、個(gè)性化的線上訂餐正在進(jìn)入大學(xué)校園,尤其在生活節(jié)奏加快和時(shí)間觀念加強(qiáng)的群體中外賣成為他們的喜愛(ài)方式,人們通過(guò)在小程序上對(duì)菜品進(jìn)行預(yù)訂,這樣不僅節(jié)約了時(shí)間,也為餐廳的訂餐管理工作提供了方便。一個(gè)充分利用碎片化時(shí)間,簡(jiǎn)化點(diǎn)餐過(guò)程的程序,正是我們所需要的。這篇文章研究了基于springboot的校園外賣微信小程序的開(kāi)發(fā)和實(shí)現(xiàn),從需求分析、總體設(shè)計(jì)到具體實(shí)現(xiàn),最終完成了整個(gè)校園外賣微信小程序,從而方便了用戶和提高了外賣系統(tǒng)的管理水平。
關(guān)鍵詞:校園外賣,Java,數(shù)據(jù)庫(kù)
Springboot campus takeout system based on wechat applet
abstract
With the improvement of the quality of life and the acceleration of the pace of life, the quality and speed of people's demand for catering are also changing. In order to meet the growing demand of online catering and catering, the telephone ordering industry is also growing rapidly. This has also promoted the development of campus takeout industry dominated by college students. Campus takeout is a personalized and diversified service industry dominated by college students. With the development and popularization of network technology, convenient, fast and personalized online ordering is entering the university campus. Especially among the groups with accelerated pace of life and strengthened concept of time, takeout has become their favorite way. People Book dishes through small programs, which not only saves time, but also provides convenience for restaurant ordering management. A program that makes full use of fragmented time and simplifies the ordering process is exactly what we need. This paper studies the development and implementation of campus takeout applet based on springboot. From demand analysis, overall design to specific implementation, the whole campus takeout applet is finally completed, which facilitates users and improves the management level of takeout system.
Key words: Campus takeout, Java, database
目 錄
第1章 緒 論 1
1.1課題背景 1
1.2 課題意義 2
1.3 研究?jī)?nèi)容 2
1.3 開(kāi)發(fā)工具及技術(shù) 3
1.4 國(guó)內(nèi)外現(xiàn)狀 5
第2章 系統(tǒng)分析 7
2.1 可行性分析 7
2.2總體設(shè)計(jì)原則 7
2.3 系統(tǒng)需求分析 8
2.4 業(yè)務(wù)流程分析 8
第3章 系統(tǒng)設(shè)計(jì) 11
3.1 系統(tǒng)概要設(shè)計(jì) 11
3.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 11
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì) 12
第4章系統(tǒng)實(shí)現(xiàn) 16
4.1系統(tǒng)功能模塊 16
4.2管理員功能模塊 22
4.3用戶功能模塊 24
第5章軟件測(cè)試 27
5.1軟件測(cè)試的重要性 27
5.2測(cè)試實(shí)例的研究與選擇 27
5.3測(cè)試環(huán)境與測(cè)試條件 28
5.4系統(tǒng)運(yùn)行情況 28
5.5系統(tǒng)評(píng)價(jià) 28
第6章 總結(jié) 30
參考文獻(xiàn): 31
致謝 33
緒 論
1.1課題背景
科技進(jìn)步帶來(lái)的生產(chǎn)力的發(fā)展,其本質(zhì)上是生產(chǎn)效率的提高。在社會(huì)快速發(fā)展的今天,效率永遠(yuǎn)是衡量一款產(chǎn)品的重要標(biāo)準(zhǔn)。在生活中,我們常常遇到這樣的問(wèn)題:上班期間,由于中午休息的時(shí)間基本一致,在一座寫字樓中就往往會(huì)出現(xiàn)這樣的問(wèn)題,即在中午的某個(gè)時(shí)間段內(nèi)將會(huì)出現(xiàn)人流的高度集中,大家選擇在同一時(shí)間去食堂或者樓下的餐廳吃飯。這無(wú)疑會(huì)大大降低人們對(duì)于這段時(shí)間的利用效率。這時(shí),人們可能會(huì)采取一種方式來(lái)回避高峰期,那就是叫外賣。傳統(tǒng)的外賣方式就是打電話預(yù)定,然而,在這種方式中,顧客往往通過(guò)餐廳散發(fā)的傳單來(lái)獲取餐廳的相關(guān)信息,通過(guò)電話來(lái)傳達(dá)自己的訂單信息,餐廳方面通過(guò)電話接受訂單后,一般通過(guò)手寫來(lái)記錄,最后通過(guò)口頭確認(rèn)才算完成一份訂單的提交,之后就是訂單的完成和食品的遞交。顯然,在傳統(tǒng)外賣流程中,顧客通過(guò)傳單來(lái)接收信息,所能獲得的信息太少,而且印發(fā)傳單成本高昂,無(wú)疑那些面對(duì)大眾的中低檔餐廳不會(huì)或者很少印發(fā)傳單;其次通過(guò)電話來(lái)接收訂單,效率很低,耗時(shí)至少5到10分鐘;最后,口頭確認(rèn)存在出錯(cuò)的風(fēng)險(xiǎn),無(wú)法保證訂單的有效性。而外賣系統(tǒng)或稱之為網(wǎng)上外賣系統(tǒng),將完美的解決以上的所有問(wèn)題。
隨著互聯(lián)網(wǎng)時(shí)代的到來(lái),移動(dòng)端APP 的發(fā)展十分迅猛。校園服務(wù)類APP也是不計(jì)其數(shù),但大多功能單一。只能滿足學(xué)生們的部分需求,無(wú)法實(shí)現(xiàn)校園便利服務(wù),導(dǎo)致學(xué)生往往需要安裝大量的手機(jī)軟件,頻繁的進(jìn)行注冊(cè)、登錄,非常不方便,同時(shí)也容易造成手機(jī)內(nèi)存不足、個(gè)人信息泄露等問(wèn)題。為了給廣大學(xué)生的出行帶來(lái)便利,保護(hù)其個(gè)人信息安全,項(xiàng)目組成員進(jìn)行了深入的調(diào)研,發(fā)現(xiàn)了微信小程序具有方便快捷、即用即走、安全穩(wěn)定、不占內(nèi)存等特點(diǎn),同時(shí)其內(nèi)置于微信也更加容易被用戶接受,適合在高校進(jìn)行推廣。因此,本人決定開(kāi)發(fā)一款以微信小程序?yàn)檩d體的校園外賣系統(tǒng),為學(xué)生的日常訂餐帶便利。
1.2 課題意義
由于近年來(lái)在線銷售行業(yè)的興起,也了解了一些相關(guān)信息。在中國(guó),以前的銷售只是傳統(tǒng)銷售,而在線銷售似乎滿足了市場(chǎng)需求。到目前為止,有一些家喻戶曉的名字,如淘寶和天貓。然而,這種在線銷售也有一些缺點(diǎn):用戶不能在下訂單并付款后立即提貨,他們還應(yīng)該考慮貨物是否受損。該系統(tǒng)是根據(jù)商品網(wǎng)絡(luò)上的銷售情況開(kāi)發(fā)的。
經(jīng)過(guò)幾年的發(fā)展,許多被消費(fèi)者認(rèn)可的網(wǎng)上購(gòu)物中心已經(jīng)出現(xiàn)在國(guó)內(nèi)外。這些網(wǎng)上購(gòu)物中心的內(nèi)容是多樣化的,它們包含的功能相對(duì)完善,包括注冊(cè)用戶、搜索商品、管理訂單、介紹商品細(xì)節(jié)以及在線留言。如今,互聯(lián)網(wǎng)的廣泛使用在一定程度上導(dǎo)致了國(guó)內(nèi)外在線購(gòu)物中心的發(fā)展,只要企業(yè)通過(guò)這個(gè)平臺(tái)在線打字,就可以隨時(shí)管理系統(tǒng)的內(nèi)容。通過(guò)展示菜品內(nèi)容和發(fā)布公告,鼓勵(lì)消費(fèi)者訂餐和進(jìn)行在線交易。
1.3 研究?jī)?nèi)容
校園外賣微信小程序的開(kāi)發(fā)及實(shí)現(xiàn),所需要的工作內(nèi)容:
(1)首先是確定選題,確定好所要做的系統(tǒng),并對(duì)系統(tǒng)的背景及現(xiàn)在面臨的一些問(wèn)題等進(jìn)行系統(tǒng)的初步確認(rèn)。
(2)系統(tǒng)確認(rèn)完成后,結(jié)合系統(tǒng)開(kāi)發(fā)的需求進(jìn)行確認(rèn)系統(tǒng)開(kāi)發(fā)所使用的技術(shù),校園外賣微信小程序的開(kāi)發(fā)使用Springboot框架,數(shù)據(jù)庫(kù)進(jìn)行平臺(tái)的搭建開(kāi)發(fā),確認(rèn)好使用的技術(shù)進(jìn)行技術(shù)分析,所使用的技術(shù)是否可以完成系統(tǒng)的實(shí)現(xiàn)。
(3)確定好系統(tǒng)使用的技術(shù),進(jìn)行在線確認(rèn)系統(tǒng)所劃分的用戶角色,并且根據(jù)用戶角色劃分確定所要設(shè)計(jì)的功能模塊,對(duì)校園外賣微信小程序的設(shè)計(jì)主要?jiǎng)澐謩e為管理員和用戶角色,并所使用的功能模塊也相應(yīng)不同,但是系統(tǒng)的數(shù)據(jù)庫(kù)實(shí)現(xiàn)的內(nèi)容是交互的,用戶可以隨時(shí)根據(jù)自己的需求進(jìn)行課程信息,對(duì)于系統(tǒng)工作人員可以根據(jù)自己的分管內(nèi)容進(jìn)行在線信息的處理及操作,管理員獲取到所有用戶的詳細(xì)數(shù)據(jù)信息,并根據(jù)需求進(jìn)行第一時(shí)間處理解決。
(4)系統(tǒng)的功能模塊確認(rèn)完成后進(jìn)行程序及界面的設(shè)計(jì),設(shè)計(jì)完成后,并且通過(guò)測(cè)試來(lái)判斷程序是否完善,對(duì)于系統(tǒng)測(cè)試,需要不同的用戶進(jìn)行不同的內(nèi)容編輯及提交,及使用不同的測(cè)試方式找出程序中存在的漏洞,并對(duì)程序出現(xiàn)的漏洞問(wèn)題進(jìn)行在線解決處理,如果測(cè)試系統(tǒng)沒(méi)有任何問(wèn)題時(shí),可以將系統(tǒng)上傳進(jìn)行正式操作使用。
1.3 開(kāi)發(fā)工具及技術(shù)
本系統(tǒng)前端框架采用了比較流行的漸進(jìn)式JavaScript框架Vue.js。使用Vue-Router和Vuex實(shí)現(xiàn)動(dòng)態(tài)路由和全局狀態(tài)管理,Ajax實(shí)現(xiàn)前后端通信,Element UI組件庫(kù)使頁(yè)面快速成型。后端部分:采用springboot作為開(kāi)發(fā)框架,同時(shí)集成MyBatis、Redis等相關(guān)技術(shù)。
1.3.1 MVVM模式
MVVM是Model-View-ViewModel的簡(jiǎn)寫。它本質(zhì)上就是MVC 的改進(jìn)版。MVVM 就是將其中的View 的狀態(tài)和行為抽象化,讓我們將視圖 UI 和業(yè)務(wù)邏輯分開(kāi)。當(dāng)然這些事 ViewModel 已經(jīng)幫我們做了,它可以取出 Model 的數(shù)據(jù)同時(shí)幫忙處理 View 中由于需要展示內(nèi)容而涉及的業(yè)務(wù)邏輯。微軟的WPF帶來(lái)了新的技術(shù)體驗(yàn),如Silverlight、音頻、視頻、3D、動(dòng)畫……,這導(dǎo)致了軟件UI層更加細(xì)節(jié)化、可定制化。同時(shí),在技術(shù)層面,WPF也帶來(lái)了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來(lái)便是MVP(Model-View-Presenter)模式與WPF結(jié)合的應(yīng)用方式時(shí)發(fā)展演變過(guò)來(lái)的一種新型架構(gòu)框架。它立足于原有MVP框架并且把WPF的新特性糅合進(jìn)去,以應(yīng)對(duì)客戶日益復(fù)雜的需求變化。
1.3.2 B/S結(jié)構(gòu)
B/S(Browser/Server)比前身架構(gòu)更為省事的架構(gòu)。它借助Web server完成數(shù)據(jù)的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達(dá)到“瘦身”效果, 不需要考慮不停裝軟件的問(wèn)題。
1.3.3 MySQL
MMySQL數(shù)據(jù)庫(kù)是較為出名的關(guān)系形數(shù)據(jù)庫(kù),它使用大量的二維表來(lái)進(jìn)行存儲(chǔ)數(shù)據(jù)而不是把數(shù)據(jù)封裝存儲(chǔ)早同一個(gè)“倉(cāng)庫(kù)”中,十分有利于提高速度和數(shù)據(jù)應(yīng)用的靈活性。
中小企業(yè)網(wǎng)站開(kāi)發(fā)商的首選數(shù)據(jù)庫(kù)一般也是MySQL。SQL語(yǔ)言是它的標(biāo)準(zhǔn)語(yǔ)言。由于該數(shù)據(jù)庫(kù)在體積、速度和運(yùn)營(yíng)成本方面的優(yōu)勢(shì),特別是開(kāi)放源代碼的技術(shù)特點(diǎn),因此深受開(kāi)發(fā)者的喜愛(ài)。
1..3.4 Vue.js 主要功能
Vue.js是一套構(gòu)建用戶界面的漸進(jìn)式框架。與其他重量級(jí)框架不同的是,Vue采用自底向上增量開(kāi)發(fā)的設(shè)計(jì)。Vue 的核心庫(kù)只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫(kù)或已有項(xiàng)目整合。另一方面,Vue 完全有能力驅(qū)動(dòng)采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫(kù)開(kāi)發(fā)的復(fù)雜單頁(yè)應(yīng)用。
Vue.js 的目標(biāo)是通過(guò)盡可能簡(jiǎn)單的 API 實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。
Vue.js 自身不是一個(gè)全能框架——它只聚焦于視圖層。因此它非常容易學(xué)習(xí),非常容易與其它庫(kù)或已有項(xiàng)目整合。另一方面,在與相關(guān)工具和支持庫(kù)一起使用時(shí),Vue.js 也能驅(qū)動(dòng)復(fù)雜的單頁(yè)應(yīng)用。
1.3.5 Springboot框架介紹
Spring框架是Java平臺(tái)上的一種開(kāi)源應(yīng)用框架,提供具有控制反轉(zhuǎn)特性的容器。盡管Spring框架自身對(duì)編程模型沒(méi)有限制,但其在Java應(yīng)用中的頻繁使用讓它備受青睞,以至于后來(lái)讓它作為EJB(EnterpriseJavaBeans)模型的補(bǔ)充,甚至是替補(bǔ)。Spring框架為開(kāi)發(fā)提供了一系列的解決方案,比如利用控制反轉(zhuǎn)的核心特性,并通過(guò)依賴注入實(shí)現(xiàn)控制反轉(zhuǎn)來(lái)實(shí)現(xiàn)管理對(duì)象生命周期容器化,利用面向切面編程進(jìn)行聲明式的事務(wù)管理,整合多種持久化技術(shù)管理數(shù)據(jù)訪問(wèn),提供大量?jī)?yōu)秀的Web框架方便開(kāi)發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項(xiàng)目維護(hù)和測(cè)試,它提供了一種通過(guò)Java的反射機(jī)制對(duì)Java對(duì)象進(jìn)行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對(duì)象的生命周期,容器可以通過(guò)掃描XML文件或類上特定Java注解來(lái)配置對(duì)象,開(kāi)發(fā)者可以通過(guò)依賴查找或依賴注入來(lái)獲得對(duì)象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時(shí)運(yùn)行時(shí)可配置;AOP框架主要針對(duì)模塊之間的交叉關(guān)注點(diǎn)進(jìn)行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無(wú)法與AspectJ框架相比,但通過(guò)與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務(wù)管理、遠(yuǎn)程訪問(wèn)等功能均可以通過(guò)使用SpringAOP技術(shù)實(shí)現(xiàn)。Spring的事務(wù)管理框架為Java平臺(tái)帶來(lái)了一種抽象機(jī)制,使本地和全局事務(wù)以及嵌套事務(wù)能夠與保存點(diǎn)一起工作,并且?guī)缀蹩梢栽贘ava平臺(tái)的任何環(huán)境中工作。Spring集成多種事務(wù)模板,系統(tǒng)可以通過(guò)事務(wù)模板、XML或Java注解進(jìn)行事務(wù)配置,并且事務(wù)框架集成了消息傳遞和緩存等功能。Spring的數(shù)據(jù)訪問(wèn)框架解決了開(kāi)發(fā)人員在應(yīng)用程序中使用數(shù)據(jù)庫(kù)時(shí)遇到的常見(jiàn)困難。它不僅對(duì)Java:JDBC、iBATS/MyBATIs、Hibernate、Java數(shù)據(jù)對(duì)象(JDO)、ApacheOJB和ApacheCayne等所有流行的數(shù)據(jù)訪問(wèn)框架中提供支持,同時(shí)還可以與Spring的事務(wù)管理一起使用,為數(shù)據(jù)訪問(wèn)提供了靈活的抽象。Spring框架最初是沒(méi)有打算構(gòu)建一個(gè)自己的WebMVC框架,其開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中認(rèn)為現(xiàn)有的StrutsWeb框架的呈現(xiàn)層和請(qǐng)求處理層之間以及請(qǐng)求處理層和模型之間的分離不夠,于是創(chuàng)建了SpringMVC。
1.3.6 微信開(kāi)發(fā)者工具
微信開(kāi)發(fā)者工具現(xiàn)在已經(jīng)被小程序開(kāi)發(fā)團(tuán)隊(duì)開(kāi)發(fā)運(yùn)行,目前微信開(kāi)發(fā)者工具任然在不斷的完善中,在開(kāi)發(fā)小程序時(shí)經(jīng)常要不斷的更新??梢允褂梦⑿艗叽a登陸開(kāi)發(fā)者工具,開(kāi)發(fā)者工具將使用這個(gè)微信帳號(hào)的信息進(jìn)行小程序的開(kāi)發(fā)和調(diào)試。
機(jī)型選擇:小程序以智能手機(jī)的屏幕尺寸為設(shè)計(jì)標(biāo)準(zhǔn),進(jìn)行切圖。
預(yù)覽界面:寫好視圖布局后點(diǎn)擊編譯,用來(lái)刷新視圖界面。
控制臺(tái):方便調(diào)試打印輸出信息。
上傳代碼:上傳到騰訊服務(wù)器,提交審核必經(jīng)步驟。上傳代碼時(shí)可以填寫版本號(hào)和備注信息。
資源文件:一般可以在資源文件進(jìn)行對(duì)應(yīng)項(xiàng)目的文件目錄的斷點(diǎn)調(diào)試。
顯示遠(yuǎn)程調(diào)試:手機(jī)端和PC端開(kāi)發(fā)工具聯(lián)調(diào)對(duì)用戶而言是非常實(shí)用的。
本地?cái)?shù)據(jù)存儲(chǔ):顯示的是本地存儲(chǔ)的數(shù)據(jù)。
視圖調(diào)試:標(biāo)組件以子父層級(jí)結(jié)構(gòu)呈現(xiàn),方便調(diào)試。
微信限制在2M 以內(nèi)的代碼體積;開(kāi)發(fā)中一般不校驗(yàn)合法域名信息;小程序后臺(tái)要做配置服務(wù)器域名。
以上就是在開(kāi)發(fā)過(guò)程中微信開(kāi)發(fā)者工具常用到的功能,微信開(kāi)發(fā)者工具也在不斷的完善。
1.4國(guó)內(nèi)外現(xiàn)狀
進(jìn)入2022年以來(lái),中國(guó)餐飲業(yè)行業(yè)的競(jìng)爭(zhēng)正越來(lái)越激烈,受疫情影響,大量餐飲店倒閉,如何減輕用人成本、維護(hù)費(fèi)用,成為各大餐飲業(yè)的難題。而使用一個(gè)高效、靈活、安全可靠的校園外賣微信小程序?qū)τ跍p輕用人成本、方便維護(hù)、提高效率等都具有十分重要的意義。
從餐飲業(yè)的角度來(lái)看,校園外賣微信小程序通過(guò)拉入注冊(cè)量,穩(wěn)固餐飲的客源,提高用戶的依賴性;
從用戶的角度來(lái)看,外賣系統(tǒng)相當(dāng)于一個(gè)方便快捷的平臺(tái),使用在線服務(wù)給予了他們更多的方便,能夠不受時(shí)間、空間的限制,完成從點(diǎn)餐的選擇到點(diǎn)餐等服務(wù)。
經(jīng)過(guò)數(shù)十年的發(fā)展和各大餐飲業(yè)的努力,餐飲行業(yè)可以說(shuō)是比較成熟了,不論是菜系管理的質(zhì)量、數(shù)量、類型都比數(shù)十年前有了質(zhì)的飛躍。它在提高人們的生活質(zhì)量和拉動(dòng)地區(qū)經(jīng)濟(jì)方面貢獻(xiàn)著自己的力量,也是國(guó)家文化輸出的重要工具。新時(shí)代的人們?cè)诰W(wǎng)上可以實(shí)現(xiàn)許多交易活動(dòng),如預(yù)定酒店房間、機(jī)票等。順應(yīng)時(shí)代發(fā)展的大勢(shì)所趨,倚靠計(jì)算機(jī)、互聯(lián)網(wǎng)技術(shù),整合資源是合乎發(fā)展潮流的正確選擇。本著為餐飲業(yè)提供一個(gè)方便管理和節(jié)約成本的方式,也為客戶提供一個(gè)高效獲取菜品信息的平臺(tái),設(shè)計(jì)一個(gè)校園外賣微信小程序,是必須也是必然的。
系統(tǒng)分析
2.1 可行性分析
可行性分析的目的是確定一個(gè)系統(tǒng)是否有必要開(kāi)發(fā)、確定系統(tǒng)是否能以最小的代價(jià)實(shí)現(xiàn)。其工作主要有三個(gè)方面,分別是技術(shù)、經(jīng)濟(jì)和社會(huì)三方面的可行性。我會(huì)從這三個(gè)方面對(duì)校園外賣微信小程序進(jìn)行詳細(xì)的分析。
2.1.1技術(shù)可行性
該系統(tǒng)主要使用JAVA、MyEclipse和MySQL數(shù)據(jù)庫(kù)進(jìn)行開(kāi)發(fā),Java易于學(xué)習(xí)和使用靈活。在校期間也接觸過(guò)MyEclipes和MySQL數(shù)據(jù)庫(kù)的課程,對(duì)此有一定的開(kāi)發(fā)經(jīng)驗(yàn),因此開(kāi)發(fā)難度不高,所以從技術(shù)上來(lái)說(shuō)是可行的。
2.1.2經(jīng)濟(jì)可行性
本系統(tǒng)設(shè)計(jì)所選擇的開(kāi)發(fā)工具和服務(wù)器都是免費(fèi)的開(kāi)源軟件,又或者是適合學(xué)生使用的免費(fèi)版本,并不需要支付費(fèi)用,而且由作者本人單獨(dú)完成,也不存在團(tuán)隊(duì)費(fèi)用,幾乎沒(méi)有經(jīng)濟(jì)成本,具備經(jīng)濟(jì)可行性。
2.1.3社會(huì)可行性
社會(huì)可行性主要包括法律和用戶兩個(gè)方面,下面將從這兩方面進(jìn)行分析。
(1)法律因素
本系統(tǒng)是學(xué)習(xí)開(kāi)發(fā)所制作的程序,并不用作商業(yè)用途,是在根據(jù)實(shí)際調(diào)研的結(jié)果結(jié)合現(xiàn)有的校園外賣微信小程序后得出的,而且系統(tǒng)制作的全部過(guò)程都是在個(gè)人的工作電腦中完成的,使用的都是開(kāi)源和免費(fèi)的開(kāi)發(fā)環(huán)境、分析軟件和數(shù)據(jù)庫(kù),不存在侵權(quán)問(wèn)題。
(2)用戶可行性
操作人員或者客戶只需要具備一定的windows電腦操作常識(shí),不需要精通計(jì)算機(jī)技能。此外系統(tǒng)管理人員,只需要在windows常識(shí)之上再熟悉下使用Tomcat服務(wù)器的操作流程,只要掌握一定的計(jì)算機(jī)知識(shí)即可,在正式上線運(yùn)營(yíng)之前,僅需要對(duì)操作人員進(jìn)行簡(jiǎn)單的熟悉流程培訓(xùn)即可。所以從用戶可行性上也是可行的。
2.2總體設(shè)計(jì)原則
一個(gè)系統(tǒng)要在開(kāi)發(fā)和維護(hù)的過(guò)程中方便使用,必須采取一定的設(shè)計(jì)原則,其主要設(shè)計(jì)原則有:
簡(jiǎn)單性:系統(tǒng)功能簡(jiǎn)單易懂,只需要掌握基本的計(jì)算機(jī)操作能力即可使用。
針對(duì)性:針對(duì)特定的用戶,沒(méi)有多余的其他功能,使用戶可以專心使用。
實(shí)用性:能夠滿足用戶查看菜品信息等方面的需求。
一致性:設(shè)計(jì)風(fēng)格、命名規(guī)范一致,整個(gè)系統(tǒng)的各個(gè)功能模塊色彩、擺放位置、功能等都是一致的。
先進(jìn)性:本系統(tǒng)的代碼采用讀取數(shù)據(jù)的方式,方便后續(xù)開(kāi)發(fā)、拓展。
2.3 系統(tǒng)需求分析
校園外賣微信小程序需要滿足的需求有以下幾個(gè):
1.信息獲取方便,用戶可在網(wǎng)頁(yè)上快速瀏覽到新的信息
2.查看菜品詳情,單獨(dú)查看某一個(gè)菜品信息,獲取好評(píng)等。
3.注冊(cè)登錄,餐飲需要吸引客戶,即通過(guò)注冊(cè)來(lái)提高用戶的存留率。
4.歷史記錄,用戶可以查看自己訂餐信息以及其他操作。
5.修改用戶信息,可以修改用戶密碼或者用戶名等一些個(gè)性化操作。
6.管理員功能,管理員可以對(duì)用戶或者點(diǎn)餐進(jìn)行管理。
7.系統(tǒng)安全,操作簡(jiǎn)便,不過(guò)于復(fù)雜。
8.系統(tǒng)可以穩(wěn)定運(yùn)行,不存在卡頓等問(wèn)題造成用戶反感。
2.4 業(yè)務(wù)流程分析
2.4.1登錄流程
登錄模塊主要滿足管理員以及用戶的權(quán)限登錄,用戶登錄流程圖如圖2-1所示。

圖2-1 登錄流程圖
2.4.2注冊(cè)流程
未有賬號(hào)的用戶可進(jìn)入注冊(cè)界面進(jìn)行注冊(cè)操作,用戶注冊(cè)流程圖如圖2-2所示。

圖2-2 注冊(cè)流程圖
2.4.3添加信息流程
用戶在添加信息時(shí),信息編號(hào)自動(dòng)生成,系統(tǒng)會(huì)對(duì)添加的信息進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)則添加至數(shù)據(jù)庫(kù),添加信息成功,反之添加失敗。添加信息流程如圖2-3所示。

圖2-3 添加信息流程圖
2.4.4刪除信息流程
用戶可選擇要?jiǎng)h除的信息進(jìn)行信息刪除操作,在刪除信息時(shí)系統(tǒng)提示是否確定刪除信息,是則刪除信息成功,系統(tǒng)數(shù)據(jù)庫(kù)將信息進(jìn)行刪除。刪除信息流程圖如圖2-4所示。

圖2-4刪除信息流程圖
系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)概要設(shè)計(jì)
本校園外賣微信小程序選擇B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器結(jié)構(gòu))和基于Web服務(wù)兩種模式。適合在互聯(lián)網(wǎng)上進(jìn)行操作,只要用戶能連網(wǎng),任何時(shí)間、任何地點(diǎn)都可以進(jìn)行系統(tǒng)的操作使用。系統(tǒng)工作原理圖如圖3-1所示:

圖3-1 系統(tǒng)工作原理圖
3.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
整個(gè)系統(tǒng)是由多個(gè)功能模塊組合而成的,要將所有的功能模塊都一一列舉出來(lái),然后進(jìn)行逐個(gè)的功能設(shè)計(jì),使得每一個(gè)模塊都有相對(duì)應(yīng)的功能設(shè)計(jì),然后進(jìn)行系統(tǒng)整體的設(shè)計(jì)。
本校園外賣微信小程序結(jié)構(gòu)圖如圖3-2所示。

圖3-2 校園外賣微信小程序結(jié)構(gòu)圖
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)可以說(shuō)是所有軟件的根本,如果數(shù)據(jù)庫(kù)存在缺陷,那么會(huì)導(dǎo)致系統(tǒng)開(kāi)發(fā)的不順利、維護(hù)困難、用戶使用不順暢等一系列問(wèn)題,嚴(yán)重時(shí)將會(huì)直接損害企業(yè)的利益,同時(shí)在開(kāi)發(fā)完成后,數(shù)據(jù)庫(kù)缺陷也更加難以解決。所以必須要對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)重點(diǎn)把握,做到認(rèn)真細(xì)致。因此,數(shù)據(jù)庫(kù)設(shè)計(jì)是這個(gè)校園外賣微信小程序的重點(diǎn)要素。
3.3.1概念結(jié)構(gòu)設(shè)計(jì)
(1)管理員實(shí)體屬性圖如下圖3-3所示

圖3-3管理員實(shí)體屬性圖
(2) 系統(tǒng)實(shí)體屬性如下圖3-4所示

圖3-4系統(tǒng)實(shí)體屬性圖
3.3.2數(shù)據(jù)庫(kù)表設(shè)計(jì)
將數(shù)據(jù)庫(kù)概念設(shè)計(jì)的E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)。在關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)關(guān)系由數(shù)據(jù)表組成,但是表的結(jié)構(gòu)表現(xiàn)在表的字段上。
|
|||||
|
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說(shuō)明 |
business_id |
int |
11 |
否 |
主鍵 |
商家ID |
store_name |
varchar |
64 |
是 |
店名 |
|
shop_telephone |
varchar |
64 |
是 |
店鋪電話 |
|
store_address |
varchar |
64 |
是 |
店鋪地址 |
|
storefront_cover |
varchar |
255 |
是 |
店面封面 |
|
business_qualification |
varchar |
255 |
是 |
經(jīng)營(yíng)資質(zhì) |
|
hits |
int |
11 |
否 |
點(diǎn)擊數(shù) |
|
praise_len |
int |
11 |
否 |
點(diǎn)贊數(shù) |
|
examine_state |
varchar |
16 |
否 |
審核狀態(tài) |
|
recommend |
int |
11 |
否 |
智能推薦 |
|
user_id |
int |
11 |
否 |
用戶ID |
|
create_time |
datetime |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
|
|||||
|
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說(shuō)明 |
classification_management_id |
int |
11 |
否 |
主鍵 |
分類管理ID |
type |
varchar |
64 |
是 |
類型 |
|
recommend |
int |
11 |
否 |
智能推薦 |
|
create_time |
datetime |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
|
|||||
|
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說(shuō)明 |
variety of dishes_order_id |
int |
11 |
否 |
主鍵 |
菜品訂單ID |
commodity_number |
varchar |
64 |
是 |
編號(hào) |
|
name |
varchar |
64 |
是 |
名稱 |
|
type |
varchar |
64 |
是 |
類型 |
|
specifications |
varchar |
64 |
是 |
規(guī)格 |
|
price |
varchar |
64 |
是 |
價(jià)格 |
|
business |
int |
11 |
是 |
商家 |
|
user |
int |
11 |
是 |
用戶 |
|
number_of_meals_ordered |
varchar |
64 |
是 |
訂餐數(shù) |
|
contact_number |
varchar |
64 |
是 |
聯(lián)系電話 |
|
delivery_address |
varchar |
64 |
是 |
送餐地址 |
|
total |
varchar |
64 |
是 |
總計(jì) |
|
order_status |
varchar |
64 |
是 |
訂單狀態(tài) |
|
recommend |
int |
11 |
否 |
智能推薦 |
|
create_time |
datetime |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
|
|||||
|
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說(shuō)明 |
ordinary_users_id |
int |
11 |
否 |
主鍵 |
普通用戶ID |
full_name |
varchar |
64 |
是 |
姓名 |
|
gender |
varchar |
64 |
是 |
性別 |
|
examine_state |
varchar |
16 |
否 |
審核狀態(tài) |
|
recommend |
int |
11 |
否 |
智能推薦 |
|
user_id |
int |
11 |
否 |
用戶ID |
|
create_time |
datetime |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
|
|||||
|
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說(shuō)明 |
slides_id |
int |
10 |
否 |
主鍵 |
輪播圖ID |
title |
varchar |
64 |
是 |
標(biāo)題 |
|
content |
varchar |
255 |
是 |
內(nèi)容 |
|
url |
varchar |
255 |
是 |
鏈接 |
|
img |
varchar |
255 |
是 |
輪播圖 |
|
hits |
int |
10 |
否 |
點(diǎn)擊量 |
|
create_time |
timestamp |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
|
|||||
|
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說(shuō)明 |
Dish information_id |
int |
11 |
否 |
主鍵 |
菜品信息ID |
variety of dishes_number |
varchar |
64 |
是 |
菜品編號(hào) |
|
name |
varchar |
64 |
是 |
名稱 |
|
type |
varchar |
64 |
是 |
類型 |
|
cover |
varchar |
255 |
是 |
封面 |
|
specifications |
varchar |
64 |
是 |
規(guī)格 |
|
price |
varchar |
64 |
是 |
價(jià)格 |
|
date of manufacture |
varchar |
64 |
是 |
生產(chǎn)日期 |
|
business |
int |
11 |
是 |
商家 |
|
details |
longtext |
0 |
是 |
詳情 |
|
hits |
int |
11 |
否 |
點(diǎn)擊數(shù) |
|
praise_len |
int |
11 |
否 |
點(diǎn)贊數(shù) |
|
recommend |
int |
11 |
否 |
智能推薦 |
|
create_time |
datetime |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
第4章系統(tǒng)實(shí)現(xiàn)
4.1系統(tǒng)功能模塊
校園外賣微信小程序,在系統(tǒng)首頁(yè)可以查看首頁(yè)、菜品信息、美食資訊、我的訂單、跳轉(zhuǎn)到后臺(tái)等內(nèi)容,如圖4-1所示。

圖4-1系統(tǒng)首頁(yè)界面圖
菜單信息,在菜單信息頁(yè)面可以查看菜品名稱、價(jià)格等內(nèi)容,如圖4-2所示。

圖4-2菜單信息界面圖
美食資訊,在美食資訊頁(yè)面可以查看資訊詳細(xì)信息,如圖4-3所示。在注冊(cè)頁(yè)面通過(guò)填寫用戶賬號(hào)、密碼、用戶姓名、手機(jī)等信息完成用戶注冊(cè),如圖4-4所示。

圖4-3美食資訊界面圖
美食資訊的邏輯代碼如下:
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
Query select = service.select(service.readQuery(request), service.readConfig(request));
List resultList = select.getResultList();
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
public Query select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查詢操作,sql: {}",table,sql);
return runEntitySql(sql.toString());
}

圖4-4注冊(cè)界面圖
用戶注冊(cè)邏輯代碼如下:
/**
* 注冊(cè)
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查詢用戶
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用戶已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
4.2管理員功能模塊
管理員登錄,通過(guò)填寫注冊(cè)時(shí)輸入的用戶名、密碼、權(quán)限進(jìn)行登錄,如圖4-5所示。

圖4-5管理員登錄界面圖
管理員登錄進(jìn)入校園外賣微信小程序可以查看首頁(yè)、站點(diǎn)管理(管理員、商家、普通用戶)內(nèi)容管理(美食資訊列表、資訊分類)更多管理(菜品信息管理、分類管理、訂單管理)系統(tǒng)管理等信息,如圖4-6所示。

圖4-6管理員功能界面圖
美食資訊分類管理,在美食資訊分類列表中可以對(duì)美食資訊進(jìn)行分類列表分類等,還可以對(duì)資訊信息進(jìn)行修改或刪除操作,如圖4-7所示。

圖4-7美食資訊分類管理界面圖
美食資訊分類管理的邏輯代碼如下:
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
菜品信息管理,在菜品信息管理列表中可以查看菜品名稱、賣價(jià)、原價(jià)、庫(kù)存、產(chǎn)品分類、生產(chǎn)日期、賣家等信息,并可根據(jù)需要進(jìn)行修改或刪除操作,如圖4-8所示。

圖4-8菜品信息管理界面圖
菜品信息管理的關(guān)鍵代碼如下。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
StringBuffer sql = new StringBuffer("INSERT INTO ");
sql.append("`").append(table).append("`").append(" (");
for (Map.Entry<String,Object> entry:body.entrySet()){
sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
}
sql.deleteCharAt(sql.length()-1);
sql.append(") VALUES (");
for (Map.Entry<String,Object> entry:body.entrySet()){
Object value = entry.getValue();
if (value instanceof String){
sql.append("'").append(entry.getValue()).append("'").append(",");
}else {
sql.append(entry.getValue()).append(",");
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(")");
log.info("[{}] - 插入操作:{}",table,sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}
訂單信息管理,在訂單信息管理列表中可以查看菜品編號(hào)、菜品名稱、類型、價(jià)格、購(gòu)買數(shù)量、總價(jià)格、用戶賬號(hào)、用戶姓名、手機(jī)、送貨地址、備注、是否審核等信息,并可根據(jù)需要進(jìn)行修改或刪除操作,如圖4-9所示。

圖4-9訂單信息管理界面圖
訂單信息管理關(guān)鍵代碼如下。
@RequestMapping(value = {"/avg_group", "/avg"})
public Map<String, Object> avg(HttpServletRequest request) {
Query count = service.avg(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
}
用戶管理,在用戶管理列表中可以查看用戶賬號(hào)、密碼、用戶姓名、性別、手機(jī)、照片等內(nèi)容,并且根據(jù)需要進(jìn)行修改或刪除操作,如圖4-10所示。

圖4-10用戶管理界面圖
4.3用戶功能模塊
用戶登錄進(jìn)入校園外賣微信小程序可以查看首頁(yè)、公告欄、美食資訊、菜品信息等內(nèi)容,如圖4-11所示。

圖4-11用戶功能界面圖
基本信息,在用戶信息列表中通過(guò)填寫用戶賬號(hào)、密碼、用戶姓名、性別、手機(jī)、照片等信息進(jìn)行提交,如圖4-12所示。

圖4-12基本信息界面圖
訂單信息,在訂單信息列表中可以查看菜品編號(hào)、菜品名稱、價(jià)格、購(gòu)買數(shù)量、用戶賬號(hào)、用戶姓名、手機(jī)、送貨地址、備注、是否支付等信息,如圖4-13所示。

圖4-13訂單信息界面圖
訂單信息的關(guān)鍵代碼如下。
@RestController
@RequestMapping("auth")
public class AuthController extends BaseController<Auth, AuthService> {
/**
* 服務(wù)對(duì)象
*/
@Autowired
public AuthController(AuthService service) {
setService(service);
}
}
第5章軟件測(cè)試
測(cè)試存在于軟件開(kāi)發(fā)進(jìn)程中的最后一個(gè)階段,它可以保證一個(gè)軟件的開(kāi)發(fā)質(zhì)量是否符合設(shè)計(jì)者的初衷,也為程序的正式上線做了最后一道質(zhì)量檢測(cè)的工序。軟件測(cè)試主要是控制各種條件、包括軟件輸出方式,使用模式和運(yùn)行環(huán)境等,來(lái)評(píng)估一個(gè)系統(tǒng)或應(yīng)用是否符合設(shè)計(jì)標(biāo)準(zhǔn)。在軟件測(cè)試過(guò)程中,我們一般刻意的去制造錯(cuò)誤和極端條件,不能僅依照正常模式允許,而是多去嘗試那些意外的情況。
5.1軟件測(cè)試的重要性
只有在運(yùn)行和維護(hù)階段之前經(jīng)歷大量的測(cè)試的軟件,才能說(shuō)明它的質(zhì)量是經(jīng)得起檢驗(yàn)的。最近計(jì)算機(jī)業(yè)界也都一致認(rèn)為,測(cè)試應(yīng)該存在于軟件設(shè)計(jì)的每個(gè)階段,因?yàn)樵皆绨l(fā)現(xiàn)錯(cuò)誤,修復(fù)起來(lái)就越容易。
實(shí)際上,對(duì)于一個(gè)軟件應(yīng)用,錯(cuò)誤是必然存在的,無(wú)論使用何種技術(shù)或手段,都不可能絕對(duì)的排除軟件漏洞。測(cè)試是隨著軟件開(kāi)發(fā)一同誕生的,兩者是共同發(fā)展進(jìn)步的。實(shí)際上,測(cè)試可以大幅度的降低維護(hù)的成本,如果一個(gè)漏洞在開(kāi)發(fā)的早期就被發(fā)現(xiàn),那么修復(fù)它的成本遠(yuǎn)比上線后再修復(fù)的成本要低得多。
5.2測(cè)試實(shí)例的研究與選擇
測(cè)試有白盒測(cè)試和黑盒測(cè)試兩種方式。
其中,白盒測(cè)試是將軟件看成一個(gè)透明的白盒子,按照程序的內(nèi)部控制結(jié)構(gòu)和處理技術(shù)邏輯來(lái)選定測(cè)試用例、軟件系統(tǒng)測(cè)試的邏輯路徑及過(guò)程需要進(jìn)行管理測(cè)試,又稱玻璃盒測(cè)試。因此白盒測(cè)試需要選擇足夠多的測(cè)試用例,覆蓋盡可能多的代碼來(lái)發(fā)現(xiàn)程序中的錯(cuò)誤。
黑盒測(cè)試,也稱為功能測(cè)試。它將需軟件看作一個(gè)黑盒,像一個(gè)普通用戶一樣來(lái)模擬軟件的使用流程。黑盒測(cè)試通過(guò)大量的輸入邊界值或錯(cuò)誤數(shù)據(jù),來(lái)檢查是否可產(chǎn)生正確的輸出。
本系統(tǒng)測(cè)試主要選擇黑盒測(cè)試,少量采用白盒測(cè)試。通過(guò)測(cè)試達(dá)到以下測(cè)試目的:
1.檢查各大功能模塊的運(yùn)行,確保其能夠正確運(yùn)行,并檢查各頁(yè)面的完整性,保證頁(yè)面完整。
2.檢查各個(gè)接口是否可以正確地輸入和輸出,保證數(shù)據(jù)流通穩(wěn)定可行。
3.檢查數(shù)據(jù)結(jié)構(gòu),保證其和外部接口沒(méi)有訪問(wèn)錯(cuò)誤,訪問(wèn)順利。
4.檢查原計(jì)劃的性能需求有沒(méi)有完成,運(yùn)行流暢。
本系統(tǒng)的測(cè)試用例(部分):
登錄部分測(cè)試用例 | |||||
編號(hào) |
對(duì)象 |
項(xiàng)目 |
操作 |
預(yù)期結(jié)果 |
結(jié)果 |
1 |
登錄 |
登錄提示 |
使用正確的賬號(hào)密碼登錄 |
成功登錄 |
預(yù)期結(jié)果 |
2 |
登錄提示 |
使用正確的賬號(hào)但錯(cuò)誤的密碼登錄 |
提示密碼錯(cuò)誤 |
預(yù)期結(jié)果 |
|
3 |
登錄提示 |
使用錯(cuò)誤的賬號(hào)登錄 |
提示不存在賬戶 |
預(yù)期結(jié)果 |
|
4 |
登錄提示 |
不輸入賬號(hào),點(diǎn)擊登錄 |
提示輸入賬號(hào) |
預(yù)期結(jié)果 |
|
5 |
登錄提示 |
輸入賬號(hào)但不輸入密碼點(diǎn)擊登錄 |
提示輸入密碼 |
預(yù)期結(jié)果 |
|
6 |
登錄入口 |
已登錄賬號(hào),查看登錄入口 |
不顯示登錄入口 |
預(yù)期結(jié)果 |
5.3測(cè)試環(huán)境與測(cè)試條件
處理器:Inter Core I7-4710MQ四核處理器
內(nèi)存:4GB
硬盤:1T
操作系統(tǒng):Windows 10
數(shù)據(jù)庫(kù):MySQL
5.4系統(tǒng)運(yùn)行情況
全部測(cè)試用例都已通過(guò)(包括但不限于以上測(cè)試用例),且不存在漏洞,實(shí)現(xiàn)了論文開(kāi)始時(shí)所作要求。本系統(tǒng)運(yùn)行穩(wěn)定,使用流暢,可以滿足客戶需求。
5.5系統(tǒng)評(píng)價(jià)
5.5.1系統(tǒng)功能評(píng)價(jià)
試運(yùn)行后進(jìn)行系統(tǒng)評(píng)估,可以認(rèn)為該系統(tǒng)達(dá)到預(yù)定的目標(biāo)要求,可以滿足用戶的需求,也滿足了系統(tǒng)開(kāi)發(fā)前所作目標(biāo)。
5.5.2系統(tǒng)技術(shù)評(píng)價(jià)
系統(tǒng)在經(jīng)過(guò)大量重復(fù)測(cè)試后運(yùn)行十分穩(wěn)定,安全實(shí)用,功能模塊已經(jīng)達(dá)到預(yù)定目標(biāo)所需。
5.5.3系統(tǒng)經(jīng)濟(jì)評(píng)價(jià)
在規(guī)定的時(shí)間內(nèi)實(shí)現(xiàn)系統(tǒng)的大部分功能,且滿足要求,節(jié)省開(kāi)發(fā)成本,有助于提高科學(xué)管理水平,符合本人經(jīng)濟(jì)情況。
第6章 總結(jié)
2022年的今天,計(jì)算機(jī)技術(shù)已經(jīng)相當(dāng)成熟。它的發(fā)展推動(dòng)了許多行業(yè)改頭換面,計(jì)算機(jī)的出現(xiàn)使人類社會(huì)有了進(jìn)一步降低人力物力和資源的方法,提高了人類社會(huì)的生產(chǎn)力,轉(zhuǎn)變了社會(huì)生產(chǎn)方式。目前各大餐飲都在積極備戰(zhàn),發(fā)展計(jì)算機(jī)和互聯(lián)網(wǎng),結(jié)合自身優(yōu)勢(shì)進(jìn)軍互聯(lián)網(wǎng)行業(yè)成為各大企業(yè)的重點(diǎn)項(xiàng)目。
本文利用JAVA和MySQL數(shù)據(jù)庫(kù)技術(shù),通過(guò)分析現(xiàn)實(shí)校園外賣微信小程序業(yè)務(wù)流程的基礎(chǔ)上,并完成了校園外賣微信小程序。經(jīng)調(diào)試結(jié)果顯示,本系統(tǒng)基本可以滿足一個(gè)校園外賣微信小程序的業(yè)務(wù)需要。系統(tǒng)界面簡(jiǎn)潔而有美感,易操作,做出了自己的特色,然而因?yàn)闀r(shí)間倉(cāng)促再加上缺乏系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)和僅依靠少數(shù)問(wèn)卷調(diào)查方式,因此本系統(tǒng)還存在不少缺陷、不足,比如:
1. 數(shù)據(jù)輸入的格式并沒(méi)有全部檢驗(yàn),所以很難保證數(shù)據(jù)的準(zhǔn)確,可能有一些不符合規(guī)則的數(shù)據(jù)也可以通過(guò)檢驗(yàn)。
2. 系統(tǒng)功能還不夠完善,無(wú)法提供豐富多彩的在線功能,只能實(shí)現(xiàn)美食資訊管理、菜品信息管理、訂單信息管理、用戶管理等一系列功能。
本系統(tǒng)還存在一些漏洞沒(méi)有解決,在現(xiàn)實(shí)應(yīng)用情境中很難保證完全不出錯(cuò),但相信通過(guò)再次完善,可以調(diào)試出真正符合實(shí)際的校園外賣微信小程序。
參考文獻(xiàn):
王一竹.基于MySQL的信息管理系統(tǒng)設(shè)計(jì)[J].電腦編程技巧與維護(hù),2022(01):93-95+116.
朱廣躍.移動(dòng)Web點(diǎn)餐系統(tǒng)的設(shè)計(jì)[J].集成電路應(yīng)用,2022,39(01):124-125.
[3]劉學(xué)玉.JAVA編程語(yǔ)言在計(jì)算機(jī)軟件開(kāi)發(fā)中的應(yīng)用[J].電子技術(shù)與軟件工程,2022(01):57-60.
[4]黃美益.基于Java Web技術(shù)的教學(xué)資源庫(kù)系統(tǒng)設(shè)計(jì)[J].電子技術(shù)與軟件工程,2022(01):229-232.
[5]王瑛瑛.基于Java技術(shù)的英語(yǔ)學(xué)習(xí)激勵(lì)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2021,37(12):71-73+77.
[6]涂華燕.基于MySQL管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)[J].電腦編程技巧與維護(hù),2021(12):104-106.
[7]佟亞超.計(jì)算機(jī)軟件Java編程特點(diǎn)及技術(shù)探析[J].技術(shù)與市場(chǎng),2021,28(12):86-87+89.
[8]易潔,黃翔.基于《MySQL數(shù)據(jù)庫(kù)技術(shù)》的新形態(tài)教材開(kāi)發(fā)與應(yīng)用[J].機(jī)械職業(yè)教育,2021(12):53-57.
[9]閆繼正,張雷,張海濤.基于MySQL的空管設(shè)備集中監(jiān)控系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)[J].微處理機(jī),2021,42(06):47-51.
[10]何芳.Java平臺(tái)及應(yīng)用Java技術(shù)的安全問(wèn)題分析[J].科技資訊,2021,19(35):10-12.
[11]Zhuoxi Zhang,Ming Yuan,Hanwei Qian. Research on MySQL Database Recovery and Forensics Based on Binlog[C]//Proceedings of the 11th International Conference on Computer Engineering and Networks(CENet2021)Part I.,2021:750-759.
[12]喻佳,吳丹新.基于SpringBoot的Web快速開(kāi)發(fā)框架[J].電腦編程技巧與維護(hù),2021(09):31-33.DOI:10.16184/j.cnki.comprg.2021.09.013.
[13]鹿俊聰.基于Android的食堂點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(shù)創(chuàng)新,2021(22):101-102.
[14]馮秀玲.智能點(diǎn)餐系統(tǒng)設(shè)計(jì)與應(yīng)用[J].電子技術(shù),2021,50(06):30-32.
[15]邱璐璐,陳俊仁.基于SpringBoot和Vue框架的高校代領(lǐng)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù)與信息化,2021(04):25-27.
[16]Guanhong Chen,Jiangming Xu. Design and implementation of efficient Learning platform based on SpringBoot Framework[J]. Journal of Electronics and Information Science,2020,6(1):
[17]Minmin He,Shengli Lv. Research on Civil Aircraft Structural Strength Material Performance Database Based on SpringBoot[C]//Proceedings of 2020 4th International Conference on Electrical,Automation and Mechanical Engineering(EAME2020).Proceedings of 2020 4th International Conference on Electrical,2020:1062-1067.DOI:10.26914/c.cnkihy.2020.057541.
[18]田海晴. 基于SpringBoot和Vue框架的共享運(yùn)營(yíng)管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].山東大學(xué),
[19]葉濟(jì)凡. 基于SpringBoot與Vue框架的中文社科論文分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京大學(xué),2020.
[20]吳彥文. 外賣點(diǎn)餐軟件品類導(dǎo)航服務(wù)及其運(yùn)營(yíng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京大學(xué),2018
致 謝
大學(xué)生活在這個(gè)時(shí)候即將劃上一個(gè)句號(hào),但是對(duì)于我的人生道路來(lái)說(shuō),這僅僅是一個(gè)逗號(hào),我將面對(duì)的是又一次征程的開(kāi)始。
回憶過(guò)去,許許多多的事情浮現(xiàn)在腦海:剛上大學(xué)時(shí)歡樂(lè)心情和興奮的場(chǎng)景還歷歷在目。一切都是那么新鮮,那么富有吸引力。有快樂(lè)也有艱辛,有收獲也有失落。衷心感謝信息學(xué)院所有支持幫助過(guò)我的老師,謝謝你們多年來(lái)的關(guān)心和愛(ài)護(hù)。同窗的友情同樣難忘,你們與我共同走過(guò)了人生中不平凡的道路,給我留下了值得珍藏的美好記憶。
最后,我要特別感謝指導(dǎo)點(diǎn)校園外賣小程序設(shè)計(jì)的老師。本論文是在他的悉心指導(dǎo)和熱情幫助下完成的,老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和精深的理論水平都使我受益匪淺。老師無(wú)論在理論上還是在實(shí)踐中,都給予我很大的幫助,使我專業(yè)技能的應(yīng)用水平得到很大提高,這對(duì)于我以后的工作和學(xué)習(xí)都有益處。值此論文完成之際,特別向老師表示衷心的感謝和崇高的敬意,謝謝他細(xì)心而又耐心地輔導(dǎo),使得我得以順利的完成畢業(yè)設(shè)計(jì)開(kāi)發(fā)工作,同時(shí)也要感謝其他幫助過(guò)我的老師和同學(xué),他們?cè)谖页砷L(zhǎng)過(guò)程中給予了我很大的幫助,在此一并表示感謝。
由于本人水平有限,加上時(shí)間緊促,本文一定有不少缺點(diǎn)和不足,懇請(qǐng)各位老師給予幫助和指正。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-482797.html
免費(fèi)領(lǐng)取項(xiàng)目源碼,請(qǐng)關(guān)注點(diǎn)贊+私聊文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-482797.html
到了這里,關(guān)于(附源碼)springboot基于微信小程序的校園外賣系統(tǒng) 畢業(yè)設(shè)計(jì)091024的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!