可配置软件系统的研究

时间:2022-10-23 05:52:05

可配置软件系统的研究

摘 要 本文首先提出了研究可配置软件系统的目的和意义,接着阐述了软件系统可通过哪些方式进行配置,然后深入阐述了可配置软件系统,最后对全文进行总结。

关键词 基于角色的访问控制;软件可配置;数据配置;界面配置;流程配置

中图分类号:TP391 文献标识码:A 文章编号:1671-7597(2014)20-0086-02

1 软件系统开发的现状

近几年笔者一直在从事冶金行业的软件系统的开发工作,取得了许多经验和教训,其中一个深刻的体会是需求的不断变化,特别是当用户对于如何应用软件系统并没有一个成熟的经验时,在项目进行中用户会频繁的改变和增加各种要求,为了满足这些需求,开发人员往往会浪费大量时间进行各种重复的编码。为了适应需求的变化,必须采取不同的设计态度,可配置软件就是解决这个问题的一种办法。当需求发生变化时,软件功能不需要重新编写程序,仅通过界面配置就可以满足用户需求。

可配置软件系统的面向的对象有以下两个。

1)面向用户的配置。当用户需求发生变化时,用户使用软件系统中已有的功能对系统软件进行自行修改,修改完毕后保存配置,系统不需要进行编译即可自动适应配置后的结果,这是理想的可配置软件系统。

2)面向开发人员的可配置性。将系统常用的功能集成形成系统框架,开发人员无需考虑底层的技术细节,可以完全专注于业务逻辑的设计,不必再为底层技术系统劳神费力,从而极大的提高开发效率和软件项目的实施时间。

在使用分层技术进行分解软件系统时,最基本的三个层次是表示层、业务逻辑层和数据层,软件系统相应的可配置性也集中体现在这三个层次中,具体如下。

1)数据可配置。目前大部分信息软件系统都是通过数据库软件进行数据的存储和查询,数据库的设计一般在应用软件设计之前进行,当用户的需求变化需要修改数据库结构时,往往需要开发人员重新修改数据库结构和程序后台代码,费时费力。

数据可配置指可以在应用系统内部通过已有的功能修改数据库结构,修改完毕后可自动生成相应的数据库操作方法,供软件其他部分调用,无需重新编译即可自动适应调整后的结果。

2)界面配置。指软件系统能通过各种不同的形式来展示数据源配置的结果。界面配置可分为两个方面,1)界面定制:能够对界面展示的形式进行调整以满足用户的个性化要求;2)界面控制:能自动适应数据结构的变化,在界面中自动添加或修改相应的数据项。

3)流程可配置。指用户可利用软件系统调整业务处理流程和处理方法,并且软件系统可从多种途径完成相同的任务,同时软件系统中存在多种功能或功能的组合来完成用户相同的

需求。

2 可配置软件系统的解决方案

2.1数据可配置的解决方案

1)横表转纵表存储。在数据库设计时就应考虑可配置因素,传统的数据库设计方案是二维信息集,一个操作界面对应一个数据库表;这这种方式简单、直观,但是可配置性较差。当出现需求变动的时候需要改动程序,往往效率较低。

横表转纵表存储的解决方案是将传统的横表拆分为3个纵表形式的扩展表,包括数据定义表、列定义表和列值表。

例如,原表人员信息表包括:ID、姓名、性别、出生日期、所在单位、职称、级别、学历这几个字段。拆分后的扩展表如下,数据定义表:表名。列定义表:列名。列值表:Value_ID,Column_ID,Column_Value。

当需要扩展一个新的字段时,只需要在列定义表中添加新的字段名,然后在列值表中添加列数据即可。

查询时采用纵表转横表的技术得到和原表相同的查询效果,数据量较大时的性能问题可以通过索引、分区、符合索引等数据库手段进行优化。另外,可以引入ORM数据持久化框架,并提供对象设计器实现所有的业务对象和数据表都动态生成,从而实现数据可配置的功能。

2)弹性字段。有些软件提供了弹性域来实现数据结构的可配置性,一个弹性域由多个段来组成,每个段是数据库表中的一个列。

弹性域又分为关键弹性域和说明性弹性域,关键弹性域主要用来决定表单的主键,它允许根据需要使用任意的代码组合以描述实体;说明性弹性域提供了扩展表单的空间,系统可以使用说明性弹性域来获取业务所特有的重要附加信息。

例如,账户字段是一个关键性弹性域,它由“公司”+“部门”+“科目”+“子目”+“分类”+“项目”六个段组成。在其他的公司中,可以将其定义为由“公司”+“部门”+“科目”这三个段组成的弹性域,也可以增加其他的段,将其定义为七个段组成的弹性域。

为了说明每笔体现业务对应的支票编号,在说明字段中设置了一个说明性弹性域,它由一段组成,每次录入的段值将保存在凭证行表中的atrribute1表列中。

