摘要:针对科技项目管理系统重复开发问题,运用领域分析方法和开源框架技术,研究设计一个可扩展、可配置、松耦合的轻量级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年发表于《电子科技》)