摘要:本文分析了多中软件复用技术的优点与缺点,通过对各类管理信息系统的特点分析,结合部件技术与作者多个管理信息系统的开发经验,探讨了通过构建一个基于部件的良好的开发平台实现快速高效的开发管理信息系统的方法,给出了具体的架构与实现方案。
关键词:部件;开发平台;自适应;软件复用;
1、软件复用技术概述
软件复用是伴随软件发展的永远的话题,它指同一软件组织可以不做修改或稍加变动就可以在其他地方使用。包括代码重用、设计文档重用、分析结果重用等等。现代软件复用起始于面向对象的出现,目前复用的代码类产品有:类与对象、构件、中间件、框架、部件、开发平台等。
部件是一个应用程序的封装体,它提供一类应用程序公共结构,通常包括多项功能,互为补充,具有特定性能集,共同为一个具体业务工作服务。在使用中与构件不同,常通过定义接口参数或其他方式进行分解,抽取部分功能构成实用程序模块,因而一个通用部件常在不同系统、不同工作、为实现不同性能而共享。这样部件包括了界面设计的内容,实现了界面自动生成,是一个完整的、成熟的、模块级的程序代码软件。其数量远少于构件,实际是框架与生成器的集成,考虑了安全性、数据完整性、事务性、代码应用、派生数据处理、工作流控制与具体的数据流实现等实际应用程序必须解决的问题,接口简单,易学易用,具有即插即用特性,有很强适应性或自适应性,用来构建系统时只要根据功能、性能、界面的要求选择不同的部件,再提供必要的参数,就能像搭积木一样构建应用系统。其应用能更明显提高系统开发效率与质量,程序模块有高度一致性、标准规范性、高度开放性、高度可维护性与可扩展性,尤其是其高度适应性,具有很强生命力。该技术允许多人协同工作,为快速原型法技术提供了原型的来源,是人们所期望的软件复用领域的高端产品。
2、通用部件的结构
通过对大量管理信息系统结构的分析与归纳,我们认为一般信息系统模块大多由下列模块构成。
⑴数据表维护程序,包括:
①使用文本柜、编辑柜等作人机界面的单记录数据维护程序。其功能常有如下内容:录入数据功能,应有添加和存盘不同操作手段;修改、删除功能,应有丰富查找手段;索引,排序等功能;打印简单报表功能;批修改功能。常要求提供各种帮助方便录入的手段。②使用表格人机界面的数据维护程序,常有功能与上类似。③各种一对多表数据维护与查询程序。对一方表操作时能显示多方表相关联的全部数据;对多方表数据维护时,一方相关联的数据能自动填入。
对各类数据表维护程序常常要求在输入操作过程中同时能进行数据处理、数据测试与检验、数据变换、数据自动填入,常要求实现数据安全性与数据完整性保护。
有些程序要允许用户在自动生成基础上进行界面的修饰或再布置,修饰与再布置时不需要修改程序。有些要求具有学习功能,通过操作自动定义界面形成最终部件。对各种程序的界面要提供自动生成、可视化生成、在自动生成基础上修改界面结构数据表再生成界面等多种建立方式。
⑵导入与数据下载程序,包括:
①从各类文本导入。②从数据表导入,常要求允许字段名改变、允许作代码转换、允许按公式变换。③将网上数据表数据导入到系统表中,要求同上。
⑶导出与数据上传程序,要求实现上面各类导入的逆操作。
⑷系统管理程序,常包括:代码库、字典表、接口参数表维护程序,各种要求的清库程序,用户管理程序等。
⑸各种对单表或多表的查询与检索程序:例如单条件查询,组合查询(包括模糊查询、对字段的子集构成的查询、对聚集构成的查询),全文检索。查询结果常要求能选择字段输出。
⑹统计与报表程序,常要求能按任何字段或任何字段的子集分组统计;能作求和、平均、最大、最小,记录数,方均值等统计;能按用户指定的公式进行统计;能对多个统计结果作求并集、交集、求差处理。能按任何二个字段之间数据关系进行统计;能以指定格式的表或图的形式打印或显示统计结果。
⑺各种系统框架,例如主程序、各种菜单与工具条,登录界面、目录树程序、工作流控制程序。
⑻各种数据分析程序,例如预测程序,各类数据回归分析程序,按指定算法分析的程序。
⑼各类决策程序,例如计划程序、排产程序、各类规划程序。
⑽帮助系统,常要求以目录树、表格或其他形式控制,要求能提供文字、图形、声音等多类帮助信息。
2005年我们研制成功了基于J2EE的、包括上述各类型、可以通用于各类管理系统、高度独立于数据结构、接口简单,使用方便的有高度即插即用特性与自适应性的管理信息系统一系列软部件,为深入研究打下了良好基础。
2.1开发平台的设计
本文所论述的管理信息系统及平台的开发语言都是选用JAVA语言,并且在具体的业务逻辑开发过程中采用Struts框架。基于该框架设计了开发平台的架构,其结构如图1所示。大方框中为开发平台的结构图,通过外部的业务逻辑代码对平台进行调用。平台由四个平台组件构成,分别是界面设计引擎、权限平台引擎、功能平台引擎和组合控制引擎。
功能平台引擎处于核心位置,它不仅是连接外部业务逻辑的枢纽,更起着组织和连接其它平台引擎的作用,它是整个平台的中心它主要由 B(Enterprise Java Beans)组成,其主要工作之一是访问部件库,选择合适的部件加入到系统中,并根据其它引擎提供的数据作为调用参数提交部件使用。相关的基类进行调用就可以了。另外,更为重要的是在设计基类平台组件时,还要考虑到与其它平台组件的相互关系,怎样进行合理的布局,合理的功能划分,进而确定功能接口的设置,要实现与其它平台组件的有效集成和对其它平台组件功能的调用。
2.2工作流平台组件
工作流是在一个业务处理过程中的信息流和控制流。信息流就是部门之间传递的各种文档、消息和数据。控制流决定了在那些部门之间传递信息,以及传递的次序。工作流系统的任务就是高效管理单位的业务处理过程中的这种信息流和控制流。
通过工作流平台组件,可将企业内部各个业务部门串联起来,组成一个工作流处理的系统平台,可以处理客户报帐、报修、日常营业、投诉举报以及电力生产部门日常的工作票、操作票、工作单等一系列异步服务。在流程服务器的支持下,管理信息系统的流程管理系统作为工作流管理引擎,通过与现有工作流程的紧密结合,完成对异步服务请求的转发、跟踪和反馈,提高了工作效率,促进了企业管理。
现在的管理信息系统,有许多工作要多个业务部门来共同完成,比如警务管理信息系统中的逮捕申请,物流管理信息系统中的物品出库,用电管理信息系统中的配电审批等等。而这些业务如果用工作流来处理,不仅有较高的安全性,而且保证了实时性,所以我们要在平台中添加这个组件,它将大大的减少编码的工作量,并且提高系统处理此类业务的能力。
2.3 报表平台组件
在开发管理信息系统的过程当中经常遇到客户会提出这样的要求,把在管理信息系统中的一些数据导出为WORD,EXCEL格式或者是.PDF格式的文件甚至是数据库文件,以留做它用。这样的情况在我们做项目需求时经常遇到,如果对每一套要开发的系统都去写代码来完成这项工作的话,工作量是非常大的。因此我们可以在系统里集成一套报表系统,即报表平台组件,这样就可以解决这个问题,而且在做项目的过程当中发现,这些需求相对来说是固定的,因此,有了这个平台组件,我们基本上是可以一劳永逸。报表平台的组件的开发要看本公司的系统面对的客户的需求,尽最大的可能满足客户的需求,这样在系统中集成的平台组件才能更加有效的发挥它的作用。
2.4 权限平台组件
权限往往是一个极其复杂的问题,针对不同的应用,需要根据项目的实际情况和具体架构,在维护性、灵活性、完整性等N多个方案之间比较权衡,选择符合的方案。
(1)权限平台组件的作用
①登陆作业:验证用户身份,并进行权限判断。 ②用户设定:该作业用来给用户选择所属的用户组。您可以修改用户的用户名称、删除用户,可以把用户从所属的用户组中移除。当然,也可以在该作业中建立新的用户。 ③组别设定:该作业用来设立用户组,并在用户组中添加用户。您可以修改用户组的组别名称、删除用户组,可以从用户组中移除用户。④权限设定:该作业主要是分配用户组、用户组下的用户和独立用户在使用系统程序作业时的操作权限,比如新建、修改、删除、保存、打印等功能。 ⑤个人菜单:设置快捷区和个人菜单,方便用户快速打开操作作业。
(2)权限平台组件的目标及要求
①直观,对于维护人员来讲,权限分配的直观和容易理解,显得比较重要,系统不辞劳苦的实现了组的继承,除了功能的必须,更主要的就是因为它足够直观。 ②简单,包括概念数量上的简单、意义上的简单和功能上的简单。想用一个权限系统解决所有的权限问题是不现实的。设计中将常常变化的“定制”特点比较强的部分判断为业务逻辑,而将常常相同的“通用”特点比较强的部分判断为权限逻辑,就是基于这样的思路。 ③扩展,采用可继承在扩展上的Group概念,在支持权限以组方式定义的同时有效避免重定义。
3、 平台组件的集成
各个平台组件在明确了相应的功能之后,通过有效的集成,才能构成一个完整的开发平台。要做到这一点,需注意以下几个方面:
(1)在设计基类平台组件时要充分明确其要完成的作用,这样在基类当中有足够的KIB与其它平台组件实现对接,以完成对其它平台组件的功能调用;
(2)所有的平台组件在开发的过程当中要针对其功能留有丰富的接口,这样才能有效的调用平台组件,接口的设置主要是考虑平台组件的功能来设定。另外,各个平台组件留有足够的接口以备功能扩展和升级.
点此咨询学术顾问 快人一步得到答案