一、 系統(tǒng)介紹該系統(tǒng)采用三層架構(gòu)模型設(shè)計(jì),利用實(shí)體在3層之間數(shù)據(jù)傳輸,利用Ajax技術(shù)實(shí)現(xiàn)頁(yè)面部分刷新,利用登錄驗(yàn)證碼防止自動(dòng)登錄,利用DES加密算法對(duì)數(shù)據(jù)加密來(lái)提高系統(tǒng)的安全性,利用角色進(jìn)行權(quán)限管理等功能實(shí)現(xiàn)一般WEB系統(tǒng)中常用的技術(shù)。 參考文獻(xiàn)管理系統(tǒng)主要是用于用戶對(duì)期刊和論文的管理,用戶分為普通用戶,授權(quán)用戶,系統(tǒng)管理員三類。本系統(tǒng)有三個(gè)模塊分別是期刊管理、論文管理、系統(tǒng)管理。 二、 基于UML的系統(tǒng)設(shè)計(jì)2.1 RUP過(guò)程指導(dǎo)與本系統(tǒng)的分析設(shè)計(jì)過(guò)程UML是一種建模語(yǔ)言而不是一種方法,UML的表示法和規(guī)則能夠用來(lái)為系統(tǒng)進(jìn)行面向?qū)ο蠼?,但并沒(méi)有指定應(yīng)用UML的過(guò)程和方法。1998年正式頒布的RUP(Rational Unified Process)是UML設(shè)計(jì)者們共同定義的一個(gè)軟件開(kāi)發(fā)的公共過(guò)程框架。 統(tǒng)一過(guò)程主要包括四個(gè)階段:開(kāi)始階段、細(xì)化階段、構(gòu)建階段和移交階段。 1 進(jìn)行業(yè)務(wù)流程建模 通過(guò)使用UML的活動(dòng)圖與用例圖描述企業(yè)的業(yè)務(wù)流程來(lái)理解領(lǐng)域知識(shí),建立業(yè)務(wù)用例圖。 2 進(jìn)行系統(tǒng)功能建模 尋找用例及其之間的關(guān)系(用例圖),通過(guò)詳細(xì)描述用例來(lái)捕獲系統(tǒng)的功能需求,并建立系統(tǒng)用例圖,這是整個(gè)開(kāi)發(fā)過(guò)程的基礎(chǔ)。 3 進(jìn)行領(lǐng)域建模 尋找對(duì)象與類,主要是使用類圖表現(xiàn)領(lǐng)域中各業(yè)務(wù)類之間的靜態(tài)關(guān)系,并用交互圖、順序圖等具體描述類之間的交互以及對(duì)象的狀態(tài)變化。主要涉及以下活動(dòng)(并不一定是順序的): 1> 分析用例以及業(yè)務(wù)領(lǐng)域; 2> 發(fā)現(xiàn)對(duì)象,為對(duì)象分類,確定對(duì)象之間的交互; 3> 確定類之間的關(guān)系; 4> 定義類的屬性和操作; 5> 分析對(duì)象的狀態(tài)變化。 4 進(jìn)行系統(tǒng)設(shè)計(jì),在系統(tǒng)分析的基礎(chǔ)上進(jìn)行: 系統(tǒng)架構(gòu)的設(shè)計(jì):進(jìn)行高層的系統(tǒng)決策、確定基本的軟件結(jié)構(gòu),并對(duì)應(yīng)用系統(tǒng)進(jìn)行劃分;對(duì)象進(jìn)一步設(shè)計(jì):對(duì)領(lǐng)域模型中的業(yè)務(wù)類進(jìn)行精化、調(diào)整,增添界面類、控制類等用于實(shí)現(xiàn)的類。 5 實(shí)現(xiàn) 實(shí)現(xiàn)的依據(jù)是設(shè)計(jì)過(guò)程中得到的靜態(tài)視圖(類圖、對(duì)象圖)、動(dòng)態(tài)視圖(順序圖、狀態(tài)圖、協(xié)作圖、活動(dòng)圖);同時(shí)可以將類映射為組件,進(jìn)而使用CASE工具的框架代碼自動(dòng)生成的功能;同時(shí)通過(guò)實(shí)現(xiàn)圖(組件圖、配置圖)來(lái)描述系統(tǒng)的物理視圖。 6 單元測(cè)試,集成與系統(tǒng)測(cè)試 測(cè)試實(shí)現(xiàn)的部分是否滿足用例的功能要求;另外,類圖、組件圖、協(xié)作圖等也可以用來(lái)進(jìn)行測(cè)試。 我們對(duì)本系統(tǒng)的開(kāi)發(fā)過(guò)程以及在開(kāi)發(fā)過(guò)程中用到的建模圖形 2.2 用例圖系統(tǒng)總用例圖如圖 主要用例描述: 1登錄/Login 用例名稱:login 參與者:系統(tǒng)管理員、授權(quán)用戶、普通用戶 簡(jiǎn)要說(shuō)明:用戶輸入用戶名、密碼和驗(yàn)證碼,登錄系統(tǒng)。所要實(shí)現(xiàn)的功能為登錄模塊可以有效的檢驗(yàn)用戶名和密碼、登錄模塊可以識(shí)別不同的用戶。 前置條件:用戶已經(jīng)在系統(tǒng)中注冊(cè)。 基本事件留: 1. 用戶在登錄界面上輸入登錄信息和驗(yàn)證碼,點(diǎn)“登錄”按鈕; 2. 系統(tǒng)進(jìn)行用戶信息校驗(yàn),如果信息校驗(yàn)正確登錄系統(tǒng)并轉(zhuǎn)至系統(tǒng)首頁(yè),并根據(jù)不同的用戶給出不同的功能;否則,給出錯(cuò)誤提示信息; 3. 用例終止。 異常事件流: 1. 提示錯(cuò)誤信息,用戶確認(rèn); 2. 返回到登錄頁(yè)面 后置條件:用戶登錄系統(tǒng),根據(jù)用戶類型的不同進(jìn)行不同的操作。 2 論文管理 用例名稱:論文管理 參與者:系統(tǒng)管理員、授權(quán)用戶 簡(jiǎn)要說(shuō)明:系統(tǒng)管理員、授權(quán)用戶可以根據(jù)需求新建、修改、刪除、瀏覽和查詢論文信息;普通用戶可以瀏覽和查詢論文信息。 前置條件:系統(tǒng)管理員、授權(quán)用戶已經(jīng)登錄系統(tǒng)。 基本事件流: 1. 用戶在系統(tǒng)首頁(yè)上點(diǎn)擊“論文管理”按鈕; 2. 系統(tǒng)跳轉(zhuǎn)到論文管理頁(yè)面; 3. 系統(tǒng)管理員、授權(quán)用戶根據(jù)需要進(jìn)行論文信息的增加、修改、刪除、查詢; 4. 用戶執(zhí)行完相應(yīng)操作后點(diǎn),系統(tǒng)給出對(duì)話框詢問(wèn)用戶是否確認(rèn)執(zhí)行相應(yīng)操作,如果用戶選擇“是”,那么系統(tǒng)進(jìn)行用戶信息校驗(yàn),驗(yàn)證用戶是否有相應(yīng)的權(quán)限,如果有,執(zhí)行相應(yīng)的操作并寫入系統(tǒng)日志且給出操作成功的提示;否則,給出錯(cuò)誤提示信息; 5. 用例終止。 異常事件流: 1. 數(shù)據(jù)庫(kù)操作錯(cuò)誤,提示錯(cuò)誤信息,用戶確認(rèn) 2. 返回系統(tǒng)主頁(yè)面 后置條件:根據(jù)用戶類型的不同及操作的不同得到不同的結(jié)果,數(shù)據(jù)庫(kù)信息更新并在頁(yè)面上刷新出來(lái)。 3 期刊管理 該用例描述同2 所以不在給出 2.3 類圖2.4 活動(dòng)圖活動(dòng)圖是闡明了業(yè)務(wù)用例的工作流程。業(yè)務(wù)用例工作流程說(shuō)明了業(yè)務(wù)為向所服務(wù)的業(yè)務(wù)主角提供其所需價(jià)值而必須完成的工作。業(yè)務(wù)用例是由一系列活動(dòng)組成,它們共同為業(yè)務(wù)主角生成某些工件。工作流程通常包括一個(gè)基本工作流和一個(gè)或多個(gè)備選工作流程。工作流程的結(jié)構(gòu)使用活動(dòng)圖來(lái)進(jìn)行說(shuō)明。 該系統(tǒng)的基本活動(dòng)圖(授權(quán)用戶從登陸到使用系統(tǒng)的活動(dòng)圖) 2.5 順序圖權(quán)限管理對(duì)于系統(tǒng)來(lái)說(shuō)十分重要,因?yàn)樗P(guān)系到系統(tǒng)得安全性,因此在系統(tǒng)得開(kāi)發(fā)與設(shè)計(jì)中,我們始終把系統(tǒng)的安全性放在十分重要的位置,因此我們?cè)谟庙樞驁D分析的時(shí)候始終從系統(tǒng)用戶未登陸狀態(tài)來(lái)分析的,我們會(huì)給出用戶登錄的順序圖。 論文管理基本操作的順序圖: 1 新建論文信息的順序圖 2 修改論文信息順序圖 3 刪除論文信息順序圖 期刊管理基本操作的順序圖同上,這里就不在給出。 系統(tǒng)管理基本操作: 1 權(quán)限管理 我們對(duì)操作進(jìn)行編碼,為每個(gè)操作角色賦予相應(yīng)的操作權(quán)限,形成操作權(quán)限表,系統(tǒng)管理員能根據(jù)需要靈活地對(duì)操作角色的操作權(quán)限進(jìn)行賦予與修改,以此有效靈活地對(duì)用戶的操作權(quán)限進(jìn)行控制。 角色管理 (1)角色填加 (2)角色刪除 (3)角色權(quán)限修改 (4)角色密碼修改 權(quán)限管理 對(duì)系統(tǒng)的權(quán)限編號(hào)的權(quán)限內(nèi)容進(jìn)行權(quán)限的管理,如修改客戶權(quán)限的權(quán)限大小,入庫(kù)管理員的權(quán)限大小等操作。 2 日志管理 保存每個(gè)操作員所進(jìn)行的所有操作,提供有權(quán)限的人進(jìn)行查詢的功能 3 數(shù)據(jù)備份 將所有數(shù)據(jù)表信息定期保存在磁盤中。 4 數(shù)據(jù)恢復(fù) 用備份文件替換受損文件。 2.6 協(xié)作圖協(xié)作圖用于顯示組件及其交互關(guān)系的空間組織結(jié)構(gòu),它并不側(cè)重于交互的順序。協(xié)作圖顯示了交互中各個(gè)對(duì)象之間的組織交互關(guān)系以及對(duì)象彼此之間的鏈接。 下圖為系統(tǒng)管理員新增論文信息的協(xié)作圖 2.7 構(gòu)件圖構(gòu)件圖描述了軟件的各種組件和它們之間的依賴關(guān)系。構(gòu)件圖中通常包含3種元素:組件、接口、和依賴。每個(gè)組件實(shí)現(xiàn)一些接口,并使用另一些接口。在UML2.0中,組件被認(rèn)為是獨(dú)立的,在一個(gè)系統(tǒng)或子系統(tǒng)中的封裝單位,提供一個(gè)或多個(gè)接口。主要思想是,能容易地在你的設(shè)計(jì)中重用或替換一個(gè)不同的組件實(shí)現(xiàn),因?yàn)橐粋€(gè)組件封裝了行為,實(shí)現(xiàn)了特定接口。 UML是用組件來(lái)表示代碼物理模塊的。組件可以包括代碼庫(kù)和運(yùn)行文件。在生成代碼之前,將每個(gè)文件映射相應(yīng)組件。在本系統(tǒng)中,使用的是C#開(kāi)發(fā)。每個(gè)類映射一個(gè)織件,表示這個(gè)類的.cs文件。生成代碼時(shí),Rose用組件信息創(chuàng)建相應(yīng)的代碼庫(kù)文件。本系統(tǒng)構(gòu)造的組件圖框架如下: 2.8 狀態(tài)圖2.9 部署圖部署圖描述軟件如何安置在目標(biāo)環(huán)境,運(yùn)行軟件的系統(tǒng)中硬件和軟件的物理結(jié)構(gòu)。目標(biāo)環(huán)境用一組節(jié)點(diǎn)表示,每個(gè)節(jié)點(diǎn)都是一類有計(jì)算能力的資源,可以承載某些組件的實(shí)例。部署圖中通常包含兩種元素:節(jié)點(diǎn)和關(guān)聯(lián)關(guān)系。 部署圖如下所示: 三、 系統(tǒng)開(kāi)發(fā)的思考3. 1 數(shù)據(jù)庫(kù)設(shè)計(jì)問(wèn)題現(xiàn)在的開(kāi)發(fā)環(huán)境越來(lái)越多的是面向?qū)ο蟮模鎯?chǔ)機(jī)制卻是不同于此的關(guān)系型數(shù)據(jù)庫(kù),這兩者之間存在著很大差異。這種差異使系統(tǒng)的開(kāi)發(fā)活動(dòng)不能統(tǒng)一。典型的情況是,越來(lái)越多的應(yīng)用系統(tǒng)是三層甚至多層體系結(jié)構(gòu),在此情況下,用戶接口層和業(yè)務(wù)邏輯層是用面向?qū)ο蠹夹g(shù)開(kāi)發(fā)的,而數(shù)據(jù)庫(kù)多數(shù)仍然是關(guān)系型的。 因此,在采用面向?qū)ο蠼<夹g(shù)分析獲得對(duì)象模型后,怎樣得到關(guān)系型的數(shù)據(jù)庫(kù)呢?這也是我們本次系統(tǒng)開(kāi)發(fā)中遇到的問(wèn)題。 (1)屬性類型映射成域 UML中的屬性類型(Attribute Type)映射成數(shù)據(jù)庫(kù)中的域(Domain)。域的使用提高了設(shè)計(jì)的一致性,且優(yōu)化了應(yīng)用的移植性。簡(jiǎn)單的域是非常容易實(shí)現(xiàn)的,僅僅需要替換相對(duì)應(yīng)的數(shù)據(jù)類型和數(shù)據(jù)的尺寸。同時(shí),對(duì)于使用域的屬性,可能要求為域的約束加入SQL的Check串。例如,限定域的取值范圍等。 枚舉域(Enumeration Domain)限定了域允許取值的集合。其實(shí)現(xiàn)通常有幾種方法:定義SQL約束來(lái)限定取值;為每個(gè)枚舉值定義標(biāo)志;枚舉表;對(duì)枚舉值進(jìn)行編碼等。 在本系統(tǒng)地開(kāi)發(fā)中,所有涉及到枚舉型的數(shù)據(jù)對(duì)象,我們都單獨(dú)設(shè)置一表來(lái)表達(dá),例如計(jì)量單位表中就是入庫(kù)單等表中計(jì)量單位數(shù)據(jù)項(xiàng)的一枚舉約束。 (2)類的屬性映射至關(guān)系數(shù)據(jù)庫(kù)表中的列 屬性可以直接映射為表中的零到多列。通常,一個(gè)屬性映射為表中的一列,但也有例外: ①對(duì)于非持久的屬性可以不進(jìn)行映射,有些屬性置只做為中間值用于計(jì)算而不需保存在數(shù)據(jù)庫(kù)中。 ②某些對(duì)象屬性本身就是對(duì)象,客戶中的地址屬性(如果較復(fù)雜)可以映射為數(shù)據(jù)庫(kù)表或多列。此時(shí),屬性映射成多個(gè)字段。反之,也可以將多個(gè)相似的簡(jiǎn)單屬性映射為一列。 (3)類映射成表 類到表的映射通常不是直接的。只有非常簡(jiǎn)單的應(yīng)用,類與表之間才會(huì)存在一一對(duì)應(yīng)的關(guān)系。 3. 2 數(shù)據(jù)庫(kù)訪問(wèn)設(shè)計(jì)問(wèn)題數(shù)據(jù)表E-R圖Actioninfo表 字段類型 | 字段名稱 | 類型 | 寬度 | 是否為空 | 主鍵與否 | Fid |
| int |
|
| 是 | Foid |
| int |
| 是 |
| Fpid |
| int |
|
|
| Fname |
| varchar(50) |
| 是 |
| ftype |
| varchar(300) |
| 是 |
| flink |
| varchar(50) |
| 是 |
|
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|