《排隊(duì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)15000字(論文)》_第1頁(yè)
《排隊(duì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)15000字(論文)》_第2頁(yè)
《排隊(duì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)15000字(論文)》_第3頁(yè)
《排隊(duì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)15000字(論文)》_第4頁(yè)
《排隊(duì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)15000字(論文)》_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

排隊(duì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要在信息科學(xué)技術(shù)飛躍發(fā)展的21世紀(jì),信息技術(shù)在管理領(lǐng)域的應(yīng)用不斷拓寬,計(jì)算機(jī)成為重要的管理工具,計(jì)算機(jī)應(yīng)用的重要性已經(jīng)得到社會(huì)的廣泛認(rèn)可和重視。在社會(huì)進(jìn)步極速的今天,政府機(jī)構(gòu)的信息化建議也在不斷發(fā)展,如戶政大廳排隊(duì)管理,有效地將軟件和硬件相結(jié)合,不僅可以減少人工排隊(duì)的時(shí)間,而且能更加系統(tǒng)化地實(shí)現(xiàn)業(yè)務(wù)管理。本文為實(shí)現(xiàn)上述排隊(duì)叫號(hào)機(jī)制對(duì)系統(tǒng)進(jìn)行了分析、設(shè)計(jì)與實(shí)現(xiàn)。首先分析了系統(tǒng)的功能和性能需求,接著對(duì)于排隊(duì)叫號(hào)的機(jī)制進(jìn)行了設(shè)計(jì)和討論。設(shè)計(jì)了排隊(duì)叫號(hào)系統(tǒng)的業(yè)務(wù)架構(gòu),介紹了架構(gòu)中各個(gè)組成部件的功能和他們之間的控制關(guān)系,詳細(xì)設(shè)計(jì)了各個(gè)部件所使用的為實(shí)現(xiàn)本文排隊(duì)叫號(hào)機(jī)制的算法。設(shè)計(jì)了系統(tǒng)的軟件架構(gòu),采用分層模型,將軟件分為圖形界面層、業(yè)務(wù)邏輯層、模型層、持久存儲(chǔ)層四個(gè)層次;劃分了系統(tǒng)的功能模塊,將系統(tǒng)劃分為取號(hào)、排號(hào)、叫號(hào)、數(shù)據(jù)統(tǒng)計(jì)、后臺(tái)管理5個(gè)模塊;對(duì)系統(tǒng)中的實(shí)體類、數(shù)據(jù)訪問(wèn)類和數(shù)據(jù)庫(kù)進(jìn)行了設(shè)計(jì)。系統(tǒng)在基礎(chǔ)類庫(kù)的支持下,使用集成開(kāi)發(fā)工具開(kāi)發(fā)。應(yīng)用程序編程語(yǔ)言為JavaScript。系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)后設(shè)計(jì)了測(cè)試用例,對(duì)系統(tǒng)進(jìn)行了測(cè)試,并對(duì)測(cè)試中發(fā)現(xiàn)的錯(cuò)誤進(jìn)行了改正。目前系統(tǒng)運(yùn)行穩(wěn)定,能夠根據(jù)復(fù)雜業(yè)務(wù)量的大小,自動(dòng)改變業(yè)務(wù)窗口的工作范圍。關(guān)鍵詞:排隊(duì)叫號(hào)系統(tǒng)Java排隊(duì)叫號(hào)機(jī)制目錄第一章引言 第一章引言1.1課題背景排隊(duì)叫號(hào)系統(tǒng)簡(jiǎn)稱叫號(hào)系統(tǒng),指通過(guò)計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)將部門(mén)需要辦理的各項(xiàng)用戶業(yè)務(wù)自動(dòng)排隊(duì),經(jīng)由后臺(tái)的管理程序按照一定的規(guī)則排序后自動(dòng)分配到各個(gè)窗口,廣泛應(yīng)用于銀行、電信、海關(guān)、醫(yī)院、工商、稅務(wù)等部門(mén)的業(yè)務(wù)窗口,通過(guò)叫號(hào)系統(tǒng)可以保證公民辦理上述業(yè)務(wù)的公平性,改善服務(wù)方法與服務(wù)環(huán)境,提高業(yè)務(wù)員的工作效率。在排隊(duì)叫號(hào)系統(tǒng)被開(kāi)發(fā)出來(lái)之前,人們到各個(gè)部門(mén)辦理業(yè)務(wù),只能采取最原始的站著排隊(duì)等候的方式進(jìn)行,往往擁擠喧鬧,進(jìn)而身心疲憊而焦躁,甚至因?yàn)閭€(gè)別人的插隊(duì)而導(dǎo)致語(yǔ)言甚至肢體上的沖突。對(duì)于業(yè)務(wù)大廳人員秩序的維護(hù)、人流業(yè)務(wù)流的疏導(dǎo)等問(wèn)題一直是窗口部門(mén)所要著重解決的問(wèn)題。隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)被廣泛使用到各個(gè)部門(mén)各項(xiàng)業(yè)務(wù)的辦理之中,網(wǎng)絡(luò)技術(shù)則實(shí)現(xiàn)了系統(tǒng)內(nèi)部的計(jì)算機(jī)資源的互聯(lián)。在這一前提下,排隊(duì)叫號(hào)系統(tǒng)誕生了。排隊(duì)叫號(hào)系統(tǒng)是由各種軟硬件通過(guò)網(wǎng)絡(luò)連接起來(lái)的分布式系統(tǒng),主要組成部分有自助取號(hào)機(jī)、叫號(hào)器、打印機(jī)、顯示屏和音箱等。排隊(duì)叫號(hào)系統(tǒng)的工作流程為:首先由客戶在發(fā)號(hào)主機(jī)上根據(jù)所辦業(yè)務(wù)內(nèi)容通過(guò)觸摸等方式選取一張排號(hào)單,隨后用戶就可以到休息區(qū)就坐休息等待業(yè)務(wù)員的叫號(hào);業(yè)務(wù)員辦理完一筆業(yè)務(wù)后按叫號(hào)器上的叫號(hào)按鈕,就會(huì)在該窗口上的屏幕上顯示所叫到的客戶號(hào)碼,同時(shí)播放相應(yīng)的語(yǔ)音提示信息;用戶聽(tīng)到自己的號(hào)碼后,前去指定的窗口辦理業(yè)務(wù)。排隊(duì)叫號(hào)系統(tǒng)完全避免了原有人員自己排隊(duì)等候所產(chǎn)生的種種問(wèn)題,給客戶帶來(lái)了很好的服務(wù)體驗(yàn),用戶再也不必極為辛苦地站著排隊(duì)等候,并且根據(jù)排號(hào)單上的提示信息還可以合理安排時(shí)間辦理其他事宜。排隊(duì)叫號(hào)系統(tǒng)提高了單位的服務(wù)效率,使得工作人員能夠以較高的頻度進(jìn)行工作,并且為員工的績(jī)效考核提供了依據(jù)。1.2排隊(duì)管理系統(tǒng)的發(fā)展及研究狀況1.2.1國(guó)內(nèi)發(fā)展及研究狀況智能排隊(duì)產(chǎn)品概念在我國(guó)的引進(jìn)時(shí)間并不長(zhǎng),隨著國(guó)際化道路進(jìn)程的加快,在我國(guó),引進(jìn)排隊(duì)服務(wù)系統(tǒng)概念的時(shí)間并不長(zhǎng),隨著國(guó)際化進(jìn)程的加快,我國(guó)從國(guó)外學(xué)習(xí)到多優(yōu)秀和先進(jìn)的服務(wù)方法與理念,其中就包括排隊(duì)管理系統(tǒng)。隨著我國(guó)經(jīng)濟(jì)的高速發(fā)展和社會(huì)的不斷進(jìn)步,排隊(duì)系統(tǒng)也得到迅速的普及和應(yīng)用,而人們也喜歡使用排隊(duì)系統(tǒng)帶來(lái)的方便和優(yōu)質(zhì)服務(wù),并形成了習(xí)慣。我國(guó)的排隊(duì)技術(shù)研究也經(jīng)由1998年--2001年的起步期、2001--2003年的發(fā)展期、到現(xiàn)階段的成熟期,研究并生產(chǎn)出多種具有應(yīng)用領(lǐng)域廣、工作流程復(fù)雜、綜合技術(shù)要求高的等特點(diǎn)且適應(yīng)我國(guó)實(shí)際應(yīng)用的排隊(duì)系統(tǒng)產(chǎn)品,產(chǎn)品市場(chǎng)也越來(lái)越成熟。在起步期,對(duì)于排隊(duì)技術(shù)的研究主要集中在以基于硬件開(kāi)發(fā)為課題的排隊(duì)產(chǎn)品,可實(shí)現(xiàn)基本排隊(duì)算法;到了發(fā)展期,排隊(duì)技術(shù)的研究開(kāi)始往PC系統(tǒng)方向發(fā)展,這時(shí)候出了大量關(guān)于排隊(duì)技術(shù)的研究人員和課題研究,排隊(duì)產(chǎn)品的功能也越來(lái)越豐富,如銀行早期使用的排隊(duì)系統(tǒng);現(xiàn)階段,排隊(duì)技術(shù)已經(jīng)基本成型,功能也相當(dāng)豐富,對(duì)排隊(duì)技術(shù)的研究開(kāi)始向著集成化、低成本化發(fā)展,此時(shí)基于嵌入式系統(tǒng)開(kāi)發(fā)的排隊(duì)技術(shù)研究課題成為了當(dāng)今排隊(duì)系統(tǒng)研究的重點(diǎn),目前市場(chǎng)上大量使用的排隊(duì)系統(tǒng)大部分都是基于嵌入式系統(tǒng)開(kāi)發(fā)的。排隊(duì)技術(shù)的出現(xiàn)賦予了“排隊(duì)”這個(gè)詞匯全新的含義,在銀行、郵局、移動(dòng)、海關(guān)、保險(xiǎn)公司、電信等服務(wù)窗口單位,客戶再也無(wú)須透支體力和精力去排隊(duì),以往的排隊(duì)長(zhǎng)龍不見(jiàn)了,取而代之的是用只需取出一個(gè)票號(hào),即可到一旁休息區(qū)坐著等候,排隊(duì)系統(tǒng)會(huì)通過(guò)語(yǔ)音、顯示提醒你到相應(yīng)的窗口辦理業(yè)務(wù)?!耙粚?duì)一”式的服務(wù)在尊敬顧客的同時(shí)也讓客戶的隱私得到最好的保密,“一米線”形同虛設(shè)的現(xiàn)象一去不復(fù)返,無(wú)形的“一米線”更拉近了客戶與工作人員的距離。排隊(duì)系統(tǒng)的功能與結(jié)構(gòu)設(shè)計(jì)在電子技術(shù)、通信技術(shù)、計(jì)算機(jī)技術(shù)的高速發(fā)展帶動(dòng)下,越來(lái)越豐富和完善。目前,市場(chǎng)上的排隊(duì)系統(tǒng)不僅實(shí)現(xiàn)了自動(dòng)根據(jù)客戶選擇的服務(wù)類型打印票號(hào)、呼叫與保留重呼、自動(dòng)分流排隊(duì)等最基本的排隊(duì)功能,還發(fā)展了觸摸操控、窗口業(yè)務(wù)分類、高端客戶識(shí)別、員工業(yè)務(wù)考核、員工安排計(jì)劃等增值功能。排隊(duì)系統(tǒng)已經(jīng)不只是一個(gè)客戶排隊(duì)秩序管理的系統(tǒng),還是一個(gè)可以有效的輔助管理與服務(wù)的系統(tǒng),是一個(gè)服務(wù)管理系統(tǒng),如通過(guò)對(duì)各個(gè)窗口服務(wù)情況、業(yè)務(wù)辦理類型、業(yè)務(wù)辦理數(shù)量進(jìn)行統(tǒng)計(jì)管理,以便分析窗口服務(wù)策略,完善管理機(jī)制。方面,在現(xiàn)代通信技術(shù)與計(jì)算機(jī)技術(shù)的支持下,排隊(duì)管理系統(tǒng)的組建架構(gòu)形式除了有線方式,還出現(xiàn)了無(wú)線方式,無(wú)線方式使系統(tǒng)布局更加方便,且不會(huì)受到空間的影響,但是建設(shè)成本相對(duì)會(huì)比較高。我國(guó)是一個(gè)人口大國(guó),辦事排隊(duì)一直是一個(gè)難以解決的問(wèn)題,現(xiàn)今,隨著服務(wù)行業(yè)業(yè)務(wù)種類的不斷增加和細(xì)化,服務(wù)內(nèi)容不斷豐富,工作量不斷加大,排隊(duì)問(wèn)題日益突出,而排隊(duì)服務(wù)系統(tǒng)很好地解決了這些問(wèn)題,可以廣泛地應(yīng)用于銀行、醫(yī)院等窗口服務(wù)單位,即便大量中小型窗口服務(wù)單位仍在采用站立式排隊(duì)方式,但隨著業(yè)務(wù)量的日益增大,引入排隊(duì)服務(wù)系統(tǒng)已是必然選擇。但是,如果一味追求建設(shè)多功能的大系統(tǒng),直接將大型公司企業(yè)單位的建設(shè)模式和系統(tǒng)功能設(shè)計(jì)照搬過(guò)來(lái)實(shí)現(xiàn)戶政大廳的建設(shè),不僅造成政府資源的浪費(fèi),還不能完全滿足戶政部門(mén)的實(shí)際應(yīng)用需求。因此,對(duì)于國(guó)內(nèi)很多中小窗口服務(wù)單位而言,結(jié)合自己的實(shí)際應(yīng)用需求和限制條件,同時(shí)借鑒國(guó)內(nèi)外同行成功的建設(shè)經(jīng)驗(yàn),采取適合自己應(yīng)用的開(kāi)發(fā)模式,且符合本部門(mén)實(shí)際應(yīng)用需求的排隊(duì)服務(wù)系統(tǒng),是實(shí)現(xiàn)排隊(duì)服務(wù)最佳選擇。我國(guó)排隊(duì)管理系統(tǒng)有如下特點(diǎn):綜合技術(shù)要求高:排隊(duì)技術(shù)廣泛應(yīng)用諸如通訊技術(shù)、語(yǔ)音合成技術(shù)、顯示技術(shù)、網(wǎng)絡(luò)技術(shù)等新技術(shù),結(jié)合了各種新技術(shù),缺一不可,這就要求開(kāi)發(fā)企業(yè)應(yīng)具有較強(qiáng)的產(chǎn)品研發(fā)、生產(chǎn)、集成和測(cè)試能力。工作流程復(fù)雜:由于排隊(duì)系統(tǒng)要為各種不同行業(yè)服務(wù),所以針對(duì)不同的行業(yè)要做出不同的工作流程以適應(yīng)需救濟(jì),滿足不同行業(yè)用戶的個(gè)性化需求。應(yīng)用領(lǐng)域廣:應(yīng)用領(lǐng)域涵蓋所有存在排隊(duì)現(xiàn)象的行業(yè),涉及不同類型、不同層次的用戶群體。我國(guó)排隊(duì)生產(chǎn)企業(yè)的基本要求。前瞻性。在排隊(duì)系統(tǒng)設(shè)計(jì)之初要對(duì)不同應(yīng)用領(lǐng)域的行業(yè)進(jìn)行充分的市場(chǎng)調(diào)查,對(duì)各個(gè)行業(yè)現(xiàn)有工作流程進(jìn)行優(yōu)化,從而滿足各個(gè)行業(yè)用戶的需求。能夠根據(jù)不同行業(yè)用戶需求,根據(jù)需求對(duì)產(chǎn)品進(jìn)行個(gè)性化定制。對(duì)引進(jìn)的國(guó)外技術(shù)要以科學(xué)的態(tài)度引進(jìn)和吸收,以適應(yīng)中國(guó)排隊(duì)的特點(diǎn),才能做到經(jīng)得起實(shí)際運(yùn)行的市場(chǎng)考驗(yàn)。通用性。根據(jù)長(zhǎng)時(shí)間的經(jīng)驗(yàn)積累中形成一套的整合眾多行業(yè)流程的排隊(duì)系統(tǒng),以此為基礎(chǔ)來(lái)拓展其它功能以適應(yīng)不同領(lǐng)域的新需求。1.2.2國(guó)外發(fā)展及研究狀況從最開(kāi)始的人工呼叫排隊(duì)系統(tǒng),在歐美等西方發(fā)達(dá)國(guó)家很早就出現(xiàn)了排隊(duì)技術(shù)。排隊(duì)技術(shù)在計(jì)算機(jī)科學(xué)技術(shù)和通信技術(shù)的迅速發(fā)展推動(dòng)下也迅速發(fā)展,對(duì)于排隊(duì)系統(tǒng)的研究也從功能實(shí)現(xiàn)發(fā)展為功能豐富。國(guó)外排隊(duì)系統(tǒng)技術(shù)起步早,對(duì)排隊(duì)技術(shù)的研究非常多。研究從最簡(jiǎn)單的功能到人性化研究高速發(fā)展,如語(yǔ)音提示方面從音樂(lè)提示、呼叫終端(operationterminal)到語(yǔ)音合成呼叫(voice-calling)的研究;取號(hào)方式也由按鍵取號(hào)到身份識(shí)別取號(hào)到觸摸屏操控取號(hào)等等;顯示提示方面從各種數(shù)碼管顯示、LCD顯示、LED顯示到PDP顯示等研究;。跟國(guó)內(nèi)相比,國(guó)外特別是歐美等西方發(fā)達(dá)國(guó)家,在排隊(duì)技術(shù)方面起步早,發(fā)展較為成熟,應(yīng)用也相當(dāng)廣泛,而計(jì)算機(jī)科技的發(fā)展,也讓排隊(duì)技術(shù)有了新的突破,排隊(duì)產(chǎn)口也越來(lái)越豐富。在歐美等西方發(fā)達(dá)國(guó)家,銀行、醫(yī)院、電信、領(lǐng)事館、警察局、稅務(wù)等各大小企事業(yè)服務(wù)機(jī)構(gòu)都幾乎已采用排除服務(wù)系統(tǒng),由于技術(shù)的廣泛應(yīng)用,系統(tǒng)的建設(shè)成本也相應(yīng)降低,因此,在西方發(fā)達(dá)國(guó)家,憑借成熟的計(jì)算機(jī)技術(shù)和低廉的建設(shè)成本,在排除服務(wù)系統(tǒng)的硬件設(shè)施建設(shè)方面以及軟件實(shí)現(xiàn)方面建立了一系列運(yùn)轉(zhuǎn)高效、統(tǒng)一調(diào)度的排隊(duì)服務(wù)體系,并有效服務(wù)于各大小窗口服務(wù)單位。1.3課題任務(wù)本文為實(shí)現(xiàn)上述排隊(duì)管理系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)了排隊(duì)叫號(hào)系統(tǒng)。首先分析了系統(tǒng)的功能和性能需求,接著對(duì)于排隊(duì)叫號(hào)的機(jī)制進(jìn)行了設(shè)計(jì)和討論。設(shè)計(jì)了排隊(duì)叫號(hào)系統(tǒng)的業(yè)務(wù)架構(gòu),介紹了架構(gòu)中各個(gè)組成部件的功能和他們之間的控制關(guān)系,詳細(xì)設(shè)計(jì)了各個(gè)部件所使用的為實(shí)現(xiàn)本文排隊(duì)叫號(hào)機(jī)制的算法。設(shè)計(jì)了系統(tǒng)軟件架構(gòu),采用分層模型,將軟件分為圖形界面層、業(yè)務(wù)邏輯層、模型層、持久存儲(chǔ)層四個(gè)層次;劃分了系統(tǒng)功能模塊,將系統(tǒng)劃分為取號(hào)、排號(hào)、叫號(hào)、數(shù)據(jù)統(tǒng)計(jì)、后臺(tái)管理共5個(gè)模塊;對(duì)系統(tǒng)中實(shí)體類、數(shù)據(jù)訪問(wèn)類和數(shù)據(jù)庫(kù)進(jìn)行了設(shè)計(jì)。介紹了系統(tǒng)的具體實(shí)現(xiàn),包括系統(tǒng)的開(kāi)發(fā)環(huán)境,各個(gè)功能模塊的實(shí)現(xiàn)和系統(tǒng)實(shí)現(xiàn)中所使用的關(guān)鍵技術(shù)。系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)后設(shè)計(jì)了測(cè)試用例,對(duì)系統(tǒng)進(jìn)行了測(cè)試。第二章系統(tǒng)需求分析本章介紹銀行排隊(duì)管理系統(tǒng)的需求分析,具體包括系統(tǒng)的功能需求分析和非功能需求分析。2.1業(yè)務(wù)情況和系統(tǒng)用戶角色一、用戶角色銀行排隊(duì)叫號(hào)系統(tǒng)中的用戶角色包括銀行顧客、業(yè)務(wù)員和管理員。銀行顧客到銀行大廳根據(jù)所要辦理的業(yè)務(wù)類型按觸摸屏領(lǐng)取業(yè)務(wù)排號(hào)單,獲得排號(hào)單后等待辦理業(yè)務(wù);業(yè)務(wù)員通過(guò)叫號(hào)系統(tǒng)叫號(hào),為排到號(hào)的銀行顧客辦理業(yè)務(wù);管理員負(fù)責(zé)為系統(tǒng)添加用戶(業(yè)務(wù)員)和進(jìn)行系統(tǒng)管理。二、業(yè)務(wù)情況模擬的銀行大廳,有6個(gè)窗口,其中1個(gè)是VIP窗口。各個(gè)窗口需要辦理的業(yè)務(wù)種類有:1、綜合業(yè)務(wù)窗口(6個(gè))在綜合業(yè)務(wù)窗口可以辦理的業(yè)務(wù)如下所示:可辦理業(yè)務(wù):存款、匯款;取款、轉(zhuǎn)賬;理財(cái);掛失、換卡;外幣;開(kāi)戶、銷戶;對(duì)公現(xiàn)金。在進(jìn)行業(yè)務(wù)辦理時(shí),不一定所有的窗口都打開(kāi)辦理業(yè)務(wù),視業(yè)務(wù)量和業(yè)務(wù)員人員情況而定。所有的綜合業(yè)務(wù)統(tǒng)一排隊(duì),所有打開(kāi)的綜合業(yè)務(wù)窗口按照叫號(hào)單的順序依次叫號(hào)。2、VIP窗口(1個(gè))僅辦理VIP顧客業(yè)務(wù),所有VIP顧客業(yè)務(wù)單獨(dú)排隊(duì)在此窗口順序辦理。2.2系統(tǒng)功能2.2.1系統(tǒng)用例圖系統(tǒng)的功能如用例圖2.1所示,具體功能包括發(fā)號(hào)功能和排隊(duì)叫號(hào)功能。圖2.1稅務(wù)排隊(duì)叫號(hào)系統(tǒng)用例圖銀行顧客來(lái)到大廳后,首先到叫號(hào)機(jī)前根據(jù)自己所選的業(yè)務(wù)進(jìn)行排號(hào),排號(hào)機(jī)上打出一張排號(hào)單,排號(hào)單上有業(yè)務(wù)號(hào)碼、等候人數(shù)、當(dāng)前時(shí)間、辦理的業(yè)務(wù)類型等信息,同時(shí)在排號(hào)單上會(huì)生成一個(gè)二維碼,通過(guò)二維碼上的網(wǎng)址用戶可以查詢目前前面有多少人在辦理業(yè)務(wù)。然后銀行顧客就可以到休息區(qū)等待,等待業(yè)務(wù)員叫號(hào)。當(dāng)叫號(hào)系統(tǒng)叫到銀行顧客的號(hào)時(shí)即可到指定窗口辦理業(yè)務(wù)。當(dāng)銀行大廳銀行顧客非常多,銀行顧客排號(hào)隊(duì)列特別長(zhǎng)時(shí),銀行顧客可以到附近辦理其他事宜。外出期間,用戶可以通過(guò)掃描二維碼,登錄查詢網(wǎng)站隨時(shí)監(jiān)控自己在辦稅排隊(duì)隊(duì)列中的位置情況。大廳有多位業(yè)務(wù)員同時(shí)辦公,業(yè)務(wù)員在完成一筆業(yè)務(wù)后按下叫號(hào)器上的叫號(hào)按鈕,請(qǐng)排到的銀行顧客到窗口辦理各項(xiàng)稅務(wù)業(yè)務(wù)。管理員進(jìn)行系統(tǒng)管理操作,主要實(shí)現(xiàn)手動(dòng)增刪窗口,更改窗口辦理的業(yè)務(wù)類型(VIP與否)。2.2.2叫號(hào)業(yè)務(wù)類別設(shè)置為方便銀行顧客識(shí)別自己所辦理的業(yè)務(wù)和對(duì)叫號(hào)業(yè)務(wù)的調(diào)度提供支持,在叫號(hào)器上將大廳所能辦理的業(yè)務(wù)有:存款、匯款;取款、轉(zhuǎn)賬;理財(cái);掛失、換卡;外幣;開(kāi)戶、銷戶;對(duì)公現(xiàn)金,他們將顯示在排號(hào)機(jī)上。2.3叫號(hào)原則通過(guò)與主管領(lǐng)導(dǎo)和同事們的溝通探討,確定系統(tǒng)的叫號(hào)原則應(yīng)如下進(jìn)行:設(shè)置一個(gè)某客戶最大等待時(shí)長(zhǎng)T,若同時(shí)有辦理時(shí)長(zhǎng)依次增加的業(yè)務(wù)a,b,c需要辦理,則在時(shí)間T內(nèi),盡量?jī)?yōu)先辦理a業(yè)務(wù),再辦理b業(yè)務(wù),再次是c業(yè)務(wù)。即:在一定時(shí)間內(nèi)盡量先辦理耗時(shí)少的業(yè)務(wù)。2.4非功能需求銀行大廳排隊(duì)叫號(hào)系統(tǒng)的非功能性需求如下:1、性能需求系統(tǒng)為實(shí)時(shí)性系統(tǒng),應(yīng)保證穩(wěn)定運(yùn)行,在大業(yè)務(wù)量時(shí)保證系統(tǒng)不發(fā)生卡、頓現(xiàn)象。2、安全性需求向用戶敞開(kāi)的用戶排隊(duì)進(jìn)度接口必須保證與叫號(hào)系統(tǒng)的隔離,避免由進(jìn)度查詢引起的各種安全隱患,如DDoS攻擊等。3、可靠性需求必須保證用戶排號(hào)數(shù)據(jù)的準(zhǔn)確可靠保存和叫號(hào)可靠性。當(dāng)系統(tǒng)出現(xiàn)故障時(shí),能夠在較短的時(shí)間內(nèi)迅速恢復(fù)系統(tǒng)。4、時(shí)間需求銀行顧客按下觸摸屏排號(hào)時(shí),在0.5秒內(nèi)給出反饋結(jié)果;業(yè)務(wù)員按下叫號(hào)按鈕后,0.5秒內(nèi)開(kāi)始叫號(hào)。5、界面需求界面清晰簡(jiǎn)潔,邏輯性強(qiáng),銀行顧客能夠很快找到自己所要辦理的業(yè)務(wù)類型;叫號(hào)按鈕要設(shè)置在業(yè)務(wù)員最為方便操作的地方。

