




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
緒論研究背景與意義隨著我國(guó)經(jīng)濟(jì)的高速發(fā)展,我國(guó)的交通運(yùn)輸能力不斷提高,越來(lái)越多的國(guó)民開(kāi)始走出家門(mén)來(lái)到異地進(jìn)行商務(wù)或者旅游等活動(dòng)。在這一條件下,客流量不斷增大?;疖囀燮钡墓芾韺?duì)于交通運(yùn)輸?shù)恼_\(yùn)行起著至關(guān)重要的作用,而隨著信息量的逐步增加,繁雜的數(shù)據(jù)處理費(fèi)時(shí)費(fèi)力,單純以人力進(jìn)行的火車售票已經(jīng)不適合現(xiàn)狀了?,F(xiàn)今的社會(huì)發(fā)展迅速,火車成為了人們?cè)诮煌ǚ矫娌豢扇鄙俚慕煌üぞ?,乘坐火車出行的人越?lái)越多,所以火車的客運(yùn)量也在迅速的增長(zhǎng)著。為了給人們帶來(lái)方便快捷的交通環(huán)境,火車站系統(tǒng)采取提高列車的速度,增加火車站列車等措施來(lái)滿足大量的旅客的乘車需求。但是,現(xiàn)在人多車多的情況下,如果再像從前一樣,在一個(gè)單一的地點(diǎn)售票,必然滿足不了現(xiàn)在的形勢(shì)。所以就需要售票能夠在不同的地點(diǎn)進(jìn)行。如此的情況之下,售票系統(tǒng)自然是相當(dāng)必要的。售票系統(tǒng)的出現(xiàn)能夠在很大的程度上解決單一地點(diǎn)售票所帶來(lái)的種種不便,并且能夠使想要出行的旅客方便的買到自己需要的車票。對(duì)于售票處的地點(diǎn)也從原來(lái)的單一地點(diǎn)(火車站)變成了多個(gè)地點(diǎn),可以在市內(nèi)的多個(gè)地點(diǎn)(賓館、酒店、娛樂(lè)場(chǎng)所等等)。這樣給將要出行的旅客帶來(lái)了更進(jìn)一步的方便。使旅客無(wú)論是在金錢還是在時(shí)間方面都能夠得到充分的節(jié)省。為了方便旅客,火車售票系統(tǒng)不僅僅只能售票,還能改簽,退票在線操作。也就是說(shuō)系統(tǒng)的用戶應(yīng)該不只是售票員,還應(yīng)該有管理員。管理員能夠通過(guò)售票系統(tǒng)及時(shí)的更新乘車信息。這樣才能夠使乘客避免不必要的麻煩,真正的解決以前老式售票的種種不便,才能夠真正的成為現(xiàn)在網(wǎng)絡(luò)社會(huì)的真正適應(yīng)者。現(xiàn)在的時(shí)代是一個(gè)信息產(chǎn)業(yè)的時(shí)代,國(guó)家把信息產(chǎn)業(yè)作為了增長(zhǎng)國(guó)民經(jīng)濟(jì)重要的一環(huán)。在這樣的環(huán)境下,以先進(jìn)的信息技術(shù)進(jìn)行汽車售票的管理成為了時(shí)代發(fā)展的必然。綜上所述,開(kāi)發(fā)這樣一個(gè)火車聯(lián)網(wǎng)售票系統(tǒng)是相當(dāng)有必要的。開(kāi)發(fā)現(xiàn)狀1、國(guó)內(nèi)研究現(xiàn)狀:我國(guó)火車站很早就利用計(jì)算機(jī)管理系統(tǒng)來(lái)加強(qiáng)管理、提高服務(wù)水平。我國(guó)火車站的IT的發(fā)展階段主要是以電腦系統(tǒng)的運(yùn)用為標(biāo)志的,電話通訊系統(tǒng)實(shí)際上也是從程控交換技術(shù)出現(xiàn)才獲得質(zhì)的飛躍。隨著計(jì)算機(jī)的普及應(yīng)用,計(jì)算機(jī)技術(shù)的不斷發(fā)展,同時(shí)也使火車站管理系統(tǒng)發(fā)展到了一個(gè)新的時(shí)期,趨于更加完善?;疖囌竟芾硐到y(tǒng)實(shí)現(xiàn)了火車票預(yù)定、出行、退票流程的智能化、自動(dòng)化,節(jié)約了車站的人工成本,較少了乘客的等候時(shí)間,具有簡(jiǎn)單、便捷、私密的特點(diǎn)。2、國(guó)外研究現(xiàn)狀:國(guó)外的火車站發(fā)展較為國(guó)內(nèi)早了好多年,同時(shí)在多年的發(fā)展探索中,火車站的功能發(fā)展更加全面和多樣化?;疖囌居梢婚_(kāi)始的單一出行站點(diǎn)到現(xiàn)在的休閑商務(wù)旅游多方面出行,向著更復(fù)雜功能更齊全的方向發(fā)展。隨著這些火車站的全面發(fā)展,其對(duì)火車站的管理要求也隨著提高,為了更方便地訂票,在計(jì)算機(jī)迅速發(fā)展的背景下,產(chǎn)生了火車訂票系統(tǒng)軟件,在很大成程度上減少了人力物力和財(cái)力,也同時(shí)使車站的經(jīng)營(yíng)更加規(guī)范化,提高了服務(wù)的標(biāo)準(zhǔn)。相關(guān)技術(shù)介紹J2EE技術(shù)人可以掌握多門(mén)外語(yǔ),而一個(gè)計(jì)算機(jī)科學(xué)家精通的大多是編程語(yǔ)言,它不是人類的自然語(yǔ)言,比如C語(yǔ)言、Java、Perl等等。由于不同的公司開(kāi)發(fā)出的“中間件”不夠規(guī)范,所以Sun公司推出J2EE,用這個(gè)標(biāo)準(zhǔn)來(lái)解決弊病。它提供了良好的機(jī)制,讓每個(gè)層次允許與之相對(duì)的服務(wù)器、組件運(yùn)行,使得系統(tǒng)的搭建穩(wěn)定可用、開(kāi)發(fā)高效、維護(hù)方便。MySQL描述現(xiàn)在MySQL數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)上它可以支撐許多個(gè)用戶,而且也可以適應(yīng)客服機(jī)和服務(wù)器的部署或者配置等,我們這里的服務(wù)器和客戶機(jī)其實(shí)就是一種軟件上的概念,并且我們使用的計(jì)算機(jī)硬件也與他們不存在一一對(duì)應(yīng)的關(guān)系。MySQL是一款非常流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它的出現(xiàn)一直都是佼佼者,它不僅功能非常強(qiáng)大,而且使用起來(lái)非常方便,并且MySQL的跨平臺(tái)能力也很好,軟件開(kāi)發(fā)人員非常喜歡它的這些強(qiáng)大的優(yōu)點(diǎn)。不同于其他關(guān)系型數(shù)據(jù)庫(kù),對(duì)于數(shù)據(jù)庫(kù)的管理它有著自己的一套方案,通過(guò)對(duì)用戶設(shè)定相應(yīng)的權(quán)限和角色來(lái)達(dá)到對(duì)數(shù)據(jù)庫(kù)的管理。由此可見(jiàn),MySQL是一個(gè)能夠適用于吞吐量高,可靠性高,效率高的一款數(shù)據(jù)庫(kù)管理軟件。優(yōu)點(diǎn)一:MySQL中對(duì)于不同身份的用戶都設(shè)定其不同的權(quán)限來(lái)完成不同的業(yè)務(wù)邏輯,這使得MySQL在安全和完整性遠(yuǎn)遠(yuǎn)超出了其他關(guān)系型數(shù)據(jù)庫(kù)。優(yōu)點(diǎn)二:對(duì)于那些動(dòng)畫(huà)、圖形和聲音的數(shù)據(jù)類型MySQL也可以支持,這說(shuō)明多數(shù)據(jù)類型MySQL也是可以支持的。優(yōu)點(diǎn)三:MySQL還可以做到多個(gè)平臺(tái)的開(kāi)發(fā),軟件開(kāi)發(fā)的多種編程語(yǔ)言都可以實(shí)現(xiàn)對(duì)MySQL數(shù)據(jù)庫(kù)的操作。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。MVVM模式MVVM模式是常用的開(kāi)發(fā)模式,主要是在代碼實(shí)現(xiàn)上將其分為M層、V層和C層。視圖(View)代表用戶交互界面,一個(gè)Web應(yīng)用就可能有很多的界面,在MVVM模式中,視圖僅僅處理的只有數(shù)據(jù)采集、處理,還有用戶的請(qǐng)求,并不包括業(yè)務(wù)流程的處理,業(yè)務(wù)流程由模型(Model)來(lái)處理。模型(Model)就是業(yè)務(wù)流程/狀態(tài)的處理及業(yè)務(wù)規(guī)則的制定。模型處理業(yè)務(wù)流程的過(guò)程其它層是無(wú)法看見(jiàn)了的,它就像黑箱子,在接受視圖請(qǐng)求的數(shù)據(jù)之后,然后返回最終的處理結(jié)果。MVVM最主要的核心就是業(yè)務(wù)模型的設(shè)計(jì),一個(gè)典型的應(yīng)用例子就是目前流行的EJB模型,它從應(yīng)用技術(shù)實(shí)現(xiàn)的角度對(duì)模型做了進(jìn)一步的劃分,以便充分利用現(xiàn)有的組件,但是它不能作為應(yīng)用設(shè)計(jì)模型的框架。控制器(Controller)可以理解為接收用戶的請(qǐng)求,然后視圖和模型匹配在一起,一起再完成用戶請(qǐng)求。它有非常明顯的作用在劃分控制層上,可以很清晰地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型、視圖,可以完成用戶的什么樣的請(qǐng)求??刂茖硬蛔鏊械臄?shù)據(jù)處理,比如說(shuō):用戶點(diǎn)擊一個(gè)連接,控制層接受到請(qǐng)求之后,并不處理業(yè)務(wù)信息,它只是向模型傳遞用戶的信息,同時(shí)告訴模型做什么,然后選擇符合需求的視圖返回給用戶。B/S結(jié)構(gòu)B/S(Browser/Server)比前身架構(gòu)更為省事的架構(gòu)。它借助Webserver完成數(shù)據(jù)的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達(dá)到“瘦身”效果,不需要考慮不停裝軟件的問(wèn)題。B/S體系工作原理B/S架構(gòu)采取瀏覽器請(qǐng)求,服務(wù)器響應(yīng)的工作模式。用戶可以通過(guò)瀏覽器去訪問(wèn)Internet上由Web服務(wù)器產(chǎn)生的文本、數(shù)據(jù)、圖片、動(dòng)畫(huà)、視頻點(diǎn)播和聲音等信息;而每一個(gè)Web服務(wù)器又可以通過(guò)各種方式與數(shù)據(jù)庫(kù)服務(wù)器連接,大量的數(shù)據(jù)實(shí)際存放在數(shù)據(jù)庫(kù)服務(wù)器中;從Web服務(wù)器上下載程序到本地來(lái)執(zhí)行,在下載過(guò)程中若遇到與數(shù)據(jù)庫(kù)有關(guān)的指令,由Web服務(wù)器交給數(shù)據(jù)庫(kù)服務(wù)器來(lái)解釋執(zhí)行,并返回給Web服務(wù)器,Web服務(wù)器又返回給用戶。在這種結(jié)構(gòu)中,將許許多多的網(wǎng)連接到一塊,形成一個(gè)巨大的網(wǎng),即全球網(wǎng)。而各個(gè)企業(yè)可以在此結(jié)構(gòu)的基礎(chǔ)上建立自己的Internet。在B/S模式中,用戶是通過(guò)瀏覽器針對(duì)許多分布于網(wǎng)絡(luò)上的服務(wù)器進(jìn)行請(qǐng)求訪問(wèn)的,瀏覽器的請(qǐng)求通過(guò)服務(wù)器進(jìn)行處理,并將處理結(jié)果以及相應(yīng)的信息返回給瀏覽器,其他的數(shù)據(jù)加工、請(qǐng)求全部都是由WebServer完成的。通過(guò)該框架結(jié)構(gòu)以及植入于操作系統(tǒng)內(nèi)部的瀏覽器,該結(jié)構(gòu)已經(jīng)成為了當(dāng)今軟件應(yīng)用的主流結(jié)構(gòu)模式。系統(tǒng)分析可行性分析技術(shù)性方面,采用當(dāng)前主流的Springboot框架進(jìn)行系統(tǒng)主體框架的搭建,實(shí)現(xiàn)前臺(tái)頁(yè)面的設(shè)計(jì)與美觀調(diào)整,以上技術(shù),均由本人經(jīng)過(guò)系統(tǒng)學(xué)習(xí),并且都是在課程設(shè)計(jì)中實(shí)踐過(guò)的,可以使得開(kāi)發(fā)更加便捷和系統(tǒng)。從技術(shù)角度看,這個(gè)系統(tǒng)是完全可以實(shí)現(xiàn)的。實(shí)用性方面,本次設(shè)計(jì)的主要任務(wù)是在火車訂票系統(tǒng)內(nèi)火車票預(yù)訂、車票中心、購(gòu)票訂單、退票紀(jì)錄等,符合當(dāng)前潮流的發(fā)展。從用戶角度出發(fā),同時(shí)也考慮系統(tǒng)運(yùn)營(yíng)成本和人力資源,采用網(wǎng)絡(luò)上的便捷方式,實(shí)現(xiàn)線上業(yè)務(wù),使得業(yè)務(wù)流程更系統(tǒng),也更方便用戶的體驗(yàn),比較實(shí)用。經(jīng)濟(jì)性方面,由于本課題中設(shè)計(jì)的火車訂票系統(tǒng)的主要目的是為了能夠更加方便及快捷的進(jìn)行信息的查詢管理及檢索服務(wù),也就是能夠可以直接投入使用的信息化軟件。系統(tǒng)的主要成本主要是集中在對(duì)使用數(shù)據(jù)后期繼續(xù)維護(hù)及其管理更新這個(gè)操作上。但是一旦系統(tǒng)投入到實(shí)際的運(yùn)行及使用之后就能夠很好的提高信息查詢檢索的效率,同時(shí)也需要有效的保證查詢者的信息方面的安全性,同時(shí)這個(gè)火車訂票系統(tǒng)所帶來(lái)的實(shí)際應(yīng)用方面的價(jià)值是遠(yuǎn)遠(yuǎn)的超過(guò)了實(shí)際系統(tǒng)進(jìn)行開(kāi)發(fā)與維護(hù)方面的成本,因此,從經(jīng)濟(jì)上來(lái)說(shuō)開(kāi)發(fā)這個(gè)軟件是可行的。功能需求分析火車訂票系統(tǒng)的功能主要分為前臺(tái)用戶根據(jù)自己的需求進(jìn)行注冊(cè)登錄,瀏覽火車車次信息并對(duì)需要的火車票進(jìn)行預(yù)訂,改簽,退票等操作。后臺(tái)系統(tǒng)管理員因職責(zé)的不同,分為普通管理員和超級(jí)管理員,管理員主要對(duì)注冊(cè)用戶,退票紀(jì)錄、購(gòu)票訂單、車票中心進(jìn)行處理。用戶用例圖如下所示。圖3-1用戶用例圖管理員用例圖如下所示。圖3-2管理員用例圖前臺(tái)用戶功能用戶管理模塊:(1)用戶注冊(cè)登錄:用戶注冊(cè)為會(huì)員并登錄火車訂票系統(tǒng);用戶對(duì)個(gè)人信息的增刪改查,比如個(gè)人資料,密碼修改。(2)貨車資訊:用戶進(jìn)行資訊的閱覽,查看管理者發(fā)布的貨車資訊信息。(3)公告消息:用戶在公告欄這一菜單下對(duì)用戶提交的查看、同時(shí)也可以發(fā)布、評(píng)論。(4)車票中心:用戶根據(jù)自己的需求選中班次車票進(jìn)行預(yù)訂操作。后臺(tái)管理員功能管理員管理模塊:(1)用戶管理:管理員可以對(duì)前臺(tái)上注冊(cè)過(guò)的用戶信息進(jìn)行管控,也可以對(duì)管理員信息進(jìn)行管控。(2)內(nèi)容管理:管理員在后臺(tái)可以對(duì)火車訂票系統(tǒng)中顯示的內(nèi)容管理信息進(jìn)行增刪改查。(3)新聞列表管理:管理員可以對(duì)火車訂票系統(tǒng)中用戶提交的新聞以及新聞的分類進(jìn)行增刪改查。(4)分類管理:管理員對(duì)火車訂票系統(tǒng)中商品的分類進(jìn)行管控。(5)商城管理:管理員對(duì)賣家提交的商品訂單進(jìn)行管控。(6)更多管理:在“更多管理”這一菜單下,可以對(duì)管理員操作的車票中心、購(gòu)票訂單、退票紀(jì)錄以及在前臺(tái)用戶提交的貨車資訊、車票中心進(jìn)行管控。非功能需求分析首先主要考慮的是系統(tǒng)功能軟件,在具體設(shè)計(jì)的環(huán)節(jié)上,是不是能夠較好的滿足各類用戶的基本功能需求,如果不能較好的滿足用戶需求,那么這個(gè)系統(tǒng)的存在是沒(méi)有價(jià)值的。軟件系統(tǒng)的非功能性求分析,從7個(gè)方面展開(kāi),一個(gè)是性能分析,針對(duì)系統(tǒng);一個(gè)是安全分析,針對(duì)系統(tǒng),一個(gè)是完整度分析,針對(duì)系統(tǒng),一個(gè)是可維護(hù)分析,針對(duì)系統(tǒng),一個(gè)是可擴(kuò)展性分析,針對(duì)系統(tǒng),一個(gè)是適應(yīng)業(yè)務(wù)的性能分析。面對(duì)汽車訂票系統(tǒng)存在的性能、安全、擴(kuò)展、完整度等7個(gè)方面性能綜合比對(duì)分析后發(fā)現(xiàn),需要相應(yīng)的非功能性需求分析。安全性需求分析系統(tǒng)的安全性安全性對(duì)每一個(gè)系統(tǒng)來(lái)說(shuō)都是非常重要的。安全性很好的系統(tǒng)可以保護(hù)企業(yè)的信息和用戶的信息不被竊取。提高系統(tǒng)的安全性不僅是對(duì)用戶的負(fù)責(zé),更是對(duì)企業(yè)的負(fù)責(zé)。尤其針對(duì)于汽車訂票系統(tǒng)來(lái)說(shuō),必須要有很好的安全性來(lái)保障整個(gè)系統(tǒng)。系統(tǒng)具有對(duì)使用者有權(quán)限控制,針對(duì)角色的不通限制使用者的權(quán)限,以此來(lái)確保系統(tǒng)的安全性。數(shù)據(jù)的安全性數(shù)據(jù)庫(kù)中的數(shù)據(jù)是從外界輸入的,當(dāng)數(shù)據(jù)的輸入時(shí),由于種種原因,輸入的數(shù)據(jù)會(huì)無(wú)效,或者是臟數(shù)據(jù)。因此,怎樣保證輸入的數(shù)據(jù)符合規(guī)定,成為了數(shù)據(jù)庫(kù)系統(tǒng),尤其是多用戶的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)首要關(guān)注的問(wèn)題。因此,在寫(xiě)入數(shù)據(jù)庫(kù)時(shí),要保證數(shù)據(jù)完整性、正確性和一致性。數(shù)據(jù)流程分析對(duì)系統(tǒng)的數(shù)據(jù)流進(jìn)行分析,系統(tǒng)的使用者分為二類,一般用戶,管理員。系統(tǒng)主要對(duì)界面信息傳送,登錄信息的驗(yàn)證,注冊(cè)信息的接收,用戶各種操作的響應(yīng)做處理。系統(tǒng)頂層數(shù)據(jù)流圖如下圖所示。圖3-2頂層數(shù)據(jù)流圖要判斷用戶是是什么身份,是根據(jù)登錄的數(shù)據(jù)來(lái)判斷后,跳轉(zhuǎn)到對(duì)應(yīng)的功能界面。在系統(tǒng)的內(nèi)部用戶就可以對(duì)數(shù)據(jù)進(jìn)行操作,數(shù)據(jù)庫(kù)中心就可以接收到系統(tǒng)傳輸?shù)挠行?shù)據(jù)流來(lái)對(duì)數(shù)據(jù)sql語(yǔ)句進(jìn)行對(duì)應(yīng)操作。系統(tǒng)底層數(shù)據(jù)流圖如下圖所示。圖3-3底層數(shù)據(jù)流圖系統(tǒng)可以分為前臺(tái)和后臺(tái)兩部分,每一種操作后系統(tǒng)都返回操作結(jié)果。前臺(tái)和后臺(tái)的數(shù)據(jù)連接主要通過(guò)數(shù)據(jù)庫(kù),既分別對(duì)數(shù)據(jù)庫(kù)做不同的操作。系統(tǒng)設(shè)計(jì)系統(tǒng)架構(gòu)設(shè)計(jì)本火車訂票系統(tǒng)的架構(gòu)設(shè)計(jì)主要分為可以3層,主要有Web層,業(yè)務(wù)層,Model層。其中web層還包括View層和Controller層,Model層包括元數(shù)據(jù)擴(kuò)展層和數(shù)據(jù)訪問(wèn)層。系統(tǒng)架構(gòu)如下圖所示。圖4-1系統(tǒng)架構(gòu)系統(tǒng)總體設(shè)計(jì)火車訂票系統(tǒng)總體分為前臺(tái)用戶模塊和后臺(tái)管理員模塊。兩個(gè)模塊表現(xiàn)上是分別獨(dú)立存在,但是訪問(wèn)的數(shù)據(jù)庫(kù)是一樣的。每一個(gè)模塊的功能都是根據(jù)先前完成的需求分析,并查閱相關(guān)資料后整理制作的。綜上所述,系統(tǒng)功能結(jié)構(gòu)圖如下圖所示。圖4-2系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)功能設(shè)計(jì)登錄模塊:登錄模塊是進(jìn)入系統(tǒng)的入口,所有用戶必須登錄后才能訪問(wèn)系統(tǒng)。登錄需要輸入用戶名和密碼,如果多次嘗試登錄需要輸入驗(yàn)證碼。登錄時(shí)需要選擇用戶的角色,是一般用戶還是管理員登錄等。登錄成功后,會(huì)通過(guò)數(shù)據(jù)庫(kù)獲取用戶的權(quán)限,并跳轉(zhuǎn)至用戶的主頁(yè)面。管理員用戶管理模塊:管理員管理包括:管理員的添加,修改和刪除操作。添加管理員時(shí),先判斷用戶添加的管理員是否是admin(超級(jí)管理員),如果不是則添加成功。修改時(shí)候,如果是超級(jí)管理員,可以修改所有管理員的信息,如果是普通管理員,那么只能修改自己的信息。超級(jí)管理員可以刪除自己以外的所有其他管理員,普通管理員不能執(zhí)行刪除管理員的操作。購(gòu)票訂單模塊:可分為購(gòu)票訂單瀏覽、購(gòu)票訂單檢索、購(gòu)票訂單維護(hù)三個(gè)模塊,管理員對(duì)購(gòu)票訂單有維護(hù)的權(quán)限,發(fā)布新的購(gòu)票訂單、更新已有的購(gòu)票訂單等。車票中心管理模塊:車票管理分為車票添加、修改和車票預(yù)訂,車票退票。車票信息由管理員進(jìn)行修改、添加、刪除操作;車票預(yù)訂,退票由普通用戶來(lái)執(zhí)行。數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)需求分析從前面可以分析到數(shù)據(jù)庫(kù)中最重要的是車票信息,預(yù)訂信息,評(píng)價(jià)信息。分析可以得到如下數(shù)據(jù)描述:平臺(tái)用戶:用于記錄用戶的各種信息,包括用戶姓名、用戶性別、用戶年齡等數(shù)據(jù)項(xiàng)。管理員:記錄管理員的登錄信息。包括用戶名,密碼,權(quán)限等數(shù)據(jù)項(xiàng)。退票紀(jì)錄:存儲(chǔ)各種退票紀(jì)錄信息。包括火車編號(hào)、出發(fā)站、沿途站、終點(diǎn)站、發(fā)車時(shí)間、座位類型、座位價(jià)格、車票編號(hào)、購(gòu)買用戶、購(gòu)買票數(shù)、支付金額、購(gòu)票須知等數(shù)據(jù)項(xiàng)。購(gòu)票訂單。存儲(chǔ)用戶的購(gòu)票訂單信息。包括購(gòu)票訂單的火車編號(hào)、出發(fā)站、沿途站、終點(diǎn)站、發(fā)車時(shí)間、座位類型、座位價(jià)格、車票編號(hào)、購(gòu)買用戶、購(gòu)票時(shí)間、購(gòu)買票數(shù)、支付金額、購(gòu)票須知、支付狀態(tài)、支付類型等數(shù)據(jù)項(xiàng)。車票中心:存儲(chǔ)用戶的車票中心。包括火車編號(hào)、出發(fā)站、沿途站、終點(diǎn)站、發(fā)車時(shí)間、座位類型、座位價(jià)格、剩余座位、封面圖、購(gòu)票須知、點(diǎn)擊數(shù)等數(shù)據(jù)項(xiàng)。數(shù)據(jù)庫(kù)概念設(shè)計(jì)根據(jù)前面的數(shù)據(jù)流程圖,結(jié)合系統(tǒng)的功能模塊設(shè)計(jì),設(shè)計(jì)出符合系統(tǒng)的各信息實(shí)體。系統(tǒng)ER圖如下圖所示。圖4-3系統(tǒng)ER圖數(shù)據(jù)庫(kù)表設(shè)計(jì)火車訂票系統(tǒng)所擁有的數(shù)據(jù)表有以下:用戶信息表,評(píng)論信息表,車票信息表,車票預(yù)訂表,留言表。由于數(shù)據(jù)表較多,只展示系統(tǒng)主要數(shù)據(jù)表,如下表所示。ticket_refund_record表:名稱類型長(zhǎng)度不是null主鍵注釋ticket_refund_record_idint11是是退票記錄IDtrain_numbervarchar64否否火車編號(hào)departure_stationvarchar64否否出發(fā)站station_along_the_wayvarchar64否否沿途站terminusvarchar64否否終點(diǎn)站departure_timevarchar64否否發(fā)車時(shí)間seat_typevarchar64否否座位類型seat_pricevarchar64否否座位價(jià)格ticket_novarchar64否否車票編號(hào)purchase_userint11否否購(gòu)買用戶number_of_votes_purchasedvarchar64否否購(gòu)買票數(shù)payment_amountvarchar64否否支付金額ticket_purchase_instructionstext0否否購(gòu)票須知recommendint11是否智能推薦create_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間ticket_purchase_order表:名稱類型長(zhǎng)度不是null主鍵注釋ticket_purchase_order_idint11是是購(gòu)票訂單IDtrain_numbervarchar64否否火車編號(hào)departure_stationvarchar64否否出發(fā)站station_along_the_wayvarchar64否否沿途站terminusvarchar64否否終點(diǎn)站departure_timevarchar64否否發(fā)車時(shí)間seat_typevarchar64否否座位類型seat_pricevarchar64否否座位價(jià)格ticket_novarchar64否否車票編號(hào)purchase_userint11否否購(gòu)買用戶ticket_purchase_timetime0否否購(gòu)票時(shí)間number_of_votes_purchasedint11否否購(gòu)買票數(shù)payment_amountvarchar64否否支付金額ticket_purchase_instructionstext0否否購(gòu)票須知pay_statevarchar16是否支付狀態(tài)pay_typevarchar16否否支付類型:微信、支付寶、網(wǎng)銀recommendint11是否智能推薦create_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間ticket_center表:名稱類型長(zhǎng)度不是null主鍵注釋ticket_center_idint11是是車票中心IDtrain_numbervarchar64否否火車編號(hào)departure_stationvarchar64否否出發(fā)站station_along_the_wayvarchar64否否沿途站terminusvarchar64否否終點(diǎn)站departure_timedatetime0否否發(fā)車時(shí)間seat_typevarchar64否否座位類型seat_priceint11否否座位價(jià)格remaining_seatsvarchar64否否剩余座位cover_picturevarchar255否否封面圖ticket_purchase_instructionstext0否否購(gòu)票須知hitsint11是否點(diǎn)擊數(shù)recommendint11是否智能推薦create_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間ordinary_users表:名稱類型長(zhǎng)度不是null主鍵注釋ordinary_users_idint11是是普通用戶IDuser_namevarchar64是否用戶姓名user_gendervarchar64否否用戶性別user_agevarchar64否否用戶年齡examine_statevarchar16是否審核狀態(tài)recommendint11是否智能推薦user_idint11是否用戶IDcreate_timedatetime0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間Comment表:名稱類型長(zhǎng)度不是null主鍵注釋comment_idint11是是評(píng)論IDuser_idint11是否評(píng)論人IDreply_to_idint11是否回復(fù)評(píng)論IDcontentlongtext0否否內(nèi)容nicknamevarchar255否否昵稱avatarvarchar255否否頭像地址create_timetimestamp0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間source_tablevarchar255否否來(lái)源表source_fieldvarchar255否否來(lái)源字段source_idint10是否來(lái)源IDSlides表:名稱類型長(zhǎng)度不是null主鍵注釋slides_idint10是是輪播圖IDtitlevarchar64否否標(biāo)題contentvarchar255否否內(nèi)容urlvarchar255否否鏈接imgvarchar255否否輪播圖hitsint10是否點(diǎn)擊量create_timetimestamp0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間Praise表:名稱類型長(zhǎng)度不是null主鍵注釋praise_idint10是是點(diǎn)贊IDuser_idint11是否點(diǎn)贊人create_timetimestamp0是否創(chuàng)建時(shí)間update_timetimestamp0是否更新時(shí)間source_tablevarchar255否否來(lái)源表source_fieldvarchar255否否來(lái)源字段source_idint10是否來(lái)源IDstatustinyint1是否點(diǎn)贊狀態(tài)系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)層的實(shí)現(xiàn)該系統(tǒng)是通過(guò)jdbc和MySQL達(dá)成連接的,新建一個(gè)perties文件來(lái)填寫(xiě)與數(shù)據(jù)庫(kù)連接所需要的驅(qū)動(dòng)和參數(shù)。jdbc.driverClass=com.MySQL.jdbc.Driverjdbc.url=jdbc:MySQL://localhost:3306/tsijdbc.username=rootjdbc.password=123第一個(gè)參數(shù)代表MySQL數(shù)據(jù)庫(kù)的驅(qū)動(dòng),第二個(gè)參數(shù)代表要連接的數(shù)據(jù)庫(kù),第三個(gè)和第四個(gè)參數(shù)代表數(shù)據(jù)庫(kù)連接名和密碼。后臺(tái)與數(shù)據(jù)庫(kù)訪問(wèn)主要是通過(guò)HQL語(yǔ)句來(lái)進(jìn)行查詢的,查詢語(yǔ)句中的表名是表格的實(shí)體類名,在這種查詢語(yǔ)句中*是不允許使用的,除非適合聚合函數(shù)一起使用才可以。注冊(cè)模塊的實(shí)現(xiàn)用戶在填寫(xiě)數(shù)據(jù)的時(shí)候必須與注冊(cè)頁(yè)面上的驗(yàn)證相匹配否則會(huì)注冊(cè)失敗,注冊(cè)頁(yè)面的表單驗(yàn)證是通過(guò)JavaScript進(jìn)行驗(yàn)證的,用戶名的長(zhǎng)度必須在6到18之間,郵箱必須帶有@符號(hào),密碼和密碼確認(rèn)必須相同,你輸入的密碼,系統(tǒng)會(huì)根據(jù)你輸入密碼的強(qiáng)度給出指定的值,電話號(hào)碼和身份證號(hào)碼必須要求輸入格式與生活相符合,當(dāng)你前臺(tái)驗(yàn)證通過(guò)的時(shí)候你點(diǎn)擊注冊(cè),表單會(huì)將你輸入的值通過(guò)name值傳遞給后臺(tái)并保存到數(shù)據(jù)庫(kù)中。用戶注冊(cè)流程圖如下圖所示。圖5-1用戶注冊(cè)流程圖用戶注冊(cè)界面如下圖所示。圖5-2用戶注冊(cè)界面用戶注冊(cè)的關(guān)鍵代碼如下。/***注冊(cè)*@paramuser*@return*/@PostMapping("register")publicMap<String,Object>signUp(@RequestBodyUseruser){//查詢用戶Map<String,String>query=newHashMap<>();query.put("username",user.getUsername());Listlist=service.select(query,newHashMap<>()).getResultList();if(list.size()>0){returnerror(30000,"用戶已存在");}user.setUserId(null);user.setPassword(service.encryption(user.getPassword()));service.save(user);returnsuccess(1);}/***用戶ID:[0,8388607]用戶獲取其他與用戶相關(guān)的數(shù)據(jù)*/@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="user_id")privateIntegeruserId;/***賬戶狀態(tài):[0,10](1可用|2異常|3已凍結(jié)|4已注銷)*/@Basic@Column(name="state")privateIntegerstate;/***所在用戶組:[0,32767]決定用戶身份和權(quán)限*/@Basic@Column(name="user_group")privateStringuserGroup;/***上次登錄時(shí)間:*/@Basic@Column(name="login_time")privateTimestamploginTime;/***手機(jī)號(hào)碼:[0,11]用戶的手機(jī)號(hào)碼,用于找回密碼時(shí)或登錄時(shí)*/@Basic@Column(name="phone")privateStringphone;/***手機(jī)認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)*/@Basic@Column(name="phone_state")privateIntegerphoneState;/***用戶名:[0,16]用戶登錄時(shí)所用的賬戶名稱*/@Basic@Column(name="username")privateStringusername;/***昵稱:[0,16]*/@Basic@Column(name="nickname")privateStringnickname;/***密碼:[0,32]用戶登錄所需的密碼,由6-16位數(shù)字或英文組成*/@Basic@Column(name="password")privateStringpassword;/***郵箱:[0,64]用戶的郵箱,用于找回密碼時(shí)或登錄時(shí)*/@Basic@Column(name="email")privateStringemail;/***郵箱認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)*/@Basic@Column(name="email_state")privateIntegeremailState;/***頭像地址:[0,255]*/@Basic@Column(name="avatar")privateStringavatar;/***創(chuàng)建時(shí)間:*/@Basic@Column(name="create_time")@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss")privateTimestampcreateTime;@Basic@TransientprivateStringcode;}登錄模塊的實(shí)現(xiàn)主要由兩部分組成,登錄前的登錄界面以及登錄后的用戶功能界面。登錄界面,要求用戶輸入用戶名和密碼,當(dāng)用戶名和密碼其中一個(gè)輸入為空時(shí),給出提示“用戶名,密碼不能為空”。獲取用戶名和密碼后到數(shù)據(jù)庫(kù)中查找,如果用戶名存在,以及對(duì)應(yīng)的密碼正確,則登錄成功,否則登錄失敗。登錄失敗后給出提示,并把焦點(diǎn)停在文本框中。登錄成功后將該次會(huì)話的全局變量username設(shè)置為用戶名。登錄成功后進(jìn)入會(huì)員的功能模塊,主要有會(huì)員基本信息修改,已經(jīng)發(fā)布商品信息管理,發(fā)布信息,和退出功能。退出功能是清除全局變量username的值,并跳回到首頁(yè)。登錄流程圖如下圖所示。圖5-3登錄流程圖用戶登錄界面如下圖所示。圖5-4用戶登錄界面用戶登錄的關(guān)鍵代碼如下。/***登錄*@paramdata*@paramhttpServletRequest*@return*/@PostMapping("login")publicMap<String,Object>login(@RequestBodyMap<String,String>data,HttpServletRequesthttpServletRequest){("[執(zhí)行登錄接口]");Stringusername=data.get("username");Stringemail=data.get("email");Stringphone=data.get("phone");Stringpassword=data.get("password");ListresultList=null;Map<String,String>map=newHashMap<>();if(username!=null&&"".equals(username)==false){map.put("username",username);resultList=service.select(map,newHashMap<>()).getResultList();}elseif(email!=null&&"".equals(email)==false){map.put("email",email);resultList=service.select(map,newHashMap<>()).getResultList();}elseif(phone!=null&&"".equals(phone)==false){map.put("phone",phone);resultList=service.select(map,newHashMap<>()).getResultList();}else{returnerror(30000,"賬號(hào)或密碼不能為空");}if(resultList==null||password==null){returnerror(30000,"賬號(hào)或密碼不能為空");}//判斷是否有這個(gè)用戶if(resultList.size()<=0){returnerror(30000,"用戶不存在");}用戶資料修改模塊的實(shí)現(xiàn)用戶登錄/注冊(cè)成功之后可以修改自己的基本信息。修改頁(yè)面的表單中每一個(gè)input的name值都要與實(shí)體類中的參數(shù)相匹配,在用戶點(diǎn)擊修改頁(yè)面的時(shí)候,如果改后用戶名與數(shù)據(jù)庫(kù)里面重復(fù)了,頁(yè)面會(huì)提示該用戶名已經(jīng)存在了,否則通過(guò)Id來(lái)查詢用戶,并將用戶的信息修改為表單提交的數(shù)據(jù)。貨車資訊模塊的實(shí)現(xiàn)如果貨車資訊的信息需要修改,管理員可以通過(guò)查詢貨車資訊的基本信息來(lái)查詢貨車資訊,查詢貨車資訊是通過(guò)ajax技術(shù)來(lái)進(jìn)行查詢的,需要傳遞貨車資訊的標(biāo)題、編號(hào)等參數(shù)然后在返回到該頁(yè)面中,可以選中要修改或刪除的那條信息,如果選中了超過(guò)一條數(shù)據(jù),頁(yè)面會(huì)挑一個(gè)窗口提醒只能選擇一條數(shù),如果沒(méi)有選中數(shù)據(jù)會(huì)挑一個(gè)窗口題型必須選擇一條數(shù)據(jù)。當(dāng)選擇確認(rèn)修改的時(shí)候,后臺(tái)會(huì)根據(jù)傳過(guò)來(lái)的id到數(shù)據(jù)庫(kù)查詢,并將結(jié)果返回到修改頁(yè)面中,可以在修改頁(yè)面中修改剛剛選中的信息當(dāng)點(diǎn)擊確認(rèn)的時(shí)候from表單會(huì)將修改的數(shù)據(jù)提交到后臺(tái)并保存到數(shù)據(jù)庫(kù)中,就是說(shuō)如果提交的數(shù)據(jù)數(shù)據(jù)庫(kù)中存在就修改,否則就保存。貨車資訊展示界面如下圖所示。圖5-5貨車資訊展示界面貨車資訊展示的關(guān)鍵代碼如下。@RequestMapping(value={"/avg_group","/avg"}) publicMap<String,Object>avg(HttpServletRequestrequest){Querycount=service.avg(service.readQuery(request),service.readConfig(request));returnsuccess(count.getResultList());}車票中心列表模塊的實(shí)現(xiàn)火車訂票功能整體流程:用戶瀏覽車票信息時(shí),同時(shí)會(huì)顯示車票的狀態(tài),系統(tǒng)會(huì)在其顯示詳細(xì)信息的頁(yè)面時(shí)便會(huì)判斷車票的狀態(tài),若車票狀態(tài)為可預(yù)訂,則會(huì)顯示預(yù)訂的鏈接按鈕。在用戶點(diǎn)擊預(yù)訂按鈕時(shí),會(huì)先通過(guò)攔截器判斷用戶是否登錄,若未登錄,會(huì)跳轉(zhuǎn)至登錄頁(yè)面,提示用戶先登錄,若為登錄用戶就會(huì)跳轉(zhuǎn)至填寫(xiě)預(yù)訂信息的頁(yè)面,填寫(xiě)好預(yù)訂信息之后,點(diǎn)擊提交按鈕,預(yù)訂成功之后返回提示信息,告知用戶預(yù)訂成功。車票中心界面如下圖所示。圖5-1車票中心界面車票中心管理展示的關(guān)鍵代碼如下。@RestController@RequestMapping("auth")publicclassAuthControllerextendsBaseController<Auth,AuthService>{/***服務(wù)對(duì)象*/@AutowiredpublicAuthController(AuthServiceservice){setService(service);}退票紀(jì)錄管理模塊的實(shí)現(xiàn)根據(jù)需求,需要對(duì)退票進(jìn)行添加、刪除或修改詳情信息。刪除或修改退票時(shí),系統(tǒng)根據(jù)退票的狀態(tài)判定為可刪除狀態(tài)下,才會(huì)給出刪除和修改鏈接,點(diǎn)擊刪除鏈接按鈕時(shí),請(qǐng)求到達(dá)后臺(tái),還會(huì)先查詢退票狀態(tài)再次做出判定能否刪除。點(diǎn)擊修改鏈接按鈕時(shí),會(huì)跳轉(zhuǎn)到修改信息的頁(yè)面,重新填寫(xiě)好數(shù)據(jù)后,數(shù)據(jù)提交到后臺(tái)會(huì)對(duì)數(shù)據(jù)庫(kù)中相應(yīng)的記錄做出修改。添加退票時(shí),會(huì)給出數(shù)據(jù)填寫(xiě)的頁(yè)面,該頁(yè)面根據(jù)填寫(xiě)好的退票編號(hào)同樣會(huì)事先發(fā)送Ajax請(qǐng)求查詢編號(hào)是否已存在,數(shù)據(jù)填寫(xiě)好之后提交到后臺(tái),會(huì)調(diào)用相關(guān)服務(wù)在數(shù)據(jù)庫(kù)中插入記錄。退票紀(jì)錄管理流程圖如下圖所示。圖5-8退票紀(jì)錄管理流程圖退票紀(jì)錄管理頁(yè)面設(shè)計(jì)效果如下圖所示。圖5-9退票紀(jì)錄管理添加界面退票紀(jì)錄管理的關(guān)鍵代碼如下。@RequestMapping("/get_obj")publicMap<String,Object>obj(HttpServletRequestrequest){Queryselect=service.select(service.readQuery(request),service.readConfig(request));ListresultList=select.getResultList();if(resultList.size()>0){JSONObjectjsonObject=newJSONObject();jsonObject.put("obj",resultList.get(0));returnsuccess(jsonObject);}else{returnsuccess(null);}}publicQueryselect(Map<String,String>query,Map<String,String>config){StringBuffersql=newStringBuffer("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("groupby").append(config.get(FindConfig.GROUP_BY)).append("");}if(config.get(FindConfig.ORDER_BY)!=null&&!"".equals(config.get(FindConfig.ORDER_BY))){sql.append("orderby").append(config.get(FindConfig.ORDER_BY)).append("");}if(config.get(FindConfig.PAGE)!=null&&!"".equals(config.get(FindConfig.PAGE))){intpage=config.get(FindConfig.PAGE)!=null&&!"".equals(config.get(FindConfig.PAGE))?Integer.parseInt(config.get(FindConfig.PAGE)):1;intlimit=config.get(FindConfig.SIZE)!=null&&!"".equals(config.get(FindConfig.SIZE))?Integer.parseInt(config.get(FindConfig.SIZE)):10;sql.append("limit").append((1)*limit).append(",").append(limit);}("[{}]-查詢操作,sql:{}",table,sql);returnrunEntitySql(sql.toString());}開(kāi)發(fā)與設(shè)計(jì)系統(tǒng)測(cè)試測(cè)試目的對(duì)任何系統(tǒng)而言,測(cè)試都是必不可少的環(huán)節(jié),測(cè)試可以發(fā)現(xiàn)系統(tǒng)存在的很多問(wèn)題,所有的軟件上線之前,都應(yīng)該進(jìn)行充足的測(cè)試之后才能保證上線后不會(huì)Bug頻發(fā),或者是功能不滿足需求等問(wèn)題的發(fā)生。下面分別從單元測(cè)試,功能測(cè)試和用例測(cè)試來(lái)對(duì)系統(tǒng)進(jìn)行測(cè)試以保證系統(tǒng)的穩(wěn)定性和可靠性。功能測(cè)試下表是車次推薦功能的測(cè)試用例,檢測(cè)了退票紀(jì)錄中對(duì)退票信息的增加,刪除,修改,查詢操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。前置條件;用戶登錄系統(tǒng)。表6-1退票紀(jì)錄的測(cè)試用例功能描述用于退票紀(jì)錄測(cè)試目的檢測(cè)退票紀(jì)錄時(shí)的各種操作的運(yùn)行情況測(cè)試數(shù)據(jù)以及操作預(yù)期結(jié)果實(shí)際結(jié)果點(diǎn)擊添加退票,必填項(xiàng)合法輸入,點(diǎn)擊保存提示添加成功與預(yù)期結(jié)果一致點(diǎn)擊添加退票,必填項(xiàng)輸入不合法,點(diǎn)擊保存提示必填項(xiàng)不能為空與預(yù)期結(jié)果一致點(diǎn)擊修改退票,必填項(xiàng)修改為空,點(diǎn)擊保存提示必填項(xiàng)不能為空與預(yù)期結(jié)果一致點(diǎn)擊修改退票,必填項(xiàng)輸入不合法,點(diǎn)擊保存提示必填項(xiàng)不能為空與預(yù)期結(jié)果一致點(diǎn)擊刪除退票,選擇退票刪除提示刪除成功與預(yù)期結(jié)果一致點(diǎn)擊搜索退票,輸入存在的退票名查找出退票與預(yù)期結(jié)果一致點(diǎn)擊搜索退票,輸入不存在的退票名不顯示退票與預(yù)期結(jié)果一致下表是購(gòu)票訂單管理功能的測(cè)試用例,檢測(cè)了購(gòu)票訂單管理中購(gòu)票訂單單的操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。前置條件;用戶登錄系統(tǒng)。表6-2購(gòu)票訂單管理的測(cè)試用例功能描述用于購(gòu)票訂單管理測(cè)試目的檢測(cè)購(gòu)票訂單管理時(shí)各種操作的情況測(cè)試數(shù)據(jù)以及操作預(yù)期結(jié)果實(shí)際結(jié)果未選擇車票,點(diǎn)擊提交提示請(qǐng)選擇車票與預(yù)期結(jié)果一致未輸入數(shù)量,點(diǎn)擊提交提示請(qǐng)輸入數(shù)量與預(yù)期結(jié)果一致未輸入時(shí)間,點(diǎn)擊提交提示請(qǐng)輸入時(shí)間與預(yù)期結(jié)果一致性能測(cè)試使用阿里云PTS(PerformanceTestingService)性能測(cè)試服務(wù)對(duì)線上系統(tǒng)進(jìn)行壓力測(cè)試。線上服務(wù)器環(huán)境為:1核心CPU,1G內(nèi)存,1Mbps公網(wǎng)帶寬,Centos7.0操作系統(tǒng)。壓測(cè)過(guò)程中使用了2臺(tái)并發(fā)機(jī)器,每臺(tái)機(jī)器20個(gè)用戶并發(fā),對(duì)系統(tǒng)主頁(yè),登錄,數(shù)據(jù)查詢和數(shù)據(jù)維護(hù)等模塊進(jìn)行并發(fā)訪問(wèn),測(cè)試結(jié)果是有
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- JG/T 388-2012風(fēng)機(jī)過(guò)濾器機(jī)組
- JG/T 348-2011纖維增強(qiáng)混凝土裝飾墻板
- JG/T 120-2000踏步
- JG 11-1999鋼網(wǎng)架焊接球節(jié)點(diǎn)
- HY/T 0391-2023沿海大型工程海洋災(zāi)害風(fēng)險(xiǎn)排查技術(shù)規(guī)程
- DZ/T 0276.25-2015巖石物理力學(xué)性質(zhì)試驗(yàn)規(guī)程第25部分:巖石抗剪強(qiáng)度試驗(yàn)
- DZ/T 0046-1993鉆石分級(jí)標(biāo)準(zhǔn)
- CJ/T 92-1999供熱用偏心蝶閥
- CJ/T 371-2011垃圾填埋場(chǎng)用高密度聚乙烯管材
- CJ 3057-1996家用燃?xì)庑孤﹫?bào)警器
- 地基基礎(chǔ)工程監(jiān)理實(shí)施細(xì)則
- 《生命的意義》課件
- GB 5009.88-2023食品安全國(guó)家標(biāo)準(zhǔn)食品中膳食纖維的測(cè)定
- DB32T 4536-2023環(huán)境水質(zhì)(地表水)自動(dòng)監(jiān)測(cè)站運(yùn)行維護(hù)技術(shù)規(guī)范
- 湖北省10kV及以下配電網(wǎng)設(shè)施配置技術(shù)規(guī)范
- 精選國(guó)企面試真題100例
- 長(zhǎng)安大學(xué)輔導(dǎo)員考試題庫(kù)
- 質(zhì)量工程師工作簡(jiǎn)歷
- 氣瓶的使用操作規(guī)程
- 西藏自治區(qū)2021年小升初數(shù)學(xué)考試真題與答案解析
- 深圳初中英語(yǔ)7、8、9 年級(jí)單詞表匯總
評(píng)論
0/150
提交評(píng)論