電信計(jì)費(fèi)系統(tǒng)論文_第1頁(yè)
電信計(jì)費(fèi)系統(tǒng)論文_第2頁(yè)
電信計(jì)費(fèi)系統(tǒng)論文_第3頁(yè)
電信計(jì)費(fèi)系統(tǒng)論文_第4頁(yè)
電信計(jì)費(fèi)系統(tǒng)論文_第5頁(yè)
已閱讀5頁(yè),還剩94頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

電信級(jí)IP用戶管理和計(jì)費(fèi)系統(tǒng)NetCTOSS電信計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)目錄TOC\o"1-4"\h\z\u0. 緒論 41. 電信計(jì)費(fèi)系統(tǒng)需求分析 41.1.編寫目的 41.2.編寫背景 51.2.1.系統(tǒng)背景以及版本 51.2.2.任務(wù)提出者 51.2.3.任務(wù)承接者及實(shí)施者 51.2.4.文檔使用者 51.2.5.參考資料 51.3.系統(tǒng)功能概述 51.3.1.系統(tǒng)功能結(jié)構(gòu)圖 51.3.2.系統(tǒng)功能說(shuō)明 6.用戶管理系統(tǒng) 6.資費(fèi)管理系統(tǒng) 6.管理員管理系統(tǒng) 6.帳單查詢系統(tǒng) 7.帳務(wù)查詢系統(tǒng) 7.用戶自服務(wù)系統(tǒng) 7.權(quán)限管理系統(tǒng) 72. 系統(tǒng)概要和詳細(xì)設(shè)計(jì) 82.1.操作功能菜單結(jié)構(gòu)模型 82.2.各模塊數(shù)據(jù)實(shí)體設(shè)計(jì) 82.2.1.權(quán)限與管理員數(shù)據(jù)實(shí)體 8.類圖 8.類說(shuō)明 91.2.2. 用戶帳務(wù)帳號(hào),業(yè)務(wù)帳號(hào)與資費(fèi)實(shí)體類 9.類圖 9.類說(shuō)明 92.2.3.用戶登錄時(shí)長(zhǎng)數(shù)據(jù)相關(guān)實(shí)體 9.類圖 9.類說(shuō)明 102.3.數(shù)據(jù)表設(shè)計(jì) 102.3.1.權(quán)限、角色與管理員相關(guān)表設(shè)計(jì) 102.3.2.用戶帳務(wù)帳號(hào)、資費(fèi)與業(yè)務(wù)帳號(hào)相關(guān)表設(shè)計(jì) 112.3.3.用戶登錄時(shí)長(zhǎng)原始數(shù)據(jù)與整合數(shù)據(jù)相關(guān)表設(shè)計(jì) 122.4.各模塊類以及界面設(shè)計(jì) 142.4.1.登錄 14.相關(guān)表 14.界面設(shè)計(jì) 14.類圖設(shè)計(jì) 142.4.2.權(quán)限管理 16.相關(guān)表 16.界面設(shè)計(jì) 21.類圖設(shè)計(jì) 212.4.3.管理員管理 31.相關(guān)表 32.UI設(shè)計(jì) 32.類圖設(shè)計(jì) 352.4.4.資費(fèi)管理 41.相關(guān)表 41.UI設(shè)計(jì) 41.類圖設(shè)計(jì) 432.4.5.用戶管理 48.相關(guān)表 48.UI結(jié)構(gòu)設(shè)計(jì) 48.類圖設(shè)計(jì) 532.4.6.帳單查詢 63.相關(guān)表 63.UI設(shè)計(jì) 63.類設(shè)計(jì) 632.4.7.帳務(wù)查詢 64.相關(guān)表 64.UI設(shè)計(jì) 65.類設(shè)計(jì) 663.編碼部分 683.1.

