摘要:針對科技項目管理系統重復開發問題,運用領域分析方法和開源框架技術,研究設計一個可擴展、可配置、松耦合的輕量級Web快速開發框架。系統管理員通過Web控制臺可以簡單快速地對項目管理過程、內容、模板、用戶及權限等進行個性化配置。實際應用表明,基于該框架可以快速配置生成滿足用戶個性化需求的科技項目管理系統,有效解決項目管理系統重復開發和不規范等問題。
關鍵詞:項目管理系統;重復開發;領域對象;快速開發框架;個性化配置
近年來,隨著國家不斷加大科技投入力度,科技項目申報數量逐年增加,使得科技項目申報管理系統的重復開發問題日益突出。為此,設計一個可擴展、可配置、松耦合的輕量級Web開發平臺,系統 管 理 員 通 過Web控制臺進行相關個性化配置構建滿足實際需求的科技計劃項目申報管理系統,已成為當前迫切需要解決的問題[1]。
文中針對科技項目管理特定領域,運用領域分析方法對科技項目生命周期全過程管理進行領域業務分析,建立相關領域模型,基于領域模型和J2EE開源框架技術設計領域體系架構,并在此基礎上實現可擴展、可配置、松耦合的輕量級科技項目管理系統快速開發框架。
1、領域業務分析
領域業務分析是在對系統典型成員的需求進行分析的基礎上,考慮需求變化、限制條件等因素,確定恰當的領域范圍,識別領域的共性特征和變化特征,獲取一組具有足夠可復用性的領域需求,并將其抽象成領域業務模型。
1.1領域業務模型
對科技項目管理進行領域業務分析,提出基于科技項目生命周期全過程管理的領域業務模型[2]。科技項目生命周期全過程包括項目申報、項目審核、專家評審、項目立項、合同上報、合同審核、簽訂合同、中期上報、中期審核、驗收申請、申請審核、組織驗收、驗收公示等相關流程,從而使得管理部門可從質量、進度、財務支出等方面對科技項目進行跟蹤控制。因此,科技項目管理領域業務模型應包括申報管理、評審管理、立項管理、合同管理、中期檢查管理和驗收管理幾大功能模塊,如圖1所示。
圖1科技項目管理領域業務模型
1.2領域對象模型
核心領域對象即特定領域的核心實體類。如圖1所示,科技項目管理領域模型中的核心領域對象主要包括:用戶類、申請書類、合同類、中期表類、驗收單類。核心領域對象的變動極易引起系統的重復開發。
針對科技項目管理領域現狀,發現申請書類,合同類作為核心領域對象在實際需求中變動較大,而其他核心領域對象一般不變。申請書類與合同書類類似,下面以申請書類為例加以說明。申請書類一般包括項目基本情況、承擔、項目經費預算、項目人員、項目研發內容等基本信息,基本信息又包含相應的屬性,如圖2所示。
圖2申請書類模型
2、領域體系架構設計
領域架構主要采用J2EE的分層思想,通過整合相關J2EE主流框架和面向接口的編程方式,構建了一個可擴展,可配置的松耦合Web領域框架。
2.1體系架構
快速開發框 架 以Spring框 架 為 核 心,采 用SpringMVC無縫集成多種視圖構成架構的Web層[3]。持久層采用Hibernate實現對象關系映射和JDBC的輕量級對象封裝,解決了底層數據庫兼容性問題[4]。采用標準的HQL語言實現對象編程思維操縱數據庫。表現層使用FreeMarker模板化語言獲取數據模型生成標準輸出,同時采用jQuery的Ajax框架以增加用戶體驗。快速開發框架的體系架構如圖3所示。
圖3快速開發框架體系架構
2.2Spring框架
架構 通 過web.xml等Web應用配置文件啟動Spring容器。通過配置Spring上下文context.xml注冊bean,由Spring容器控制管理應用對象的配置和生命周期,包括創建一個單獨的實例或者每次需要時生成一個新的實例以及配置各實例之間的關系。架構運用SpringIoC技術,一個對象依賴其他對象通過被動的方式傳遞,即容器在對象初始化時不等對象請求就主動將依賴傳遞給他,而不需要自己創建或者查找依賴對象。架構在事務管理上采用SpringAOP面 向 切 面 編程思想,通過分離業務邏輯與系統級服務進行內聚性開發。應用對象只實現業務邏輯,而不負責其他系統級關注點[5-6]。
2.3Hibernate持久化框架
架構采用開源的對象關系映射框架Hibernate,實現了對JDBC的輕量 級 對 象 封 裝,大幅簡化重復性代碼。運用對象編程思維操縱數據庫,支持透明持久化。同時,Hibernate操作的是純粹的Java類(pojo) ,沒 有實現任何接口,使得整個架構沒有侵入性。架構采用標準的HQL語言,解決了不同底層關系數據庫Sql級兼容性問題。整個架構可以跨底層關系數據庫運行,提高了架構的可移植性。架構 通 過 配 置Hibernate一級緩存和二級緩存,并在二級緩存的基礎上建立查詢緩存,對架構持久化層進行性能優化。通過采用Spring框架 提 供 的OpenSessionInViewFilter和Hibernate框 架的延遲加載 技 術,使得當程序操作數據時,才 將 對 象或屬性放 入 內 存 中,以節省內存開銷和提高服務器性能。
2.4FreeMarker模板引擎
架構采用Java語言編寫的FreeMarker模板引擎,基于模板生成文本輸出作為表現層實現技術。通過在模板中密封HTML實現表現層與業務邏輯相分離。模板只負責數據在頁面中的表現,不涉及邏輯代碼,邏輯由數據模型來處理。模板用Action提供的數據模型動態生成HTML。模板語言編譯 器 速 度 快,輸 出 接 近 靜態HTML頁面的速度,大幅提高架構Web層性能。同時,通 過 繼 承FreeMarker包 中TemplateDirectiveModel類實現FreeMarker強大的自定義標簽技術,使得表現層與業務層之間的數據交互更加方便。
3、領域框架設計實現
3.1流程模塊設計
由圖1中的科技項目管理領域業務模型可知,框架功能覆蓋項目申報、項目審核、項目形審、評審安排、項目評審等科技項目生命周期全過程,每個流程模塊的設計均遵循圖3的快速開發框架體系架構。現以項目申報流程為例,為使核心領域對象申請書類變動不致引起開發框架的重復開發,將申請書類細分為項目基本情況、承 擔(合 作)單 位、項 目 經 費 預 算、項 目 人員、項目研發內容5類,每一個類包含各自屬性。下面以項目基本情況類為例加以說明,如圖4所示,整個模塊構建基于SpringIoC,實現架構的松耦合。URL通過SpringMVC映 射 到ProjecBasicSituationAct,利 用 注 入業務組件ProjectBasicSituationService和業務組件中注入的ProjectBasicSituationDao實現對象持久化操作。
3.2領域對象建模
架構為解決核心領域對象變動引起的開發框架重復建設問題,將申請書細分為包括項目基本情況、承擔(合作)單位在內的5個類,并對每個類進行建模。系統管理員通 過Web控 制 臺 配 置ApplicationModel、Ap-plicationModelItem類相關字段改變申請書模板,實 現個性化的科技項目管理系統,大幅減少因核心領域對象變動而引起的開發框架重復建設問題。申請書類領域對象模型如圖5所示。
4、快速開發框架應用
系統管理員通過登錄Web開發框架的控制臺,可以快速完成項目管理各過程、不同版本的申請書和合同書內容及模板、用戶及權限等配置。基于本框架已經配置生成了天臺縣科技項目管理系統、溫嶺市科技項目管理系統等,有效滿足了用戶的不同需求,運行效果良好。控制臺申請書個性化模板配置界面如圖6所示。系統管理員通過Web控制臺可以對 申 請 書 字 段名稱、排列順序、格式顯示、默認值等進行個性化配置生成相應的申請書模板。
圖6控制臺申請書個性化配置界面
5、結束
語基于科技項目生命周期全過程管理模型,設計并實現適用于科技項目管理領域的可配置、可擴展、低耦合的快速Web開發框架。基于本框架快速配置生成了天臺縣科技項目管理系統、溫嶺市科技項目管理系統,并大力推廣,有效解決了目前科技項目管理系統重復開發的問題,也驗證了所提領域模型的準確性、框架的可行性。
參考文獻
[1]王明明,郭昌言,劉從軍.基于J2EE的動態配置開發平臺研究與實現[J].現代電子技術,2010(6) :61-64.
[2]龍軍,王威.基于SOA的科技項目管理系統平臺的研究[J].微計算機信息,2010(6) :9-11
[3]蘇曉波.Web快速開發框架的設計與實現[D].武漢:華中科技大學,2010.
[4]楊濤,周志波,凌力.基于Struts和Hibernate的J2EE快速開發框架的設計與實現[J].計算機工程,2006,10(32) :83-85.
[5]莫年發.基于Web的科技項目管理系統設計與實現[D].成都:電子科技大學,2011.
[6]陳竹.快速開發框架在科技項目管理系統中的應用研究[D].北京:中國地質科學院,2010.(本文于2013年發表于《電子科技》)