




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上eGov電子政務(wù)系統(tǒng)概要設(shè)計(jì)說明書1引言1.1編寫目的此文檔對(duì)eGov電子政務(wù)系統(tǒng)概要設(shè)計(jì)進(jìn)行說明。預(yù)期的讀者有 (甲方)的需求提供者、項(xiàng)目負(fù)責(zé)人、相關(guān)技術(shù)人員等,北京亞思晟商務(wù)科技有限公司(乙方)的項(xiàng)目組成員,包括項(xiàng)目經(jīng)理、客戶經(jīng)理、分析設(shè)計(jì)開發(fā)測(cè)試等人員。1.2背景eGov電子政務(wù)系統(tǒng)是基于互聯(lián)網(wǎng)的應(yīng)用軟件.在研究中心的網(wǎng)上能了解到已公開發(fā)布的不同欄目(如新聞, 通知等)的內(nèi)容. 各部門可以發(fā)表欄目?jī)?nèi)容(如新聞, 通知等),有關(guān)負(fù)責(zé)人對(duì)需要發(fā)布的內(nèi)容進(jìn)行審批。其中:有的欄目(如新聞)必須經(jīng)過審批才能發(fā)布,有的欄目(如通知)則不需要審批就能發(fā)布。系統(tǒng)管理人員對(duì)用戶及
2、其權(quán)限進(jìn)行管理。1.3定義無1.4參考資料eGov電子政務(wù)系統(tǒng)需求規(guī)格說明書eGov電子政務(wù)系統(tǒng)詳細(xì)設(shè)計(jì)說明書2總體設(shè)計(jì)2.1需求規(guī)定eGov電子政務(wù)系統(tǒng)按模塊可以分成三部分,一是一般用戶瀏覽的內(nèi)容管理模塊, 二是系統(tǒng)管理,三是內(nèi)容和審核管理,而它們各自又有具體的小模塊組成。具體需求見eGov電子政務(wù)系統(tǒng)需求規(guī)格說明書。2.2運(yùn)行環(huán)境Ø 操作系統(tǒng):Win2003/XP, LinuxØ WEB服務(wù)器:Tomcat 5.5以上Ø 數(shù)據(jù)庫(kù)服務(wù)器:MySQL5.0以上,能夠處理數(shù)據(jù)并發(fā)訪問,訪問回饋時(shí)間短。2.3基本設(shè)計(jì)概念1系統(tǒng)整體方案(1)eGov電子政務(wù)系統(tǒng)主要特性
3、我們從以下五個(gè)方面確定目標(biāo)系統(tǒng)特性如下:l 用戶界面的復(fù)雜度:數(shù)據(jù)的靜態(tài)顯示/可定制視圖(customizable view)l 用戶界面的部署約束:基于獨(dú)立的桌面電腦或?qū)S霉ぷ髡镜臑g覽器l 用戶的數(shù)量和類型:組織內(nèi)的日常使用者,總共幾百人l 系統(tǒng)接口類型:通過HTTP協(xié)議提供服務(wù),未來可以使用SOAP的SOA技術(shù)l 性能:主要是獨(dú)立的數(shù)據(jù)更新,有少量并發(fā)處理從上述特性我們可以判斷eGov電子政務(wù)系統(tǒng)屬于中大型項(xiàng)目,因此我們使用基于Struts-Spring-Hibernate框架的分層架構(gòu)設(shè)計(jì)方案。(2)架構(gòu)分層在eGov電子政務(wù)項(xiàng)目架構(gòu)設(shè)計(jì)中,我們使用分層模式。具體地說,我們將eGov電子
4、政務(wù)系統(tǒng)應(yīng)用在職責(zé)上分成3層:表示層(Presentation Layer)、持久層(Persistence Layer)和業(yè)務(wù)層(Business Layser)。每個(gè)層在功能上都應(yīng)該是十分明確的,而不應(yīng)該與其他層混合。每個(gè)層要相互獨(dú)立,通過一個(gè)通信接口而相互聯(lián)系。(3)模式和框架使用:在分層設(shè)計(jì)基礎(chǔ)上,我們將使用設(shè)計(jì)模式和框架,這些是可以重用的資產(chǎn)。1)MVC模式MVC模式就是一種很常見的設(shè)計(jì)模式。所謂的MVC模式,即模型視圖控制器(modelview-controller)模式。其結(jié)構(gòu)圖如下:ViewModelController圖4-1 MVC架構(gòu)圖1、Model端在MVC中,模型是執(zhí)
5、行某些任務(wù)的代碼,而這部分代碼并沒有任何邏輯決定用戶端的表示方法。Model只有純粹的功能性接口,也就是一系列的公共方法,通過這些公共方法,便可以取得模型端的所有功能。2、View端在MVC模式里,一個(gè)Model可以有幾個(gè)View端,而實(shí)際上多個(gè)View端是使用MVC的原始動(dòng)機(jī)。使用MVC模式可以允許多于一個(gè)的View端存在,并可以在需要的時(shí)候動(dòng)態(tài)注冊(cè)所需要的View.3、Controller端MVC模式的視圖端是與MVC的控制器結(jié)合使用的。當(dāng)用戶端與相應(yīng)的視圖發(fā)生交互時(shí),用戶可以通過視窗更新模型的狀態(tài),而這種更新是通過控制器端進(jìn)行的??刂破鞫送ㄟ^調(diào)用模型端的方法更改其狀態(tài)值。與此同時(shí),控制器
6、端會(huì)通知所有注冊(cè)了的視圖刷新用戶界面。那么,使用MVC模式有哪些優(yōu)點(diǎn)呢?MVC通過以下三種方式消除與用戶接口和面向?qū)ο蟮脑O(shè)計(jì)有關(guān)的絕大部分困難:1、控制器通過一個(gè)狀態(tài)機(jī)跟蹤和處理面向操作的用戶事件。這允許控制器在必要時(shí)創(chuàng)建和破壞來自模型的對(duì)象,并且將面向操作的拓?fù)浣Y(jié)構(gòu)與面向?qū)ο蟮脑O(shè)計(jì)隔離開來。這個(gè)隔離有助于防止面向?qū)ο蟮脑O(shè)計(jì)走向歧途。2、MVC將用戶接口與面向?qū)ο蟮哪P头珠_。這允許同樣的模型不用修改就可使用許多不同的界面顯示方式。除此之外,如果模型更新由控制器完成,那么界面就可以跨應(yīng)用再使用。3、MVC允許應(yīng)用的用戶接口進(jìn)行大的變化而不影響模型。每個(gè)用戶接口的變化將只需要對(duì)控制器進(jìn)行修改,但是
7、控制器包含很少的實(shí)際行為,它是很容易修改的。 面向?qū)ο蟮脑O(shè)計(jì)人員在將一個(gè)可視化接口添加到一個(gè)面向?qū)ο蟮脑O(shè)計(jì)中時(shí)必須非常小心,因?yàn)榭梢暬涌诘拿嫦虿僮鞯耐負(fù)浣Y(jié)構(gòu)可以大大增加設(shè)計(jì)的復(fù)雜性。MVC設(shè)計(jì)允許一個(gè)開發(fā)者將一個(gè)好的面向?qū)ο蟮脑O(shè)計(jì)與用戶接口隔離開來,允許在同樣的模型中容易地使用多個(gè)接口,并且允許在實(shí)現(xiàn)階段對(duì)接口做大的修改而不需要對(duì)相應(yīng)的模型進(jìn)行修改2)框架根據(jù)項(xiàng)目特點(diǎn),我們使用三種開源框架:表示層用Struts;業(yè)務(wù)層我們用Spring;而持久層則用Hibernate。如圖1-1所示。表示層業(yè)務(wù)層持久層圖1-1 Struts-Spring-Hibernate架構(gòu)1 表示層 一般來講,一個(gè)典型
8、的Web應(yīng)用的前端應(yīng)該是表示層。這里可以使用Struts框架。下面是Struts所負(fù)責(zé)的: 管理用戶的請(qǐng)求,做出相應(yīng)的響應(yīng) 提供一個(gè)流程控制器,委派調(diào)用業(yè)務(wù)邏輯和其他上層處理 處理異常 為顯示提供一個(gè)數(shù)據(jù)模型 用戶界面的驗(yàn)證以下內(nèi)容,不該在Struts表示層的編碼中經(jīng)常出現(xiàn),與表示層無關(guān)的。 與數(shù)據(jù)庫(kù)直接通信 與應(yīng)用程序相關(guān)聯(lián)的業(yè)務(wù)邏輯及校驗(yàn) 事務(wù)處理 在表示層引入這些代碼,則會(huì)帶來高耦合和難以維護(hù)的后果。2 持久層典型的Web應(yīng)用的后端是持久層。開發(fā)者總是低估構(gòu)建他們自己的持久層框架的挑戰(zhàn)性。系統(tǒng)內(nèi)部的持久層不但需要大量調(diào)試時(shí)間,而且還經(jīng)常因?yàn)槿鄙俟δ苁怪兊秒y以控制。這是持久層的通病。幸運(yùn)
9、的是,有幾個(gè)對(duì)象/關(guān)系映射(Object/Relation Mapping,ORM)開源框架很好地解決了這類問題,尤其是Hibernate。Hibernate為Java提供了持久化機(jī)制和查詢服務(wù),它還給已經(jīng)熟悉SQL和JDBC API的Java開發(fā)者創(chuàng)造了一個(gè)學(xué)習(xí)橋梁,使他們學(xué)習(xí)起來很方便。Hibernate的持久對(duì)象是基于POJO(Plain Old Java Object)和Java集合(collections)的。此外,使用Hibernate并不妨礙你正在使用的IDE(Integrated Development Enviroment)。 下面是Hibernate所負(fù)責(zé)的: 如何查詢對(duì)象
10、的相關(guān)信息。 Hibernate是通過一個(gè)面向?qū)ο蟮牟樵冋Z言(HQL)或者正則表達(dá)的API來完成查詢的。HQL非常類似于SQL,只是把SQL里的table和columns用Object和它的fields代替。HQL語言容易理解且文檔也做得很好。HQL是一種面向?qū)ο蟛樵兊淖匀徽Z言,很容易就能學(xué)會(huì)它。 如何存儲(chǔ)、更新、刪除數(shù)據(jù)庫(kù)記錄。 如Hibernate這類的高級(jí)ORM框架支持大部分主流數(shù)據(jù)庫(kù),并且支持父表/子表(Parent/child)關(guān)系、事務(wù)處理、繼承和多態(tài)。3 業(yè)務(wù)層一個(gè)典型Web應(yīng)用的中間部分是業(yè)務(wù)層或者服務(wù)層。從編碼的視角來看,這層是最容易被忽視的一層。我們往往在用戶界面層或持久層
11、周圍看到這些業(yè)務(wù)處理的代碼,這其實(shí)是不正確的。因?yàn)樗鼤?huì)造成程序代碼的高耦合,這樣一來,隨著時(shí)間推移,這些代碼將很難維護(hù)。幸好,針對(duì)這一問題有好幾種框架(Framework)存在。最受歡迎的兩個(gè)框架是Spring和PicoContainer。這些也被稱為輕量級(jí)容器(micro container),它們能讓你很好地把對(duì)象搭配起來。這兩個(gè)框架都著手于“依賴注入”(dependency injection)(還有我們知道的控制反轉(zhuǎn)Inversion of Control=IoC)這樣的簡(jiǎn)單概念。這里我們將關(guān)注于Spring的依賴注入和面向方面編程。另外,Spring把程序中所涉及到的包含業(yè)務(wù)邏輯和數(shù)
12、據(jù)存取對(duì)象(DataAccess Object)的Objects例如transaction management handler(事務(wù)管理控制)、Object Factoris(對(duì)象工廠)、service objects(服務(wù)組件)都通過XML來配置聯(lián)系起來。 下面是業(yè)務(wù)層所負(fù)責(zé)的: 處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)校驗(yàn) 管理事務(wù) 提供與其他層相互作用的接口 管理業(yè)務(wù)層級(jí)別的對(duì)象的依賴 在表示層和持久層之間增加了一個(gè)靈活的機(jī)制,使得他們不直接聯(lián)系在一起 通過揭示從表示層到業(yè)務(wù)層之間的上下文(Context)來得到業(yè)務(wù)邏輯(business services) 管理程序的執(zhí)行(從業(yè)務(wù)層到持久層)2
13、UML視圖(1)Use-case Diagram:如圖所示。(2)class- Diagram:如圖所示。2.4結(jié)構(gòu)電子政務(wù)系統(tǒng)管理一般用戶瀏覽內(nèi)容管理等欄目權(quán)限用戶管理欄目設(shè)置內(nèi)容管理內(nèi)容審核1一般用戶瀏覽的內(nèi)容管理模塊:首頁顯示及其他頁面2系統(tǒng)管理模塊:a) 登錄b) 欄目業(yè)務(wù)設(shè)置c) 欄目權(quán)限設(shè)置d) 用戶管理設(shè)置3內(nèi)容管理和審核模塊a)內(nèi)容管理(新聞的顯示,編輯, 修改, 屏蔽, 刪除, 通知的顯示,編輯, 修改, 刪除)b)內(nèi)容審核(新聞審核)2.5功能需求與程序的關(guān)系各項(xiàng)功能需求的實(shí)現(xiàn)同各塊程序的分配關(guān)系如下所示:程序1(Action)程序2(Business Service)程序
14、3(DAO)內(nèi)容管理和審核模塊1內(nèi)容管理(新聞)NewsActionINewsServiceImpl/INewsServiceINewsDAOImpl/ INewsDAO2.內(nèi)容審核(新聞)NewsActionINewsServiceImpl/INewsServiceINewsDAOImpl/ INewsDAO3內(nèi)容管理(通知)NoticeActionINoticeServiceImpl/INoticeServiceINoticeDAOImpl/ INoticeDAO系統(tǒng)管理模塊1 登錄LoginActionIUserServiceImpl/IUserServiceIUserDAOImpl/I
15、UserDAO一般用戶瀏覽2.6人工處理過程無2.7尚未解決的問題無3接口設(shè)計(jì)3.1用戶接口用戶接口以基于瀏覽器的圖形用戶界面(Graphic User Interface, GUI)的方式提供,具體見頁面導(dǎo)航圖(靜態(tài)頁面設(shè)計(jì))。3.2外部接口本系統(tǒng)同與已有的辦公自動(dòng)化(OA)系統(tǒng)之間有數(shù)據(jù)交換。3.3內(nèi)部接口 Business Service接口DAO接口InewsServiceINewsDAOInoticeServiceINoticeDAOIuserServiceIUserDAO接口描述1、IUserService接口類提供一下方法:public Usr userLogin(String
16、username,String password);目標(biāo):用戶登錄參數(shù) 類型 說明username String 用戶登陸帳號(hào)password String 用戶登陸密碼 主要流程描述:用戶提交請(qǐng)求,在Action中調(diào)用該方法,傳入用戶輸入的帳號(hào)和密碼,到數(shù)據(jù)庫(kù)讀取,如果有此用戶且密碼對(duì)應(yīng),返回該用戶,登陸成功。否則返回null,登陸失敗。2、INewsService接口類提供以下方法:public List selectSQL(String sql,Object value);目標(biāo):根據(jù)SQL語句查詢參數(shù) 類型 說明sql String 執(zhí)行查詢的hql語句value Object hql語
17、句中的參數(shù)值主要流程描述:在Action中寫好hql語句,把參數(shù)寫入一個(gè)Object數(shù)組中,然后調(diào)用該方法,傳入hql和Object類型數(shù)組,執(zhí)行查詢,返回List類型集合。public void addObject(Object obj);目標(biāo):添加方法參數(shù) 類型 說明obj Object 需要保存的數(shù)據(jù)對(duì)象主要流程描述:在Action中創(chuàng)建JavaBean的對(duì)象,調(diào)用該方法,傳入該對(duì)象,執(zhí)行保存。public void updateObject(Object obj);目標(biāo):修改方法參數(shù) 類型 說明obj Object 需要修改的數(shù)據(jù)對(duì)象主要流程描述:在Action中查找到需要修改的對(duì)象,
18、賦予新值,調(diào)用該方法,傳入該對(duì)象,執(zhí)行修改。public void deleteObject(Object obj);目標(biāo):刪除方法參數(shù) 類型 說明obj Object 需要?jiǎng)h除的數(shù)據(jù)對(duì)象主要流程描述:在Action中查找到需要?jiǎng)h除的對(duì)象,調(diào)用該方法,傳入該對(duì)象,執(zhí)行刪除。public List findPage(final String sql,final int firstRow,final int maxRow,final Object obj);目標(biāo):分頁查詢方法參數(shù) 類型 說明sql final String 執(zhí)行查詢的hql語句firstRow final int 從第幾條記錄開始
19、查找maxRow final int 取多少條記錄obj Object hql語句中所需要的參數(shù) 主要流程描述:在Action中寫好查詢的hql語句,如有參數(shù),存入Object數(shù)組中,根據(jù)頁面?zhèn)魅氲漠?dāng)前頁數(shù),算出要從哪條記錄開始顯示,調(diào)用該方法,傳入hql語句、從第幾條記錄開是查、每頁顯示的記錄數(shù)、hql語句所需參數(shù),執(zhí)行查詢,返回List類型集合。4運(yùn)行設(shè)計(jì)4.1運(yùn)行模塊組合4.2運(yùn)行控制用戶通過圖形用戶界面發(fā)出請(qǐng)求,應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器處理請(qǐng)求后給用戶返回響應(yīng),并展現(xiàn)在用戶界面上。具體操作步驟見詳細(xì)設(shè)計(jì)說明書。4.3運(yùn)行時(shí)間運(yùn)行模塊組合將占用各種資源的時(shí)間要滿足性能要求,特別是響應(yīng)速度要低于5秒。5系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)5.1邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn)5.2物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)本系統(tǒng)內(nèi)使用MySQL關(guān)系型數(shù)據(jù)庫(kù),以便滿足每個(gè)數(shù)據(jù)結(jié)構(gòu)中的每個(gè)數(shù)據(jù)項(xiàng)的存儲(chǔ)要求,訪問方法、存取單位、存取的物理關(guān)系(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沉箱碼頭施工方案
- 室內(nèi)電纜敷設(shè)施工方案
- 2025年東師復(fù)試化學(xué)試題及答案
- 2025年高職數(shù)據(jù)庫(kù)試題及答案
- 5年級(jí)下冊(cè)英語第1第2單元單詞跟讀
- 5年級(jí)上冊(cè)第5單元摘抄
- 燈泡溫度與電阻的關(guān)系式
- 地下車庫(kù) 行政復(fù)議申請(qǐng)
- 機(jī)械合同的施工方案
- 2025年合肥信息技術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)學(xué)生專用
- 少兒財(cái)商教育講座課件
- 醫(yī)院醫(yī)用耗材SPD服務(wù)項(xiàng)目投標(biāo)方案
- 2025年保密知識(shí)試題庫(kù)附參考答案(精練)
- 全國(guó)普通高等學(xué)校2025屆高三第二次調(diào)研數(shù)學(xué)試卷含解析
- 南昌起義模板
- “互聯(lián)網(wǎng)+”大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽計(jì)劃書一等獎(jiǎng)
- 2024年10月高等教育自學(xué)考試13015計(jì)算機(jī)系統(tǒng)原理試題及答案
- GB/T 3324-2024木家具通用技術(shù)條件
- 2024秋期國(guó)家開放大學(xué)本科《古代小說戲曲專題》一平臺(tái)在線形考(形考任務(wù)4)試題及答案
- 血吸蟲病知識(shí)宣傳講座
- 詩(shī)經(jīng)的課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論