電信計(jì)費(fèi)系統(tǒng)編碼規(guī)范 683.2.在編碼過(guò)程中遇到的問(wèn)題 814.系統(tǒng)測(cè)試 815. 運(yùn)行與維護(hù) 876. 結(jié)束語(yǔ) 87附錄 87參考文獻(xiàn) 103后記 104電信計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)系0604班張三指導(dǎo)老師:李四摘要:信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展,行業(yè)競(jìng)爭(zhēng)日益加劇,各大企業(yè)在傳統(tǒng)的運(yùn)營(yíng)方式中紛紛加入高科技成分追求高效和智能化,在軟件方面的追求和投入尤為突出,各行業(yè)不惜加大在信息科技方面的投入,以進(jìn)一步提升自身在市場(chǎng)的競(jìng)爭(zhēng)力和服務(wù)質(zhì)量,而且收到了很好的效果,創(chuàng)造了良好的企業(yè)效益。移動(dòng)、聯(lián)通、電信等各大電信運(yùn)營(yíng)商,每年在系統(tǒng)的開發(fā)和完善方面投入數(shù)十億來(lái)滿足新的需求,而這些投入也為企業(yè)創(chuàng)造了很壯觀的經(jīng)濟(jì)效益。而且在這些方面的投入還會(huì)繼續(xù)加大,在以后的發(fā)展中,這已經(jīng)成為一個(gè)不可否認(rèn)的趨勢(shì)??梢哉f(shuō),電信和互聯(lián)網(wǎng)新技術(shù)推動(dòng)了人類文明的巨大進(jìn)步,而且發(fā)展將會(huì)更加迅速。本篇論文的電信計(jì)費(fèi)系統(tǒng)是為電信運(yùn)營(yíng)商新增的一項(xiàng)OpenLab(開放實(shí)驗(yàn)室)出租業(yè)務(wù)而設(shè)計(jì),電信運(yùn)營(yíng)商提供多個(gè)基于Unix平臺(tái)的實(shí)驗(yàn)室環(huán)境,選擇使用這種業(yè)務(wù)的用戶能夠遠(yuǎn)程登錄到實(shí)驗(yàn)室中做基于這個(gè)實(shí)驗(yàn)室環(huán)境的一些工作和實(shí)驗(yàn)。運(yùn)營(yíng)商希望借助先進(jìn)的計(jì)算機(jī)技術(shù)對(duì)訪問(wèn)實(shí)驗(yàn)室的用戶進(jìn)行管理和計(jì)費(fèi),由此實(shí)現(xiàn)對(duì)此項(xiàng)業(yè)務(wù)運(yùn)營(yíng)的支持與管理。該電信計(jì)費(fèi)系統(tǒng)使用ssh(spring+struts2+hibernate)、javascript腳本控制和ajax異步交互等技術(shù)來(lái)開發(fā),嚴(yán)格按照軟件開發(fā)流程:需求分析、頁(yè)面設(shè)計(jì)、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試運(yùn)行等,最終使得該項(xiàng)目達(dá)到一個(gè)商業(yè)項(xiàng)目的標(biāo)準(zhǔn)。關(guān)鍵詞:電信計(jì)費(fèi)hibernatestruts2springssh運(yùn)營(yíng)支撐系統(tǒng)netctoss緒論本篇論文從以下幾部分進(jìn)行闡述:1電信計(jì)費(fèi)系統(tǒng)需求分析,簡(jiǎn)述電信計(jì)費(fèi)項(xiàng)目的選題背景和該系統(tǒng)的需求,要求的功能。2系統(tǒng)概要和詳細(xì)設(shè)計(jì)。根據(jù)系統(tǒng)的業(yè)務(wù)流程和需求經(jīng)行概要設(shè)計(jì)用圖表來(lái)表示。并根據(jù)概要設(shè)計(jì)經(jīng)行詳細(xì)設(shè)計(jì)。3編碼。本系統(tǒng)所使用的編碼規(guī)范,在系統(tǒng)的編碼過(guò)程中出現(xiàn)的一些問(wèn)題以及解決方法。4系統(tǒng)測(cè)試。對(duì)系統(tǒng)的各個(gè)功能經(jīng)行測(cè)試,以及相應(yīng)的記錄。5運(yùn)行和維護(hù)。主要講解該系統(tǒng)簡(jiǎn)單操作說(shuō)明,用戶在使用該系統(tǒng)可能出現(xiàn)一些問(wèn)題以及解決方案。6結(jié)束語(yǔ)。7心得體會(huì)。電信計(jì)費(fèi)系統(tǒng)需求分析1.1.編寫目的軟件需求規(guī)格說(shuō)明書(SRS,SoftwareRequirementSpecification)是軟件需求格式化描述文檔,用于詳細(xì)闡述軟件的功能、性能以及約束條件,不僅是系統(tǒng)測(cè)試和用戶手冊(cè)編寫的依據(jù),也是系統(tǒng)設(shè)計(jì)、編碼的基礎(chǔ)。本文檔主要目的包括以下幾個(gè)方面:1為系統(tǒng)建設(shè)雙方提供共同的需求基準(zhǔn);2為開發(fā)小組的軟件開發(fā)工作提供依據(jù);3為質(zhì)量控制和項(xiàng)目監(jiān)理提供檢查依據(jù)。1.2.編寫背景1.2.1.系統(tǒng)背景以及版本Netctoss系統(tǒng)需求規(guī)格說(shuō)明書,版本號(hào)v1.1。1.2.2.任務(wù)提出者XX電信運(yùn)營(yíng)商1.2.3任務(wù)承接者及實(shí)施者承接者:張三1.2.4文檔使用者管理成員:項(xiàng)目總監(jiān)、項(xiàng)目經(jīng)理、質(zhì)量經(jīng)理、技術(shù)經(jīng)理;開發(fā)成員:系統(tǒng)分析員、測(cè)試員、文檔員;客戶成員:領(lǐng)導(dǎo)、業(yè)務(wù)代表、統(tǒng)計(jì)信息處人員;監(jiān)理成員:項(xiàng)目監(jiān)理人員。1.2.5參考資料《客戶公司的業(yè)務(wù)文件》1.3.系統(tǒng)功能概述1.3.1.系統(tǒng)功能結(jié)構(gòu)圖1.3.2.系統(tǒng)功能說(shuō)明XX電信運(yùn)營(yíng)商新增一項(xiàng)OpenLab(開放實(shí)驗(yàn)室)出租業(yè)務(wù),即該電信運(yùn)營(yíng)商提供基于Unix平臺(tái)的實(shí)驗(yàn)室環(huán)境,選擇使用這種業(yè)務(wù)的用戶能夠遠(yuǎn)程登錄到實(shí)驗(yàn)室中做基于這個(gè)實(shí)驗(yàn)室環(huán)境的一些工作和實(shí)驗(yàn)。運(yùn)營(yíng)商希望借助先進(jìn)的計(jì)算機(jī)技術(shù)對(duì)訪問(wèn)實(shí)驗(yàn)室的用戶進(jìn)行管理和計(jì)費(fèi),由此實(shí)現(xiàn)對(duì)此項(xiàng)業(yè)務(wù)運(yùn)營(yíng)的支持與管理。本項(xiàng)目主要包括以下子系統(tǒng):.用戶管理系統(tǒng)電信運(yùn)營(yíng)商提供基于Unix平臺(tái)的實(shí)驗(yàn)室環(huán)境,選擇使用這種業(yè)務(wù)的用戶能夠遠(yuǎn)程登錄到實(shí)驗(yàn)室中做基于這個(gè)實(shí)驗(yàn)室環(huán)境的一些工作和實(shí)驗(yàn)。用戶要想成功登陸到開放實(shí)驗(yàn)室中,事先必須要擁有一個(gè)這個(gè)開放實(shí)驗(yàn)室上的帳號(hào),在本系統(tǒng)中此帳號(hào)稱為業(yè)務(wù)帳號(hào),每個(gè)開放實(shí)驗(yàn)室上的業(yè)務(wù)帳號(hào)的用戶名是唯一的,不同的開放實(shí)驗(yàn)室上的業(yè)務(wù)帳號(hào)的用戶名可以相同,這個(gè)帳號(hào)用戶可以通過(guò)向本系統(tǒng)中具有用戶管理權(quán)限的管理員去申請(qǐng)。一個(gè)用戶會(huì)有多種業(yè)務(wù),如:Email服務(wù)、Unix系統(tǒng)、代理主機(jī)服務(wù)等,每個(gè)業(yè)務(wù)我們都要收取一定的費(fèi)用,如果我們以業(yè)務(wù)賬戶為單位來(lái)算總的費(fèi)用,那么用戶申請(qǐng)的每種業(yè)務(wù)都要單獨(dú)交費(fèi),會(huì)給用戶造成不便,所以我們又添加了帳務(wù)賬戶來(lái)統(tǒng)一管理每個(gè)用戶所使用的所有業(yè)務(wù)賬號(hào)上發(fā)生的費(fèi)用,帳務(wù)帳號(hào)是要和用戶的真實(shí)信息聯(lián)系在一起的,所以每個(gè)用戶只能有一個(gè)帳務(wù)帳號(hào),但可以對(duì)應(yīng)多個(gè)業(yè)務(wù)帳號(hào)。用戶管理子系統(tǒng)就是對(duì)用戶的帳務(wù)帳號(hào)和業(yè)務(wù)帳號(hào)進(jìn)行管理。具有用戶管理權(quán)限的管理員登陸成功后,首先可以開通帳務(wù)帳號(hào),帳務(wù)帳號(hào)必須和用戶的一些真實(shí)信息關(guān)聯(lián)起來(lái),如用戶的真實(shí)姓名,身份證號(hào)碼,聯(lián)系電話等。開通時(shí),由用戶提供這些信息,然后由管理員將信息錄入到系統(tǒng)中并保存下來(lái)。對(duì)于開通好的帳務(wù)帳號(hào)也是由具有用戶管理權(quán)限的管理員來(lái)管理的,如暫停帳務(wù)帳號(hào),恢復(fù)帳務(wù)賬號(hào),刪除帳務(wù)賬號(hào),修改用戶真實(shí)信息等。由于用戶的一個(gè)帳務(wù)帳號(hào)會(huì)對(duì)應(yīng)多個(gè)業(yè)務(wù)帳號(hào),所以對(duì)賬務(wù)賬號(hào)的操作會(huì)級(jí)聯(lián)影響關(guān)聯(lián)的所有業(yè)務(wù)帳號(hào)。其次,具有用戶管理權(quán)限的管理員還可以開通業(yè)務(wù)帳號(hào),但用戶要想開通一個(gè)業(yè)務(wù)帳號(hào),前提是必須擁有一個(gè)帳務(wù)帳號(hào)。在開通業(yè)務(wù)帳號(hào)時(shí),先由用戶為這個(gè)業(yè)務(wù)帳號(hào)選擇一種資費(fèi)方式,選擇一臺(tái)開放實(shí)驗(yàn)室,然后把選擇好的信息提供給管理員,再由管理員將信息錄入并保存,這個(gè)業(yè)務(wù)帳號(hào)會(huì)被保存到用戶選擇的開放實(shí)驗(yàn)室的服務(wù)器上,對(duì)于開通好的業(yè)務(wù)帳號(hào)也是由具有用戶管理權(quán)限的管理員來(lái)管理的,如暫停業(yè)務(wù)帳號(hào),恢復(fù)業(yè)務(wù)帳號(hào),刪除業(yè)務(wù)帳號(hào),修改業(yè)務(wù)帳號(hào)密碼。.資費(fèi)管理系統(tǒng)使用服務(wù),就要交納費(fèi)用,這是天經(jīng)地義的事情。那么對(duì)于開放實(shí)驗(yàn)室的用戶也不例外,他們使用了開放實(shí)驗(yàn)室服務(wù),同樣要交費(fèi)。在我們這個(gè)系統(tǒng)中這個(gè)費(fèi)用會(huì)和兩個(gè)因素有關(guān):1一個(gè)是用戶使用服務(wù)的時(shí)間長(zhǎng)度,2另一個(gè)是用戶選擇的收費(fèi)標(biāo)準(zhǔn),如月租費(fèi)為:30元,每小時(shí)使用費(fèi)為:3元等。這個(gè)收費(fèi)的標(biāo)準(zhǔn)在本系統(tǒng)中稱為資費(fèi)。資費(fèi)管理子系統(tǒng)就是用來(lái)管理資費(fèi)的。具有資費(fèi)管理權(quán)限的管理員登陸成功后,可以添加新的資費(fèi),查詢所有的資費(fèi),可以修改現(xiàn)有的資費(fèi)信息,還可以刪除資費(fèi)。特別要注意的是:由于對(duì)資費(fèi)的修改會(huì)影響選擇了這種資費(fèi)的用戶要交納的費(fèi)用,所以在修改資費(fèi)信息前要事先通知所有已經(jīng)選擇了這個(gè)資費(fèi)的用戶;只有當(dāng)沒(méi)有任何用戶選擇某個(gè)資費(fèi)了,這個(gè)資費(fèi)才能被刪除掉。.管理員管理系統(tǒng)對(duì)本系統(tǒng)的各個(gè)子系統(tǒng)的訪問(wèn)都是受權(quán)限控制的,只有擁有了訪問(wèn)權(quán)限,才能使用子系統(tǒng)。在本系統(tǒng)中存在著三類使用者:1其一是用戶,即使用開放實(shí)驗(yàn)室的人,他們默認(rèn)具有使用用戶自服務(wù)系統(tǒng)的權(quán)限。2其二是超級(jí)管理員,即對(duì)本系統(tǒng)進(jìn)行管理的人,并具有最高的管理權(quán)限,他可以使用除用戶自服務(wù)以外的所有子系統(tǒng)。這個(gè)超級(jí)管理員只有一個(gè),是系統(tǒng)初始建立時(shí)就提供好的。3其三是普通管理員,即對(duì)本系統(tǒng)中的部分子系統(tǒng)進(jìn)行管理的人,這些人是由超級(jí)管理員進(jìn)行管理的,他們具有的權(quán)限也是由超級(jí)管理員賦予的。管理員管理系統(tǒng)就是超級(jí)管理員來(lái)管理普通管理員。超級(jí)管理員登陸成功后,可以增加新的普通管理員,同時(shí)為他分配一些權(quán)限,可以修改普通管理員的信息,可以查詢所有的管理員信息,可以刪除某些管理員。.帳單查詢系統(tǒng)具有帳單查詢權(quán)限的管理員可以利用此子系統(tǒng)對(duì)所有用戶的月賬單進(jìn)行查詢。此子系統(tǒng)不僅提供對(duì)某個(gè)帳務(wù)帳號(hào)上產(chǎn)生的總的費(fèi)用進(jìn)行查詢,還提供對(duì)某個(gè)帳務(wù)帳號(hào)上的每個(gè)業(yè)務(wù)帳號(hào)上產(chǎn)生的費(fèi)用明細(xì)進(jìn)行查詢。具體操作如下:1月賬單查詢2具有賬單查詢角色的管理員進(jìn)入本系統(tǒng),登錄成功后,可以執(zhí)行如下查詢操作:3根據(jù)輸入的月份和其它組合條件查詢符合條件的用戶這個(gè)月的費(fèi)用信息(提供分頁(yè)顯示)4根據(jù)輸入的月份和用戶的帳務(wù)帳號(hào)的用戶名查詢某個(gè)用戶這個(gè)月的費(fèi)用信息。5月賬單明細(xì)查詢6具有賬單查詢角色的管理員進(jìn)入本系統(tǒng),登錄成功后,首先查詢出用戶帳務(wù)帳號(hào)的合計(jì)費(fèi)用信息,然后在這個(gè)信息上執(zhí)行查詢明細(xì)帳的操作,系統(tǒng)會(huì)顯示該帳務(wù)帳號(hào)上所有業(yè)務(wù)帳號(hào)上發(fā)生的所有費(fèi)用的明細(xì)信息。.帳務(wù)查詢系統(tǒng)具有帳務(wù)查詢的管理員可以使用此子系統(tǒng)對(duì)開放實(shí)驗(yàn)室的使用情況進(jìn)行查詢。此子系統(tǒng)可以提供以月為周期的查詢,也可以提供以年為周期的查詢。具體操作如下:1月帳務(wù)查詢具有賬務(wù)查詢角色的管理員進(jìn)入本系統(tǒng),登錄成功后,可以執(zhí)行如下查詢操作:(1)根據(jù)輸入的月份查詢所有開放實(shí)驗(yàn)室這個(gè)月被使用的總的時(shí)長(zhǎng)信息。(2)在上一個(gè)查詢的基礎(chǔ)上查看某個(gè)實(shí)驗(yàn)室這個(gè)月每一天的時(shí)長(zhǎng)信息。2年帳務(wù)查詢具有賬務(wù)查詢角色的管理員進(jìn)入本系統(tǒng),登錄成功后,可以執(zhí)行如下查詢操作:(1).根據(jù)輸入的年份查詢所有開放實(shí)驗(yàn)室這一年被使用的總的時(shí)長(zhǎng)信息。在上一個(gè)查詢的基礎(chǔ)上查看某個(gè)實(shí)驗(yàn)室這一年每個(gè)月的時(shí)長(zhǎng)信息。.用戶自服務(wù)系統(tǒng)用戶自服務(wù)系統(tǒng)可以方便地供用戶查詢自己的賬單和修改自己的個(gè)人信息。這個(gè)子系統(tǒng)是唯一的一個(gè)用戶可以使用的子系統(tǒng)。具體操作如下:1查詢自己的月帳單用戶進(jìn)入本系統(tǒng),使用自己的帳務(wù)帳號(hào)登錄成功后,可以執(zhí)行如下查詢操作:1)根據(jù)輸入的月份查詢自己這個(gè)月的費(fèi)用信息。2)在上一個(gè)查詢的基礎(chǔ)上查看這個(gè)月費(fèi)用明細(xì)。2修改自己的個(gè)人信息用戶進(jìn)入本系統(tǒng),使用自己的帳務(wù)帳號(hào)登錄成功后,可以自行修改自己的個(gè)人信息。.權(quán)限管理系統(tǒng)對(duì)本系統(tǒng)的各個(gè)子系統(tǒng)的訪問(wèn)都是受權(quán)限控制的,權(quán)限決定了使用者可以執(zhí)行的操作,如一個(gè)使用者擁有用戶管理權(quán)限,他就可以執(zhí)行用戶管理的操作。目前系統(tǒng)已有的權(quán)限包括:用戶管理權(quán)限,資費(fèi)管理權(quán)限,管理員管理權(quán)限,帳單管理權(quán)限,帳務(wù)管理權(quán)限,用戶自服務(wù)權(quán)限,權(quán)限管理權(quán)限。今后,系統(tǒng)可能會(huì)擴(kuò)展新的功能,也就會(huì)增加新的操作,這個(gè)操作就要對(duì)應(yīng)一種新的權(quán)限;也有可能刪除一項(xiàng)不再被使用的操作,這樣,對(duì)應(yīng)的權(quán)限也應(yīng)該被刪除。因此,為了對(duì)權(quán)限能夠進(jìn)行靈活的管理,本系統(tǒng)中就提供了權(quán)限管理系統(tǒng)。在本系統(tǒng)中,一些使用者擁有相同的角色,擁有相同的權(quán)限,如張三和李四都是前臺(tái)操作人員,都擁有用戶管理權(quán)限和帳單管理權(quán)限。角色代表著一組權(quán)限的集合。目前系統(tǒng)中已有的角色包括:用戶和超級(jí)管理員。今后,要想根據(jù)需要靈活地管理角色,也是通過(guò)權(quán)限管理系統(tǒng)完成的。系統(tǒng)概要和詳細(xì)設(shè)計(jì)2.1.操作功能菜單結(jié)構(gòu)模型2.2.各模塊數(shù)據(jù)實(shí)體設(shè)計(jì)2.2.1.權(quán)限與管理員數(shù)據(jù)實(shí)體.類圖.類說(shuō)明(每個(gè)實(shí)體成員的具體說(shuō)明參考后面的表結(jié)構(gòu)設(shè)計(jì)中各表的說(shuō)明)Module類,系統(tǒng)模塊信息實(shí)體,modules表Operation類,模塊操作信息實(shí)體,operations表Right類,權(quán)限信息實(shí)體,由模塊與操作構(gòu)成rights表Role類,角色信息實(shí)體,roles表RoleRight類,角色權(quán)限信息實(shí)體,權(quán)限分組,rolerights表Admin類,管理員信息實(shí)體,Admins表AdminRole類,管理員角色信息實(shí)體,adminroles表用戶帳務(wù)帳號(hào),業(yè)務(wù)帳號(hào)與資費(fèi)實(shí)體類.類圖.類說(shuō)明(每個(gè)實(shí)體成員的具體說(shuō)明參考后面的表結(jié)構(gòu)設(shè)計(jì)中各表的說(shuō)明)User類,用戶信息實(shí)體,users表。Pricing類,資費(fèi)信息實(shí)體,pricings表。UserService類,用戶業(yè)務(wù)帳號(hào)信息實(shí)體,userservices表2.2.3.用戶登錄時(shí)長(zhǎng)數(shù)據(jù)相關(guān)實(shí)體類圖.類說(shuō)明(這組類與采集系統(tǒng)中使用的是相同結(jié)構(gòu))Detail類,用戶登錄時(shí)長(zhǎng)明細(xì)信息實(shí)體,details表。DetailDay類,按用戶每時(shí)整合后的時(shí)長(zhǎng)信息實(shí)體,detaildays_x表DetailMonth類,按用戶每天整合后的時(shí)長(zhǎng)信息實(shí)體,detailmonths_x表DetailYear類,按用戶每月整合后的時(shí)長(zhǎng)信息實(shí)體,detailyears_x表。IntegratedDetailDay類,按實(shí)驗(yàn)室每時(shí)整合后的時(shí)長(zhǎng)信息實(shí)體,detaildays表。IntegratedDetailMonth類,按實(shí)驗(yàn)室每天整合后的時(shí)長(zhǎng)信息實(shí)體,detailmonths表。IntegratedDetailYear類,按實(shí)驗(yàn)室每月整合后的時(shí)長(zhǎng)信息實(shí)體,detailyears表。2.3.數(shù)據(jù)表設(shè)計(jì)2.3.1權(quán)限,角色與管理員相關(guān)表設(shè)計(jì)1模塊表modules字段英文名字段漢字名類型約束條件說(shuō)明Id模塊IDIntPKName模塊名稱Varchar(20)2模塊操作表operations字段英文名字段漢字名類型約束條件說(shuō)明Id操作IDIntPKName操作名稱Varchar(20)3權(quán)限表rights字段英文名字段漢字名類型約束條件說(shuō)明Id操作IDIntPKName操作名稱Varchar(20)url保留Varchar(30)Moduleid模塊IDIntOperationid操作IDint角色表roles字段英文名字段漢字名類型約束條件說(shuō)明Id角色I(xiàn)DIntPKName角色名稱Varchar(20)5角色權(quán)限設(shè)置表rolerights字段英文名字段漢字名類型約束條件說(shuō)明Id角色權(quán)限IDIntPKRoleid角色I(xiàn)DintRighted權(quán)限IDint6管理員表admins字段英文名字段漢字名類型約束條件說(shuō)明Id管理員IDIntPKName管理員姓名Varchar(20)loginname管理員登錄名Varchar(20)loginpassword管理員登錄密碼Varchar(20)Phone管理員電話Varchar(20)Email管理員電郵Varchar(20)enrolldate管理員授權(quán)日期Date管理員角色設(shè)置表adminroles字段英文名字段漢字名類型約束條件說(shuō)明Id管理員角色I(xiàn)DIntPKAdminid管理員IDVarchar(20)Roleid角色I(xiàn)DVarchar(20)2.3.2.用戶帳務(wù)帳號(hào),資費(fèi)與業(yè)務(wù)帳號(hào)相關(guān)表設(shè)計(jì)1用戶帳務(wù)帳號(hào)表users字段英文名字段漢字名類型約束條件說(shuō)明Id用戶IDIntPKName用戶名Varchar(20)Loginname用戶登錄名Varchar(20)loginpassword用戶登錄密碼Varchar(20)Status用戶狀態(tài)Int暫停Phone用戶電話Varchar(20)Email用戶電郵Varchar(20)Enrolldate用戶開戶日期DateClosedate用戶注銷日期Datepaymenttype支付方式IntCareer職業(yè)Varchar(20)Nationality民族Varchar(12)Sex性別TinyintCompany公司Varchar(20)Zip郵編Varchar(8)2資費(fèi)表pricings字段英文名字段漢字名類型約束條件說(shuō)明Id資費(fèi)IDIntPKName資費(fèi)名稱Varchar(20)Basefee基本費(fèi)用doubleRatefee費(fèi)用率doubledescription資費(fèi)描述Varchar(50)暫停3用戶業(yè)務(wù)帳號(hào)表userservices字段英文名字段漢字名類型約束條件說(shuō)明Id業(yè)務(wù)IDIntPKUserid用戶IDVarchar(20)loginname用戶登錄名Varchar(20)loginpassword用戶登錄密碼Varchar(20)Labip實(shí)驗(yàn)室IPStatus狀態(tài)Varchar(20)Priceid資費(fèi)IDVarchar(20)enrolldate業(yè)務(wù)申請(qǐng)日期Dateclosedate業(yè)務(wù)停止日期Date2.3.3.用戶登錄時(shí)長(zhǎng)原始數(shù)據(jù)與整合數(shù)據(jù)相關(guān)表設(shè)計(jì)1用戶登錄時(shí)長(zhǎng)原始明細(xì)表details字段英文名字段漢字名類型約束條件說(shuō)明loginname登錄名Varchar(20)Loginip登錄IPVarchar(24)logintime登錄時(shí)間Timestamplogouttime登出時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)Long2用戶登錄時(shí)長(zhǎng)按用戶每時(shí)整合表detaildays_x字段英文名字段漢字名類型約束條件說(shuō)明loginname登錄名Varchar(20)Loginip登錄IPVarchar(24)logouttime登出時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)duration登錄時(shí)長(zhǎng)long3用戶登錄時(shí)長(zhǎng)按用戶每天整合表detailmonths_x(與上同)字段英文名字段漢字名類型約束條件說(shuō)明loginname登錄名Varchar(20)Loginip登錄IPVarchar(24)logouttime整合時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)long4用戶登錄時(shí)長(zhǎng)按用戶每月整合表detailyears_x(與上同)字段英文名字段漢字名類型約束條件說(shuō)明loginname登錄名Varchar(20)Loginip登錄IPVarchar(24)logouttime整合時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)long5用戶登錄時(shí)長(zhǎng)按實(shí)驗(yàn)室每時(shí)整合表detaildays字段英文名字段漢字名類型約束條件說(shuō)明logouttime整合時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)long6用戶登錄時(shí)長(zhǎng)按實(shí)驗(yàn)室每天整合表detailmonths(與上同)字段英文名字段漢字名類型約束條件說(shuō)明logouttime整合時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)Long7用戶登錄時(shí)長(zhǎng)按實(shí)驗(yàn)室每月整合表detailyears(與上同)字段英文名字段漢字名類型約束條件說(shuō)明logouttime整合時(shí)間TimestampLabip實(shí)驗(yàn)室IPVarchar(24)Duration登錄時(shí)長(zhǎng)long2.4.各模塊類以及界面設(shè)計(jì)2.4.1.登錄.相關(guān)表Modules表,Operations表,Rights表,Roles表,RoleRights表,Admins表,AdminRoles表.界面設(shè)計(jì)圖1管理員登陸頁(yè)面.類圖設(shè)計(jì)1類圖2類圖時(shí)序說(shuō)明3類說(shuō)明LoginUI<login.jsp>登錄界面類,可以用Servlet與JSP實(shí)現(xiàn).LoginForm登錄表單參數(shù)類,封裝用戶登錄數(shù)據(jù)登錄名loginname登錄密碼loginpasswordLoginAction類,登錄邏輯處理類,負(fù)責(zé)驗(yàn)證用戶名與密碼。登錄成功訪問(wèn)loginok,登錄失敗訪問(wèn)loginfail函數(shù)execute(),處理登錄邏輯檢測(cè)。AdminDAO類,負(fù)責(zé)管理員,權(quán)限,角色等相關(guān)表的訪問(wèn)處理封裝。函數(shù)verify函數(shù)原型intverify(String,String)throwsInValidAdminException參數(shù)管理員帳號(hào)管理員密碼返回如果驗(yàn)證成功,則返回該管理員的id,異常如果驗(yàn)證失敗,則拋出InValidAdminException異常函數(shù)getRole函數(shù)原型ListgetRole(int)參數(shù)管理員ID返回返回該管理員具備的角色,List中元素是Role類型異常函數(shù)getRight函數(shù)原型ListgetRight(List)參數(shù)一組角色的列表返回返回一組角色擁有的所有權(quán)限,List元素是Right類型異常函數(shù)getModuleOperation函數(shù)原型MapgetModuleOperation(List)參數(shù)一組權(quán)限的列表返回返回一組權(quán)限對(duì)應(yīng)的系統(tǒng)模塊與模塊允許的操作,Map元素中key是Module類型,value是Operation類型異常4參數(shù)設(shè)計(jì)(1)頁(yè)面參數(shù)存放管理員權(quán)限模塊的session參數(shù)module(2)Forward參數(shù)登錄成功loginok登錄失敗loginfail(3)url設(shè)計(jì)LoginAction的path:login2.4.2.權(quán)限管理.相關(guān)表Modules表,Operations表,Rights表,Roles表,RoleRights表,Admins表,AdminRoles表界面設(shè)計(jì)1菜單風(fēng)格圖2權(quán)限菜單2權(quán)限瀏覽圖3權(quán)限瀏覽3權(quán)限修改圖4權(quán)限修改瀏覽頁(yè)圖5權(quán)限修改頁(yè)面4權(quán)限刪除圖6權(quán)限刪除頁(yè)面5權(quán)限增加圖7權(quán)限增加頁(yè)面角色瀏覽圖8角色瀏覽頁(yè)面7角色修改圖9角色修改瀏覽頁(yè)面圖10角色修改頁(yè)面8角色刪除圖11角色刪除頁(yè)面9角色增加圖12角色增加頁(yè)面.類圖設(shè)計(jì)1UI結(jié)構(gòu)類圖權(quán)限瀏覽類圖1類圖2類圖時(shí)序說(shuō)明3類說(shuō)明RightUI<right.jsp>權(quán)限查詢與瀏覽界面類RightCondForm類,封裝權(quán)限查詢條件Page控制當(dāng)前現(xiàn)實(shí)的頁(yè)數(shù)RightDAO權(quán)限數(shù)據(jù)訪問(wèn)類函數(shù)getRightByCond函數(shù)原型ListgetRightByCond(RightCondForm)參數(shù)查詢權(quán)限的條件表單返回返回滿足條件的所有權(quán)限列表,異常RightRoleAction權(quán)限管理業(yè)務(wù)處理類函數(shù)browseRight函數(shù)原型ActionForwardbrowseRight(ActionMapping,ActionForm,HttpServletRequest,HttpServletResponse)參數(shù)參數(shù)意義與struts相同返回返回要轉(zhuǎn)向的url封裝ActionMapping,showright異常權(quán)限修改類圖類圖類圖時(shí)序說(shuō)明類說(shuō)明RightUpdateUI<rightup.jsp>類,權(quán)限修改選擇界面RightUpdateInputUI<rightupinput.jsp>類,權(quán)限修改輸入界面RightRoleAction類,權(quán)限修改數(shù)據(jù)處理類函數(shù)updateRightRightAction類,權(quán)限修改業(yè)務(wù)處理類。函數(shù)showupdate,獲取要修改的權(quán)限數(shù)據(jù)函數(shù)update,更新保存修改的權(quán)限數(shù)據(jù)RightForm類,修改的權(quán)限數(shù)據(jù)封裝表單類。RightDAO類,權(quán)限數(shù)據(jù)保存訪問(wèn)類。函數(shù)getById得到指定id的權(quán)限。函數(shù)update更新權(quán)限數(shù)據(jù).權(quán)限刪除類圖類圖類圖時(shí)序說(shuō)明類說(shuō)明RightDeleteUI<rightdel.jsp>類,要?jiǎng)h除的權(quán)限列表界面。RightAction類,通過(guò)delete方法處理刪除邏輯。RightForm類,要?jiǎng)h除的權(quán)限的form封裝,這里只需要權(quán)限IDRightRoleAction類,通過(guò)調(diào)用deleteRight函數(shù)列出要?jiǎng)h除的權(quán)限列表。RightDAO類,權(quán)限刪除訪問(wèn)類,刪除函數(shù)deleteById.權(quán)限增加類圖類圖類圖時(shí)序說(shuō)明類說(shuō)明RightAddNewUI<rightadd.jsp>類,權(quán)限數(shù)據(jù)輸入界面類。RightForm類,權(quán)限數(shù)據(jù)提交封裝類。RightAction類,權(quán)限保存業(yè)務(wù)處理,函數(shù)是insertRightDAO類,把權(quán)限插入到數(shù)據(jù)庫(kù)德操作類,函數(shù)insert角色瀏覽類圖類圖類圖時(shí)序說(shuō)明類說(shuō)明RoleUI<role.jsp>類,角色顯示界面。RightRoleAction類,角色的查詢邏輯就是調(diào)用browseRole實(shí)現(xiàn)的。RoleCondForm角色查詢條件封裝。RoleDAO類,負(fù)責(zé)角色數(shù)據(jù)的訪問(wèn),角色查詢函數(shù)是getAllRole.函數(shù)getAllRole函數(shù)原型ListgetAllRole(RoleCondForm)參數(shù)參數(shù)是要查詢的角色的條件返回返回滿足條件的所有角色。異常角色修改類圖類圖類圖時(shí)序說(shuō)明類說(shuō)明RoleUpdateUI<roleup.jsp>類,顯示要修改角色列表界面RoleForm類,封裝角色表單數(shù)據(jù)。RoleAction類,角色修改邏輯處理類,獲取要修改的角色showUpdate,保要修改的角色update。RoleUpdateInputUI<roleupinput.jsp>類,角色的修改界面。RoleDAO類,負(fù)責(zé)角色數(shù)據(jù)訪問(wèn),保存角色函數(shù)update角色刪除類圖類圖類圖時(shí)序說(shuō)明類說(shuō)明RoleDeleteUI<roledel.jsp>類,要?jiǎng)h除角色顯示界面。RoleForm類,封裝要?jiǎng)h除角色的表單數(shù)據(jù)。RoleAction類,負(fù)責(zé)角色的刪除邏輯處理,函數(shù)delete。RoleDAO類,負(fù)責(zé)對(duì)角色數(shù)據(jù)的訪問(wèn),函數(shù)deleteRoleById.角色增加類圖類圖類圖時(shí)序說(shuō)明類說(shuō)明RoleAddNew<roleadd.jsp>類,角色增加輸入界面。RoleForm類,角色表單數(shù)據(jù)。RoleAction類,處理角色增加邏輯。函數(shù)addnewRoleDAO類,負(fù)責(zé)把角色數(shù)據(jù)插入到數(shù)據(jù)庫(kù)。函數(shù)insertRole。2.4.3管理員管理UI結(jié)構(gòu)類圖設(shè)計(jì)相關(guān)表admins表,roles表,adminroles表UI設(shè)計(jì)1管理員管理菜單設(shè)計(jì)圖13管理員管理菜單頁(yè)面2超級(jí)管理員信息修改圖14超級(jí)管理員信息修改頁(yè)面3管理員查詢?yōu)g覽圖15管理員瀏覽頁(yè)面4管理員修改圖16管理員信息修改瀏覽頁(yè)面圖17管理員信息修改頁(yè)面5管理員刪除圖18管理員刪除頁(yè)面6管理員增加圖19管理員增加頁(yè)面.類圖設(shè)計(jì)1超級(jí)管理員信息修改類圖類圖時(shí)序說(shuō)明類說(shuō)明AdminSuperUI<adminsuper.jsp>類,超級(jí)管理員信息修改界面。AdminAction類,負(fù)責(zé)超級(jí)管理員修改數(shù)據(jù)的獲取showUpdateSuper,并保存修改后的超級(jí)管理員數(shù)據(jù)的邏輯updateSuper。AdminDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)獲取超級(jí)管理員信息getById,把超級(jí)管理員的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)updateAdmin。2管理員查詢?yōu)g覽類圖類圖時(shí)序說(shuō)明類說(shuō)明AdminUI<admin.jsp>類,負(fù)責(zé)顯示查詢的管理員結(jié)果的界面。AdminCondForm類,負(fù)責(zé)查詢的條件表單封裝。AdminAction類,負(fù)責(zé)查詢邏輯。browseAdminAdminDAO類,負(fù)責(zé)到數(shù)據(jù)庫(kù)的查詢?cè)L問(wèn)。getAllAdmin。3管理員修改類圖類圖的時(shí)序說(shuō)明類說(shuō)明AdminUpdateUI<adminup.jsp>類,負(fù)責(zé)顯示要修改的管理員列表界面。AdminAction類,負(fù)責(zé)修改數(shù)據(jù)的顯示,修改數(shù)據(jù)的保存邏輯處理。showUpdateAdmin,updateAdminAdminForm類,負(fù)責(zé)封裝管理員數(shù)據(jù)。AdminUpdateInputUI<adminupinput.jsp>類,負(fù)責(zé)修改管理員數(shù)據(jù)的界面。AdminDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)得到要顯示的管理員信息和保存修改的管理員數(shù)據(jù)到數(shù)據(jù)庫(kù)。getById,updateAdmin.4管理員刪除類圖類圖時(shí)序說(shuō)明類說(shuō)明AdminDeleteUI<admindel.jsp>類,負(fù)責(zé)顯示要?jiǎng)h除的管理員列表的界面。AdminAction類,負(fù)責(zé)管理員刪除邏輯處理deleteAdmin。AdminDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)刪除管理員數(shù)據(jù)。deleteAdmin。5管理員增加類圖類時(shí)序說(shuō)明類說(shuō)明AdminAddNew<adminadd.jsp>類,負(fù)責(zé)管理員數(shù)據(jù)輸入界面。AdminAction類,負(fù)責(zé)管理員數(shù)據(jù)保存邏輯處理insertAdmin。AdminForm類,負(fù)責(zé)封裝管理員表單數(shù)據(jù)。AdminDAO類,負(fù)責(zé)把管理員數(shù)據(jù)保存到數(shù)據(jù)庫(kù)insertAdmin。2.4.4資費(fèi)管理相關(guān)表pricings表。UI設(shè)計(jì)1資費(fèi)查詢圖20資費(fèi)瀏覽頁(yè)面資費(fèi)修改圖21資費(fèi)修改頁(yè)面圖22資費(fèi)增加頁(yè)面資費(fèi)刪除圖23資費(fèi)刪除頁(yè)面資費(fèi)增加圖24資費(fèi)增加頁(yè)面類圖設(shè)計(jì)資費(fèi)管理UI整體結(jié)構(gòu)2資費(fèi)查詢類圖類圖時(shí)序說(shuō)明類說(shuō)明PricingQueryUI<pricingquery.jsp>類,顯示資費(fèi)的查詢結(jié)果界面。PricingAction類,負(fù)責(zé)資費(fèi)查詢邏輯處理queryPricing。PricingConditionForm類,封裝資費(fèi)查詢條件表單數(shù)據(jù)。PricingDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)獲取資費(fèi)查詢結(jié)果getPricingByCondition。3資費(fèi)修改類圖類圖時(shí)序說(shuō)明類說(shuō)明PricingUpdateUI<pricingup.jsp>類,負(fù)責(zé)顯示要修改的資費(fèi)列表界面。PricingAction類,負(fù)責(zé)修改數(shù)據(jù)的顯示,修改保存邏輯處理。PricingForm類,PricingUpdateInputUI<pricingupinput.jsp>類PricingDAO類4資費(fèi)刪除類圖類圖時(shí)序說(shuō)明類說(shuō)明PricingDeleteUI<pricingdel.jsp>類,負(fù)責(zé)顯示要?jiǎng)h除資費(fèi)列表的界面。PricingAction類,負(fù)責(zé)得到要?jiǎng)h除資費(fèi)數(shù)據(jù)showDeletePricing,刪除資費(fèi)的邏輯處理deletePricing。PricingDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)獲取資費(fèi)數(shù)據(jù)getPricingByCondition,并從數(shù)據(jù)庫(kù)中刪除資費(fèi)數(shù)據(jù)deleteById。5資費(fèi)增加類圖類圖時(shí)序說(shuō)明類說(shuō)明PricingAddNewUI<pricingadd.jsp>類,負(fù)責(zé)顯示資費(fèi)的輸入界面。PricingAction類,負(fù)責(zé)資費(fèi)輸入showAddNewPricing,資費(fèi)數(shù)據(jù)插入等邏輯處理addnewPricing。PricingForm類,封裝資費(fèi)的表單數(shù)據(jù)。PricingDAO類,負(fù)責(zé)把資費(fèi)中數(shù)據(jù)保存到數(shù)據(jù)庫(kù)insert。2.4.5.用戶管理相關(guān)表users表,userservices表,pricings表。.UI結(jié)構(gòu)設(shè)計(jì)1用戶管理菜單結(jié)構(gòu)圖25用戶管理菜單結(jié)構(gòu)頁(yè)面帳務(wù)帳號(hào)查詢圖26賬務(wù)賬號(hào)查詢頁(yè)面帳務(wù)帳號(hào)修改圖27賬務(wù)賬號(hào)修改瀏覽頁(yè)面圖28賬務(wù)增加頁(yè)面4帳務(wù)帳號(hào)刪除圖29賬務(wù)賬號(hào)刪除頁(yè)面5帳務(wù)帳號(hào)申請(qǐng)圖30賬務(wù)增加頁(yè)面業(yè)務(wù)帳號(hào)查詢圖31業(yè)務(wù)賬號(hào)查詢頁(yè)面7業(yè)務(wù)帳號(hào)修改圖32業(yè)務(wù)賬號(hào)修改瀏覽頁(yè)面圖33業(yè)務(wù)賬號(hào)修改頁(yè)面業(yè)務(wù)帳號(hào)刪除圖34業(yè)務(wù)賬號(hào)刪除頁(yè)面業(yè)務(wù)帳號(hào)申請(qǐng)圖35業(yè)務(wù)賬號(hào)增加頁(yè)面.類圖設(shè)計(jì)1UI類結(jié)構(gòu)設(shè)計(jì)2帳務(wù)帳號(hào)查詢類圖類圖時(shí)序說(shuō)明類說(shuō)明AccountQuery<accountque.jsp>類,負(fù)責(zé)顯示查詢結(jié)果。AccountBusinessAction類,負(fù)責(zé)顯示所有帳務(wù)帳號(hào)的獲取邏輯處accountquery。AccountAction類,負(fù)責(zé)查詢帳務(wù)帳號(hào)的邏輯處理query。AccountQueryCondForm類,負(fù)責(zé)查詢條件的表單數(shù)據(jù)封裝。AccountDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)得到所有帳務(wù)帳單數(shù)據(jù)listAllAccount,從數(shù)據(jù)庫(kù)得到滿足條件的帳務(wù)帳號(hào)數(shù)據(jù)queryAccountByCond。3帳務(wù)帳號(hào)修改類圖類圖時(shí)序說(shuō)明類說(shuō)明AccountUpdate<accountup.jsp>類,負(fù)責(zé)顯示要更新的帳務(wù)帳號(hào)列表。AccountBusinessAction類,負(fù)責(zé)要更新帳務(wù)帳號(hào)的獲取邏輯處理accountupdate。AccountUpdadteInput<accountupinput.jsp>類,負(fù)責(zé)帳務(wù)帳號(hào)的修改界面。AccountAction類,負(fù)責(zé)要修改的帳務(wù)帳號(hào)的數(shù)據(jù)獲取updatequery,和修改后的帳務(wù)帳號(hào)數(shù)據(jù)的保存update。AccountForm類,負(fù)責(zé)帳務(wù)帳號(hào)數(shù)據(jù)的封裝。AccountDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)和更新數(shù)據(jù)getAccountById,update。4帳務(wù)帳號(hào)刪除類圖類圖時(shí)序說(shuō)明類說(shuō)明AccountDelete<accountdel.jsp>類,負(fù)責(zé)顯示要?jiǎng)h除的帳務(wù)帳號(hào)列表界面。AccountBusinessAction類,負(fù)責(zé)顯示所有帳務(wù)帳號(hào)的邏輯處理accountdelete。AccountAction類,負(fù)責(zé)帳務(wù)帳號(hào)的刪除邏輯處理delete。AccountForm類,封裝要?jiǎng)h除的帳務(wù)帳號(hào),其中id有效。AccountDAO類,負(fù)責(zé)帳務(wù)帳號(hào)的刪除,函數(shù)是deleteAccountByID。5帳務(wù)帳號(hào)申請(qǐng)類圖類圖時(shí)序說(shuō)明類說(shuō)明AccountAddNew<accountadd.jsp>類,負(fù)責(zé)帳務(wù)帳號(hào)的輸入界面AccountBusinessAction類,負(fù)責(zé)帳務(wù)帳號(hào)輸入界面邏輯處理accountaddnew。AccountAction類,負(fù)責(zé)帳務(wù)帳號(hào)的增加邏輯處理insert。AccountDAO類,負(fù)責(zé)把帳務(wù)帳號(hào)數(shù)據(jù)保存到數(shù)據(jù)庫(kù)insert。6業(yè)務(wù)帳號(hào)查詢類圖類圖時(shí)序說(shuō)明類說(shuō)明BusinessQuery<businessque.jsp>類,負(fù)責(zé)顯示業(yè)務(wù)帳號(hào)列表的界面。AccountBusinessAction類,負(fù)責(zé)顯示所有業(yè)務(wù)帳號(hào)的邏輯處理。Businessquery。BusinessAction類,負(fù)責(zé)查詢的邏輯處理query。BusinessCondForm類,業(yè)務(wù)帳號(hào)查詢條件封裝。BusinessDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)查詢數(shù)據(jù)getBusinessByCon。7業(yè)務(wù)帳號(hào)修改類圖類圖時(shí)序說(shuō)明類說(shuō)明BusinessUpdate<businessup.jsp>類,負(fù)責(zé)顯示要修改的業(yè)務(wù)帳號(hào)列表的界面。AccountBusinessAction類,負(fù)責(zé)要修改業(yè)務(wù)帳號(hào)的獲取查詢的邏輯處理businessupdate。BusinessUpdateInput<businessupinput.jsp>類,負(fù)責(zé)顯示要修改業(yè)務(wù)帳號(hào)的修改界面。BusinessAction類,負(fù)責(zé)要修改數(shù)據(jù)的獲取updatequery和修改后數(shù)據(jù)的保存update的邏輯處理。BusinessForm類,業(yè)務(wù)帳號(hào)數(shù)據(jù)的表單封裝。BusinessDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)得到要修改的數(shù)據(jù)getById和更新修改update的數(shù)據(jù)到數(shù)據(jù)庫(kù)。8業(yè)務(wù)帳號(hào)刪除類圖類圖時(shí)序說(shuō)明類說(shuō)明BusinessDelete<businessdel.jsp>類,負(fù)責(zé)顯示要?jiǎng)h除的業(yè)務(wù)帳號(hào)的列表界面。AccountBusinessAction類,負(fù)責(zé)要?jiǎng)h除的業(yè)務(wù)帳號(hào)的查詢邏輯處理businessdelete。BusinessAction類,負(fù)責(zé)數(shù)據(jù)刪除的邏輯處理delete。BusinessForm類,封裝要?jiǎng)h除業(yè)務(wù)的表單數(shù)據(jù)。BusinessDAO類,負(fù)責(zé)把數(shù)據(jù)從數(shù)據(jù)庫(kù)刪除。9業(yè)務(wù)帳號(hào)申請(qǐng)類圖類圖時(shí)序說(shuō)明類說(shuō)明BusinessAddNew<businessadd.jsp>類,負(fù)責(zé)業(yè)務(wù)帳號(hào)數(shù)據(jù)的輸入界面。AccountBusinessAction類,負(fù)責(zé)業(yè)務(wù)帳號(hào)輸入的邏輯處理businessaddnew。BusinessAction類,負(fù)責(zé)輸入業(yè)務(wù)帳號(hào)數(shù)據(jù)的保存邏輯處理addnew。BusinessForm類,負(fù)責(zé)業(yè)務(wù)帳號(hào)表單數(shù)據(jù)的封裝。BusinessDAO類,負(fù)責(zé)把數(shù)據(jù)添加到數(shù)據(jù)庫(kù)addnew。2.4.6帳單查詢相關(guān)表details表,detaildays_x表,detailmonths_x表,detailyears_x表,users表,userservices表。UI設(shè)計(jì)1賬單查詢圖36賬單查詢頁(yè)面2 賬單查詢明細(xì)圖37賬單查詢明細(xì)頁(yè)面類設(shè)計(jì)類圖類圖時(shí)序說(shuō)明類說(shuō)明FeeQueryAction類,負(fù)責(zé)賬單查詢,與明細(xì)查詢的邏輯處理。FeeQueryCondForm類,負(fù)責(zé)查詢條件的表單數(shù)據(jù)封裝。FeeQueryUI<feequery.jsp>類,負(fù)責(zé)顯示賬單費(fèi)用查詢結(jié)果。FeeDetailUI<feedetail.jsp>類,負(fù)責(zé)顯示帳務(wù)帳號(hào)上的明細(xì)。FeeDAO類,負(fù)責(zé)從數(shù)據(jù)庫(kù)查詢獲取相關(guān)數(shù)據(jù)。2.4.7帳務(wù)查詢相關(guān)表detaildays表,detailmonths表,detailyears表。UI設(shè)計(jì)1帳務(wù)年查詢圖38賬務(wù)年查詢頁(yè)面圖39賬務(wù)年查詢明細(xì)頁(yè)面帳務(wù)月查詢圖40賬務(wù)月查詢頁(yè)面圖41賬務(wù)月查詢明細(xì)頁(yè)面類設(shè)計(jì)類圖類圖時(shí)序說(shuō)明年查詢?cè)虏樵冾愓f(shuō)明ServiceTimeQueryAction類,負(fù)責(zé)查詢的邏輯處理。ServiceTimeQueryCondForm類,負(fù)責(zé)查詢條件的封裝。ServiceTimeQueryYUI<servicetimey.jsp>類,顯示年查詢結(jié)果界面。ServiceTimeDeatailY<servicedetaily.jsp>類,負(fù)責(zé)顯示年查詢明細(xì)結(jié)果界面。ServiceTimeQueryMUI<servicetimem.jsp>類,負(fù)責(zé)顯示月查詢結(jié)果界面。ServiceTimeDeatailM<servicedetailm.jsp>類,負(fù)責(zé)顯示月查詢明細(xì)結(jié)果界面。3.編碼部分3.1.