2.2表示可配置的解决方案

1)界面定制。界面定制指能够对输入和输出的形式进行调整以满足用户个性化的要求。

例如,目前在许多ERP软件中已实现的个性化显示排序和查询功能,对任意一个表单,单击显示/排序功能键,可以自定义其字段是否显示和表单中字段显示的顺序。

用户可以勾选显示框来调整当前字段是否在界面中显示,同时设置显示宽度,并按自己的偏好对表单中字段的顺序进行排序,决定哪个字段在前哪个字段在后;当用户设置好显示顺序与显示字段后可以保存方案,下一次界面载入时自动调用该用户所偏好的方案。

另一个例子是组合查询方案,这个功能可以使用表单所有的字段进行逻辑组合条件的查询,方案同样也可以保存,界面载入时用户可以调用他所偏好的查询方案,这样也避免了软件开发人员每次都定制开发界面上的查询条件。

主要方法是使用配置表或配置文件保存用户的个性化配置信息,在平台的表示层中预留接口,展现数据时每次都动态读取该配置文件,按配置文件生成查询表达式来对源数据集进行筛选,如果不存在配置信息则直接使用源数据集展示数据。

2)界面控制。界面控制指能自动调整输入、输出、查询界面以满足数据结构的变化。

可以使用界面生成器的方式来完成系统中用户界面的自动生成。在管理系统中最主要的用户界面有两种:批量数据查询界面和单个数据管理界面,由于这两种用户界面的功能大不相同,因此需要在平台系统中为这两类用户界面分别设计两种界面生成器。

可配置界面生成器主要是基于解释器的设计模式进行开发的,主要包括三个部分:配置文件的设计、用户界面解释器的设计,输出结果的设计。

①配置文件的设计。使用XML文件来形成配置文件,其中主要定义了界面中控件的组成和布局信息。

配置文件如何生成的算法是其中的难点:如果是批量数据查询界面,可以将数据源中的数据直接绑定到列表或表格组件中;如果单个数据管理界面,首先需要遍历数据结构中的需要显示的属性,然后根据属性类型形成相应的组件,如String类型的属性形成TextBox组件,DateTime类型的属性形成DataTimePicker组件等等;然后再根据相应的算法计算出所有组件的位置布局信息;最后将这些信息写入配置文件。

②解释器设计。解释器的主要作用就是对指定配置文件中的相关规则和配置信息进行读取,根据读取的信息利用反射机制产生相关控件并正确的生成用户界面。因此解释器的设计内容主要包括:控件定位算法的设计、配置文件解析方法的设计、以及根据配置文件生成相关控件方法的设计。

③输出结果的设计。接收解释器产生的控件信息,并正确的生成用户界面。

2.3流程可配置的解决方案

大部分软件都使用工作流引擎来实现,工作流引擎有两个重要的作用:

1)帮助开发人员降低业务处理复杂度,避免流程逻辑的

开发。

2)降低软件维护过程中因为流程变化所带来的维护量。

工作流引擎需要实现的功能包括流程的解析、资源的分配和逻辑的控制的等工作,主要体现在以下两个方面。

1)工作流引擎是流程的状态转换机,工作流引擎的任务是按照设计好的业务流程来控制实例的状态转换。

2)工作流引擎同样也是流程的路由控制器,其作用是按事先制定好的公式对当前流程状态进行解析,找出流程下一步的流向,进行实例逻辑处理,使流程向下转换。

工作流引擎在多数软件应用系统中是由用户或实施人员来设计相关业务流程,因此一般会要求具有图形化的操作界面,包括流程设计器的图形化界面,设计时使用简单易用的拖拽方式就能设置流程;应用时可随时通过图形化的流程图让用户查看流程运作情况,能非常直观的感觉到流程运行状态;也要求操作便利,提供各种方式让用户方便的快速设计业务流程。

此外,工作流引擎还必须支持各种流程特性,包括串行流程、并行流程、子流程、条件路径、可设置条件人员、可设置权限、机构、还包括中国特有的会签流程等等,流程定义工具要求必须能够满足以上所有流程特性。

3 结论

通过本文介绍的可配置软件系统,可以简化软件开发,开发人员无需考虑底层的技术细节,例如:数据库、序列化、反射等等。所有这些功能都内建在配置化软件系统中,使用它的开发人员几乎可以完全专注于业务逻辑的设计,不必再为底层技术系统劳神费力,从而极大的提高开发效率和软件项目的实施时间。

参考文献

[1][美]Rockford Lhotka著,侯伯薇 译. C#企业应用开发艺术框架开发实战. [M].人民邮电出版社,2011.

[2]温昱 .一线架构师实践指南. [M].电子工业出版社,2009.

作者简介

张忭(1983-),男,湖北武汉人,工学硕士,主要从事冶金行业软件开发工作。

上一篇:水源热泵技术在实际工程中的应用 下一篇:变压器储油柜的运行与维护