第三章系統(tǒng)的設(shè)計(jì)本章介紹銀行大廳排隊(duì)叫號(hào)系統(tǒng)的設(shè)計(jì)。3.1業(yè)務(wù)類型定義與叫號(hào)規(guī)則設(shè)計(jì)一、業(yè)務(wù)類型定義為方便銀行顧客識(shí)別自己所辦理的業(yè)務(wù)和對(duì)叫號(hào)業(yè)務(wù)的調(diào)度提供支持,在叫號(hào)器上將大廳所能辦理的業(yè)務(wù)有:存款、匯款;取款、轉(zhuǎn)賬;理財(cái);掛失、換卡;外幣;開(kāi)戶、銷戶;對(duì)公現(xiàn)金。二、叫號(hào)規(guī)則設(shè)計(jì)設(shè)置一個(gè)某客戶最大等待時(shí)長(zhǎng)T,若同時(shí)有辦理時(shí)長(zhǎng)依次增加的業(yè)務(wù)a,b,c需要辦理,則在時(shí)間T內(nèi),盡量?jī)?yōu)先辦理a業(yè)務(wù),再辦理b業(yè)務(wù),再次是c業(yè)務(wù)。即:在一定時(shí)間內(nèi)盡量先辦理耗時(shí)少的業(yè)務(wù)。三、叫號(hào)規(guī)則的應(yīng)用效果分析在不增加人員增開(kāi)窗口的情況下,無(wú)論如何改變叫號(hào)規(guī)則都不可能加快整個(gè)系統(tǒng)處理業(yè)務(wù)的速度,因?yàn)楣ぷ髁坎蛔儯幚砟芰Σ蛔?,則整個(gè)系統(tǒng)完成全部業(yè)務(wù)的時(shí)間不會(huì)發(fā)生變化。新的叫號(hào)規(guī)則的著力點(diǎn)是通過(guò)增加人員辦理復(fù)雜性瓶頸性業(yè)務(wù)以實(shí)現(xiàn)系統(tǒng)內(nèi)部總工作量的減少,并且以瓶頸性業(yè)務(wù)量作為判定是否需要增設(shè)窗口和增設(shè)幾個(gè)窗口的依據(jù),以達(dá)到人力資源的使用和業(yè)務(wù)規(guī)模的匹配。做到既不枉耗人力,又能夠在業(yè)務(wù)高峰到來(lái)時(shí)迅速投入資源,提高工作效率和銀行顧客的滿意度。整個(gè)系統(tǒng)由5個(gè)重要的部分組成:排號(hào)器、遠(yuǎn)程查詢網(wǎng)站、號(hào)碼分配器、窗口業(yè)務(wù)分配器和窗口叫號(hào)器。排號(hào)器中一共有7個(gè)排號(hào)序列,1.存款、匯款;2.取款、轉(zhuǎn)賬;3.理財(cái);4.掛失、換卡;5.外幣;6.開(kāi)戶、銷戶;7.對(duì)公現(xiàn)金。排號(hào)器根據(jù)排號(hào)算法計(jì)算出用戶所選的業(yè)務(wù)類型的排號(hào)號(hào)碼,在將該號(hào)碼返回該用戶的同時(shí),傳遞給號(hào)碼分配器。號(hào)碼分配器有6個(gè)核心組件:1.等待隊(duì)列組件。該組件用于整合排號(hào)器發(fā)送過(guò)來(lái)的號(hào)碼。等待隊(duì)列有兩個(gè):等待隊(duì)列1和等待隊(duì)列2。等待隊(duì)列1是綜合業(yè)務(wù)(ABC)的號(hào)碼,這些號(hào)碼按照FIFO(FirstInFirstOut,先進(jìn)先出)的方式進(jìn)行隊(duì)列管理。等待隊(duì)列2是發(fā)票發(fā)售業(yè)務(wù)號(hào)碼的等待隊(duì)列,屬于專用隊(duì)列,處理方式也是FIFO。2.號(hào)碼統(tǒng)計(jì)組件。號(hào)碼統(tǒng)計(jì)組件用于統(tǒng)計(jì)特定等待隊(duì)列中的當(dāng)前號(hào)碼的數(shù)量,以及指定號(hào)碼之前的號(hào)碼數(shù)量。3.呼叫接收組件。呼叫接收組件用于接收窗口呼叫器的叫號(hào)請(qǐng)求。多個(gè)窗口呼叫器的叫號(hào)請(qǐng)求將統(tǒng)一匯聚到號(hào)碼呼叫接收組件中,對(duì)其進(jìn)行排隊(duì)和緩沖。最后,按順序?qū)⒑艚姓?qǐng)求發(fā)送給號(hào)碼分配組件。4.號(hào)碼分配組件。號(hào)碼分配組件根據(jù)等待隊(duì)列的情況、叫號(hào)的窗口號(hào)和窗口業(yè)務(wù)定義等信息,計(jì)算出該叫號(hào)需要處理的下一個(gè)號(hào)碼。在計(jì)算完成后,該號(hào)碼將會(huì)從等待隊(duì)列中對(duì)應(yīng)的等待隊(duì)列中出列,表明該號(hào)碼已經(jīng)被分配出去。當(dāng)下一個(gè)呼叫號(hào)碼的請(qǐng)求來(lái)臨時(shí),繼續(xù)進(jìn)行相同的處理。5.窗口調(diào)整組件。當(dāng)?shù)却k理業(yè)務(wù)的號(hào)碼數(shù)量滿足一定條件時(shí),將對(duì)叫號(hào)窗口的業(yè)務(wù)類型進(jìn)行調(diào)整。調(diào)整的方式有兩種:一是增加新的叫號(hào)窗口,二是改變已有窗口的叫號(hào)業(yè)務(wù)類型。窗口調(diào)整組件一直監(jiān)控等待隊(duì)列的情況,根據(jù)統(tǒng)計(jì)數(shù)據(jù)和調(diào)整規(guī)則,動(dòng)態(tài)發(fā)出調(diào)整叫號(hào)窗口的命令給窗口業(yè)務(wù)分配器,由窗口業(yè)務(wù)分配器進(jìn)行調(diào)整。6.語(yǔ)音控制組件。語(yǔ)音控制組件用于向音頻播放接口傳輸音頻信息。音頻信息的內(nèi)容是根據(jù)號(hào)碼分配組件生成的當(dāng)前號(hào)碼和叫號(hào)窗口編號(hào)生成的。語(yǔ)音控制組件將當(dāng)前號(hào)碼和叫號(hào)窗口編號(hào)轉(zhuǎn)換成語(yǔ)音,并配合其它固定語(yǔ)音信息,生成一個(gè)完成句子的語(yǔ)音信息。窗口業(yè)務(wù)分配器用于定義每個(gè)叫號(hào)窗口可處理的業(yè)務(wù)類型。窗口可以處理的業(yè)務(wù)類型并不是固定的,而是需要根據(jù)情況進(jìn)行調(diào)整。需要調(diào)整的情況有兩類:一類是通過(guò)人工調(diào)整改變叫號(hào)窗口業(yè)務(wù)類型,另一類是由號(hào)碼分配器根據(jù)號(hào)碼分配算法對(duì)窗口業(yè)務(wù)類型的調(diào)整。無(wú)論是哪種方式,都必須遵循一定的調(diào)整規(guī)則。調(diào)整規(guī)則包括以下幾條內(nèi)容:1.CountWindow(VIP窗口)=1;2.CountWindow(業(yè)務(wù)窗口)<=2;3.CountWindow(業(yè)務(wù)窗口)>=2;4.CountWindow(VIP窗口)+CountWindow(業(yè)務(wù)窗口)<=6。窗口叫號(hào)器位于各個(gè)叫號(hào)窗口,它有三個(gè)功能:一是用于向號(hào)碼分配器呼叫號(hào)碼,以獲取下一個(gè)服務(wù)的號(hào)碼;二是向窗口業(yè)務(wù)分配器傳遞自己的狀態(tài),窗口叫號(hào)器自己可以控制的狀態(tài)有兩種:暫停和正常;三是接收來(lái)自于號(hào)碼分配器的服務(wù)號(hào)碼。3.2軟件架構(gòu)設(shè)計(jì)本系統(tǒng)的軟件架構(gòu)采用分層模型,將軟件分為四個(gè)層次,如圖3.2所示:圖3.2軟件架構(gòu)設(shè)計(jì)這個(gè)四個(gè)層次中持久存儲(chǔ)層用于持久化存儲(chǔ)系統(tǒng)中的業(yè)務(wù)數(shù)據(jù)。該層采用關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn),提供基于關(guān)系運(yùn)算的數(shù)據(jù)添加、刪除、修改和查詢等功能的支持,以及數(shù)據(jù)的安全訪問(wèn)控制。模型層定義了系統(tǒng)中的業(yè)務(wù)數(shù)據(jù)模型,以及訪問(wèn)這些業(yè)務(wù)數(shù)據(jù)模型的方法。在模型層,業(yè)務(wù)數(shù)據(jù)模型以實(shí)體類的形式定義,而對(duì)業(yè)務(wù)數(shù)據(jù)模型的訪問(wèn)方法則封裝在數(shù)據(jù)訪問(wèn)類中。業(yè)務(wù)數(shù)據(jù)存放在持久存儲(chǔ)層中,因此數(shù)據(jù)訪問(wèn)類必須具有訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)的能力。數(shù)據(jù)訪問(wèn)類提供了在數(shù)據(jù)庫(kù)查詢實(shí)體類對(duì)象、將實(shí)體類對(duì)象添加到數(shù)據(jù)庫(kù)中、從數(shù)據(jù)庫(kù)中刪除實(shí)體類對(duì)象、以及將實(shí)體類對(duì)象更新到數(shù)據(jù)庫(kù)中的能力。業(yè)務(wù)邏輯層是對(duì)系統(tǒng)中所有的業(yè)務(wù)過(guò)程和業(yè)務(wù)方法進(jìn)行封裝。在這些業(yè)務(wù)過(guò)程和業(yè)務(wù)方法中,所處理的基礎(chǔ)數(shù)據(jù)就是模型層的實(shí)體類對(duì)象。舉例來(lái)說(shuō),就是模型層定義了基本的詞語(yǔ),而業(yè)務(wù)邏輯層基于一定的規(guī)則,將這些詞語(yǔ)組成句子和段落。如果業(yè)務(wù)過(guò)程和業(yè)務(wù)方法需要進(jìn)行持久化數(shù)據(jù)的操作,則需要通過(guò)模型層的數(shù)據(jù)訪問(wèn)類進(jìn)行持久化操作。在業(yè)務(wù)邏輯層中,按照不同的業(yè)務(wù)分類,將相關(guān)的類聚集在一起,封裝為一個(gè)個(gè)業(yè)務(wù)類庫(kù)。這些業(yè)務(wù)類庫(kù)之間應(yīng)該滿足高內(nèi)聚、低耦合的特性。圖形界面層提供了圖形化的人機(jī)交互界面。系統(tǒng)采用WindowForm作為圖形用戶界面的實(shí)現(xiàn)方式。WindowForm提供了實(shí)現(xiàn)Windows對(duì)話框和窗口的能力,可以實(shí)現(xiàn)典型Windows風(fēng)格的應(yīng)用界面。圖形界面層一般不進(jìn)行具體的業(yè)務(wù)邏輯處理,它接收用戶的請(qǐng)求,將請(qǐng)求發(fā)送到業(yè)務(wù)邏輯層。在業(yè)務(wù)邏輯層處理之后,返回最終的結(jié)果給圖形界面層。然而,某些業(yè)務(wù)邏輯的控制也會(huì)滲透到圖形界面層,如界面之間的調(diào)用和切換控制。如果要去除這些界面和業(yè)務(wù)邏輯之間的耦合,就需要在圖形界面層和業(yè)務(wù)邏輯層之間增加一個(gè)圖形界面接口層,如圖3.3所示:圖3.3界面和業(yè)務(wù)邏輯去耦合圖形界面層將所有的業(yè)務(wù)邏輯,包括界面之間的調(diào)用和切換控制都交給業(yè)務(wù)邏輯層來(lái)實(shí)現(xiàn)。業(yè)務(wù)邏輯層不會(huì)直接訪問(wèn)界面層,而是針對(duì)圖形界面接口進(jìn)行操作。圖形界面層只需要實(shí)現(xiàn)這些接口,并將圖形界面對(duì)象實(shí)例傳遞給業(yè)務(wù)邏輯層即可。然而,增加圖形界面接口層會(huì)極大地改變業(yè)務(wù)邏輯層的實(shí)現(xiàn)模式,增加設(shè)計(jì)的復(fù)雜度和實(shí)現(xiàn)難度。在本系統(tǒng)中,不存在界面之間的復(fù)雜控制,因此沒(méi)有在圖形界面層和業(yè)務(wù)邏輯層之間增加圖形界面接口層。3.3系統(tǒng)模塊與功能設(shè)計(jì)系統(tǒng)的模塊與功能設(shè)計(jì)如圖3.4所示。整個(gè)系統(tǒng)分為5個(gè)模塊:1.取號(hào)模塊該模塊號(hào)碼生成功能是根據(jù)用戶的業(yè)務(wù)類型選擇生成一個(gè)排隊(duì)號(hào)碼,其輸入是業(yè)務(wù)類型,輸出是排隊(duì)號(hào)碼、排隊(duì)位置、當(dāng)前日期和一個(gè)查詢二維碼。號(hào)碼打印是將排隊(duì)號(hào)碼、排隊(duì)位置、當(dāng)前日期和查詢二維碼打印到一個(gè)指定大小的紙張上。進(jìn)度查詢是根據(jù)輸入的排隊(duì)號(hào)碼,查詢其在排隊(duì)隊(duì)列中的位置。但是這個(gè)位置并不代表其服務(wù)序號(hào),因?yàn)闃I(yè)務(wù)可能會(huì)延后服務(wù)。2.排號(hào)模塊該模塊是排隊(duì)控制的核心模塊,包括呼叫接收、號(hào)碼分配、語(yǔ)音控制、窗口調(diào)整、號(hào)碼統(tǒng)計(jì)等功能。呼叫接收功能是接收叫號(hào)模塊發(fā)送的叫號(hào)請(qǐng)求,將叫號(hào)請(qǐng)求進(jìn)行過(guò)濾合并,轉(zhuǎn)發(fā)給號(hào)碼分配功能處理。號(hào)碼分配功能是將一個(gè)排隊(duì)號(hào)碼分配一個(gè)叫號(hào)窗口。它的輸入是叫號(hào)窗口,根據(jù)該叫號(hào)窗口的類型,從相應(yīng)的等待隊(duì)列中選擇第一個(gè)滿足條件的排隊(duì)號(hào)碼,發(fā)送給叫號(hào)窗口的叫號(hào)模塊。圖3.4系統(tǒng)模塊和功能的設(shè)置窗口調(diào)整功能是根據(jù)窗口調(diào)整規(guī)則,增加叫號(hào)窗口的數(shù)量或修改叫號(hào)窗口的類型。其輸入是等待隊(duì)列1的統(tǒng)計(jì)信息,輸出是叫號(hào)窗口的修改。3.單獨(dú)的數(shù)據(jù)統(tǒng)計(jì)模塊,其功能為統(tǒng)計(jì):1、一段時(shí)間內(nèi),顧客總數(shù)和各種不同業(yè)務(wù)的顧客數(shù)量2、各業(yè)務(wù)的平均等待時(shí)長(zhǎng)。4.叫號(hào)模塊該模塊用于向號(hào)碼分配模塊傳遞信息,并接收號(hào)碼分配模塊的返回值。它一共包括了三個(gè)功能:叫號(hào)、暫停和取消暫停。叫號(hào)功能是向號(hào)碼分配模塊發(fā)送獲取下一個(gè)服務(wù)號(hào)碼請(qǐng)求,輸入信息是叫號(hào)窗口編號(hào),輸出信息是叫號(hào)窗口編號(hào)和請(qǐng)求碼。暫停和取消暫停功能與叫號(hào)功能的輸入和輸出類似,所不同的就是請(qǐng)求碼不同。三類請(qǐng)求碼定義如下:GET_NEXT_CODE:取下一個(gè)服務(wù)號(hào)碼;CALL_PAUSE:暫停服務(wù);CALL_RESUME:取消暫停。語(yǔ)音控制功能是將叫號(hào)提示信息轉(zhuǎn)換為音頻信息,發(fā)送給音頻播放接口。由音頻播放接口播放提示信息。5.窗口業(yè)務(wù)分配模塊該模塊用于管理叫號(hào)窗口的增加、減少和類型修改,包括啟用窗口、關(guān)閉窗口和修改窗口業(yè)務(wù)類型等功能。啟用窗口功能是增加一個(gè)新的叫號(hào)窗口,輸入是叫號(hào)窗口編號(hào),沒(méi)有輸出信息。關(guān)閉窗口功能是去掉一個(gè)啟用的叫號(hào)窗口,輸入是叫號(hào)窗口編號(hào),沒(méi)有輸出信息。修改窗口業(yè)務(wù)類型功能是對(duì)指定叫號(hào)窗口的業(yè)務(wù)類型標(biāo)識(shí)進(jìn)行修改,輸入是窗口編號(hào)和新業(yè)務(wù)類型。3.4類設(shè)計(jì)3.4.1實(shí)體類和數(shù)據(jù)訪問(wèn)類設(shè)計(jì)系統(tǒng)實(shí)體類和數(shù)據(jù)訪問(wèn)類設(shè)計(jì)如圖3.5所示:圖3.6實(shí)體類和數(shù)據(jù)訪問(wèn)類設(shè)計(jì)實(shí)體類一共有5個(gè):QueueCode、CodePaper、TaxOfficial、Window和WaitingQueue。各個(gè)類的含義如下:1.QueueCode是排隊(duì)號(hào)碼類,屬性含義如下:flag:業(yè)務(wù)類型sequenceNo:序號(hào)2.CodePaper是號(hào)碼紙類,屬性含義如下:curPos:當(dāng)前所在等待隊(duì)列的位置curTime:當(dāng)前時(shí)間qrCode:二維碼3.TaxOfficial是業(yè)務(wù)員類,屬性含義參見(jiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)。4.Window是叫號(hào)窗口類,屬性含義如下:id:窗口編號(hào)bt:業(yè)務(wù)類型btName:業(yè)務(wù)類型名稱5.WaitingQueue是等待隊(duì)列類,屬性含義如下:queue1:等待隊(duì)列1queue2:等待隊(duì)列2該類還包含了7個(gè)方法,用于對(duì)兩個(gè)等待隊(duì)列的操作:GetLength():獲取等待隊(duì)列長(zhǎng)度Count():統(tǒng)計(jì)在等待隊(duì)列中指定業(yè)務(wù)類型的號(hào)碼個(gè)數(shù)Find():查找指定業(yè)務(wù)類型的號(hào)碼第一次出現(xiàn)的位置AddCode():在隊(duì)列中加入一個(gè)號(hào)碼RemoveCode():刪除指定位置的號(hào)碼GetCode():獲取指定位置的號(hào)碼Head():獲取指定隊(duì)列頭部號(hào)碼在這5個(gè)類中,只有TaxOfficial類需要持久化,因此,只為該類定義了數(shù)據(jù)訪問(wèn)類,就是TaxOfficialDAO。該類包含了四個(gè)方法:AddTaxOfficial(TaxOfficialtaxOfficial):添加一個(gè)業(yè)務(wù)員對(duì)象UpdateTaxOfficial(TaxOfficialtaxOfficial):更新一個(gè)業(yè)務(wù)員對(duì)象RemoveTaxOfficial(charemployeeId):刪除一個(gè)業(yè)務(wù)員對(duì)象FindTaxOfficials(stringsqlCondition):根據(jù)SQL語(yǔ)句查詢業(yè)務(wù)員對(duì)象3.4.2業(yè)務(wù)類設(shè)計(jì)業(yè)務(wù)類用于實(shí)現(xiàn)各個(gè)業(yè)務(wù)流程和業(yè)務(wù)算法。下面將按照模塊劃分來(lái)逐個(gè)展示業(yè)務(wù)類的設(shè)計(jì)。1.排號(hào)模塊業(yè)務(wù)類排號(hào)模塊業(yè)務(wù)類的設(shè)計(jì)如圖3.7所示。圖3.7排號(hào)模塊業(yè)務(wù)類設(shè)計(jì)排號(hào)模塊業(yè)務(wù)類都屬于命名空間NumberArrange。在NumberArrange中包含了兩個(gè)類NumberArranger和BusinessClassifier。NumberArranger用于排隊(duì)的生成和號(hào)碼紙的打印。BusinessClassifier用于獲得所有可以辦理的業(yè)務(wù)項(xiàng),以及獲取業(yè)務(wù)項(xiàng)對(duì)應(yīng)的業(yè)務(wù)類別。2.查詢進(jìn)度模塊業(yè)務(wù)類查詢進(jìn)度模塊業(yè)務(wù)類的設(shè)計(jì)如圖3.8所示。圖3.8查詢進(jìn)度模塊業(yè)務(wù)類設(shè)計(jì)查詢進(jìn)度模塊業(yè)務(wù)類都屬于命名空間QueuingSchedule。在QueuingSchedule中只有一個(gè)類QueueLocator。QueueLocator用于查詢號(hào)碼在等待隊(duì)列中的位置,以及生成查詢結(jié)果的文本提示信息。3.號(hào)碼分配模塊業(yè)務(wù)類號(hào)碼分配模塊業(yè)務(wù)類的設(shè)計(jì)如圖3.9所示。圖3.9號(hào)碼分配模塊業(yè)務(wù)類設(shè)計(jì)號(hào)碼分配模塊業(yè)務(wù)類都屬于命名空間CodeDistribute。其中包含了6個(gè)類:CallReceiver、CodeDistributor、CodeCounter、WindowAdjustor、VoiceController和TemplateParse。CallReceiver用于實(shí)現(xiàn)呼叫接收功能,啟動(dòng)后就會(huì)一直監(jiān)聽(tīng)是否有來(lái)自于叫號(hào)窗口的呼叫。CodeDistributor用戶實(shí)現(xiàn)號(hào)碼分配功能,可以獲取指定業(yè)務(wù)下一個(gè)服務(wù)的排隊(duì)號(hào)碼,并將號(hào)碼發(fā)送給指定的叫號(hào)窗口。CodeCounter用于實(shí)現(xiàn)號(hào)碼統(tǒng)計(jì)功能,可以統(tǒng)計(jì)某種業(yè)務(wù)類型排隊(duì)的號(hào)碼總數(shù),還可以定位指定號(hào)碼在等待隊(duì)列中的位置。WindowAdjustor用于實(shí)現(xiàn)窗口調(diào)整功能。它定期監(jiān)測(cè)各種業(yè)務(wù)類型排隊(duì)的號(hào)碼總數(shù),根據(jù)調(diào)整規(guī)則進(jìn)行窗口調(diào)整。VoiceController用于實(shí)現(xiàn)語(yǔ)音控制功能。它可以根據(jù)排隊(duì)號(hào)碼和窗口ID以及語(yǔ)句模板生成語(yǔ)音提示信息,并保存為音頻文件。它還可以將音頻文件發(fā)送給音頻播放接口。TemplateParse是模板解析類,用于解析語(yǔ)句模板文件。4.叫號(hào)模塊業(yè)務(wù)類叫號(hào)模塊業(yè)務(wù)類的設(shè)計(jì)如圖3.10所示。圖3.10叫號(hào)模塊業(yè)務(wù)類設(shè)計(jì)叫號(hào)模塊業(yè)務(wù)類只有一個(gè),就是CodeCaller,該類用于實(shí)現(xiàn)叫號(hào)窗口與號(hào)碼分配模塊之間的通信。5.窗口業(yè)務(wù)分配模塊業(yè)務(wù)類窗口業(yè)務(wù)分配模塊業(yè)務(wù)類的設(shè)計(jì)如圖3.11所示。圖3.11窗口業(yè)務(wù)分配模塊業(yè)務(wù)類設(shè)計(jì)窗口業(yè)務(wù)分配模塊業(yè)務(wù)類是WindowManager,該類是用于對(duì)窗口的工作狀態(tài)和業(yè)務(wù)類型進(jìn)行調(diào)整。6.業(yè)務(wù)員管理模塊業(yè)務(wù)類業(yè)務(wù)員管理模塊業(yè)務(wù)類的設(shè)計(jì)如圖3.12所示。該模塊業(yè)務(wù)類TaxOfficialManage是業(yè)務(wù)員基本信息的添加、刪除、修改和查詢等數(shù)據(jù)庫(kù)操作。圖3.12業(yè)務(wù)員管理模塊業(yè)務(wù)類設(shè)計(jì)3.5數(shù)據(jù)庫(kù)設(shè)計(jì)系統(tǒng)使用一個(gè)單獨(dú)的數(shù)據(jù)庫(kù)實(shí)例,名為queue,在這個(gè)數(shù)據(jù)庫(kù)實(shí)例中定義了數(shù)據(jù)表tax_official,其含義是業(yè)務(wù)員表,該表的字段定義如表3.1所示。表3.1業(yè)務(wù)員表本章描述了系統(tǒng)的各個(gè)設(shè)計(jì)視圖,包括業(yè)務(wù)架構(gòu)設(shè)計(jì)、關(guān)鍵業(yè)務(wù)算法設(shè)計(jì)、軟件架構(gòu)設(shè)計(jì)、系統(tǒng)模塊與功能設(shè)計(jì)、類設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)。業(yè)務(wù)架構(gòu)設(shè)計(jì)描述了軟件系統(tǒng)面向的業(yè)務(wù)領(lǐng)域的組成元素,以及組成元素之間的關(guān)系。業(yè)務(wù)架構(gòu)是對(duì)真實(shí)業(yè)務(wù)的抽象,它關(guān)鍵的業(yè)務(wù)組件和關(guān)鍵的業(yè)務(wù)功能,以及這些組件和功能之間的交互。關(guān)鍵業(yè)務(wù)算法設(shè)計(jì)描述了系統(tǒng)業(yè)務(wù)領(lǐng)域中的一些關(guān)鍵業(yè)務(wù)流程的算法定義,包括排號(hào)算法、號(hào)碼分配算法、叫號(hào)窗口調(diào)整算法和語(yǔ)音生成算法。這些算法的設(shè)計(jì)是否成功決定著整個(gè)軟件的成敗。一個(gè)軟件代碼的組織應(yīng)該是按照一定的模式,這些模式必須是被證明有效的。分層架構(gòu)就是這樣一種經(jīng)過(guò)證明有效的模式。在軟件架構(gòu)設(shè)計(jì)中,文中描述了系統(tǒng)采用的分層架構(gòu),將整個(gè)系統(tǒng)分為了四個(gè)層次:持久存儲(chǔ)層、模型層、業(yè)務(wù)邏輯層和圖形界面層。這些不同的層次代表了不同的關(guān)注點(diǎn)。類設(shè)計(jì)中描述了實(shí)體類、數(shù)據(jù)訪問(wèn)類和業(yè)務(wù)類的設(shè)計(jì)。這些設(shè)計(jì)以UML類圖的形式呈現(xiàn),展示了類的名稱、成員變量、成員函數(shù),以及類之間的關(guān)系。在數(shù)據(jù)庫(kù)設(shè)計(jì)中描述了需要持久化存儲(chǔ)的信息結(jié)構(gòu)的設(shè)計(jì)。

