首页> 中国专利> 一种模型变更影响度自动检查方法

一种模型变更影响度自动检查方法

摘要

本发明公开了一种模型变更影响度自动检查方法,包括如下步骤:a)对数据库执行过的SQL语句进行采集分析,记录数据库里的表间关联关系;b)生成系统数据模型的关联关系基线,得出系统物理模型的关系图,并根据系统业务流向生成物理模型有向图,同时构建数据模型-业务功能图;c)当软件系统有模型变更时,输入相应的变更信息,根据有向图及功能图识别本次变更影响范围及业务功能。本发明提供的模型变更影响度自动检查方法,通过采集数据库SQL信息,并生成模型有向图,从软件系统物理模型变更分析软件变更影响度,智能判断模型变更的影响范围、涉及业务功能点,提前识别风险与设计缺陷,从而提高变更影响度分析的直观性、充分性和效率。

著录项

  • 公开/公告号CN104750496A

    专利类型发明专利

  • 公开/公告日2015-07-01

    原文格式PDF

  • 申请/专利权人 上海新炬网络信息技术有限公司;

    申请/专利号CN201510171306.8

  • 发明设计人 程永新;宋辉;张燕;

    申请日2015-04-13

  • 分类号G06F9/44(20060101);

  • 代理机构上海科律专利代理事务所(特殊普通合伙);

  • 代理人袁亚军;金碎平

  • 地址 200063 上海市普陀区中山北路2000号中期大厦3楼B

  • 入库时间 2023-12-18 09:33:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-05

    授权

    授权

  • 2017-11-24

    著录事项变更 IPC(主分类):G06F9/44 变更前: 变更后: 申请日:20150413

    著录事项变更

  • 2015-07-29

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20150413

    实质审查的生效

  • 2015-07-01

    公开

    公开

说明书

技术领域

本发明涉及一种数据模型处理方法,尤其涉及一种模型变更影响度自动检查方法。

背景技术

软件系统的迭代更新在软件生命周期中不可避免且十分频繁,当软件进行变更 时,会对系统软件的源码及物理模型进行相应的更改,每一次的版本变更,特别是 大型企业的交易类业务系统以关系型数据库为主,都伴随着大量的物理模型变更(表、 字段增删改、索引更改等),通过对关系型数据库相关表数据的增删改查操作实现特 定的业务逻辑。上述操作都不可避免会影响原有的系统的稳定性,目前存在各种判 断软件变更影响度的方法,比如功能图分析、关注点依赖关系、需求设计上评估、 分析源代码调用关系判断依赖关系等。现有方法主要还是关注源码,没有从物理模 型变更影响角度出发进行评估。在需求设计阶段时开发人员会根据需求实现进行模 型变更,但大部分应用的开发人员只关注自己开发的模块,无法站在应用全局的角 度去衡量。比如没有考虑现有的数据模型是否已支持相应的业务,为了开发代码的 便利性随意增加库表,或对本次需求进行模型变更没有考虑是否对关联库表及业务 是否有影响。

如果仅从目前的软件源码或者功能图方向进行评估,发现问题会有一定的滞后 性且不全面。缺乏物理模型变更影响度检查,无法对系统开发和运维提供支撑,无 法判断模型的变更对其他系统业务或数据产生的影响;物理模型对业务的影响分析 也无从实现,无法在上线前后对受影响的业务进行针对性测试。

目前大型企业的软件系统数据量非常大,业务逻辑复杂,系统物理模型繁杂, 基本没有人能全面熟悉掌握这些库表,且需求变更频繁,开发时间短,对软件变更 设计及运维带来很大的挑战。现有技术有如下缺点:1、缺乏对系统物理模型变更维 度的评估,存在遗漏性不够全面;2、不能预防故障的产生,需到需求上线测试阶段 才能发现问题,对处理缺陷故障的时间要求苛刻,存在着滞后性;3、要求系统开发 人员及测试人员对系统熟悉程度高,紧密依赖于人的经验及技术水平等条件,存在 一定的被动性及肓目性。

由上可见,现有技术方案均属于事后处理,需要花费大量人力、时间来进行处 理,开发人员在设计阶段无法判断影响度,运维人员在故障出现时无法了解数据库 模型的属性和用途以快速进行故障定位。

发明内容

本发明所要解决的技术问题是提供一种模型变更影响度自动检查方法,能够提 前识别风险与设计缺陷,提高变更影响度分析的直观性、充分性和效率。

