- 相關推薦
面向管理信息系統開發的軟件工廠技術研究的論文
軟件工廠技術是提高軟件生產效率的重要方法,軟件體系結構的規范化及Eclipse開放式的開發環境為軟件工廠技術的研究提供了重要的基礎。文章以ERP系統為管理信息系統的架構藍本,深入研究了ERP系統的功能架構及Java EE的軟件體系結構,利用代碼自動生成技術,提出了管理信息系統工廠化插件研發的方法。
0 引言
由于軟件自身的許多特殊性[1],軟件的工廠化的技術研究一直沒有取得太大的進展。隨著人們對軟件的認知日益深入,軟件技術人員對特定領域的軟件架構不斷達成共識,軟件開發過程中的標準與規范不斷形成,為軟件工廠技術的研究創造了條件。近年來,微軟、IBM等國際軟件巨頭都提出了自己的軟件工廠解決方案,微軟的COM/COM+技術在Window平臺開發中得到廣泛應用[2],IBM公司研發的軟件設計工具Rose提供了“正向工程”機制,能通過形式化的設計模型自動生成目標系統的架構和局部代碼;開源集成開發工具Eclipes/MyEclipes則提供了“反向工程”機制。通過反向工程,可以從數據庫表快速地生成目標系統的DAO架構模型及Hibernate配置。這些都是軟件工廠應用研究取得進展的表現。利用JEE系統架構模型及代碼自動生成原理,結合ERP系統功能架構,深化Eclipes 環境下的軟件工廠技術研究,則可以在Eclipes開發環境中實現企業信息系統工廠化開發,提高開發效率。
軟件工廠一是要面向某種特定應用,二是自動化及快速配置[3]。因此,面向ERP領域的軟件工廠技術研究,首先要深入ERP系統的功能架構和業務邏輯。其次深入研究信息系統的層次架構及代碼自動化原理。
1 ERP系統功能架構
國內ERP領導廠商金蝶國際軟件集團將ERP的業務范圍劃分為資本市場、供應市場、消費市場和知識市場等四大管理領域。資本市場主要涉及財務管理,供應市場主要涉及供應商管理,消費市場涉及客戶關系管理,知識市場涉及人力資源管理(辦公自動化、信息門戶均屬于這塊內容)。這四個市場的中間是供應鏈管理和制造管理,其中,供應鏈管理又包括采購管理、倉存管理、銷售管理和分銷管理;制造管理又包含計劃管理、車間管理、設備管理和質量管理。因此,一個完整的ERP系統主要包含:財務管理、銷售管理、客戶關系管理、采購管理、供應商管理、倉存管理、計劃管理、車間管理、質量管理、設備管理、人力資源管理等功能模塊。
在企業運營中,銷售部門根據市場需求或銷售歷史數據制定銷售計劃,形成企業的主生產計劃的數據來源。而企業主生產計劃制定則是其他各部門制定各自計劃的依據。比如,采購部門根據主生產計劃制定采購計劃,生產車間根據主生產計劃制定車間生產計劃和設備維護計劃。
采購部門根據采購計劃進行物料采購,一方面形成應付賬款,與財務管理子系統對接,另一方面采購入庫物料,與倉存管理子系統對接。采購過程中涉及原材料質量的鑒定與驗收,故涉及質量管理。
生產車間根據車間生產計劃,從倉庫領料出庫進行生產,最后將生產出來的產品存入倉庫,即生產入庫;生產過程中,要進行生產設備的管理及產品質量的監控,故涉及設備管理和質量管理。
銷售部門從倉庫中提取產品銷售給客戶,一方面形成銷售出庫行為,與倉存管理系統對接,另一方面產生應收賬款,與財務管理子系統對接。
財務管理子系統通過固定資產管理對接生產部門的設備管理,通過薪資管理與人力資源管理子系統對接。
2 基于Java EE的軟件架構
2.1 信息系統的層次結構模型
Java EE是目前最為成熟最為流行的企業信息系統架構,它目前最流行的兩個開發架構是SSH(Strut+Spring+Hibernate)和SSM(Spring+SpringMVC+Mybase)架構,這些架構都為信息系統定義了明確層次架構,如圖1所示。
(1)數據訪問層
數據訪問層主要提供數據庫訪問的元操作,為業務邏輯層提供數據庫的訪問接口。它由hibernate配置文件(hibernate.conf.xml)、hibernate映射文件(xxx.btm.sml)、POJO對象、DAO接口和對象組成。其中,POJO對象為應用軟件中的實體對象;hibernate映射文件用于描述了數據庫中表與POJO對象的映射關系;hibernate配置文件則提供DAO數據訪問對象負責提供數據庫訪問元操作,包括數據的增、刪、改、查等功能,而且業界為其定義了標準的訪問接口。
(2)業務邏輯層
業務邏輯層有Server對象構成,負責處理系統相對復雜的業務,按一定的邏輯順序調用數據訪問層的DAO接口訪問數據庫。
(3)控制層
該層主要由Struct Action對象和Struct配置文件(Struct.xml)組成,主要負責響應視圖層發起的業務請求處理和頁面調轉控制。其中,Action對象負責頁面請求處理,配置文件struct.xml負責頁面調轉描述。
(4)視圖層
該層負責人機交互,為用戶提供數據輸入界面和數據處理結果顯示。其核心是HTML+CSS,輔以JSP命令、JSTL標簽和Struct標簽。
2.2 Java Web站點文件管理
Java Web的站點結構是相對穩定的。基于SSH架構的Web站點結構如圖2所示。
web站點根目錄下,主要是站點首頁(index.jsp)及各種web文件和資源文件,比如CSS、JS和圖片資源(images)等。值得一提的是“WEB-INF”文件夾,它是Java Web站點十分重要的文件夾,其下面包含classes、lib兩個重要的文件夾和web站點的配置文件。
Classese文件夾存放由Java源文件編譯生成的字節碼文件(.class)。
Lib存放站點所需要的jar文件。比如數據庫驅動包、hibernate相關的jar文件等。
Web.xml是站點的總配置文件,它描述了首頁的訪問順序、struct映射等內容。
Hibernate.cfg.xml是hibernate的配置文件,描述了數據庫服務器的地址及數據庫訪問的行館配置,包括數據連接池參數的配置等信息。同時還告訴系統Hibernate的映像文件(xxx.hbm.xml)位置。
applicatioContext.xml是Spring的配置文件,描述了Spring的相關配置。
xxx.hbm.xml描述數據庫中的表和應用程序中的對象的映射關系。
3 信息系統軟件工廠插件的研發與應用
雖然ERP系統是面向生產制造類企業提出的。但是,從企業分類及涵蓋范圍來看,所有企業和事業單位的業務范圍均可歸屬于它的架構范圍。因此,ERP系統的工廠化插件可以是任何企業任何管理信息系統的開發模板和工具。通過工廠化組件應實現以下的開發效果:
(1)通過功能裁剪,實現目標系統所需功能模塊的自動生成。即通過對話框選擇目標系統所需的功能模塊。
(2)可進一步設定各功能模塊的相關參數。比如,倉存管理可設定為是否支持倉位管理,是否支持倉存管理策略,采用何種倉存管理策略,采購入庫采用何種操作流程等。
3.1 軟件工廠插件的研發
ERP是一個龐大而復雜的信息系統,不同的企業會有不同的功能需求和業務邏輯。因此,要研發一個能自動開發適合不同企業需求的管理信息系統的工廠化組件,必須建立ERP系統的最大系統模型,這些模型包括:
(1)最大數據庫模型
根據ERP系統最大功能模型建立數據庫,并對其中所有對象的屬性進行詳細分類。比如將物料屬性分為:基本屬性、外觀屬性、物流屬性、計劃屬性和成本屬性等。以便能滿足不同的目標系統的數據服務需求。
(2)子功能庫模型
對各子功能模塊進行詳細地分析和分解,并各自功能模塊建立子功能庫。
(3)業務邏輯庫模型
為功能庫中的每一個功能建立所有可能的業務邏輯模型,并為相應的模型定義代碼生成導語,一并構成業務邏輯庫。
系統庫模型建立好后,接下來就是開發工廠化插件。即開發一個能掛到Eclipse上的一個插件,該插件的任務是根據目標系統的功能需求和參數要求,利用系統庫模型自動生成完整的信息行架構。
3.2 軟件工廠插件的工作原理
信息系統軟件工廠插件主要是利用代碼自動生成技術,按信息系統的架構和Web站點文件部署架構要求,從ERP最大系統庫模型中提取功能子集生成目標系統的架構模型。工作流程如下:
(1)利用程序修改Eclipse的相關文件,以在Eclipse工作區中創建一個Web項目,并按Web站點部署結構生成相關文件夾和文件。
(2)根據目標系統的功能選擇,從ERP最大數據庫模型中生成目標系統的數據庫,并利用代碼自動生成技術生成數據訪問層的相關Java文件和配置文件,并導入相應的jar包。比如Model層的類、DAO接口和實現、Hibernate配置文件和映射文件等。
(3)根據所選擇的業務邏輯模型,按其對應的代碼生成導語,為各功能生成業務邏輯層的程序結構框架。
3.3 軟件工廠插件的應用
利用軟件工廠插件開發管理信息系統只能自動生成目標系統的數據庫、DAO層和業務邏輯層的結構框架,相對復雜的業務和視圖層、控制層的開發則只能通過人工開發。因此,軟件工廠插件只能實現信息系統的半自動化開發。使用工廠化插件開發時,首先將插件附加到Eclipse開發環境中,通過運行插件彈出目標系統需求對話框,輸入目標系統功能需求和參數要求,生成目標系統的結構框架和相關配置文件。最后,通過人工完善業務邏輯層及視圖層、控制層的功能。這樣便可以完成一個管理信息系統的開發。
4 結束語
ERP是一個龐大而復雜的管理信息系統,涉及的功能多,業務邏輯復雜且多樣化。要建立一個完整的ERP最大系統,需要對各模塊進行詳細的功能劃分,并為各功能建立所有可能的業務邏輯模型,這需要很大的時間和精力。筆者在研究過程中就人力資源管理子系統進行了嘗試,取得了較為滿意的結果,證明應用這樣的方法研究信息系統的軟件工廠技術是可行的。
【面向管理信息系統開發的軟件工廠技術研究的論文】相關文章:
面向對象軟件工程開發探討的論文04-27
面向對象的軟件工程開發分析的論文04-27
面向GIS測圖軟件開發04-28
開發組件軟件的論文04-27
仿真軟件開發中的面向對象設計04-27
面向對象的軟件工程需求分析方法的論文04-27
軟件工程在軟件開發中的運用論文04-27
軟件工程在軟件開發中的應用論文04-27
軟件工程開發與應用的論文04-27