第四章系統(tǒng)的實(shí)現(xiàn)系統(tǒng)一共有6個(gè)模塊:取號(hào)、排號(hào)、叫號(hào)、數(shù)據(jù)統(tǒng)計(jì)、后臺(tái)管理模塊。這些模塊封裝在3個(gè)子系統(tǒng)中:排號(hào)子系統(tǒng)、叫號(hào)子系統(tǒng)和系統(tǒng)管理子系統(tǒng)。其中排號(hào)子系統(tǒng)封裝了排號(hào)模塊,進(jìn)度查詢網(wǎng)站子系統(tǒng)封裝了進(jìn)度查詢模塊,控制中心子系統(tǒng)封裝了號(hào)碼分配模塊和窗口業(yè)務(wù)分配模塊,叫號(hào)子系統(tǒng)封裝了叫號(hào)模塊,系統(tǒng)管理子系統(tǒng)封裝了業(yè)務(wù)員管理模塊。這些子系統(tǒng)相互之間通過(guò)不同的方式進(jìn)行信息傳遞,如圖4.1所示:圖4.1系統(tǒng)的子系統(tǒng)除了進(jìn)度查詢網(wǎng)站子系統(tǒng)外,每個(gè)子系統(tǒng)都是一個(gè)桌面應(yīng)用程序。排號(hào)子系統(tǒng)和叫號(hào)子系統(tǒng)都要與控制中心子系統(tǒng)通信,通信的方式采用Socket技術(shù),使用TCP報(bào)文進(jìn)行數(shù)據(jù)封裝。進(jìn)度查詢網(wǎng)站子系統(tǒng)包括兩個(gè)部分:客戶端和Web服務(wù)器。客戶端不需要開(kāi)發(fā)任何軟件。只需要在Web服務(wù)器上部署進(jìn)度查詢模塊,以支持對(duì)排號(hào)進(jìn)度的查詢。進(jìn)度查詢模塊本身沒(méi)有排隊(duì)號(hào)碼的進(jìn)度信息,需要與控制中心子系統(tǒng)通信,獲取相關(guān)信息。通信的方式依然此案用Socket。系統(tǒng)管理子系統(tǒng)只是用于業(yè)務(wù)員管理,不會(huì)直接與其它子系統(tǒng)通信。系統(tǒng)管理子系統(tǒng)和控制中心子系統(tǒng)之間通過(guò)數(shù)據(jù)庫(kù)共享數(shù)據(jù)。下面將對(duì)每個(gè)子系統(tǒng)的具體實(shí)現(xiàn)方式和過(guò)程進(jìn)行闡述。4.1排號(hào)模塊的實(shí)現(xiàn)排號(hào)子系統(tǒng)的實(shí)現(xiàn)對(duì)應(yīng)一個(gè)Windows窗體應(yīng)用程序解決方案,名稱為CodeArranger,包含三個(gè)項(xiàng)目:GUI、BusinessLogic和Communition。如圖4.2所示:圖4.2排號(hào)子系統(tǒng)的代碼組織結(jié)構(gòu)GUI項(xiàng)目用于實(shí)現(xiàn)基于Form的圖形界面,BusinessLogic項(xiàng)目是一個(gè)類庫(kù)項(xiàng)目,用于封裝業(yè)務(wù)邏輯,Communication項(xiàng)目也是一個(gè)類庫(kù)項(xiàng)目,用于封裝系統(tǒng)通信。4.2叫號(hào)模塊的實(shí)現(xiàn)叫號(hào)子系統(tǒng)生成的也是一個(gè)Windows窗體應(yīng)用程序,其代碼結(jié)構(gòu)如排號(hào)子系統(tǒng)類似,也是分為圖形界面、業(yè)務(wù)邏輯和通信三個(gè)項(xiàng)目。叫號(hào)子系統(tǒng)需要先登錄,才能進(jìn)入主界面。成功登錄后,就代表了該叫號(hào)窗口已經(jīng)啟用。用戶名和密碼是否合法,不在叫號(hào)子系統(tǒng)中直接判斷,而是在控制中心進(jìn)行判斷。它可以發(fā)送三類信息:叫號(hào)、暫停服務(wù)和取消暫停。在叫號(hào)時(shí)還能接收下一個(gè)號(hào)碼信息。因此,叫號(hào)子系統(tǒng)必須同時(shí)具備發(fā)送和接收數(shù)據(jù)的能力。發(fā)送和接收數(shù)據(jù)的報(bào)文格式的定義在4.3.3用Socket實(shí)現(xiàn)模塊間通信中進(jìn)行統(tǒng)一描述。4.3排號(hào)模塊的實(shí)現(xiàn)進(jìn)度查詢子系統(tǒng)的Web頁(yè)面。查詢按鈕將會(huì)傳遞排號(hào)號(hào)碼到服務(wù)器進(jìn)行查詢。傳遞的方式采用了PUT方式參數(shù)傳遞,生成的URI如下:http://localhost:3533/QueuingSchedule/home.aspx?code=B103在排號(hào)紙打印的二維碼就包含了上面的URI。即在二維碼中的信息就是進(jìn)度查詢的網(wǎng)址再加上PUT方式的code參數(shù)。不同的排號(hào)紙的二維碼的區(qū)別就是code的值。在排號(hào)時(shí),寫(xiě)入二維碼的就是當(dāng)時(shí)生成的號(hào)碼。home.aspx在服務(wù)器端運(yùn)行時(shí),其Load事件中,可以捕獲該參數(shù),方式如下:stringcode=Request.QueryString["code"];獲取code的值后,就可以將該值發(fā)送給控制中心進(jìn)行查詢,獲得查詢結(jié)果后,將結(jié)果寫(xiě)入到home.aspx的Label1控件中。服務(wù)器端代碼運(yùn)行完成后,就將頁(yè)面返回給客戶端瀏覽器。4.4數(shù)據(jù)統(tǒng)計(jì)模塊的實(shí)現(xiàn)系統(tǒng)管理子系統(tǒng)是一個(gè)單獨(dú)的應(yīng)用程序,界面如圖4.7所示。該子系統(tǒng)需要訪問(wèn)數(shù)據(jù)庫(kù),其實(shí)現(xiàn)步驟如下:1.在數(shù)據(jù)庫(kù)管理系統(tǒng)中建立數(shù)據(jù)實(shí)例。2.根據(jù)數(shù)據(jù)表設(shè)計(jì),在數(shù)據(jù)庫(kù)實(shí)例中創(chuàng)建數(shù)據(jù)表。3.在程序中定義數(shù)據(jù)表對(duì)應(yīng)的實(shí)體類。4.在程序中實(shí)現(xiàn)實(shí)體類對(duì)應(yīng)的數(shù)據(jù)訪問(wèn)類。在實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)類需要訪問(wèn)數(shù)據(jù)庫(kù)。系統(tǒng)實(shí)現(xiàn)時(shí),采用了ADO.NET技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)。首先要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù)的連接字符串,然后根據(jù)連接字符串建立與數(shù)據(jù)庫(kù)管理系統(tǒng)之間的連接。利用該連接可以直接執(zhí)行INSERT、DELETE、UPDATE等DML語(yǔ)句。還可以使用Recordset對(duì)象保存SELECT語(yǔ)句返回的查詢結(jié)果。5.實(shí)現(xiàn)TaxOfficialManage類。6.實(shí)現(xiàn)圖形界面,利用TaxOfficialManage類實(shí)現(xiàn)各個(gè)功能。4.5后臺(tái)管理模塊的實(shí)現(xiàn)控制中心需要監(jiān)聽(tīng)來(lái)自于其它子系統(tǒng)發(fā)送的消息,必須首先啟動(dòng)該服務(wù)。隨后要啟動(dòng)呼叫接收服務(wù)、號(hào)碼分配服務(wù)、窗口調(diào)整服務(wù)和語(yǔ)音控制服務(wù)。除了幾個(gè)服務(wù)之外,控制中心還對(duì)隊(duì)列情況進(jìn)行統(tǒng)計(jì),這個(gè)功能就是號(hào)碼統(tǒng)計(jì)功能的一種展示。叫號(hào)窗口狀態(tài)展示是窗口業(yè)務(wù)分配模塊的一種功能實(shí)現(xiàn)。所有的可用窗口都在表中列出,展示其工作狀態(tài)和業(yè)務(wù)類型的變化。通知窗口用于向用戶發(fā)出重要信息,如窗口調(diào)整服務(wù)可能會(huì)發(fā)出需要新增業(yè)務(wù)窗口的通知。通知窗口具有獨(dú)立的訪問(wèn)接口,每個(gè)功能都可以向其發(fā)送消息。控制中心需要訪問(wèn)數(shù)據(jù)庫(kù),以判斷登錄用戶的合法性。在其實(shí)現(xiàn)時(shí)也需要和系統(tǒng)管理子系統(tǒng)同樣的步驟去完成建立數(shù)據(jù)表到完成數(shù)據(jù)操作功能的過(guò)程。對(duì)于控制中心子系統(tǒng)的開(kāi)發(fā)采用了從小到大的開(kāi)發(fā)模式。每一個(gè)功能都單獨(dú)開(kāi)發(fā),完成之后再集成到控制中心子系統(tǒng)中??刂浦行淖酉到y(tǒng)只是一個(gè)入口,通向各個(gè)對(duì)應(yīng)的功能。除了相互之間有邏輯關(guān)系的功能之外,可以保證去掉任何功能對(duì)于其它功能都沒(méi)有影響。

