基于配置的MIS系统开发框架设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于配置的MIS系统开发框架设计与实现作者:曹翔郤志国
来源:《软件导刊》2014年第02期
摘要:为了减少MIS系统开发过程中的重复编码,提出了一种基于配置的MIS系统开发框架。

介绍了该框架的工作原理,针对框架内核3个主要部件的设计展开了详细讨论,并根据该框架的实际应用情况对其优点及不足进行了总结。

关键词关键词:软件工程;软件复用;MIS
中图分类号:TP311
文献标识码:A 文章编号:16727800(2014)002010503
0引言
应用软件系统的开发大体上包含以下几个阶段:需求分析、设计、编码、测试和维护等。

若每个应用系统的开发都是从零开始,在开发过程中必然存在许多低水平重复劳动,使开发者将时间浪费在一些琐屑乏味的工作中,无法将更多的精力集中于系统关注的业务逻辑,在更高的抽象层次上来考虑应用系统的各个方面。

探究应用系统的本质,不难发现其通常包含3类成分:①通用组件:特定于应用系统的构成部分,如基础数据、用户界面元素等,它们存在于各种应用系统中;②领域组件:应用系统所属领域的共性构成部分,它们存在于该领域的各个应用系统中;③应用组件:每个应用系统的特有构成部分。

应用系统开发过程中的重复劳动主要存在于前两类中[1]。

为了减少应用系统开发过程中的机械性重复,提高软件开发人员的生产效率,各种新技术应运而生,如基于组件的开发[2]、基于框架的开发[3]、基于插件的开发、基于中间件的开发等。

然而,目前这些技术只能在应用系统中比较高的层面上解决一些问题(如系统架构),具体的底层工作仍然需要由开发人员来完成,其中存在着许多可以被抽象的成分,例如:①基础数据的维护需要提供专门的界面来支持数据的增加、更新和删除操作;②业务数据的查询也需要提供专门的界面。

随着系统规模的扩大,以及数据种类的增加,不得不为每种数据类型编写相应的程序及界面,不仅费时费力,且容易出错。

为了在MIS系统的开发中解决这个问题,本文提出了一种基于配置的MIS系统开发框架(CFMIS,Configurable Framework For Management Information System)。

其主要思想是:对通用组件以配置的方式操作,将大部分通用组件的操作封装在框架之中;对领域组件和应用组件以扩展接口的方式实现,使开发者将更多的精力集中在这两方面的设计与实现上。

1CFMIS的概念
1.1配置的定义
可配置是一个灵活敏捷的应用系统的基本特征之一,其可配置程度越高,则系统越灵活,开发难度也会相应提高。

不同于应用程序的可配置概念,本文所指的可配置主要集中于MIS 系统的开发过程,即基于配置机制来实现MIS系统的开发方法。

基于配置的软件开发,前提是必须提供一个支持配置机制的框架,在此框架上进行应用软件的开发。

框架定义用于配置的各类元数据,开发者通过配置元数据进行MIS系统的开发。

对于通用的操作,利用框架提供的配置可以减少重复编码;对于非通用的操作,框架提供了可被扩展的接口,以灵活的方式支持应用软件开发的全过程。

CFMIS采用两种方式作为配置媒介:DBMS和XML文档。

DBMS用于对框架中较为复杂的元数据进行配置,而XML的易用性则使配置信息的解析变得相对轻松。

1.2CFMIS简介
数据是MIS系统的基础,任何一个MIS系统最终都是对数据进行处理,因此可以认为,MIS系统是以数据为中心的应用软件系统。

因此,对数据的维护和查询是每个MIS系统必不可少的关键部分。

设计CFMIS的目的正是为了简化这方面的开发工作,通过配置机制让框架生成数据的维护操作、查询及相应的界面。

MIS系统中的数据可以分为两种类型:基础数据和业务数据。

基础数据对其它数据的依赖性较小,而业务数据可能与其它数据有较大的依赖。

CFMIS对操作基础数据直接提供支持,对操作业务数据保留了扩展的接口。

MIS系统中的数据操作界面也可以分为两种类型:查询界面和操作界面。

CFMIS用XML 配置文件生成数据的查询界面,用DBMS的配置信息生成数据的操作界面。

图1是CFMIS的总体结构图,其中数据源用于存储MIS系统中涉及的数据;配置源用于存储配置信息;框架内核主要包含3个部分:配置工具、解析器和数据操作引擎;MIS应用利用框架的解析器和数据操作引擎生成操作页面及具体操作;客户端指浏览器(IE6(7)、Firefox)。

2CFMIS设计与实现
2.1配置工具
配置工具是一个核心模块,它定义了CFMIS中配置信息使用的元数据,其作用类似于数据库中的表管理器,用来定义表及表中的字段。

除此之外,配置工具还提供了其它配置信息:
该字段的控件类型、是否可见、排序值、是否使用公式、格式验证等。

由于其复杂性以及对界面解析生成的速度要求,采用DBMS作为其配置源。

图2是配置工具的ER图,其中Systbl:定义表;CTblColProp:定义表中的列;CtlType:定义界面的控件类型;ColType:定义字段类型;Bind:定义约束关系。

CtlType定义的控件类型如下:文本框、选择框、下拉框、表单、按钮、文本、多文本框、公式、表单公式、人员选择面板、日期选择、文本选择、多绑定标签。

可以通过增加控件类型及相关的解析程序来扩展CFMIS的控件库。

Bind主要用于管理建表/字段过程中引入的约束关系,可以防止建表/字段过程中的循环依赖,或删除一个表/字段时引起的引用丢失等问题。

