摘 要 I
Abstract II
1緒論 1
1.1選題背景 1
1.2國內研究現狀 1
1.3本文的主要工作 3
1.3.1本文工作內容 3
1.3.2本文工作難點 3
1.4論文的組織結構 4
2相關技術介紹 6
2.1開發模式的選擇 6
2.1.1B/S 模式 -5 -
2.1.2B/S模式的優勢 7
2.2開發技術介紹 7
2.2.1C# 技術 7
2.2.2ActiveX數據對象和.NET技術 8
2.3數據存儲平臺的選擇 9
2.4通知技術的選擇 9
2.5本章小結 11
3系統需求分析 12
3.1需求調查 12
3.2可行性分析 13
3.2.1技術可行性 13
3.2.2經濟可行性 13
3.2.3操作可行性 14
3.3退休人員注冊流程 14
3.4系統功能分析 14
3.4.1安全管理 14
3.4.2項目管理 15
3.4.3退休人員信息管理 17
3.4.4退休人員文件管理 18
3.4.5統計報表 19
3.5非功能性需求 20
3.6本章小結 20
4系統設計 21
4.1設計原則 21
4.2概要設計 21
4.2.1系統邏輯架構設計 22
4.2.2網絡拓撲結構設計 22
4.2.3功能架構設計 23
4.3模塊詳細設計 24
4.3.1安全管理模塊 24
4.3.2項目管理模塊 25
4.3.3退休人員信息管理模塊 27
4.3.4退休人員文件管理模塊 29
4.3.5統計報表模塊 31
4.4 數據庫模型設計 32
4.4.1基礎業務數據庫設計 33
4.4.2工作流平臺數據庫設計 34
4.5安全性設計 36
4.6本章小結 38
5系統實現與測試 39
5.1系統運行環境 - 36 -
5.2功能實現 39
5.2.1數據庫交互 39
5.2.2郵件通知功能 40
5.2.3數據維護功能 41
5.2.4工作流實現 41
5.2.5退休人員信息的共享 43
5.3系統測試 - 46 -
5.3.1功能測試 44
5.3.2性能測試 47
5.3.3驗證測試 48
5.3.4測試結果分析 49
5.4系統應用 51
5.5本章小結 51
結 論 - 54 -
參 考 文 獻 - 56 -
致 謝 56
授 權 書 - 56 -
1緒論
1.1選題背景
目前國內事業單位每年都會投入大量資金和人員用于管理退休人員,并且都 需要經過人社局的審核,這些環節涉及大量的數據,事業單位通常采用紙張模式 進行記錄,該模式已無法滿足事業單位的管理需求,不僅效率低,容易丟失,而 且后續統計非常困難,為解決上述問題,變革退休人員信息管理模式,實現信息 化建設是有效的解決方案,這也是選擇研究退休人員信息管理系統的原因。
本課題來源于某大型事業單位,由于目前國內的退休人員注冊申請存在時間 跨度大、信息量大以及涉及部門多等特點,而流程復雜,現有的紙質模式在退休 人員注冊量少的時候可滿足需求,在數量增多時,無法實現有效管理。基于此, 事業單位的管理層決策引入信息技術來解決單位亞太區現有管理模式的缺陷,提 升區域性的管理效率和管理水平,使單位申請注冊的新退休人員能最快得到批準 退休,并且可以符合“計算機系統驗證(Computerized System Validation, CSV)" 標準,而且在運用開始后是否進行合理的管理。信息系統的實施能全方面改變現 有退休人員信息管理模式,意義重大,說明如下[1]:
(1) 提升退休人員注冊效率,從而能縮短退休人員退休的所需的申請、審 批時間,是研究成果能在最短的時間內產生經濟效益。
(2) 工作流技術的引入可規范注冊申請流程,對提升事業單位退休人員信 息管理水平有很大的幫助。
(3) 降低工作人員的勞動強度,提升工作效率。
通過描述可知,退休人員信息管理系統的開發意義重大,其能擺脫現有模式 的低效率缺陷,使退休人員信息管理業務更高效、更規范。同時從事業單位安全 性要求出發,并綜合退休人員信息管理業務特點基礎上,系統選用C#語言進行 代碼開發,為規范退休人員注冊流程,還使用了工作流技術,上述技術可保證系 統的高效運行。
1.2國內研究現狀
國內對退休人員注冊方面的管理起步較晚,直到2007年地區人社局修訂頒 布了新的《退休人員信息管理方法》,共15章176條,于2007年10月21日起 實施。其指導思想是提高審評審批標準[2],其支持退休人員創新,并且對申請人 承擔的責任和意義進行說明,目的在于規范新退休人員申報秩序,明確退休人員 審評審批標準,健全退休人員注冊機制。目的是建立一個公正透明一致的高質量 審批體系。
我國退休人員注冊的未來方向是:實現退休人員的科學化管理,以保證退休 人員質量為目的,所有退休人員在發布之前必須符合退休人員標準,并通過人社 局審批,為了提升申報效率,支持事業單位在線提交退休人員注冊,人社局在線 審批,同時可實時監管,這些措施的引入可有效提升退休人員申報效率,并能可 完善退休人員審批體系,使退休人員申報過程更規范、更高效。
國內的退休人員信息管理系統存在的很多的缺陷,具體表現在如下幾個方面 [4]:
(1) 退休人員申請階段:需要根據《退休人員信息管理辦法》規定的申請 事項,提交各種注冊申請資料,包括文件的原件,復印件和中國退休人員注冊“通 用技術文件格式”, 大部分的材料需要提交紙面申請,未建立電子提交系統,造 成事業單位花大量的人力和時間在本國人社局的材料提交準備和溝通中。
(2) 退休人員審評階段:符合條件的退休人員受理申請需要由人社局進行 審核,為退休人員注冊審批提供充足的依據。這個過程時間跨度長,信息復雜, 造成事業單位投入大量的資源。
(3) 退休人員退休監督階段:新退休人員退休后需要由事業單位提供信息 反饋,提供退休人員的風險控制和改進信息。
由于目前國內退休人員管理部門對退休人員退休后重大事件的處置還停留 在比較原始的階段,比如下發通知,大規模排查或者公共媒體舉報,缺少監控管 理系統。造成事業單位也需要投入大量的資源來跟蹤退休人員退休后的信息。
上文對國內外現有退休人員信息管理模式存在的缺陷進行了分析,針對上述 缺陷提出了相應的解決方案,由于退休人員退休監督階段由人社局負責,這個內 容是根據退休信息進行合理監督的。
因此本文提出的解決方案主要針對退休人員申請階段和退休人員審評階段, 具體的措施如下:
(1) 根據退休人員管理部門的要求實現了各種文件的電子化,即開發退休 人員信息管理系統,從而取代了傳統的紙質提交方式,在申請過程中會通過遠程 接口直接將申請資料提交到人社局系統中,同時為了規范申請流程,使用了工作 流技術。
(2) 退休人員審評時間較長,需要工作人員每天查看審批情況,耗時,為 解決該問題,引入了郵件通知技術,當審批完成后,審批結果會直接通知到申請 提交人,從而可實時獲知結果。
1.3本文的主要工作
本節將從本文工作內容和工作難點兩方面進行闡述。
1.3.1本文工作內容 退休人員信息管理業務的信息化方案由多部分構成,如需求分析以及系統設 計等,各部分完成的工作不同,上述結果融合在一起形成了實用的方案,下面詳 述各部分承擔的任務:
(1) 技術選擇 開發技術層出不窮,在選擇技術時,深入了解了事業單位的安全性需求以及
退休人員信息管理業務特點,選用C#技術開發系統,其次考慮退休人員信息管 理業務的數據規模,由于事業單位每年處理的退休人員注冊信息不多,基于此選 用 SQL Server2012 數據庫。
(2) 需求分析 事業單位退休人員信息管理業務非常復雜,在制作需求方案時,必須熟悉項
目管理、退休人員信息管理以及退休人員文件管理等業務處理步驟,只有這樣才 能提出專業、實用的需求方案。
(3) 系統設計 該階段需完成多項任務,首先需明確各功能所需的類以及信息在各類之間的
流轉,同時還需明確事業單位退休人員信息管理系統實體表,并構建關系,便于 高效率存取數據。
(4) 系統實現
使用C#語言編寫事業單位退休人員信息管理系統代碼,并通過ADO.NET組 件來獲取數據庫連接,并實現數據存取。
(5) 系統測試 完成事業單位退休人員信息管理系統代碼撰寫,并不意味著系統是可運行、
無缺陷的,因此在部署前需組織測試人員對系統進行詳盡測試,該階段工作與事 業單位退休人員信息管理系統質量有關,可減少缺陷。
1.3.2本文工作難點 在實現系統時,面臨以下難點需要處理:
(1)融合多國注冊申請要求
事業單位退休人員信息管理系統開發完成后可以部署到全國各個地區,由于 各個地區退休人員注冊部門的要求不同,需要根據不同地區人社局的不同的注冊 流程進行分析和歸納,以便系統具備較高的適用性,這也是本系統在選擇技術方 案時選擇比較成熟的技術的原因。
(2) 簡單郵件傳輸協議技術的應用 在退休人員注冊申請提交后,人社局會審核申請,審批完成后通常會電話告
知申請人審批結果,該通知方式效率低,并且經常會遇到電話不同的情況,影響 通知效率,為解決該問題,使用了郵件通知技術。目前實現郵件通知的技術很多, 如SMTP以及Socket等,在對比分析上述技術的基礎上,使用了SMTP技術來完成。
(3) 文件的統一瀏覽 事業單位退休人員信息管理系統需要存儲退休人員相關的文件,以便處理后
續的糾紛問題,系統中的文件可以下載到本地進行查看,同時也支持在線瀏覽, 但是系統并未對文件類型設置要求,開發時不可能開發多個方法來滿足瀏覽要 求,上述功能的實現需要使用Flash Paper技術。
(4) 備份技術的引入 在信息化后,退休人員信息以及退休人員項目文件都被轉換為電子信息,若
丟失,則需要事業單位花費大量時間重新撰寫,對于事業單位而言損失較大,為 解決該問題,需設計完善的備份方案。
1.4論文的組織結構
本文共分為六個章節: 第一章,緒論。首先對本文研究對象做了簡單說明,針對當前事業單位在處 理退休人員信息管理業務時存在的問題進行了說明,然后闡述了開發退休人員信 息管理系統對事業單位的意義。
第二章,相關技術介紹。掌握技術思想是進行代碼開發的基礎,本章就是為 學習系統開發技術。
第三章,系統需求分析。針對用戶的實際需求,展開需求分析,在與事業單 位工作人員深入溝通的基礎上,提出了系統需求方案,其通過用例圖來進行需求 闡述。
第四章,系統設計。根據系統需求制定出相應的解決方案,并使用流程圖對 系統各功能工作過程進行了說明。
第五章,系統實現與測試。使用系統界面和代碼對事業單位退休人員信息管 理系統各個功能模塊的實現進行描述,并進行測試過程。
第六章,總結與展望。總結了本文完成的內容,并指明了事業單位退休人員 信息管理系統改進內容。
2相關技術介紹
在事業單位退休人員信息管理系統中,最核心的部分為使用工作流技術控制 退休人員注冊審批流程,為此對工作流技術進行了研究,除此以外,系統開發時 還需要許多基礎技術,如C#,本章詳述各技術的工作理念和使用流程。
2.1開發模式的選擇
退休人員注冊信息需要共享,以便人社局查看和審批,上述要求決定退休人 員信息管理系統需選用面向互聯網的“瀏覽器/服務端(Browser /Server,B/S)” 模式來實現,下面闡述B/S模式思想。
2.1.1B/S 模式
B/S模式的優勢主要有兩點,第一可隨時訪問系統處理退休人員信息管理業 務,而不像"客戶端/服務端(Client /Server,C/S)”模式需要用戶在指定辦公地 點的機器上,第二任意用戶只要擁有正確的登錄憑證就可以進入系統使用相關功 能,對于需要使用退休人員信息管理系統的用戶,只需要為其分配賬號,簡單方 便,圖2.1描述了 B/S模式的工作思想[6]。
(1) 表示層:基于B/S開發的信息系統,瀏覽器充當客戶端角色,請求的提 交與信息的反饋都通過瀏覽器,在這個過程中主要使用的技術為“超文本傳輸協 議(HyperText Transfer Protocol,HTTP)”,其支持文字信息和文件的傳輸[7]。
(2) 功能層:該層為信息系統的核心,B/S模式下,功能層設置了應用服務 器上,所有的業務都在該層業務,包括與系統數據庫的交互以及業務處理結果的 反饋等。
(3)數據層:就本系統而言,為SQL Server2012數據庫,用于存儲退休人 員信息。
2.1.2B/S模式的優勢
與其他模式相比,B/S模式還具備如下優勢岡:
(1)易用、易維護
基于B/S模式可滿足預算中心工作人員隨時處理預算管理業務的要求,同時 系統出現無法運行的故障或者需要更新系統時,只需要對服務器進行處理,保證 服務器運營正常即可。
( 2)基于標準化、開放性
全面預算管理系統與城建集團許多系統存在數據交換,而基于B/S模式開發 的系統開放性更高。
( 3)易擴展、適應不斷發展
B/S系統擴展性更好,更能適應應用需求的變化。
從便利性以及用戶需求出發,退休人員信息管理系統選擇基于B/S模式進行 開發,其與事業單位要求相符。
2.2開發技術介紹
選用技術必須考慮業務特點和用戶需求,不是隨便選擇的,否則會導致系統 無法應用[10],本節將對選用技術的工作思想進行說明。
2.2.1C# 技術
為了便于開發,微軟提出了.NET平臺,該平臺融合了多種技術,C#技術是 其中一種[11]。C#技術可開發各類模式下的信息系統,同時為提升開發效率,.NET 平臺為開發人員準備了各種組件,如“用戶界面組件(User Interface,UI)”以 及Com組件等,其中UI組件中各種元素均可直接使用,無需重新開發。基于上述 原因,C#技術受到許多技術人員的推崇。C#技術從提出以來,進行了多次改進, 功能越來越強大,也更易被開發人員掌握,使用C#技術開發的系統需部署在IIS 服務器下才可被訪問[12]。
下面對C#技術優點進行說明:
(1)易用性更好,微軟提供.NET平臺用于支持C#技術,在.NET平臺上存在 UI組件,頁面開發人員工作變得簡單,存在其他支持復雜業務的組件,其可降低 業務代碼開發復雜度[13]。
(2)安全性更好,使用C#技術進行代碼編寫時,可使用“模型一視圖一控 制器思想(Model View Controller,MVC)”,其能將業務層代碼從界面層剝離, 其不僅能提升系統可維護性,而且系統可被攻擊的漏洞也會更少。
(3)系統性能更好,C#技術在開發時就提供內存自動回收機制,這樣可為 系統節省內存,性能更好[14]。
2.2.2ActiveX數據對象和.NET技術
在開發動態系統時,數據庫是其中的重要環節,只有解決代碼與數據庫的連 接才能達到數據動態讀取和展示的目的,由于數據連接以及訪問是共用代碼,微 軟為C#技術與各種數據庫之間提供訪問組件,最常用的包括“開放數據庫連接 (Open Database Connectivity, ODBC)” 和ADO.NET,在對各類組件進行分析 的基礎上,選用ADO.NET組件[15]。
在連接數據庫進行業務處理時,ADO.NET組件支持兩種模式,第一種就是 與數據庫成功連接后,就不釋放,除非整個系統被注銷,該方式的缺陷在于資源 無法重復利用,影響系統性能。第二種為需要使用時,則發起連接,當業務處理 完成后,則釋放連接,這種方式下資源可重復利用,性能較好。由于事業單位退 休人員信息管理系統需要支持大規模并發,因此選用ADO.NET組件。
ADO.NET組件工作流程如圖2.2[16]。
圖2.2 ADO.NET體系架構
Figure 2.2 ADO.NET architecture
ADO.NET組件的應用流程如下[17]:
(1) 使用C#技術開發應用系統時,需要預置數據庫參數到配置文件中,當 系統啟動時,其會讀取參數連接數據庫服務器。
(2) 若配置的參數與數據庫服務器一致,則連接成功。
(3) 連接成功后,需根據功能要求生成對應的SQL,然后生成Command對 象,其用于執行SQL。
(4)為提升系統性能,業務結束后,需斷開與數據庫的連接,若一直占用, 一旦遇到并發連接數過多,系統會崩潰。
2.3數據存儲平臺的選擇
事業單位每年提交的注冊退休人員信息規模不是很大,不需要使用Oracle數 據庫,其對服務器要求較高,會加大事業單位的應用成本,基于上述考量,可選 用SQL Server2012數據庫來存儲事業單位退休人員信息[18]。SQL Server2012數據 庫的特點如下:
(1)SQL Server2012數據庫有出色的數據存取能力,可存儲的數據規模非 常大,符合事業單位的使用要求[19]。
(2)當前使用率較高的操作系統都可安裝SQL Server2012數據庫。
(3)對服務器配置要求不高,可降低運營成本[20]。
(4)存在完善的權限分配方式,可達到保護系統數據的目的。
(5)SQL Server2012在許多方面進行了優化,使數據庫性能更出色[叫
2.4通知技術的選擇
在退休人員注冊申請提交后,人社局會審核申請,該過程需要郵件通知功能 的支持,可提升效率,應用于開發該功能的技術有SMTP技術、“協作數據對象 (Collaboration Data Objects, CDO)”技術以及Socket技術,上述技術有各自的 特點,本節將對上述技術進行介紹。
(1)SMTP類庫
為了簡化郵件通知功能開發,.NET平臺提供SMTP協議,該協議中存在許多 方法用于實現郵件功能,其不需要開發人員重新構建,只需要調用協議中的方法 就可以達到目的,其中send方法用于郵件發送,SmtpServer用于存儲參數。在發 送郵件時,需要調用郵件服務器參數,然后就可以使用send方法來發送郵件。
(2)CDO組件
CDO的英文全稱為Collaboration Data Objects,其是目前應用較為廣泛的郵件 發送協議,從提出到現在經過了多次優化,CDO組件構建在SMTP協議和“網絡 新聞傳輸協議(Network News Transfer Protocol,NNTP)”協議之上,其提供的 功能相對豐富,并提供了一些SmtpMai 1類所沒有提供的功能,比如對SMTP服務 器進行認證等。
(3)Socket技術
Socket技術屬于通信技術,使用Socket技術來開發郵件功能時,則所有的功 能都需重新開發,這樣需要開發人員熟悉Socket技術的使用,同時開發復雜度較 大,會加大開發難度。
根據上述對比分析,本課題采用SMTP技術來實現郵件功能,原因在于SMTP 技術應用較為簡單,并且可滿足退休人員信息管理系統的審核通知需求。
2.5本章小結
由于事業單位退休人員信息管理系統需要使用技術來實現退休人員注冊申 請過程的規范化,除此以外,還對開發系統的關鍵技術進行了介紹,如C#等, 掌握上述技術有助于開發系統。
3系統需求分析
在與事業單位工作人員進行溝通的基礎上,確定了用戶對退休人員信息管理 系統的要求,并對現有退休人員信息管理業務處理流程進行了分析,以上述成果 為基礎抽取了系統的功能列表,并明確了系統性能指標。
3.1需求調查
所構建的退休人員信息管理系統需規范退休人員注冊申請流程,提升處理效 率。在與用戶進行溝通的基礎上,明確了系統各用戶對事業單位退休人員信息管 理系統的要求,具體如下:
(1) 在系統中需使用工作流技術來規范退休人員注冊申請流程,并可提升 退休人員注冊工作效率。
(2) 退休人員信息管理系統中涉及的信息都具備一定的私密性,若退休人 員信息被破壞,并無法恢復,勢必會給事業單位造成損失,這是不允許的,因此 系統必須具備較高的安全性。
(3) 退休人員信息管理系統中存儲著退休人員注冊申請信息以及退休人員 審核信息等重要數據,這些數據對于事業單位非常重要,單位要求系統擁有較完 善的數據保護錯誤,就算遇到重大故障導致數據破壞,也可完整恢復。基于上述 考量,退休人員信息管理系統引入了各種數據保護措施,如雙機備份等,系統擁 有完善的保護措施,就算出現故障導致數據丟失,也可以通過備份文件進行處理。
(4) 需重點關注退休人員信息管理系統的易用性,若操作難度太大,則會 影響系統的應用。畢竟事業單位工作人員熟悉新的業務模式需要一定的時間,若 難度太大,則會加大熟悉時間,是不可取的。
上述所分析的為系統需滿足的基本目標,綜合上述目標并在考察退休人員信 息管理業務流程的基礎上可獲得系統的需求,其包含如下業務:
(1) 安全防護:退休人員信息對于事業單位非常重要,需采取措施進行保 護,這也是引入該模塊的原因。
(2) 項目管理:該功能用于跟蹤注冊部所申請的退休人員狀態信息,可以 添加不同的任務在一個項目里,并進行編輯和關聯相關的退休人員信息。
(3) 退休人員信息管理:該功能用于管理事業單位的退休人員信息,以便 為事業單位構建一個完整的退休人員庫。
(4) 文件管理:該功能主要用來保存從項目管理功能和信息管理功能中產 生的所有文件,同時也可以查詢和瀏覽文件。
(5)統計報表:該功能主要用于掌握事業單位的退休人員情況以及退休人 員注冊情況。
利用上述結果,可進行細化,從而可獲得退休人員信息管理系統的詳細功能 要求,本章將詳述。
3.2可行性分析
為保證新系統開發成功、避免盲目投資,在啟動開發前應進行充分的調查研 究,明確系統開發是否可行。可行性分析可從技術、經濟以及社會等方面展開。 技術可行性分析主要討論所采用的技術能否實現事業單位退休人員信息管理系 統相關功能,是否存在無法實現的技術難點;經濟可行性主要討論系統的構建成 本是否在合理的預算范圍之內;社會可行性主要分析新系統的社會影響、社會接 納程度以及是否合乎法律法規。下面從上述三方面進行分析。
3.2.1技術可行性
退休人員注冊管理系統的創新點是在于改進業務流程,優化目前的手工收集 和維護,提高企業的工作效率,系統實現后,在技術層面需達到如下目標:
(1)數據一致性:該系統需與全球系統進行集成,保證所有退休人員注冊 信息的一致性。
(2)數據共享:該系統需與集團內部其他合作部門之間的信息系統進行數 據交互,達到數據共享。
上述要求是事業單位提出的技術要求,第一個問題可通過數據同步實現,第 二個問題可通過使用“面向服務的架構(Service-Oriented Architecture, SOA)” 等技術進行實現,這些都是系統實現時可解決的問題,其次在開發技術上,事業 單位比較傾向于業內比較成熟的技術來實施,以方便系統可以通過計算機驗證的 要求,達到單位審計的要求。為此系統采用了 B/S模式,選用MVC分層模式進 行開發。三層的B/S體系即方便用戶使用,有具有開發快捷、靈活的特點,是傳 統C/S體系無法媲美的。事業單位退休人員信息管理系統大量使用的Internet技 術、SQL數據庫技術均是成熟的技術,可以滿足快速開發的要求,因此技術實 現上的可行性沒有問題。
3.2.2經濟可行性
事業單位退休人員信息管理系統在構建時使用開源軟件,軟件使用成本是可 以忽略不計。同時,由于技術框架成熟,系統功能不是很復雜,因此系統開發周 期較短,開發成本不高。系統的應用性較高,使得本系統的性價比較高。事業單 位退休人員信息管理系統實施后,可提升事業單位退休人員注冊效率,其意義大 于所投入的開發成本。
3.2.3操作可行性
事業單位工作人員知識水平較高,同時事業單位退休人員信息管理系統的易 用性較高,工作人員通過簡單學習就可以事業單位退休人員信息管理系統的使 用,因此操作上是可行的。
由可行性分析可知,系統開發是可行的。
3.3退休人員注冊流程
退休人員信息管理是地區退休人員監督管理局根據退休人員注冊申請人的 申請,從退休人員管理,退休人員臨床研究到退休人員生產退休的申請、評價和 批準管理的過程。
退休人員注冊時,首先需要提交申請到人社局,人社局會對申請進行評審, 在這個過程中需要根據退休人員標準進行審批,不符合要求的則審批不通過,符 合要求則審批通過,然后將審批結果存儲到文件庫,并通知退休人員申請人審批 結果。
3.4系統功能分析
事業單位退休人員信息管理系統包含的業務較多,需逐一了解和調查,并以 此獲得需求列表,本節將以用例圖的方式進行分析。
3.4.1安全管理
事業單位退休人員信息管理系統涉及退休人員信息,若系統被非法用戶使 用,導致不符合要求的退休人員注冊申請被審批通過,則容易給使用退休人員的 患者造成損害,這也是事業單位退休人員信息管理系統開發該模塊的原因,系統 維護模塊涉及多個功能,下面分析各功能的作用。
(1)登錄 處理事業單位退休人員信息管理業務的用戶需為事業單位工作人員,若非法 用戶進入,則容易發生不符合要求的退休人員注冊申請信息被審批等問題,為此 提供登錄功能進行身份驗證。
(2)密碼更新 處理退休人員單位退休人員信息管理業務的用戶需為相關事業單位工作人 員,若非法用戶進入,則容易發生退休人員信息被破壞等問題,為此提供登錄功 能對系統用戶進行身份驗證。
(3)數據備份 系統中最重要的是數據,一旦數據出現問題就會給使用者帶來不可估量的損 失,因此為了保證系統的正常使用,需要保證數據的安全,只要數據庫有數據更 新,就應當定時備份,以備不時之需。
(4)數據恢復 若因使用不當或者系統被黑客侵入得到系統異常,甚至數據丟失,則需立刻 進行維護,此時備份階段生成的bak文件則可被使用,可快速解決數據丟失等數 據庫異常情況。
(5)注銷
注銷功能是為了防止不法分子通過 session 竊取登錄信息,通過注銷功能退 出事業單位退休人員信息管理系統更安全。
(6)用戶管理 系統中必須設置用戶庫,其是進行身份認證的基礎,所有可使用事業單位退 休人員信息管理系統的用戶都必須存在于用戶庫中,不存在的則視為非法用戶, 其不可操作事業單位退休人員信息管理系統中的功能。
3.4.2項目管理
項目管理模塊用于跟蹤退休人員的注冊、審核狀態,項目組工作人員需時刻 跟蹤狀態,以便及時響應審核要求,其由退休人員注冊申請、單位審核、退休人 員狀態更新、退休人員狀態查詢、事務通知以及服務器配置等功能組成。
該模塊作為跟蹤工具,用于管理退休人員注冊事務部門提供的所有信息以及 有關信息的決定。事件代表實施的實際項目,活動代表完成項目或事件執行的不 同任務。注冊信息代表與項目相關的各類信息。下面逐一進行分析模塊各功能作 用。
(1) 退休人員注冊申請 退休人員研究工作人員在管理新退休人員時,需要向單位進行注冊申請,只
有單位領導審批通過的情況下,才能將相關資料提交到人社局進行進一步的申 請。
(2) 單位審核 退休人員管理項目工作人員提交完注冊申請后,申請會轉發給單位領導審
核,其審核通過,退休人員申請資料就可提交人社局,其審核涉及多環節,各審 核過程存在嚴格的先后順序,為了防止流程混亂,引入了工作流技術。
(3) 退休人員申請狀態更新 在通過單位審核,需要將退休人員申請信息以郵件的形式發送到人社局進行
審核,當人社局返回審核結果時,工作人員需要將退休人員申請狀態進行更新, 以便項目組工作人員能查看退休人員申請的狀態。
(4) 退休人員狀態查詢 工作人員可根據退休人員名稱以及申請時間等關鍵字來查詢系統中退休人
員申請的審核狀態。
(5) 事務通知 在提交注冊申請時,會以郵件通知責任人及時審批。當退休人員注冊監督局
的審批結果下來后,工作人員可將結果通過郵件的方式通知項目組所有工作人 員。
(6) 郵件服務器配置 系統中存在郵件通知功能,而發送通知的前提是配置郵件服務器,配置成功
才可發送。本系統采用SMTP技術來進行郵件發送,為此需要配置郵件服務器地 址以及認證信息等參數。
3.4.3退休人員信息管理
在退休人員通過人社局的審核之后,項目組工作人員需要將退休人員的詳
細信息存儲在系統中,包括退休人員姓名、性別、職務以及注冊情況等,其提
供多種方式來提交退休人員信息,如添加以及導入,同時還需支持維護退休人
員信息。
由退休人員管理業務處理過程可知,其包含多項功能,各功能作用不同,下 面逐一分析。
(1) 退休人員信息添加 在退休人員通過人社局的審核之后,將退休人員的詳細保存到數據庫中,其
數據項包括退休人員姓名、性別、職務以及注冊情況等。
(2) 退休人員信息查詢 系統中退休人員信息數量較多,在對退休人員注冊申請進行處理時,可查看
退休人員詳情, 在這種情況下可使用退休人員編碼等關鍵字來獲得對應的退休人員信息,需要逐 個查看,效率更高。
(3) 退休人員信息導入 退休人員信息涉及的數據項較多,在數量較多,逐個登記容易出錯,且效率
低,在這種情況下,可使用運退休人員信息導入功能,其可同時登記多個退休人 員信息,效率更高,前提是將退休人員信息寫入系統提供的Excel模板中,模板 不正確,則系統無法識別,導入不會成功。
(4) 退休人員信息導出 當需要查看退休人員信息時,可將運退休人員信息導出、并打印到紙張上,
從而在審核退休人員注冊時更有把握,在導出之前需使用搜索功能獲得待導出退 休人員信息列表。
(5) 退休人員信息維護 退休人員登記時因人為因素不可避免出現錯誤,這種錯誤必須及時更改,其
可通過直接更新和刪除再添加兩種方式來達到更新目的。
3.4.4退休人員文件管理
退休人員文件管理工作過程如圖3.2。
圖 3.2 退休人員文件管理模塊工作過程
Figure 3.2working process of retired personnel document management module
由圖 3.2 可知,退休人員文件管理模塊包含較多功能,下面逐一分析各功能 在系統中的作用。退休人員文件管理模塊主要用于管理退休人員相關的文件信 息,其負責為事業單位構建退休人員文件庫,各文件用于描述退休人員詳細信息, 如單位及出生年月等,其對于事業單位極其重要,通過文件庫,事業單位工作人 員可隨時查看,有助于提升個人知識經驗,但是在系統必須允許用戶按照某些標 準搜索文件,在搜索文件時,必須顯示如下內容、使用此文件的事件數、使用該 文件的退休人員數量以及使用此文件的傳入文檔數。
(1) 文件上傳
文件上傳功能可構建退休人員資料庫的基礎,當存在退休人員文件需要上傳 時,需選擇對應退休人員,同時還需確定退休人員文件屬性,在屬性信息正確的 情況下,文件會被存儲到制定位置。
(2) 文件下載 系統提供退休人員資料庫,便于事業單位工作人員自主下載,從而能隨時學
習退休人員詳情。
(3) 文件搜索 在需要使用退休人員資料時,可通過退休人員編碼等屬性來搜索退休人員文
件,便于工作中使用。
(4) 文件刪除 若上傳的資料與退休人員無關時,事業單位工作人員可將其從系統中刪除,
在刪除時需要完成兩項工作,第一清除數據庫中的退休人員資料描述信息,第二 將退休人員資料從存儲位置清除。
(5) 文件查看 系統提供資料庫的目的是為了支持工作人員在線學習,但是由于退休人員資
料存儲形式較多,需提供統一方法實現文本資料的查看。
3.4.5統計報表
統計報表是為了掌握事業單位的退休人員情況,其由注冊項目統計、已通過 項目統計以及統計結果打印等功能組成,上述功能作用不同,下面逐一分析。
(1)注冊項目統計 注冊項目統計功能主要用于統計目前為申請狀態的退休人員的數量。
(2)已通過項目統計 已通過項目統計功能主要用于統計事業單位已經退休的退休人員的數量。
(3)統計結果打印 單位領導可以將統計結果打印到紙張上,以便掌握單位的退休人員情況 圖 3.3 展示了上述分析結果。
Figure 3.3 statistics report business use case
3.5非功能性需求
很多人在開發系統時忽視了非功能需求,一味的追求功能完整性,其實站在 專業性的角度來看,一個系統的非功能性需求也十分重要,即使是非功能性的需 求也會影響到整個系統的正常運行。因此功能和性能兩方面都需重視,任何一項 達不到要求,系統都無法應用,不可部署,這意味著一個系統的開發主要由功能 性與非功能性兩個部分構成,因此不能斷言某一個系統比較重要。功能性需求主 要是為了完成整個系統的框架研究,而非功能性需求主要針對系統后期檢測。
(1) 穩定性:事業單位工作人員使用退休人員信息管理系統的頻率較高, 一旦系統無法工作,則會影響退休人員信息管理工作,因此事業單位要求退休人 員信息管理系統具備較高的穩定性,持續無故障時間不能低于1000小時。
(2) 安全性:事業單位退休人員信息管理系統中保持著退休人員信息管理 時涉及的各種信息,上述信息的丟失會影響退休人員信息管理工作,因此系統安 全非常重要,本文可引入多種措施來保護事業單位退休人員信息管理系統,第一 權限控制:每個用戶都會有一個與之相對應的權限,用戶的權限越高能查詢到的 信息量也就越多,越能進入到數據庫的中心地帶。第二、重要數據加密:即使是 對每個用戶的權限進行了限制,但也不排除用戶信息被盜的情況,為了避免由于 用戶信息被盜而導致數據安全性受損,因此對數據庫中較為重要的數據都實行多 重保護,設置多重防火墻保證其安全。第三、數據備份:當系統錄入相關的數據 后支持即刻備份上傳,主要是為了避免出現系統崩潰或是癱瘓數據丟失的情況。
(3)并發人數:通過實際的調查研究,明確了事業單位工作人員規模,事 業單位退休人員信息管理系統需支持100人并發使用。
(4) 響應時間:在分析響應時間時,需根據訪問狀況來設定,在訪問人數 較少時,系統各項業務的反應時間不可超過3秒,而訪問人數超過一定范圍時, 反應時間可延長到5秒,但不可過長,否則會營銷效率。
(5) 故障處理時間:系統出現故障就會影響事業單位退休人員信息管理工 作,為此需快速處理故障,防止事業單位工作人員長時間無法處理業務,本課題 約定故障處理時間不得高于6小時。
3.6本章小結 在與事業單位工作人員進行溝通后,提出了系統的功能方案,并確定了事業 單位退休人員信息管理系統的性能指標,從而形成了全面的需求方案,可用于指 導系統設計。
4系統設計
在掌握用戶要求后,需根據功能特點進行事業單位退休人員信息管理系統的 設計,在該階段需完成部署環境的設計、功能模塊的劃分,同時還對各功能處理 過程進行了分析,設計方案可應用于指導系統構建,
4.1設計原則
開發系統時最重要的是設計方案合理、正確,若存在問題,則會導致最終構 建的系統無法滿足事業單位退休人員信息管理要求,因此在設計階段,需遵循統 一的原則,以便構建實用、易用的事業單位退休人員信息管理系統:
(1)先進性原則 退休人員信息管理業務隨著事業單位的發展會發生改變,若系統適用性較 差,則只能重新構建,這樣信息化成本太高,會加大事業單位的運營成本,為此 系統需保持先進性,該先進性包含兩方面內容,首先使用的技術不能過于落后, 其次要預留接口以便適應擴展需求。
(2)實用性原則 退休人員信息管理業務專業性較強,包括項目管理、退休人員信息管理以及 退休人員文件管理等業務,系統不僅要保證功能完整,而且處理過程必須正確, 以保證系統實用性。
(3)可擴展性和可維護性原則 這是為了系統在正式投入使用后能解決的一些問題所需要遵循的原則。退休 人員信息管理系統正式投入使用后一定會出現一些故障,系統的可維護性就是要 求系統在遇到此類故障時能夠在第一時間進行快速修復,通過系統內部解決或是 壓制故障的發生或是蔓延。
4.2概要設計 各技術在系統中作用不同,并且系統運行需要不同設備支持,下面就上述問 題進行分析。根據概要設計,系統邏輯架構設計及網絡拓撲結構設計都被引申出 來。
4.2.1系統邏輯架構設計 事業單位退休人員信息管理系統涉及業務較多,從退休人員注冊申請、審核 以及退休人員文件庫構建等,其中安全管理模塊用于負責系統的安全,并且系統
基于.NET平臺進行構建,以''互聯網信息服務(Internet Information Services, IIS)”
作為Web服務器,并使用ADO.NET技術用于實現與數據庫的交互。圖4.1表示了 各技術在系統中的作用。
Web Pages 1 Master Pages 1 .NET Framework
V J
數據庫服務 IIS服務
操作系統服務
圖 4.1 系統邏輯架構
Figure 4.1 system logic architecture
由圖4.1可以知道,在此退休人員信息管理系統中,在系統應用層面實現了 系統的項目管理,資料管理,文件管理和報表模塊。在應用支撐層,有管理,安 全,配置,存儲和數據接口的核心服務。
4.2.2網絡拓撲結構設計
整個系統是由用戶直接在單位內網的環境里直接連上系統,通過“目錄服務 (Active Directory,AD)"驗證,并和“主數據管理系統(Master Data Management System,MDMS)”進行接口,這個系統在MDMS中定時自動抓取相關數據。
另外系統中所有數據都需要經過Business Objects系統的處理,經過該系統的 數據分析后,可得到全面報表,從而能對事業單位退休人員情況由詳細的掌握和 了解。
由于事業單位的信息系統較多,所有系統都部署在同一臺服務器,可為事業 單位節省成本。
在系統拓撲結構上,臺式機用戶及筆記本用戶共同通過單位防火墻傳導出
Web服務器及應用服務器都疏導出對應的內容。
在服務器上,通過主數據管理服務器、單點認證服務器、數據庫服務器共同 支撐系統。
圖4.2表示系統部署時所需的設備以及各設備的部署。
輸庫酹器
卜/Business Objective^^器
圖4.2系統拓撲結構
Fig. 4.2 system topology
4.2.3功能架構設計
設計階段第一步就是要明確系統模塊劃分,從而在開發時同一模塊的代碼集 中在一起,便于后續維護。從系統業務出發,并綜合模塊化思想,可完成退休人 員信息管理系統模塊劃分,各模塊作用說明如下:
(1)安全防護:退休人員信息對于事業單位非常重要,需采取措施進行保 護,這也是引入該模塊的原因。
(2)項目管理:該功能用于跟蹤注冊部所申請的退休人員狀態信息,可以 添加不同的任務在一個項目里,并進行編輯和關聯相關的退休人員信息。
(3)退休人員信息管理:該功能用于管理事業單位的退休人員信息,以便 為事業單位構建一個完整的退休人員庫。
(4) 文件管理:該功能主要用來保存從項目管理功能和信息管理功能中產 生的所有文件,同時也可以查詢和瀏覽文件。
(5) 統計報表:該功能主要用于掌握事業單位的退休人員情況以及退休人 員注冊情況。
4.3模塊詳細設計
4.3.1安全管理模塊
事業單位退休人員信息管理系統涉及退休人員信息,若系統被非法用戶使 用,導致不符合要求的退休人員注冊申請被審批通過,則容易給使用該管理系統 單位造成損害,這也是事業單位退休人員信息管理系統開發該模塊的原因。本節 將完成安全管理模塊詳細設計過程。
(1)數據備份
系統中最重要的是數據,其工作流程如下:
①數據庫的管理權限只開放給管理員,只有其可執行備份。
②確定備份文件所保存位置,并執行,系統會自動讀取地址,并發送到后臺。
③系統會以保存位置為參數生成備份SQL,然后連接數據庫,使用command 方法執行,完成備份,在指定位置會生成bak文件。
圖4.3描述了該功能工作過程。
▼
利用SqlConnection的構造方法獲
取連接對象,并以open方法打開
▼
組裝數據備份語句
▼
以備份語句以及SqlConnection對
象生成SqlCommand對象
調用Exe cuteN onQuery完成數據
備份
()
圖4.3數據備份流程
Figure 4.3 data backup process
2)數據恢復
若因使用不當或者系統被黑客侵入得到系統異常,甚至數據丟失,則需立刻
進行維護,此時備份階段生成的bak文件則可被使用,可快速解決數據丟失等數 據庫異常情況,其工作流程如下:
①系統設置了備份計劃,在執行備份時,需選擇與恢復要求相符的備份文件。
②在執行恢復前,需檢查文件類型,是bak類型,則可將地址傳入后臺。
③系統會以備份文件的中為參數生成恢復SQL,然后連接數據庫,使用 command方法執行,執行恢復
圖4.4描述了該功能工作過程。
( 開始 )
▼
利用SqlConnection的構造方法獲
取連接對象,并以open方法打開
▼
組裝數據恢復語句
v
▼
以恢復語句和SqlConnection對象 生成SqlCommand對象
▼
( 結束 )
圖4.4數據恢復流程
Figure 4.4 data recovery process
4.3.2項目管理模塊
(1)郵件服務器配置
圖4.5描述了該功能工作過程。
Figure 4.5 mail server configuration process
郵件服務器配置是系統發送事務通知的前提,若提供的參數與服務器不匹 配,則通知功能不可被使用。應用于實現通知功能的技術有多種,本課題選用 SMTP技術,其簡單易用,并且與事業單位要求相符。在配置郵件服務器時,首 先需要指定郵件服務器的地址,然后需要查看SMTP協議端口 25是否被占用, 在配置完成后,可調用test方法進行測試郵件的發送,收到測試郵件則證明配置 參數正確,否則配置參數錯誤,測試郵箱能否接收到郵件,是參數是否與服務匹 配的唯一標準,參數配置過程如下:①管理員通過login函數的校驗進入郵件服 務器配置界面;②配置郵件服務器參數,包括服務器地址、端口號以及測試郵箱 等;③對端口號進行校驗,查看是否被占用,若被占用,則提示管理員;④在配 置完成后,調用test方法進行測試。
(2)郵件通知 在參數與服務器一致的前提下,可使用郵件來發送信息,發送郵件時需要使 用SMTP技術來進行實現,具體的流程如下:
①調用 System.Web.Mail.MailMessage 方法創建一個 mail 對象。
②讀取郵件服務器參數,利用SmtpMail對象設置參數。
③利用 mail 對象存儲待發送的通知內容。
④使用send方法將mail對象的內容進行發送。 圖4.6描述了該功能工作過程。
圖 4.6 郵件通知流程 Figure 4.6 mail notification process
4.3.3退休人員信息管理模塊
事業單位管理的退休人員較多,都需存儲到系統退休人員實體表中,其實現 的難點在于退休人員信息的導入和導出,為了實現導入功能以及導出功能,系統 引入了 JXL插件。本節將詳述退休人員信息管理模塊詳細設計過程。
(1)退休人員信息導入 事業單位的退休人員信息較多,在將退休人員信息入庫時,逐個添加是效率 最低的方式,為此提供導入功能,在實現導入功能時,需要使用 JXL 插件。除 此以外,還需要設置 retiree 類,該類用于讀取和傳輸退休人員信息,該類中的 每個屬性都需存在于Excel中,一個屬性對應Excel文件中一個列。在實現導入 時,需使用JXL插件將Excel文件轉換為Workbook對象,然后獲取sheet對象, 在此基礎上讀取sheet中每個單元格內容,讀取完一行后存儲到retiree中,但是 需要對數據進行空校驗和數據異常校驗,防止錯誤信息被添加,數據正常的添加 到待保存list中,數據異常的添加到異常list中,全部讀取完成后,前者保存入 庫,后者輸出為Excel,展示給用戶。上述實現流程中最核心的就是JXL插件, 據上述分析可得到導入功能處理過程,圖4.7描述了該功能工作過程。
圖 4.7 退休人員信息導入功能流程
Figure 4.7 retirement personnel information import process
(2) 退休人員文件類型的校驗
由于系統只允許使用Excel作為載體,因此對文件進行校驗是必須的,但是 不能通過讀取后綴的方式,這種方式容易被偽造,在現有校驗方法中,準確率最 高的方式就是讀取文件的頭十六個字符,這是沒有辦法偽造的,使用該方法的工 作過程如下:
①將退休人員文件對象轉換為對應的輸入流對象。
②使用byte數組來存儲輸入流中頭部16個字節。
③Excel文件頭部是確定的,只能為fdfffffF09或者09081000000,若為兩者 之一,則為Excel,為其余字符都不是Excel。
(3) 退休人員信息導出 工作人員在工作時需要使用退休人員列表,便于使用,為此需提供導出功能,
該功能處理流程如下:
第一、在調用導出功能之前,需明確待導出退休人員的共同屬性,并使用該 屬性作為查詢關鍵字,以此得到list對象,該對象存儲著退休人員列表。
第二、選擇文件保存位置,并確定。
第三、在指定位置生成空Excel文件,然后使用JXL插件對Excel文件進行
操作。
第四、首先新增sheet,然后解析list中的退休人員對象,通過addCell方法 將退休人員屬性寫入對應的單元格,直到寫入完成,關閉文件流。
4.3.4退休人員文件管理模塊
每種退休人員有不同的產品文件用于描述退休人員相關情況,為此提供該模 塊為事業單位構建退休人員文件庫,各文件用于描述退休人員詳細信息,如單位 及出生年月等,因此極其重要,本節將詳述退休人員文件管理模塊設計過程。
(1)文件查看
事業單位退休人員信息管理系統存在各種類型的退休人員文件,若不提供統 一瀏覽方法,則開發人員需開發多種瀏覽方法來瀏覽退休人員文件,這樣不僅影 響系統可維護性,而且會影響開發效率,為此使用了Flash Paper技術,該技術可 解決上述難題,實現不同格式文件的統一瀏覽。
Flash Paper技術的核心思想就是將所有文件轉換為SWF格式的文件,由此只 需要開發針對SWF格式的瀏覽方法,不需要開發人員重復開發,效率更高,通過 上述分析可知,Flash Paper技術在處理該問題時的工作過程:
①本課題選擇SWF格式作為中間文件,所有的退休人員文件都需要轉換為 SWF格式,其可通過FlashPaper工具完成。
②在得到FLV文件之后,則可通過Flash插件來完成內容瀏覽。
但是在實際應用時,要求應用服務器安裝FlashPaper工具,其作用在于完成 文件的轉換,其可通過組裝CMD執行語句來得到轉換的目的,只有文件轉換為 SWF格式的基礎上,才可實現退休人員文件的在線瀏覽。
圖4.8描述了該功能工作過程。
圖 4.8 文件查看流程
Figure 4.8 file view process
(2)文件上傳 圖4.9描述了該功能工作過程。
退休人員管理資料以及試驗資料都需上傳,每種退休人員涉及的資料量是巨 大的,在這種情況下所需時間也較長,若采用傳統上傳方式,遇到網絡中斷,則 整個文件需重新上傳,這種上傳模式實用性差,為此實現斷點續傳功能,該功能 可解決上述缺陷,其會自動從斷點時重新上傳,有助于提升易用性。為達到上述 目的,使用了 RandomAccessFile類和File類,其中RandomAccessFile用于實現 文件的隨機讀取,File用于生成文件輸入輸出流,其實現流程如下:
①將退休人員文件轉換為File對象,并以獲得對應的FilelnputStream對象。
②利用RandomAccessFile獲得存儲退休人員文件的隨機讀取對象。
③以 read 方法讀取退休人員文件內容,并通過 RandomAccessFile 的 write 方法寫入目的地址,記錄讀取完成的地址。
④若出現網絡斷開,則等待網絡恢復,若已恢復,則使用skipBytes方法調 過已讀取的部分,再從斷開位置繼續讀取,直到文件內容全部讀取完成。
⑤關閉各文件對象。
4.3.5統計報表模塊
圖4.10描述了該功能工作過程。
圖4.10 注冊項目統計流程
Figure 4.10 statistical process of registered project
統計報表模塊主要為了掌握事業單位的退休人員情況,其由注冊項目統計、 已通過項目統計以及統計結果打印等功能組成,本節將詳述統計報表模塊詳細設 計過程。注冊項目統計功能主要用于統計目前為申請狀態的退休人員的數量,其 工作流程如下:
(1)讀取已配置的數據庫連接參數,并以此來獲得Connection對象,其是存 取數據表的基礎。
(2)讀取統計關鍵字,并以此形成select count(*)形式的統計SQL,其決定 統計結果的正確性。
(3)使用Connection對象獲得執行SQL的Command對象。
(4)由于統計方法不涉及數據更新,以此可使用ExecuteNonQuery方法來獲 得注冊項目統計結果。
4.4數據庫模型設計
系統涉及多個實體表,并且各實體表的數據項較多,但是存儲規模并不大, 因此不需要選擇性能突出、應用成本較高的數據庫,而Oracle成本高,MySQL 性能不符要求[22],因此選用 SQL Server2012 數據庫,該數據庫對服務器環境要 求較高,應用成本低,符合事業單位的應用要求[23]。ER圖設計如下:
圖4.11 ER圖
Figure 4.11, ER diagram
在設計事業單位退休人員信息管理系統數據存儲模型時,主要遵循如下原 則:一是必須確定主外鍵,否則信息不具備唯一性,容易數據重復,這會加大數 據分析難度[24]二是字段長度并不是越長越好,只需要與存儲要求相符即可,過長 會浪費存儲空間,并且訪問效率會降低[25]。
4.4.1 基礎業務數據庫設計
基礎業務數據庫設計根據ESB Server安裝目錄\etc目錄下的數據庫配置文件 sr.core.service.cfg中提供了三種數據庫的連接配置示例,可根據實際情況選擇對 應的配置。示例如下:
###
#Copyright (c) 2012 cvicse middleware Co.
#http://www.inforbus.com
#All rights reserved.
###
#Hibernate
#數據庫連接信息
#MySQL Example
hibernate.connection.url=jdbc:mysql://localhost:3306/sr?useUnicode=true&characterEncoding=UTF-8 hibernate.connection.username=root
hibernate.connection.password=pass hibernate.connection.driver_class=org.gjt.mm.mysql.Driver hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
#Oracle Example #hibernate.connection.url=jdbc:oracle:thin:@localhost:1521/sr #hibernate.connection.username=root
#hibernate.connection.password=pass #hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver #hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
#SQLServer Example #hibernate.connection.url=jdbc:jtds:sqlserver://localhost:1433;DatabaseName=sr #hibernate.connection.username=sa
#hibernate.connection.password=pass #hibernate.connection.driver_class=net.sourceforge.jtds.jdbc.Driver #hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect
#Service
#用戶登錄過期時間(秒)
token.expired=1800
#Notifiction
#訂閱通知過期時間(秒) notifiction.expired=86400
#訂閱通知重新發送的時間間隔(秒) notifiction.interval=1800
#郵件服務器
mail.server.host=smtp.?.com
#郵件服務器端口 mail.server.port=25
#發件人用戶名 mail.username=a@b.com
#發件人密碼
mail.password=password
# 發件人地址
mail.from=a@b.com
4.4.2工作流平臺數據庫設計
圖 4.12 數據庫關系
Figure 4.12 database relationships
上述數據庫表的關系如圖4.12所示。
下面對工作流平臺中關鍵表的表結構進行介紹。
表 4.1 流程節點表
Table 4.1 process node table
列名 數據類型 允許空 主鍵
流程節點標識 nvarchar(32) NOT NULL PRI
活動名稱 nvarchar(50) NOT NULL 0
節點狀態 int NOT NULL 0
描述 nvarchar (100) NULL 0
表 4.2 流程記錄表
Table 4.2 flow chart
列名 數據類型 允許空 主鍵
流程記錄標識 nvarchar(32) NOT NULL PRI
表單標識 nvarchar(32) NOT NULL 0
流程實例標識 nvarchar(32) NOT NULL 0
節點標識 nvarchar (32) NOT NULL 0
流程實例狀態 int NOT NULL 0
創建人 nvarchar (32) NOT NULL 0
開始時間 Timestamp NOT NULL 0
結束時間 Timestamp NOT NULL 0
說明信息 Text NULL 0
表 4.3 流程節點關系表
Table 4.3relational table of process nodes
列名 數據類型 允許空 主鍵
流程標識 nvarchar(32) NOT NULL PRI
節點標識 nvarchar(32) NOT NULL 0
節點映射名稱 nvarchar(50) NOT NULL 0
節點前驅 nvarchar (100) NOT NULL 0
前節點標識 int NOT NULL 0
節點屬性 int NULL 0
界面功能標識 nvarchar(32) NULL 0
排序字段 int NULL 0
4.5安全性設計
在構建系統過程中,重點關注了系統的安全性。為了保護系統安全,本系統 設置了完善的安全防護措施,其防護策略如圖4.13。
圖 4.13 安全防護體系
Figure 4.13 security protection system
下面對系統各環節所采取的安全措施進行詳細說明。
(1)統一身份認證 在身份認證階段,主要采取了如下措施:
①驗證碼機制。在身份認證階段第一步就是由用戶提供用戶名和密碼,同時 還引入了驗證碼機制,由系統隨機產生驗證碼,必須用戶名、密碼以及驗證碼都 正確的情況下,用戶才可使用退休人員信息管理系統,引入驗證碼的目的在于防 止注入式攻擊。
②短信驗證碼。對于綁定有手機號碼的用戶,可以使用手機號碼和短信碼進 行登錄,在登錄時,由系統隨機生成短信碼,并將短信碼臨時存儲,在約定時間 內,用戶可利用短信碼進行身份驗證,短信驗證碼正確,則登錄成功,否則無法 登錄。
(2)訪問控制
為了實現訪問控制,主要采取了如下幾項措施:
①用戶訪問控制。訪問控制包含兩層含義,首先校驗用戶身份,其次查看密 碼是否長時間未更新,若超過3 個月,則會要求用戶更新密碼。其次對于密碼連 續輸錯五次的用戶,會進行暫時性凍結。最后要求用戶密碼包含數字、字符以及 字母,以提高密碼強度。
②數據權限控制。攔截器會攔截每一個數據請求,根據與數據授權信息比對, 特殊的URL加密技術確定使用者身份與此數據訪問權限吻合,才允許訪問。
③基于“基于角色的訪問控制(Role-Based Access Control, RBAC)"的權 限控制體系。使用了 RBAC 權限管理機制。在 RBAC 中,權限需分配給角色, 從而實現角色的權限控制,簡化了系統的權限管理。
(3)數據保護 退休人員信息管理系統中用戶密碼,必須加密存儲。同時數據在傳輸時,也 需要加密。不同信息的加密技術是不同的,如用戶密碼需使用不可逆加密算法進 行加密,就算用戶獲得數據庫權限,也查看不到密碼內容,可使用RSA算法, 但是對于需要重復使用的信息,則只能使用可逆加密算法
4.6本章小結
退休人員經過管理和驗證后,可發起退休人員注冊,并提交審批,上述工作 都由該模塊負責,而模塊中的難點在于郵件服務器配置以及郵件通知功能,本系 統使用SMTP技術來完成通知功能的實現,郵件通知功能的實現勢必包含兩部分 內容,即配置郵件服務器以及郵件發送。通過將對上述功能的工作流程進行介紹。
本章從技術架構以及功能劃分等幾方面闡述了系統的總體設計方案,然后通過順 序圖明確了各模塊的工作流程,在此基礎上完成了系統的實體關系分析以及表結 構設計,上述設計成果構成了完整的設計方案。
5系統實現與測試
提出設計方案是為了規范事業單位退休人員信息管理系統的開發,本章闡述 了實現過程中待解決的各問題,并在系統可運行后,對事業單位退休人員信息管 理系統進行了深度測試,從而可達到提升系統質量的目的。
5.1系統運行環境
本節將明確事業單位退休人員信息管理系統的環境要求,以便部署時按照要 求準備服務器環境。
表5.1 實現環境
Table 5.1 implementation environment
軟件要求
操作系統類型 從事業單位服務器岀發,只可部署到Windows系統
開發平臺 選用Visual.NET平臺,使用C#語言
測試軟件 使用Loadrunner11.0進行模擬測試
數據庫 需安裝SQL Server2012數據庫
硬件環境 對數據庫服務器要求較高,對硬盤要求較高,需到1TB以上,
服務器 同時服務端的內存需在8GB以上。
客戶端設備 客戶端需安裝終端軟件,要求內存在4GB以上。
5.2功能實現
實現事業單位退休人員信息管理系統時需解決構建過程中的關鍵問題,如郵 件通知、數據維護以及工作流實現等,下面對關鍵問題的解決方案進行說明。
5.2.1 數據庫交互 與數據庫交互是退休人員注冊關聯各項業務進行工作的基礎,由于事業單位 退休人員信息管理系統選用C#技術進行實現,其與數據庫的連接參數都存儲在 XML 文件中,在系統啟動后,會自動到指定的 XML 文件中獲得數據庫地址等 參數,在參數正確的情況下,系統會啟動成功,并根據需求開啟數據庫連接數。 在執行業務處理時,需根據業務需求來生成SQL,并通過建立Command對象執 行SQL,就可達到業務處理目的。下面處理過程進行說明:
(1)使用C#技術開發應用系統時,需要預置數據庫參數到配置文件中,當 系統啟動時,其會讀取參數連接數據庫服務器。
(2)若配置的參數與數據庫服務器一致,則連接成功。
(3)連接成功后,需根據功能要求生成對應的SQL,如更新功能生成update 語句。然后生成Command對象,其用于執行SQL。
(4)為提升系統性能,業務結束后,需斷開與數據庫的連接,若一直占用, 一旦遇到并發連接數過多,系統會崩潰。
5.2.2郵件通知功能
.NET平臺提供SMTP協議,該協議中存在許多方法用于實現郵件功能,其 不需要開發人員重新構建,只需要調用協議中的方法就可以達到目的,其中send 方法用于郵件發送,SmtpServer用于存儲參數。在發送郵件時,需要調用郵件服 務器參數,然后就可以使用send方法來發送郵件。SMTP協議中SmtpServer方 法主要用于設置郵件服務器地址,MailMessage用于存儲郵件對象內容,然后可 利用 send 方法將 MailMessage 對象中內容發送到指定地址,郵件通知功能的實 現步驟如下:
(1)利用MailMessage的構造方法獲得mail對象。
(2)以mail對象存儲通知內容,包括mail.From、mail.To、mail.Subject以及 mail.Bod y等。
(3 )調用SmtpMail.SmtpServer方法設置郵件服務器參數。
(4)利用SmtpMail.Send(mail)方法將mail對象中內容發送到m ail.To地址。
5.2.3數據維護功能
在進行退休人員注冊申請時,工作人員會上報退休人員注冊申請信息以及退 休人員文件信息到系統,這些信息關系到退休人員信息管理工作,一旦泄露或者 被破壞,則退休人員信息管理工作會受到影響。在這種情況下,在系統構建時, 需采取措施來保護系統所有數據,而備份恢復功能是最常用的方式,其可快速處 理數據破壞以及丟失等異常情況。在實現數據備份功能和恢復功能時,主要使用 restore 方法和 backup 方法,管理員需根據業務特點設計備份計劃,在備份時調 用 backup 方法生成 bak 文件,在需要使用時,可調用 restore 方法,并選擇 bak 文件,實現數據恢復,其處理過程如下:
(1)C#技術開發的系統存在專門的XML文件存儲連接參數,因此系統啟動 后需讀取XML中的參數。
(2)執行恢復時,需使用備份文件參數生成restore語句。
(3)在SQL語句生成后,并且參數正確的情況下,可獲得執行SQL語句的
Commad 對象。
(4)Commad對象存在許多不同的方法,其中executeUpdate方法可執行更新 數據庫的SQL,因此數據恢復時也可通過該方法執行。
5.2.4工作流實現
對于退休人員信息管理系統而言,工作流主要集中在審核階段,從退休人員 注冊申請、審核到發布需要引入工作流,由此在流程控制時,需要按上述順序進 行,通過改變退休人員申請狀態來實現流程掛起以恢復,在整個過程中可以設置 一個狀態標識符,標識符代表審批流程,從而可實現工作流的控制,實現各流程 的順序執行。下面從工作流程管理、工作流程設計以及工作流的實現等三方面進 行說明。
(1)工作流程管理
在引入工作流后,需要查看退休人員信息管理流程,并設計節點,本系統的 流程由申請和審批兩部分組成,因此需創建工作流屬性,然后設定工作流節點條 件
在設計退休人員信息管理流程時,需要設定流程的開始節點和結束節點,同 時在設定流程中各任務之后,可按順序連線,以此來約束任務處理過程順序。除 此以外還需要設定流程中各任務節點的屬性。
本文所設計的退休人員信息管理系統正是基于工作流而開發設計的,實現退 休人員注冊業務的可調整和可定制需求,提高了系統的可維護性和可適應性,能 夠極大的滿足未來業務的發展需求。在實現工作流時,最重要的是實現流程控制, 流程控制主要包括對流程實例的掛起和恢復。流程有一系列的活動和限制條件組 合而成,在每個活動運行時都會有屬于自己的一個線程,線程之間的調度由流程 來實現,流程根據設定的限制條件來判斷當前活動的狀態。退休人員信息管理系 統中主要對流程實例的處理如下:若實例被掛起,則實例下的相關活動都會知道, 已經執行完的活動則不予理會,尚未執行的活動則暫停執行。當實例被恢復時, 則暫停的活動繼續運行。為了達到這個目的,退休人員信息管理系統采用如下的 方法來控制流程實例的執行:
①當實例暫停不需要操作時,則設置流程狀態為“掛起”;
第一、當流程或活動的狀態有所改變時都會觸發相應的事件,事件會被監聽, 根據監聽的結果做相應的處理。
第二、當一個活動完成時,則將活動的狀態設置為“完成”,然后通知流程 實例,實例會利用轉發控制的方法查找下一個要執行的活動,并將活動進行激活。
②當流程實例接受到激活請求時,可知有活動已完成。該流程實例則根據自 己的狀態進行判斷,若當前已被掛起,則將活動加入到“未完成”隊列中,不執 行轉發控制了,如果正在運行中,則將活動加入到“活動”隊列中,進行轉發控 制。
(2)工作流程實現
圖 5.1工作流管理功能類
Figure 5.1 workflow management function class
首頁.服務注冊
圖 5.2 服務注冊頁面
Figure 5.2 service registration page
注冊模塊關鍵代碼如下:
//注冊
public ServiceInfo registerService(String token, ServiceInfo regInfo, String encode) throws SRException
{
try {
serviceUtil.registerService(token, regInfo, encode);
} catch (SRException e) {
int code = e.getCode();
if (code == 99999) { logger.error(e.getMessage(), e);
} else { logger.warn(e.getMessage());} throw e;
} return regInfo;
}
//提交
public int submitService(String token, String serviceKey) throws SRException { int res = 1;
try {
List<String> serviceKeys = new ArrayList<String>(); serviceKeys.add(serviceKey);
serviceUtil.submitService(token, serviceKeys); res = 0;
} catch (SRException e) {
int code = e.getCode();
if (code == 99999) { logger.error(e.getMessage(), e);
} else { logger.warn(e.getMessage());} throw e;
}
return res;
審批服務 X ,▼ 1 1鮒入鵬翻
口股務標識 股務名稱j 注冊時間 境作
0 {httpJ/test/}HelloSefvice 審批。己通過 31:9900/1ie||o 20144)6-10 20;im0 ?
©未通過
□ (http://tesU}Ba)lcService 測試Book 意見I J1:9900/book 2014-06-11 08:26:17.0 t
圖5.3審批頁面
Figure 5.3 approval page
審批模塊的名稱為Approve.java,關鍵代碼如下:
//獲得服務審批列表
public List<ServiceVO> listServiceByApproveState(String token, int page, int limit) throws SRException {
List<ServiceVO> listServiceVO = new ArrayList<ServiceVO>();
List<ServiceInfo> listServiceInfo = new ArrayList<ServiceInfo>();
try {
List<ServiceInfo> listEntity1 = serviceUtil.listServiceToApprove(token, 1, page, limit);
List<ServiceInfo> listEntity2 = serviceUtil.listServiceToApprove(token, 2, page, limit);
List<ServiceInfo> listEntity3 = serviceUtil.listServiceToApprove(token, 3, page, limit);
if (listEntity1 != null) { listServiceInfo.addAll(listEntity1);}
if (listEntity2 != null) { listServiceInfo.addAll(listEntity2); }
if (listEntity2 != null) { listServiceInfo.addAll(listEntity3); } for (ServiceInfo serInfo : listServiceInfo) {
ServiceVO serviceVO = new ServiceVO();
serviceVO.setSerEntity(serInfo);
}
} catch (SRException e) {
throw e;
}
return listServiceVO;
}
//審批服務
public void approveService(String token, List<String> serviceKeys, int approve, String note) throws
SRException {
try {
serviceUtil.approveService(token, serviceKeys, approve, note);
} catch (SRException e) {
int code = e.getCode();
if (code == 99999) {logger.error(e.getMessage(), e);}
else {logger.warn(e.getMessage()); }
throw e; }
}
首頁/服務檢索
圖5.4服務測試
Figure 5.4 Service Testing
測試關鍵代碼:
public String getTestTemplate(String token, String serviceKey, String port, String operation) throws SRException {
String testTemplate = null;
try {
testTemplate = serviceUtil.getTestTemplate(token, serviceKey, port, operation);
} catch (SRException e) {
throw e;
}
return testTemplate;
}
圖 5.5 用戶管理界面
Figure 5.5 user management interface
用戶基本信宜
確認密碼
所屬組織廠 *選擇
可選角色 已選角色
角色 親貌管理
用戶角色管理
test角色
硏發部服努管理員 ▼
郵箱地址[
聯泵電話[
圖 5.6 添加用戶界面
Figure 5.6 add the user interface
用戶管理模塊使用userList()方法來獲取用戶列表,updateUserstatus()
方法更新用戶的狀態;saveData()方法保存新建用戶的信息。查看用戶的關 鍵代碼如下所示:
List<UserInfo> List = new ArrayList<UserInfo>();
try {
List<User> listEntity = iUserService.listUser(token, page, limit);
for (User userEntity : listEntity) {
UserInfo userInfo = new UserInfo();
String roles = getUserRolesToString(token, userEntity.getUserKey());
userInfo.setOfRole(roles); userInfo.setUserEntity(userEntity);
}
} catch (TokenExpiredException e) {
throw (TokenExpiredException) e;
} catch (SRException e) {
throw (SRException) e;
}
return List;
}
I按角色容過濾
圖 5.7 角色管理界面
Figure 5.7 role management interface
角色管理模塊,查詢角色的所有系統權限的關鍵代碼如下:
public Set<Privilege> getSysPrivileges(String token, String roleKey) throws TokenExpiredException { List<Privilege> listP = new ArrayList<Privilege>();
Set<Privilege> setP = new HashSet<Privilege>();
try {
listP = iRoleService.getSysPrivileges(token, roleKey); setP.addAll(listP);
} catch (TokenExpiredException e) {
throw (TokenExpiredException) e;
} catch (SRException e) {
throw (SRException) e;
}
return setP; }
圖 5.8 組織管理界面
Figure 5.8 organization management interface
組織管理模塊,使用getOrgTree()方法進行組織樹的查詢,使用 addOrganisation()方法進行新組織的添加,關鍵代碼如下:
〃獲得組織樹
public Organisation getOrgTree(String token) throws SRException {
Organisation root = null;
try {
root = orgService.getRoot(token);
} catch (SRException e) {
throw e;
} return root;
}
〃添加組織
public void addOrganisation(String token, Organisation org) throws SRException {
try {
orgService.addOrganisation(token, org);
} catch (SRException e) { throw e;
}
}
為了實現工作流各過程的運轉,需設計多個類來處理工作流業務。對應的類 用于處理工作流過程中涉及的掛起以及暫停等功能,由此可得到工作流管理功能 類圖。下面對工作流管理中關鍵功能的代碼進行說明,工作流創建并啟動功能的 核心代碼如下:
publi c kfl ow In st an c e Wrapper Start Workfl ow(T\pe workfl owType, Diction ar
y<string: obj ect> parameters)
{
A^brkflow In stance instance = _workfl owRunti me. Create Workfl ow(workflowTy
pes parameters);
WorkflowlnstanceWrapper wrapper = AddX^rorkflowInstance(instance):
in stance. StartO:
return wrapper;
5.2.5退休人員信息的共享
事業單位退休人員信息管理系統退休人員信息需要共享給其他部門,通過接 口獲得退休人員信息后可使用。由于退休人員需要在不同信息系統之間共享,為 此需引入SOA思想,目前可實現SOA思想的技術較多,如Web Service以及“(Java Native Interface,JNI)"等技術,本課題選用Web Service技術,下面對設計成果 共享接口的實現過程進行闡述。
web Services接口的構建需經過多個流程,如創建接口以及實現接口等,下 面對整個構建過程進行說明。
(1)環境配置
沒有環境支持,web Services接口也無法發揮作用,目前有許多客戶端可用 于連接web Services接口,本課題在對比分析各種客戶端的基礎上,選用Xfire, 為支持Xfire的使用,需配置環境,工作步驟如下:
第一步:Xfire包中擁有訪問web Services接口的各種方法。
第二步:將jar包中的Core組件和Client組件進行添加,以便開發時可搜索 到相關方法用于開發接口和服務。
第三步:配置XML文件。
(2) 實現服務接口類 實現退休人員信息共享接口,該接口只需要明確方法名稱、參數以及返回結
果,便于客戶端調用。
(3) 實現接口 查看接口類中的方法,并實現接口中的所有方法,這也是第三方系統調用接
口的基礎。上文闡述了接口類和實現類的構建過程,但是其無法被其他系統調用 到,還需要配置接口信息,主要在 services.xml 文件中完成接口類和服務名稱的 映射關系,第三方面系統需要通過服務名稱來調用對應的方法,本課題所設計的 接口名稱為seekDrugService。通過上述步驟則完成了退休人員信息共享接口的實 現。
5.3系統測試
軟件工程生命周期的一個重要環節即系統測試[26]。在開發過程中應該編寫單 元測試,在完成了系統實現后,應當針對前期各環節的工作,進行業務測試,以 確保系統是按照預測的規劃來運行的。測試過程主要是發現系統是否有缺陷、功 能是否還需要進一步完善等[27]。最后還需要在并發用戶情況下進行性能測試,保 證高峰期系統能穩定運行[28]。下面對系統測試過程中所使用的方法進行說明。
(1)功能測試階段:在功能測試階段存在兩種方式,一種為白盒測試,另 一種為黑盒測試,白盒測試需要詳細了解各程序內部結構,而黑盒測試只需要了 解功能的輸入和輸出,查看錄入信息與功能反饋結果是否一致則可判斷功能的正 確性,易用簡單,為此本課題選用黑盒測試方法進行功能測試。
(2)而性能測試主要通過引入Load runner測試軟件進行模擬測試,其用于 模擬用戶進行并發操作。
5.3.1 功能測試 對于退休人員信息錄入來說,管理系統所擁有的系統識別性對應而生。其流 程是根據退休人員導入到書籍恢復,再到菜單管理,測試數據具備結果測定性。 據研究,如下所示:
(1)退休人員信息導入
表5.2 退休人員信息導入
Table 5.2 introduction of retiree information
測試項目 退休人員信息管理系統
所屬模塊 退休人員管理
預期目標 可成功導入正確的退休人員 Excel, 同時可識別錯誤
前提條件 用戶已成功登錄系統
用例編號 測試步驟 測試數據 正確輸出結果
1 1.通過菜單項“退休人員管理—> Excel 路徑: Excel 文件的
退休人員登記”,進入對應業務處 E:\data\medRight.xls 所有退休人員
理頁面。 信息都可在數
2.通過瀏覽按鈕選擇退休人員文 據庫中查詢
件,該文件符合系統要求,并確 到。
認選擇。
2 1.通過菜單項“退休人員管理—> Excel 路徑: 數據讀入失
退休人員登記”,進入對應業務處 E:\data\medErr.doc 敗,并告知文
理頁面。 件不是 Excel
2. 通過瀏覽按鈕選擇退休人員文
件,該文件類型為word,并確認
選擇。
3 1. 通過菜單項“退休人員管理—> Excel 路徑: 數據讀入失
退休人員登記”,進入對應業務處 E:\data\medBig. xls 敗,并告知文
理頁面。
2. 通過瀏覽按鈕選擇退休人員文 件,該文件容量超出要求,確認 選擇。 件超過 200M
(2)數據恢復 數據恢復主要用于處理數據丟失等情況,其前提是退休人員信息管理系統已 進行備份,存在備份文件。在測試時,退休人員信息管理系統對備份文件的要求 是必須為bak,其他類型文件不可進行恢復,并需提示管理員,基于上述分析, 可得到測試用例。在數據恢復上,如下所示。表5.3為該功能測試用例。
表5.3 數據恢復
Table 5.3 data recovery
測試項目 退休人員信息管理系統
所屬模塊 安全管理
預期目標 能讀取bak文件中的數據,可識別非法備份文件
前提條件 用戶為管理員
用例編號 測試步驟 測試數據 正確輸出結果
1 1. 通過菜單項“系統維護—>數據 Bak 文件路徑: Bak 文件中的
恢復”,退休人員信息管理系統顯示 E:\data\rightData.bak 數據都寫入到
恢復界面。 數據庫
2.點擊“恢復”按鈕,選擇正確 bak
文件,并確定恢復。
2 1.通過菜單項“系統維護—>數據恢 Bak 文件路徑: 恢復失敗,并
復”,退休人員信息管理系統顯示恢 E:\data\errorData.excel 告知備份文件
復界面。 類型不正確
2.點擊“恢復”按鈕,選擇word類
型的備份文件,并確定恢復。
3 1.通過菜單項“系統維護—>數據恢 Bak 文件路徑: 恢復失敗,提
復”,退休人員信息管理系統顯示恢 E:\data\errorData.excel 示存儲數據錯
復界面。 ' 口
誤
2. 點擊“恢復”按鈕,選擇存在語
法錯誤的備份文件,并確定恢復。
4 1.通過菜單項“系統維護—>數據恢 Bak 文件路徑: 恢復失敗,提
復”,退休人員信息管理系統顯示恢 E:\data\nullData.excel 示必須選擇備
復界面。 份文件
2. 點擊“恢復”按鈕,選擇空備份
文件,并確定恢復。
3)注冊項目統計
注冊項目統計功能主要通過時間段關鍵字來統計事業單位這一段時間的注 冊項目數量, 在注冊項目統計時,可選擇的統計關鍵字有統計時段等,各關鍵 字有不同的格式要求,最主要的是時間段關鍵字的要求,第一、開始時間和結束 時間都必須符合時間格式要求,第二、開始時間不能大于結束時間。為了量化統 計結果,不妨事先添加注冊項目信息,在2017-03-01 12:00:00存在注冊項目,其 他時段不存在。通過上述分析,可根據功能特點來設置測試用例,表5.4為該功 能測試用例。
表5.4 注冊項目統計
Table 5.4 statistics of registered items
測試項目 退休人員信息管理系統
所屬模塊 注冊項目統計
預期目標 查看統計功能能否識別錯誤, 以及獲得正確的統計結果
前提條件 確認用戶角色為單位領導
用例編號 用例說明 輸入數據 預期結果
1 1. 通過菜單項“統計報表 起始時間: 系統展示正確的
—>注冊項目統計”,系統顯 2017-03-01 00:00:00 統計信息
示統計界面。 結束時間:
2.提交正確時間段。 2017-03-31 23:59:59
2 1. 通過菜單項“統計報表 起始時間: 系統提示“起始
—>注冊項目統計”,系統顯 2017-03-21 00:00:00 時間不能大于結
示統計界面。 結束時間: 束時間”
2. 提交錯誤的時間段。 2017-03-11 23:59:59
3 1. 通過菜單項“統計報表 起始時間: 系統提示“起始
—>注冊項目統計”,系統顯 2017-03-21 時間格式不正
示統計界面。 結束時間: 確”
2.提交錯誤的時間段。 2017-03-22 23:59:59
在測試之前,需重點關注如下內容:
(1)登錄測試
這是進入事業單位退休人員信息管理系統的第一步,因此就是檢測的第一個 對象,進行登陸檢測主要是為了從源頭進行信息的安全保護,檢測登陸系統能否 進行用戶的身份識別[29]。
(2)頁面鏈接測試
事業單位退休人員信息管理系統有多個模塊,每個模塊之間都是通過對應的 頁面進行連接,因此需要對退休人員信息管理系統中各個頁面的連接速度、界面 等等內容進行相關的檢測。
(3) 檢查按鈕功能
在頁面的顯示中,按鈕起著鏈接頁面的作用,因此為了能使用戶在第一時間 找到對應的鏈接窗口,需要在每個鏈接按鈕進行明確說明。
(4) 必填項檢查 在用戶使用系統錄入數據時,針對某些重要數據,在錄入過程中系統應當反
復提醒用戶對必填項進行檢查,確保增加的信息的正確性。
5.3.2性能測試
在執行性能測試時,需重點關注響應時間以及穩定性兩項指標,上述兩項要 求未達標,則無法部署,必須進行優化[30],下面對事業單位退休人員信息管理系 統測試過程進行說明。
(1)響應時間
響應時間是為了查看事業單位退休人員信息管理系統各功能的響應速度,若 工作人員在處理退休人員信息管理工作時,遲遲無法得到事業單位退休人員信息 管理系統的響應,則勢必會影響工作,并且會降低客戶滿意度,從實際情況出發, 系統各項業務的處理時間不可超過5秒,除導入功能以外,若超過5秒,則需對 系統進行性能調優,提升處理速度。具體結果如表5.5。
表5.5 業務響應速度 Table 5.5 service response speed
總測試次數 測試業務 響應速度 是否符合要求
登錄 0.9
主界面 0.5
退休人員信息 0.7
管理
60 項目管理 0.9 是
退休人員文件 1.1
管理
統計報表 2.1
安全管理 1.0
2)系統運行穩定性測試
由事業單位退休人員信息管理系統的需求分析可以知道,其囊括的業務較 多,本節將從模塊的角度對事業單位退休人員信息管理系統的各個功能項設計測 試用例。通過對系統的不斷操作,查看事業單位退休人員信息管理系統是否崩潰, 是否出現操作錯誤以及業務無法處理等意外情況,并進行統計。為測試穩定性, 對事業單位退休人員信息管理系統進行了10輪測試,每次測試循環操作系統1000 次。
由測試結果可知,系統響應時間符合低于5秒的要求,同時穩定性測試階段 未出現系統本身錯誤,因此性能達到部署要求。
5.3.3驗證測試
圖5.9 驗證測試流程
Figure 5.9 validation test flow
計算機系統驗證(CSV)的測試需要基于風險評估的結果,主要考慮系統功能, 安全設計對業務流程,產品質量和信息安全的影響,來控制系統所帶來的對信息 安全的風險。風險評估的行為主要是確認驗證的范圍程度和深度,包括數據完整 性的程度和深度。所以軟件測試的深度和廣度是基于規格與確認的基本框架如圖 5.9所示。
驗證的要素分別是“設計確認(Design Qualification, DQ)":確認系統的設 計滿足最初意圖,并文件化的行為;“安裝確認(Installation Qualification, IQ)": 確認所安裝的系統滿足事先批準的規格的要求,并文件化的行為;“運行確認 (Operational Qualification, OQ)":確認系統在規定的整個運行范圍內,按照事 先批準的規格的要求運行,并文件化行為;“性能確認(Performance Qualification, PQ)”:確認系統在規定的運行環境中運行時,全部系統活動所發揮的行為滿足 事先批準的規格的要求,并文件化的行為。
在安裝確認測試時,安裝文件可正常安裝。系統安裝到服務器后,運行正常, 并且性能與要求相符。
5.3.4測試結果分析
Comments 放在最后,作為對
整個Event的補充說明。
通過上述測試可得出相關結論:
(1) 事業單位退休人員信息管理系統功能較為完善,與事業單位的應用需 求相符,并且經過測試后,影響事業單位退休人員信息管理系統運行的缺陷都已 解決,在功能上達到了部署要求。
(2) 事業單位退休人員信息管理系統的性能與設定的指標相符。
因此事業單位退休人員信息管理系統符合要求,可進行應用。但是在測試過 程中也發現了一些問題,包括功能問題和界面問題,下面選擇部分測試問題進行 說明,測試問題體現出退休人員信息管理在諸多問題上存在普遍性缺陷,而具體 問題得由測試問題類型來分析。
5.4系統應用 在系統實現測試完成之后,需要將退休人員信息管理系統部署到事業單位進 行應用,以便了解系統的實際應用。
(1)項目管理 項目管理包含多個子功能,其中退休人員注冊申請是項目的來源,申請功能 就是將項目信息提交到單位。
在注冊申請之后,會進入審批階段,審批階段需要經過多流程。
在審批時,需要經過多個流程,各流程之間存在嚴格的先后順序,申請人可 查看整個工作流程。
在注冊申請提交之后,工作人員可調用查詢功能獲得申請的處理結果,以便 為工作決策。
(2)文件管理
退休人員試驗階段以及管理階段的文件都需保存形成文件庫,便于使用。
在文件上傳之后,工作人員可根據文件屬性來定位退休人員信息管理系統的 文件信息,文件查詢功能的界面如圖5.10所示。
圖5.10 文件查詢界面
Figure 5.10 file query interface
5.5本章小結
本章對事業單位退休人員信息管理系統實現進行了闡述,然后完成了事業單 位退休人員信息管理系統的測試,經過測試確定事業單位退休人員信息管理系統 符合計算機多個驗證要求,可以進行部署。
目前國內事業單位每年都會投入大量資金和人員用于管理新退休人員,以前 事業單位通常采用紙張模式進行記錄,該模式已無法滿足事業單位的管理需求, 不僅效率低,容易丟失,而且后續統計非常,由此引入退休人員信息管理系統實 現退休人員信息管理業務的規范化、科學化管理對事業單位有很重要的意義,是 未來的發展趨勢。特別是現在的計算機系統可以通過計算機系統驗證,符合各國 退休人員開發和生產的計算機系統要求,按照法規的規定進行合理的開發和實 施,且在運用開始后進行合理的管理,作出評估和確認,這個在目前國內領域屬 于比較領先,也是未來中國計算機系統的驗證方面需要投入的大量的人力的方 向。
本課題在如下幾方面做了有價值的工作:
(1)從退休人員信息管理業務特點出發,并在綜合安全性要求的基礎上, 系統基于C#技術進行構建,并使用SQL Server2012存儲退休人員信息管理信息, 其使用.NET作為平臺。
(2)通過調查明確了退休人員信息管理業務的工作流程,在與事業單位相 關人員進行溝通的基礎上,明確了系統的需求方案,其中功能上其包含退休人員 信息管理以及退休人員文件管理等功能。
(3)對事業單位退休人員信息管理系統進行了功能設計,詳細給出了事業 單位退休人員信息管理系統各模塊的處理邏輯,對事業單位退休人員信息管理系 統進行數據關系分析,并繪制實體屬性圖,并給出了數據庫表詳細設計。
(4)按照事業單位退休人員信息管理系統設計方案,完成系統的編程實現, 使系統中的各個功能模塊能夠實現相應的業務功能需求,然后設計并使用測試用 例對該系統進行了測試。
(5)按照計算機系統驗證的要求實施本系統,通過了計算機系統驗證(CSV) 的各項審計。
本人在系統開發過程中主要承擔如下工作:
(1)負責系統需求分析,在需求分析時,組織需求會議,負責需求調查, 明確了事業單位退休人員信息管理系統的需求方案,包括功能目標和性能目標。
(2)負責系統設計,以需求為依據,重點負責模塊詳細設計,并給出了系 統構建過程中關鍵問題的解決方案,主要包括如下幾項:
①在項目管理業務中涉及多流程,如退休人員注冊申請、退休人員注冊申請 以及通知等多流程,為了規范退休人員信息管理流程,提出使用工作流失,其可 保證各流程的順序執行,實現項目管理業務的規范化。
②在退休人員項目審核中,審核結果需要自主查詢,為了提升退休人員項目 審核效率,提出引入郵件通知技術,在審核完成時自動通過郵件進行結果的發送。
③退休人員信息需要共享給退休人員企業其他部門,因此需提供共享接口, 在分析業務特點的基礎上,提出使用Web Service技術來實現接口。
(1)負責關鍵模塊的實現工作,包括項目管理、退休人員信息管理以及退 休人員文件管理等。
(2)為安全管理模塊以及統計報表模塊設計了測試用例,并負責上述模塊 測試用例的執行,同時負責個人開發模塊問題的修改。
[1]關子杰.淺析移動實習信息管理系統的設計與實現J].電子測試,2017(15): 21-23.
[2]劉斌.計算機軟件開發信息管理系統的設計與實現J].電子世界,2017(16): 34-36.
[3]別傳鋒,王婷.基于J2EE的重點實驗室運行信息管理系統的設計與實現J].數碼世 界,2017(9):47-48.
[4]盧穎.淺析計算機信息管理系統安全的對策J].通訊世界,2016(13): 51-52.
[5]袁超,付濤.新時期財務信息管理系統漏洞存在的安全問題及對策J].網絡安全技 術與應用,2016(7):67-69.
[6]趙嫚.學生宿舍信息管理系統的設計與應用[J].科技展望,2016(14): 54-556.
[7]何明芬.醫院信息管理系統的開發與應用[J].數字技術與應用,2015(2): 91-95.
[8]鄧欣.針對計算機信息管理系統及其應用探析[J].中國新通信,2015(11): 18-19.
[9]陳洪冉.針對計算機信息管理系統安全的對策[J].新課程(下),2016(5): 23-25.
[10]毋堃杰.單位內部信息管理系統的組建與管理[J].計算機光盤軟件與應用, 2013(6):15-16.
[11]劉陽.贊同科技單位信息管理系統的設計與實現[D].大連:大連理工大學,2015.
[12]于紫薇.科研單位信息管理系統的設計與實現[D].長春:吉林大學,2016.
[13]鄔蓉軍.基于大數據的城鄉低保信息管理系統的設計和實現[D].成都:電子科技 大學,2016.
[14]金寰.制造行業企業財務信息管理系統的設計和實現[D].長春:吉林大學,2016.
[15]魏亞平.齊魯師范學院的財務信息管理系統的設計與實現[D].成都:電子科技大 學,2014.
[16]張明兵.高職院校自考信息管理系統的設計與實現[D].成都:電子科技大學,
2014.
[17]劉博.區級機關黨員信息管理系統的設計與實現[D].成都:電子科技大學,2015.
[18]宋楊.大學生志愿者信息管理系統的設計與實現[D].成都:電子科技大學,2014.
[19]常光宇.企業應收賬款和撥款信息管理系統[D].長春:吉林大學,2015.
[20]Ruiqiang Li. Study on Electron Shopping Website based on ASP.NET[J].Advanced Materials Research,2010(129):1279-1285.
[21]Tim Anderson. Delve into ASP.Net MVC[J].Personal computer world,2009(32): 134-137.
[22]K. Prabhakar Rao,G. Ashok Babu. Microsoft C#.NET program and electromagnetic depth sounding or large loop source[J]. Computers & Sciences,2009(35):321-324.