第五章系統(tǒng)的測(cè)試5.1測(cè)試方法和測(cè)試過(guò)程系統(tǒng)的測(cè)試采用了從小到大的測(cè)試方法,即先測(cè)試程序的最小組成元素,然后測(cè)試次一級(jí)的組成元素,如此循環(huán),一直到進(jìn)行整個(gè)系統(tǒng)的測(cè)試。不同的程序開(kāi)發(fā)中,程序的最小組成元素也不同。在面向過(guò)程編程方法中,最小的組成元素是函數(shù)(方法)。而在面向?qū)ο缶幊谭椒ㄖ?,最小的組成元素是類。所謂類,就是具有強(qiáng)關(guān)聯(lián)關(guān)系的數(shù)據(jù)和方法的一個(gè)集合。本系統(tǒng)采用了面向?qū)ο蟮拈_(kāi)發(fā)方法,因此,最小的組成元素是類。類測(cè)試又被稱為單元測(cè)試,因?yàn)轭愂墙M成程序的最小單元。類測(cè)試的方法如圖5.1所示:圖5.1類測(cè)試方法從圖5.1中可以看出,要為測(cè)試被測(cè)試的類單獨(dú)編寫(xiě)一個(gè)測(cè)試類,針對(duì)類中的每個(gè)方法編寫(xiě)測(cè)試方法,以保證類中所有的方法的正確性。編寫(xiě)測(cè)試方法首先要確定一個(gè)合理的測(cè)試用例,即設(shè)計(jì)一套合適的輸入數(shù)據(jù),并根據(jù)正確的邏輯計(jì)算出其預(yù)期輸出數(shù)據(jù)。然后編寫(xiě)測(cè)試代碼,用測(cè)試用例中的輸入數(shù)據(jù)去調(diào)用被測(cè)試的方法,判斷其輸出是否與預(yù)期的輸出數(shù)據(jù)一致。如果一致則測(cè)試通過(guò),否則需要重新修改代碼。然而,有一些類并沒(méi)有方法,只是數(shù)據(jù)的集合,例如實(shí)體類。對(duì)于這些類的測(cè)試通常采用代碼走讀(CodeReview)和靜態(tài)分析(Staticanalysis)方法,對(duì)于代碼進(jìn)行研讀,人工判斷其正確性。在類測(cè)試之后,就是功能測(cè)試。功能測(cè)試針對(duì)的是單個(gè)功能對(duì)需求的滿足程度。功能測(cè)試包括兩部分:界面邏輯測(cè)試和業(yè)務(wù)邏輯測(cè)試。這兩部分可以分開(kāi)進(jìn)行。界面邏輯測(cè)試的內(nèi)容是對(duì)功能界面的輸入輸出數(shù)據(jù)的正確性進(jìn)行測(cè)試。業(yè)務(wù)邏輯測(cè)試是對(duì)實(shí)現(xiàn)功能的業(yè)務(wù)邏輯代碼進(jìn)行測(cè)試。這些業(yè)務(wù)邏輯代碼,通常會(huì)包含多個(gè)類的方法,因此這是對(duì)多個(gè)方法之間相互協(xié)作的測(cè)試。功能測(cè)試之后,是集成測(cè)試。集成測(cè)試針對(duì)是各個(gè)功能之間交互的正確性,以及對(duì)功能執(zhí)行順序約束的正確性。集成測(cè)試的目標(biāo)是已經(jīng)完成組裝的系統(tǒng),需要考慮數(shù)據(jù)在功能間傳遞的時(shí)候是否會(huì)丟失,一個(gè)功能是否會(huì)對(duì)另一個(gè)功能產(chǎn)生不利的影響,是否存在功能疊加的造成誤差放大。集成測(cè)試的測(cè)試用例的設(shè)計(jì)要考慮到各種邊界和極端情況,還要考慮用戶正常的功能操作流程。在任何情況下,最終的輸入都要是合理的,并且滿足要求的。最后是系統(tǒng)測(cè)試,要將軟件系統(tǒng)和其依賴的軟硬件環(huán)境作為一個(gè)整體進(jìn)行測(cè)試,以測(cè)試軟件系統(tǒng)的環(huán)境適應(yīng)能力,確定其可靠性、可移植性和環(huán)境適應(yīng)性是否滿足設(shè)計(jì)要求。5.2測(cè)試用例的編寫(xiě)測(cè)試用例的編寫(xiě)要包含以下內(nèi)容:1.用例分類包括類測(cè)試用例、集成測(cè)試用例、系統(tǒng)測(cè)試用例。2.用例編號(hào)為每個(gè)用例設(shè)定一個(gè)全局唯一的編號(hào),方便識(shí)別。3.測(cè)試對(duì)象要說(shuō)明測(cè)試的對(duì)象的名稱和版本。4.測(cè)試目標(biāo)說(shuō)明該用例要達(dá)到的測(cè)試目的。5.預(yù)置條件說(shuō)明該用例的使用需要滿足什么前提條件。6.輸入數(shù)據(jù)用例傳遞給測(cè)試對(duì)象的輸入。7.預(yù)期輸出這是根據(jù)正確的邏輯計(jì)算出來(lái)的結(jié)果。8.操作步驟對(duì)使用該用例測(cè)試是的步驟進(jìn)行說(shuō)明。類測(cè)試用例的操作步驟就是對(duì)系統(tǒng)的各個(gè)方法進(jìn)行調(diào)用并且對(duì)比執(zhí)行結(jié)果和預(yù)期的結(jié)果是否一致。使用集成測(cè)試用例和系統(tǒng)測(cè)試用例對(duì)系統(tǒng)進(jìn)行測(cè)試需要說(shuō)明具體的操作步驟,不同的操作步驟可能導(dǎo)致不同的測(cè)試結(jié)果,甚至?xí)e(cuò)過(guò)發(fā)現(xiàn)錯(cuò)誤的機(jī)會(huì)。本文編寫(xiě)了12個(gè)類測(cè)試用例,18個(gè)功能測(cè)試用例和22個(gè)集成測(cè)試用例以及6個(gè)系統(tǒng)測(cè)試用例。通過(guò)執(zhí)行這些測(cè)試比對(duì)執(zhí)行結(jié)果來(lái)確保系統(tǒng)的正確性

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論