本发明为解决上述技术问题而采用的技术方案是提供一种模型变更影响度自动 检查方法,包括如下步骤:a)对数据库执行过的SQL语句进行采集分析,记录数据 库里的表间关联关系;b)生成系统数据模型的关联关系基线,得出系统物理模型的 关系图,并根据系统业务流向生成物理模型有向图,同时构建数据模型-业务功能图; c)当软件系统有模型变更时,输入相应的变更信息,根据有向图及功能图识别本次 变更影响范围及业务功能。

上述的模型变更影响度自动检查方法,其中,所述步骤a)定期采集数据库执行 过的SQL语句,过滤掉非多表操作的SQL语句,并对保留下来的多表操作的SQL语 句进行编辑、拆分,把表关联关系记录保存在表间关系信息表中。

上述的模型变更影响度自动检查方法,其中,所述步骤b)根据数据库里的表间 关联关系生成模型的树形关联关系,具体过程如下:初始化“模型关系变量”,遍历 表间关系信息表,检索出直接关联本变更涉及的表,并推送到“模型关系变量”;设 置“模型关系变量”所有关系访问标志为false;循环遍历“模型关系变量”,直到 栈为空;出栈并设置访问标志为true;遍历表中所有信息,检索出直接依赖本变更 涉及的表,并推送到“模型关系变量”;直至访问完“模型关系变量”中的所有值。

上述的模型变更影响度自动检查方法,其中,所述步骤b)结合业务流程,通过 有向图深度优先算法,构造成属性关联关系有向邻接矩阵,获取业务数据流图的有 向图的各个节点,然后分析节点类型以及节点的权值,以获取对应的物理模型中的 实体和属性。

上述的模型变更影响度自动检查方法,其中,所述步骤b)中的有向图深度优先 算法如下:获取物理模型的有向图G=(V,E),其中,V={v1,v2,…,vi,…,vn}, E={e1,e2,…,ei,…,em};V代表有向图G的顶点vi集合,表示业务数据 流图中的各个输入、输出和处理;E代表有向图G的弧ei的集合,表示数据流图中 数据流动的方向,i,n,m为自然数;在G中任选一个顶点i作为遍历的初始点,访问 搜索到的未被访问的邻接点;将此顶点的visited数组元素值置1;搜索该顶点的未 被访问的邻接点,若该邻接点存在,则从此邻接点开始进行同样的访问和搜索;重 复上述过程,直到连通图中所有顶点都被访问过为止。

上述的模型变更影响度自动检查方法,其中,所述步骤b)对于部分采集不完整 或者跨系统、跨域的库表,根据业务数据流走向,按库表字段主从关系,复制同步 关系进行人工关联。

上述的模型变更影响度自动检查方法,其中,所述步骤c)对于模型变更涉及的 新增表,查找相同用户下是否存在相似表,或者系统是否已有表全部包含新增字段, 给出查找到的相应表进行提示;对于某表新增某一字段,输入变更信息后,所述步 骤c)根据变更类型自动查找该表关联的复制同步关系表进行提示。

上述的模型变更影响度自动检查方法,其中,所述步骤c)对于模型变更涉及的 新增表,如果查找到相同用户下存在相似度超过70%表,则提示不建议增加新表;如 果没有查找到相似表,则确定新增表、新增字段与原有模型各字段的关系类型,并 记录到数据库里的表间关系信息表中。

上述的模型变更影响度自动检查方法,其中,所述步骤c)对于模型变更涉及的 删除表,查找与该表的关联类型为复制同步和字段主从关系的表进行提示;对于删 除字段,查找与该字段的关联类型为复制同步和字段主从关系的表进行提示。

上述的模型变更影响度自动检查方法,其中,所述步骤c)对于模型变更涉及的 修改字段长度或修改字段类型,查找与该字段的关联类型为复制同步和字段主从关 系的表进行提示。

本发明对比现有技术有如下的有益效果:本发明提供的模型变更影响度自动检 查方法,通过采集数据库SQL信息,并生成模型有向图,从软件系统物理模型变更 分析软件变更影响度,智能判断模型变更的影响范围、涉及业务功能点,提前识别 风险与设计缺陷,从而提高变更影响度分析的直观性、充分性和效率;相对于分析 软件代码、系统功能图而言,物理模型更加直观可控,使得评估系统的风险变得更 全面、直观和简便。

附图说明

图1为本发明模型变更影响度自动检查系统架构示意图;

图2为本发明以客户信息为例生成的树形关联关系的模型示意图;

图3为本发明使用的客户信息查询业务流程示意图;

图4为本发明数据表字段主从关系和复制同步关系示意图;

图5为本发明记录的数据库里的表间关联关系示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述。

图1为本发明模型变更影响度自动检查系统架构示意图。

请参见图1,本发明提供的模型变更影响度自动检查方法,包括:

