APP下载

基于数据变化自适应的应用软件开发平台研究

2015-07-18

中国新技术新产品 2015年22期
关键词:执行器字典定义

陆 维

(上海应用技术学院 计算机科学与信息工程学院,上海 201400)

基于数据变化自适应的应用软件开发平台研究

陆 维

(上海应用技术学院 计算机科学与信息工程学院,上海 201400)

由于软件开发的对象面向各种应用领域,用户需求中的数据需要软件工程师花费大量精力进行学习,另外,由于需求变更,这些数据经常需要修改,而用户又无法对数据进行定义和维护,从而形成软件开发和维护的瓶颈。针对以上问题,本文设计了基于数据变化自适应的应用软件开发平台模型,研究了平台的运行机理与流程,并通过S2SH框架技术对平台进行了开发,实现了数据可以从应用软件中分离出来,以简单的形式定义在平台中,由平台进行解析并获取结果,反馈给应用软件。实验表明,通过平台开发的应用软件,可以实现数据和规则的用户自定义,面对需求变化引起的数据变化,平台可以自动进行调整,应用软件无需进行任何调整,提高了开发和维护的效率。

软件开发平台;软件自动调整;数据变化;需求变更

1 引言

近年来,软件产业快速发展,人们对软件的开发周期和质量要求越来越高,传统的软件开发中,由于专业领域的不同,需求分析需要耗费大量的时间和精力,特别是在用户业务规则和数据定义上,并且需求的变化对软件质量影响较大,成为了开发的瓶颈。国内外众多学者与工程师对服务组装、软件自动化等方面进行了研究,形成了部分研究成果与产品,但是未解决以下两个问题:

(1)需要专门的工程师获取完整的用户需求,并转化为系统能够识别的表示形式。这些表示往往比较复杂,用户很难进行直接定义与维护。

(2)当需求出现变更时,生成的应用系统需要重新配置、编译。

针对以上问题,本文研究了基于数据变化自适应的应用软件开发平台,从应用软件中分离出各类数据与规则的定义与维护,软件工程师可以通过平台开发应用软件的框架与界面,用户可以在平台上定义、维护数据与业务规则,减轻了需求分析的难度,节省了维护的费用,实现了数据与软件的分离,从而实现数据变化,应用软件无需调整的目的,减少了软件回归测试与部署的工作量,提高了软件的可靠性。同时,在平台中定义的所有数据可以实现共享和复用。

2 平台体系结构设计与工作原理

2.1平台体系结构

平台包括知识库和执行单元集。体系结构图如图1所示。

其中,知识库包括:

(1)数据字典

它用来存储用户数据和数据来源,同时记录获取数据的应用描述,以便获取不同来源的数据,包括数据库、XML、文本、设备等。

(2)规则库

应用软件中的有些数据需要通过用户规则对多个数据运算得出,规则库用来存储这些规则。

执行单元按照一定的流程完成特定功能,包括:

①控制器单元

它是平台的核心,维护着平台的运行策略,当应用软件需要获取数据结果时,对其他单元的工作进行协调。

②执行器单元

它负责解析知识库中数据字典中的数据描述,解析规则库中的数据规则,并获得数据结果。

③数据获取单元

它负责执行不同数据来源的应用,实时获取数据,并满足对数据来源定义的“开-闭”原则。

2.2 平台工作原理

在平台运行模型中,各单元按照既定运行策略完成系统的特定功能,图2给出了应用软件中需要某一用户数据结果时,平台单元执行的流程。

图中,当平台收到应用软件获取数据结果的请求信息后,控制器单元调度执行器单元,并把相关信息传输给执行器单元。执行器单元根据接收到的信息在知识库的数据字典与规则库中进行查找,解析,并把解析后的结果反馈给控制器单元。控制器单元调度数据获取单元,同时向其传输执行器单元的解析信息。数据获取单元根据信息执行获取数据的应用,并把获取的实时数据结果传输给控制器单元。

当应用软件获取的数据在数据字典中有直接定义时,经过上述一次流程即可得出结果,当在数据字典中没有直接定义,而是在规则库中有定义时,需要对上述流程进行递归执行。获取数据的流程如图3所示。