電信計(jì)費(fèi)系統(tǒng)編碼規(guī)范該系統(tǒng)在編碼過(guò)程中,嚴(yán)格按照在詳細(xì)設(shè)計(jì)說(shuō)明書來(lái)編寫,做到了前后統(tǒng)一。所有編碼時(shí)參照java編寫規(guī)范,從而有一個(gè)良好的可維護(hù)性和可讀性。本系統(tǒng)所具體編碼規(guī)范如下:3.1.1.命名規(guī)范.package(*)包名全部由小寫的ASCII字母組成,用“.”分隔。在此項(xiàng)目中,所有的包均以“ctoss”開頭。net.tysy為太原師范學(xué)院的網(wǎng)址倒寫,netctoss為系統(tǒng)的標(biāo)識(shí)。.class(*)類名應(yīng)當(dāng)是名詞,每個(gè)內(nèi)部單詞的頭一個(gè)字母大寫。應(yīng)當(dāng)使你的類名簡(jiǎn)單和具有說(shuō)明性。用完整的英語(yǔ)單詞或約定俗成的簡(jiǎn)寫命名類名。示例:publicclassUserManagerinterface(*)接口名應(yīng)當(dāng)是名詞,每個(gè)內(nèi)部單詞的頭一個(gè)字母大寫。應(yīng)當(dāng)使你的接口名簡(jiǎn)單和具有說(shuō)明性。用完整的英語(yǔ)單詞或約定俗成的簡(jiǎn)寫命名接口名。示例:interfaceUserServiceClass成員屬性及變量的命名(*)變量名全部由字母組成,頭一個(gè)字母小寫,以后每個(gè)內(nèi)部單詞的頭一個(gè)字母大寫。變量名應(yīng)該短而有意義。變量名的選擇應(yīng)該易于記憶。一個(gè)字符的變量名應(yīng)避免,除非用于臨時(shí)變量。通常臨時(shí)變量名的命名規(guī)則為:i,j,k,m,n用于整數(shù);c,d,e用于字符。示例:privateStringlastName;常量的命名(*)Java里的常量,是用staticfinal修飾的,應(yīng)該用全大寫加下劃線命名,并且盡量指出完整含義。示例:staticfinalStringPAGE_SIZE="12";數(shù)組的命名(*)數(shù)組應(yīng)該總是用下面的形式來(lái)命名:byte[]buffer;方法的參數(shù)(*)和變量的命名規(guī)范一致,且應(yīng)使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字。示例:setCounter(intsize){this.size=size;}方法命名(*)方法的命名應(yīng)當(dāng)使用動(dòng)詞,頭一個(gè)字母小寫,以后每個(gè)內(nèi)部單詞的頭一個(gè)字母大寫。在方法名的選擇上應(yīng)意義明確便于記憶。對(duì)于屬性的存取方法,應(yīng)使用getXXX()和setXXX()名稱,以isXXX(),hasXXX()來(lái)命名返回值為boolean類型的方法。一般命名注意事項(xiàng)用有意義的名字命名變量首先,用完整的英語(yǔ)單詞或約定俗成的簡(jiǎn)寫命名變量。示例:firstNamezipCode用復(fù)數(shù)命名Collection類變量。Collection包括數(shù)組,Vector等。命名時(shí)使用復(fù)數(shù):示例:customersclassmates2Java源文件樣式Java(*.java)源文件應(yīng)遵守如下的樣式規(guī)則:Class代碼布局:版權(quán)聲明Package和Import語(yǔ)句Javadoc注釋或者其它文件頭注釋類或接口聲明Fields聲明空行構(gòu)造函數(shù) 空行克隆方法空行其它方法(不包括main)空行 內(nèi)部(Inner)類空行main()方法版權(quán)聲明所有的源文件都應(yīng)該以一個(gè)c風(fēng)格的注釋開始,以列出類名,版本信息,修改日期和版權(quán)聲明。示例:/**Classname:**Versioninformation:**Date:**Copyright2003ProstenTechnologyCo.,Ltd.**/其他不需要出現(xiàn)在javadoc的信息也可以包含在這里。Package/Imports(*)package行要在import行之前,中間空一行。將import的classes歸類,按順序羅列:a.Java標(biāo)準(zhǔn)類(java.*)b.Java擴(kuò)充類(javax.*)c.第三方類d.你的應(yīng)用程序的類注意在第三方類里進(jìn)行注釋,說(shuō)明它們的來(lái)源。如果import行中包含了同一個(gè)包中的多個(gè)類,則可以用*來(lái)處理。示例:packagectoss.user;importjava.io.*;importjava.util.Observable;importjava.util.Date;importjavax.sql.*;//ApacheXercesimportorg.apache.xml.*;importorg.apache.xerces.dom.*;//Applicationclassesimportctoss.util.*;這里java.io.*使用來(lái)代替InputStream和OutputStream的引入。2.4Javadoc注釋示例:/***<p>Title:類名</p>*<p>Description:(說(shuō)明用中文)/</p>*@author: 張三*@date:(最后一次修改的提交時(shí)間)*/ClassFields類的成員變量:示例:protectedint[]packets;public的成員變量必須以生成文檔(JavaDoc)的方式進(jìn)行注釋(/**…*/)。proceted、private和package定義的成員變量如果名字含義明確的話,可以沒(méi)有注釋。Field定義可遵從以下順序:a.public常量b.public變量c.protected常量d.protected變量e.package常量f.package變量g.private常量h.private變量存取方法(getter,setter)接下來(lái)是類變量的存取的方法。構(gòu)造方法(*)重載的構(gòu)造方法應(yīng)該用遞增的方式寫(參數(shù)多的寫在后面)。示例:publicCounterSet(){this(10);}publicCounterSet(intsize){this.size=size;}克隆方法如果這個(gè)類是可以被克隆的,就應(yīng)實(shí)現(xiàn)clone方法:示例:publicObjectclone(){try{CounterSetobj=(CounterSet)super.clone();obj.packets=(int[])packets.clone();obj.size=size;returnobj;}catch(CloneNotSupportedExceptione){thrownewInternalError("UnexpectedCloneNotSUpportedException:"+e.getMessage());}}類方法下面開始寫類方法:示例:/***Setthepacketcounters*(suchaswhenrestoringfromadatabase)*/protectedfinalvoidsetArray(int[]r1,int[]r2,int[]r3,int[]r4)throwsIllegalArgumentException{if(r1.length!=r2.length||r1.length!=r3.length||r1.length!=r4.length){thrownewIllegalArgumentException("Arraysmustbehesamesize"); }System.arraycopy(r1,0,r3,0,r1.length);System.arraycopy(r2,0,r4,0,r1.length);}0toString方法每一個(gè)類都最好定義toString方法:示例:publicStringtoString(){Stringretval="CounterSet:";for(inti=0;i<data.length();i++){retval+=data.bytes.toString();retval+=data.packets.toString();}returnretval;}1main方法(*)如果類中包含main(String[])方法,那么它應(yīng)該寫在類的底部。3代碼編寫風(fēng)格3.1語(yǔ)句3.1.1簡(jiǎn)單語(yǔ)句每一行包含至多一條語(yǔ)句。.2復(fù)合語(yǔ)句復(fù)合語(yǔ)句是指附加形如"{……}"封套結(jié)構(gòu)的語(yǔ)句。封套內(nèi)的語(yǔ)句要比復(fù)合語(yǔ)句多縮進(jìn)一個(gè)層次。開頭的括號(hào)因該在起始復(fù)合語(yǔ)句同一行的末尾;結(jié)尾的括號(hào)應(yīng)該新起一行并和起始的復(fù)合語(yǔ)句保持同樣縮進(jìn)。應(yīng)當(dāng)對(duì)所有諸如if-else,while,for,try-catch結(jié)構(gòu)的控制語(yǔ)句都使用大括號(hào),即使是單個(gè)語(yǔ)句,只要它是控制結(jié)構(gòu)的一部分。示例:if(condition){statements;}else{statements;} //if-else語(yǔ)句.3返回語(yǔ)句有值返回的返回語(yǔ)句不應(yīng)該使用括號(hào),除非某些情況下為了使得返回值更加明顯。示例:return;returnmyDisk.size();return(size?size:defaultSize);位置控制.1縮進(jìn)應(yīng)當(dāng)用四個(gè)空格作為縮排的單位。不要在源文件中保存Tab字符(!!)。以免在使用不同的源代碼管理工具時(shí)Tab字符將因?yàn)橛脩粼O(shè)置的不同而顯示為不同的寬度。.2行的長(zhǎng)度避免行長(zhǎng)超過(guò)80個(gè)字符,因?yàn)檫@樣不好被大多數(shù)終端顯示和工具處理。.3折疊的行當(dāng)表達(dá)在一行放不下時(shí),根據(jù)下面的一般原則打斷它:在一個(gè)逗號(hào)后打斷。在運(yùn)算符前打斷。高層次的打斷優(yōu)于低層次的打斷。讓新起的行與上一行同一層次表達(dá)的開頭對(duì)齊。如果上面的方法導(dǎo)致代碼混亂或者代碼減少了合適的頁(yè)邊空白,那么使用縮進(jìn)8個(gè)空格代替。示例:下面的例子打斷了方法調(diào)用:someMethod(longExpression1,longExpression2,longExpression3,longExpression4,longExpression5);var=someMethod1(longExpression1,someMethod2(longExpression2,longExpression3));示例: 下面兩個(gè)例子打斷了算術(shù)表達(dá)式。第一個(gè)較好,因?yàn)榇驍喟l(fā)生在較高層次上。longName1=longName2*(longName3+longName4-longName5)+4*longname6;示例: 語(yǔ)句的行折疊通常用8空格,這是因?yàn)?空格會(huì)使主體部分看起來(lái)困難。//USETHISINDENTATIONINSTEADif((condition1&&condition2)||(condition3&&condition4)||!(condition5&&condition6)){doSomethingAboutIt();}空白處理.1空行空行通過(guò)分開局部相關(guān)的代碼部分,增加了可讀性。在下列情況下總是使用兩個(gè)空行:源文件的不同部分之間和接口定義之間在下列情況下總是使用一個(gè)空行:在方法之間方法里面的局部變量聲明和它的第一個(gè)語(yǔ)句之間在塊注釋(參見4.1.1節(jié))或單行注釋(參見4.1.2節(jié))之前方法里面的邏輯部分之間,以提高可讀性.2空格應(yīng)該在下列情況下使用空格:關(guān)鍵字和后面的括號(hào)之間應(yīng)該使用一個(gè)空格。例如: while(true){ ... }注意在方法名和后面的括號(hào)之間不應(yīng)該使用空格。這有助于分清關(guān)鍵字和方法調(diào)用。逗號(hào)之后應(yīng)該使用一個(gè)空格。除了“.”之外的所有二元操作符應(yīng)該用空格和操作數(shù)分開。對(duì)于一元操作符不使用空格。示例: a=(a+b)/(c*d); while(d++=s++){ n++; } printSize("sizeis"+foo+"\n");for語(yǔ)句中的表達(dá)式應(yīng)當(dāng)用空格分開。示例: for(expr1;expr2;expr3)強(qiáng)制類型轉(zhuǎn)換應(yīng)當(dāng)跟隨一個(gè)空格。示例: myMethod((byte)aNum,(Object)x);myMethod((int)(cp+5),((int)(i+3))+1);聲明.1每行一個(gè)每行只能書寫一個(gè)聲明,因?yàn)檫@有利于注釋。示例:intlevel; //indentationlevelintsize; //sizeoftable示例:上面的例子中使用一個(gè)空格分隔類型和標(biāo)示符。另一種方法是使用tab,如:intlevel;//indentationlevelintsize;//sizeoftableObjectcurrentEntry;//currentlyselectedtableentry.2初始化試著在局部變量聲明的時(shí)候進(jìn)行初始化。如果不在變量聲明的時(shí)候進(jìn)行初始化,唯一的理由就是它的初始值首先依賴于一些計(jì)算。.3位置聲明只放在代碼塊的開始部分。(一個(gè)代碼塊是指由括號(hào)"{"和"}"包圍的代碼。)不要等到變量使用時(shí)才聲明它們。唯一的例外是在for循環(huán)語(yǔ)句中。示例: voidmyMethod(){intint1=0;//beginningofmethodblockif(condition){intint2=0;//beginningof"if"block ...}}for(inti=0;i<maxLoops;i++){...}要避免局部變量的聲明出現(xiàn)在比其更高的層次中。不要聲明和內(nèi)部代碼塊同名的變量。3.1.4程序編寫規(guī)范使用方法來(lái)訪問(wèn)實(shí)例變量和類變量(*)如果沒(méi)有很好的理由,一般不應(yīng)將實(shí)例變量或類變量設(shè)為public,將變量設(shè)為public的典型應(yīng)用是此類代表一個(gè)“數(shù)據(jù)結(jié)構(gòu)”,而不包含任何方法。引用類變量和類方法(*)避免使用對(duì)象引用來(lái)訪問(wèn)類(static)變量或類方法,而應(yīng)使用類名來(lái)訪問(wèn)。如:classMethod();//OKAClass.classMethod();//OKanObject.classMethod();//避免!常量(*)數(shù)字常量不應(yīng)直接在編碼中出現(xiàn),除非是for循環(huán)中用于計(jì)數(shù)的–1,0,或1。字符串常量盡量不直接在編碼中出現(xiàn)。?前的邏輯運(yùn)算表達(dá)式?前的邏輯運(yùn)算表達(dá)式應(yīng)以括號(hào)括起,如:(x>=0)?x:-x;4.5變量賦值避免在一個(gè)語(yǔ)句中賦給幾個(gè)變量同樣的值。這是難于閱讀的。示例: fooBar.fChar=barFoo.lchar='c';//AVOID!不要在容易和相等操作符混淆的地方使用賦值操作。 if(c++=d++){//AVOID!(Javadisallows)...}而應(yīng)該寫成這樣: if((c++=d++)!=0){...}不要為了提高運(yùn)行性能使用內(nèi)嵌的賦值,這是編譯器的任務(wù)。例如:d=(a=b+c)+r;//AVOID!而應(yīng)該寫成:a=b+c;d=a+r;特殊注釋在實(shí)現(xiàn)某個(gè)類的方法時(shí)若還未完成實(shí)際代碼,但出于程序連接需要,可令該方法暫時(shí)返回一個(gè)“true”一類的結(jié)果,具體實(shí)現(xiàn)代碼留待下一步實(shí)現(xiàn)。但是此部分需要用/*×××WAITINGTOIMPLEMENT…×××*/標(biāo)注。例外申明的錯(cuò)誤應(yīng)該拋出一個(gè)RuntimeException或者派生的例外。頂層的main()函數(shù)應(yīng)該截獲所有的例外,并且打?。ɑ蛘哂涗浽谌罩局校┰谄聊簧?。方法的輸入?yún)?shù)方法的輸入?yún)?shù)為對(duì)象時(shí),默認(rèn)的前置條件為輸入實(shí)例不為空(null),除非在API文檔中另行說(shuō)明。即默認(rèn)情況下,方法體中不對(duì)傳入實(shí)例是否為空特別地加以判斷。方法的返回值當(dāng)方法的返回值為對(duì)象時(shí),返回值是否可能為空應(yīng)當(dāng)在API文檔中說(shuō)明。若返回值可能為空,相應(yīng)的條件也應(yīng)同時(shí)在API文檔中說(shuō)明。3.1.5Struts2編碼規(guī)范Action的class命名所有的Action類均以有意義的英文單詞加Action

溫馨提示

  • 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)論