1、信息采集:负责对数据库里的执行过的sql语句进行采集,对采集数据根据 设定的规则条件进行有效的过滤加工处理,统一入库后供模型关联关系生成模块使 用。

2、模型有向图生成:构建数据模型的关联关系,通过对采集入库的数据模型进 行分析,从而得出系统物理模型的关系图,主要是树形关系,并根据系统业务流向 进而生成物理模型的有向图,同时构建数据模型-业务功能图。

3、变更影响度检查:负责对每次模型变更自动检查对现有系统模型的影响度, 根据有向图及功能图识别变更影响范围及业务功能。

本发明首先通过对数据库执行过的语句进行采集分析入库,通过长时间采集分 析,记录数据库里的表间关联关系,最终生成系统数据模型的关联关系基线,当软 件系统有相应模型变更时,输入相应的变更信息便可自动识别本次变更的影响度, 变更改造是否全面合理,并提供相应的建议。

对于首次使用本发明,需要一段时间进行数据模型关联关系基线生成,通过信 息采集分析进而生成模型关联关系,即可完成初始化工作。模型关联关系基线生成 后,即可以启用模型变更影响度自动检查。本发明的模型变更影响度自动检查执行 步骤如下:

1、对于系统已有库表,通过定期采集数据库执行过的SQL语句,过滤掉非多表 操作的sql(sql语句里表的个数小于2)语句,只保留多表操作的sql语句。

采集的主要数据包括如下信息:SQL标识(标识为SQL_ID)、采集时间(标识为 SNAP_TIME)、SQL_TEXT(标识为SQL_TEXT);对采集的信息进行加工整理,比如采集 到的sql语句如下:

select*from(SELECT A.SERVICE_TYPE,A.SERVICE_ID,A.SERVICE_NAME, A.TIMES_STRATEGY,A.EFFECTIVE_DATE,A.EXPIRE_DATE,A.CREATE_DATE, A.DONE_DATE,A.STATE,A.REMARKS,B.DIMENSION_TYPE,B.DIMENSION_ID, B.DIMENSION_WEIGHT,B.DEFAULT_TIMES,B.EFFECTIVE_DATE AS V_EFFECTIVE_DATE, B.EXPIRE_DATE AS V_EXPIRE_DATE,B.CREATE_DATE AS V_CREATE_DATE,B.DONE_DATE  AS V_DONE_DATE,B.STATE AS V_STATE,B.REMARKS AS V_REMARKS,C.DETAIL_ID, C.DETAIL_TYPE,C.TOTAL_TIMES,C.EFFECTIVE_DATE AS D_EFFECTIVE_DATE, C.CREATE_DATE AS D_CREATE_DATE,C.EXPIRE_DATE AS D_EXPIRE_DATE,C.DONE_DATE  AS D_DONE_DATE,C.STATE AS D_STATE,C.REMARKS AS D_REMARKS FROM  CM_CFG_FREE_SERVICE A,CM_FREE_SERVICE_VDOING B, CM_FREE_SERVICE_VDOING_DETAIL C WHERE A.SERVICE_ID=B.SERVICE_ID(+)AND  B.DIMENSION_ID=C.DIMENSION_ID(+))where SERVICE_TYPE=:serviceType

对sql进行编辑、拆分,则把表关联关系记录保存在表间关系信息表中, CM_CFG_FREE_SERVICE的字段SERVICE_ID与CM_FREE_SERVICE_VDOING的字段 SERVICE_ID、CM_FREE_SERVICE_VDOING的字段DIMENSION_ID与 CM_FREE_SERVICE_VDOING_DETAIL的字段DIMENSION_ID相关联。表间关系信息表 (RELAT_INFO_TAB)数据结构如下:

字段说明 字段名称 字段类型 Sql标识 Sql_id 字符型 表名1 Table1 字符型 字段1 Field1 字符型 表名2 Table1 字符型 字段2 Field1 字符型 Sql语句 Sql_text 字符型 关系类型 Relat_type 字符型 操作时间 OPT_TIME 时间

2、对于新增的库表、字段:通过规范、流程约束,要求变更提出者提供新增表、 字段与原有模型各字段的关系类型及涉及字段信息,并录入信息进库。

3、根据采集到的信息,生成模型的树形关系。具体识别过程如下:初始化“模 型关系变量”,遍历表间关系信息表,检索出直接关联本变更涉及的表,并推送到“模 型关系变量”;设置“模型关系变量”所有关系访问标志为假(false);循环遍历“模 型关系变量”,直到栈为空;出栈,并设置访问标志为(true);遍历表中所有信 息,检索出直接依赖本变更涉及的表,并推送到“模型关系变量”;如果“模型关系 变量”中的所有值都被访问过,则退出循环。通过上述识别机制,就能生成模型的 树形关联关系,以客户信息为例,如图2所示。