如表A中的字段C1引用了表B中的字段C2,则会在Bind表中有一条描述该关系的记录,若直接删除表B中的C2,系统则会给予警告,说明表A中的C1存在引用C2,要求先解除该引用关系后才能继续删除操作,这样就避免了潜在错误。

利用配置工具建表和字段的同时,框架自动在数据库中生成实体表。

根据表之间的引用关系,框架自动创建相应的外键。

为了防止命名冲突,建表或字段的时候,框架根据命名规则对之重新命名,同时自动生成/更新使用原表名和字段名的视图以解决可读性的问题。

2.2解析器
解析器用于根据配置信息生成界面,其接受两种类型的配置信息:①由XML文档描述的配置信息;②由1.1节介绍的配置工具产生的配置信息。

图3是解析器的运行方式,其中线上标注①的是适用于由XML文档描述的配置信息,线上标注②的是适用于由配置工具产生的配置信息。

类型①的配置信息被解析器用于生成查询界面,页面以表格的形式展现数据集。

对查询结果的每一条记录可以绑定更新数据、只读数据等页面;删除数据不需要界面,因此无须绑定界面;如果需要,还可以对该数据集绑定增加数据页面。

所有的绑定需要指定表名,在XML配置文档中指定;如果是更新、删除或者只读数据等操作,需要提供记录的主键,框架自动对每条记录绑定主键。

框架根据这些绑定信息调用对应的操作界面。

类型②的配置信息被解析器用于生成单条数据的操作界面,包括增加、更新和只读等页面。

配置信息中包括了所有字段使用何种控件、如何验证字段取值格式、字段在界面中的排序等信息。

此外,框架提供了对页面特殊操作的接口,比如,若只显示所指定的字段,则提供要显示的字段集合,框架加载页面时将只显示这些字段;若只隐藏所指定的字段,则提供要隐藏的所有字段集合,框架加载页面时将只隐藏这些字段;同样还可以用于启用或者禁用指定的字段集合;加载页面时执行开发者扩展的接口等。

解析器是框架生成页面的核心部件,其本身是基于接口设计的,因此可以以非侵入的方式对原有框架代码进行扩充而不用担心影响既有代码的运行。

假如框架要对一种新媒介的配置源进行解析,实现相关接口即可。

解析器生成的页面是HTML格式的,因此框架在页面中主要使用JavaScript来进行页面的DOM操作,其动态语言的特性使得编写动态页面变成一件有趣的事。

2.3数据操作引擎
数据操作引擎是数据维护与查询的核心部件,如图4所示。

它可以分为两个部分:①数据加载器:接受两个参数(表名和记录主键),输出一份XML格式的数据集;②数据维护器,授受两个参数(XML格式的数据集和模式),执行操作后返回执行结果。

数据加载器输出的数据与数据维护器接受的数据格式是相同的,统一格式的数据能够在框架的操作中带来极大便利。

数据可以分为基础数据和业务数据,但是数据维护器的执行过程是一样的。

研究发现,通过配置可以实现对数据进行业务逻辑的操作。

无论是增加记录维护、更新数据维护还是删除数据维护,所有对数据的操作都会调用一个预定义的接口,该接口会查询一张扩展接口配置表,然后根据当前执行操作的数据所属表名及操作模式查找该表,若没有找到记录,则接口调用被忽略;否则,根据找到的结果(此结果定义了对该表该模式下实现数据操作接口的名称)进行调用,执行业务逻辑。

不难发现,对于基础数据,通常无需配置该表,其结果就是直接进行数据维护;否则,就根据实现的业务规则进行数据维护。

举例来说,表A为库存表,表B为借用表,此时往表B中增加一条记录C,需要在表A中的关联记录中减去记录C的数量,这时通过实现一个支持此操作的接口函数即可,框架程序会在表B的记录插入时自动去执行。

数据维护器根据输入的XML数据(此数据中包括语义信息)生成动态SQL语言,并使用事务机制确保数据的一致性,同时有日志系统负责记录出错信息,以便对错误进行定位和调试。

3结语
CFMIS框架采用了较多的技术,主要包括 2.0、HTML、JavaScript、CSS、Ajax、Oracle 10g、PL/SQL、Java、XML、XPATH。

从设计、编码、测试到版本冻结,历时两个月。

为了检验其实用性,笔者所在团队将该框架实际应用于一个项目的开发当中,获得了较好的评价。

由于框架帮助开发人员实现了许多底层操作,提高了软件生产率,降低了开发成本,缩短了开发周期;框架程序经过长时间的严格测试,结合日志系统,提高了软件的健壮性和安全性;开发者将更多的精力放在业务逻辑的实现上,提高了软件的可用性和易用性。

根据实际使用结果,源代码量减少了30%~40%,开发时间减少了约1/3。

当然,CFMIS本身还存在许多需要改进的地方,比如,解析器和数据操作引擎的效率还有待优化、配置工具的使用目前较复杂、内置的控件类型种类不够丰富等,这些都是后续需要重点考虑的问题。

参考文献:
[1]杨芙清,梅宏,李克勤.软件复用与软件构件技术[J].电子学报,1999,27(2).
[2]周晓锋,刘馨月,张靖波.基于可重用组件技术的软件开发方法[J].信息技术, 2005(11):139141.
[3]王成耀,姚琳.基于可重用框架的软件开发模式及其应用[J].计算机应用研究,2003,20(1): 4951.
(责任编辑:孙娟)。

相关文档
最新文档