面向管理信息系统开发的软件工厂技术研究
软件工厂技术是提高软件生产效率的重要方法,软件体系结构的规范化及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映射文件()、POJO对象、DAO接口和对象组成。其中,POJO对象为应用软件中的实体对象;hibernate映射文件用于描述了数据库中表与POJO对象的映射关系;hibernate配置文件则提供DAO数据访问对象负责提供数据库访问元操作,包括数据的增、删、改、查等功能,而且业界为其定义了标准的访问接口。
(2)业务逻辑层
业务逻辑层有Server对象构成,负责处理系统相对复杂的业务,按一定的逻辑顺序调用数据访问层的DAO接口访问数据库。
(3)控制层
该层主要由Struct Action对象和Struct配置文件()组成,主要负责响应视图层发起的业务请求处理和页面调转控制。其中,Action对象负责页面请求处理,配置文件负责页面调转描述。
(4)视图层
该层负责人机交互,为用户提供数据输入界面和数据处理结果显示。其核心是HTML+CSS,辅以JSP命令、JSTL标签和Struct标签。
2.2 Java Web站点文件管理
Java Web的站点结构是相对稳定的。基于SSH架构的Web站点结构如图2所示。
web站点根目录下,主要是站点首页()及各种web文件和资源文件,比如CSS、JS和图片资源(images)等。值得一提的是“WEB-INF”文件夹,它是Java Web站点十分重要的文件夹,其下面包含classes、lib两个重要的文件夹和web站点的配置文件。
Classese文件夹存放由Java源文件编译生成的字节码文件(.class)。
Lib存放站点所需要的jar文件。比如数据库驱动包、hibernate相关的jar文件等。
是站点的总配置文件,它描述了首页的访问顺序、struct映射等内容。
是hibernate的配置文件,描述了数据库服务器的地址及数据库访问的行馆配置,包括数据连接池参数的配置等信息。同时还告诉系统Hibernate的映像文件()位置。
是Spring的配置文件,描述了Spring的相关配置。
描述数据库中的表和应用程序中的对象的映射关系。
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最大系统,需要对各模块进行详细的功能划分,并为各功能建立所有可能的业务逻辑模型,这需要很大的时间和精力。笔者在研究过程中就人力资源管理子系统进行了尝试,取得了较为满意的结果,证明应用这样的方法研究信息系统的软件工厂技术是可行的。
作者:罗明山 来源:海峡科技与产业 2016年11期
上一篇:嵌入式软件开发中的软件测试流程