4、然后结合业务流程,通过有向图深度优先算法,构造成属性关联关系有向邻 接矩阵,遍历有向图,确定对应的模型的实体、实体属性和实体间的联系,生成物 理模型的有向图;有向图G=(V,E),其中,V={v1,v2,…,vi,…,vn},E={e1, e2,…,ei,…,em};V代表有向图G的顶点vi集合,表示业务数据流图中的 各个输入、输出和处理;E代表有向图G的弧ei的集合,表示数据流图中数据流 动的方向,i,n,m为自然数。业务流程图如3所示。

深度优先搜索遍历类似于树的先序遍历。假定给定图G的初态是所有顶点均未 被访问过,在G中任选一个顶点i作为遍历的初始点,则深度优先搜索递归调用包 含以下操作:

(1)访问搜索到的未被访问的邻接点;

(2)将此顶点的visited数组元素值置1;

(3)搜索该顶点的未被访问的邻接点,若该邻接点存在,则从此邻接点开始进 行同样的访问和搜索。

在访问图中某一起始顶点v后,由v出发,访问它的任一邻接顶点w1;再从 w1出发,访问与w1邻接但还没有访问过的顶点w2;然后再从w2出发,进行类 似的访问,…如此进行下去,直至到达所有的邻接顶点都被访问过的顶点u为止。 接着,退回一步,退到前一次刚访问过的顶点,看是否还有其它没有被访问的邻接 顶点。如果有,则访问此顶点,之后再从此顶点出发,进行与前述类似的访问;如 果没有,就再退回一步进行搜索。重复上述过程,直到连通图中所有顶点都被访问 过为止。

本发明采取深度优先遍历有向图,可获取业务数据流图的有向图的各个节点, 然后分析节点类型以及节点的权值,以获取对应的物理模型中的实体和属性。

5、对于部分采集不完整的或者跨系统、跨域的库表,可以通过专家知识库进行 相应的梳理补充,根据业务数据流走向进行填写。关系类型分为以下两种:字段主 从关系,复制同步,如图4所示。最终可以分层整合系统模型进行跨域关联起来, 显示各种关联关系,如图5所示。

6、根据模型变更信息生成变更影响度,并生成相应的建议。模型变更主要分为 以下几种(对于索引变更部分不在此范围考虑):

序号 类型 1 新增表 2 新增字段 3 删除表 4 删除字段 5 修改字段长度 6 修改字段类型

输入库表、字段信息及变更类型,系统进行自动检查,扫描此次变更是否影响 到原有模型,是否影响原有业务。判断规则大致如下:

例如:

模型变更1:用户信息表新增某一字段,输入变更信息后,系统根据变更类型自 动查找用户信息表涉及的复制同步关系,而不会影响到字段主从关系类型的表,提 示本次变更影响到用户历史表及HSC_用户信息表,这两个表需要进行相应模型变更;

模型变更2:用户信息表更改字段用户ID的长度,输入变更信息后,系统根据 变更类型自动查找用户信息表涉及的该字段主从关系表及复制同步关系表,提示本 次变更影响到用户历史表、HSC_用户信息、用户订购实例、用户停开机、用户付费 计划表,这些表对应字段-用户ID需要进行相应的模型变更;

模型变更3:新增某个表,输入变更信息后,系统根据变更类型查找新增表与现 有模型中相同用户下的表是否相似,如果相似度达到70%以上,或者系统已有表全部 包含新增字段,则提示新增表与某表相似度是***,不建议进行新建。

综上所述,本发明基于数据库里执行过的SQL语句,采集分析生成系统模型的 有向图,由于生成的模型有向图是属性级别,可识别核心字段的数据流向,区别于 传统的E-R图以实体为单位的关联关系。具体优点如下:1)相对于传统只能通过技 术人员的经验且只能记录小范围内物理模型的表间关系,创造性基于数据库自动采 集分析生成模型的有向图,信息更全面及高效。2)传统的E-R图只能识别实体间的 关联关系,无法判断属性间关联关系,现可识别系统核心字段取值的源头及数据流 向。3)相较于传统人工基于经验及大量业务测试的方式,创造性的使用模型变更影 响度自动检查,可在设计阶段识别变更的影响度,比传统的识别方式发现问题的更 及时,更好保障系统的稳定性。4)与传统的业务影响分析相比,本发明采用模型映 射业务,能够准确反映出模型变更对软件功能带来的影响,且变更影响分析结构直 观,便于使用。

虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域 技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发 明的保护范围当以权利要求书所界定的为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号