图中,当应用软件所需数据在数据字典中有定义时,可以通过平台单元的工作流程直接得出结果,否则从规则库中获得规则的定义,该规则可能包括常数、规则和数据,对于规则和数据,递归执行上述过程,直至获取所需的各数据结果,最终通过运算得出总结果。

图1 平台体系结构

图2 平台单元工作流程

图3 数据获取流程

图4 平台架构图

3 实验

3.1 平台应用开发

平台由S2SH框架整合开发完成,数据库服务器使用MySQL,应用开发框架包括五个层次,并配置信息安全管理体系,以保证信息的安全和完整性,平台的应用开发架构设计如图4所示。

(1)表现层主要负责平台的对外接口,完成平台与用户及应用软件的交互,采用ExtJs技术完成RIA的应用,通过与Struts2整合后,以Jsp作为输出页面。

(2)控制层主要负责数据的访问控制,对发送来的请求进行筛选和处理,将可执行的请求转交给业务层进行处理,将错误请求转交给错误处理程序处理。本层采用了Struts2框架的技术,当该层得知业务层完成处理请求后,发送相应的页面给表现层,本层的数据交换使用了JSON格式。本层包括用户信息控制器,它负责平台与用户信息的控制转发。

(3)业务层负责接收控制层转发的请求并进行处理,该层使用Spring容器管理业务Bean,增强了业务间的交互性,也减少了业务间的耦合程度。同时启用了Spring基于注解的模式,有效地减少了配置的代码量,增强了系统的可控性。该层包括执行器单元和数据获取单元。

(4)持久层负责对数据进行持久化管理,运用Hibernate框架技术,对数据库进行管理,整合Spring后,将相关的配置工作转交给Spring容器负责管理,减少了配置数据库的代码量。

(5)核心层包括控制器单元,协调平台各单元的工作,完成平台功能。

3.2 实验内容

在实验中,设计并实现了如下场景:应用软件中需要用到数据“score”,第一次需求要求“score”来自于一个Web应用程序,然后需求变更,要求“score”来自数据库。

在基于本文平台开发的应用软件中定义、使用数据“score”,但不描述如何获得数据的值。对于第一次需求,“score”可以直接从Web应用程序中获取,因此用户可在数据字典中定义表1所示内容。

数据“score”获取了IP地址为“192.168.1.111”,端口号为“80”,名称为“StudentSta”传来的数据。

对于第二次需求,数据库中有名为“StuScore”的表,表中有三个属性“MathScore”、“ChineseScore”和“EnglishScore”,要求score=0.3* mathScore +0.5* chineseScore + 0.2*englishScore。因为“mathScore”、“chineseScore”和“englishScore”可能再用于应用软件的其他数据,因此把他们定义在数据字典中。数据“score”的获取需要用到数据字典中三个数据,因此定义在规则库中,见表2。

数据来自于连接字符串为“jdbc:mysql://localhost:8088/appdemo”,用户名为“root”,密码为“123456”的数据库。

数据“score”获取了数据字典表中三个数据经过计算的结果。

通过实验可以看出,通过本文平台开发的应用软件的数据可以定义在平台中,无需在应用软件中进行描述。数据的定义与维护非常简单方便,用户可直接进行操作。当需求变化后,平台可以进行动态调整,应用软件无需进行任何调整。

表1 数据字典主要属性实例

表2 数据规则主要属性实例

结语

针对软件工程中数据与规则灵活化的目的,本文设计了基于数据变化自适应的应用软件开发平台,对平台体系结构进行了设计,确定了平台各单元的工作原理和流程,并以S2SH框架技术对平台进行了实现。实验表明,通过平台开发的应用软件,数据的定义和维护方便,提高了开发和维护的效率。对复杂数据的自适应研究是将来的研究工作。

[1]赵亮,黄志球,刘林源.Web服务组装中的隐私暴露分析方法[J].计算机科学与探索,2012,6(04):319-326.

[2] Shalloway A,Trott J R.设计模式精解.熊节,译.北京:清华大学出版社,2005.

TP391

A

猜你喜欢

执行器字典定义
开心字典
开心字典
双级执行器系统的离散滑模控制
飞机装配预连接紧固件自动化安装末端执行器设计
我是小字典
正版字典
考虑执行器饱和的改进无模型自适应控制
一类具有执行器饱和的非线性系统抗饱和方法研究
修辞学的重大定义
山的定义