CN113901022B - 一种业务与数据关系模型建立方法、装置、设备及存储介质 - Google Patents
一种业务与数据关系模型建立方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113901022B CN113901022B CN202111113222.0A CN202111113222A CN113901022B CN 113901022 B CN113901022 B CN 113901022B CN 202111113222 A CN202111113222 A CN 202111113222A CN 113901022 B CN113901022 B CN 113901022B
- Authority
- CN
- China
- Prior art keywords
- name
- api
- file
- data
- target application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 230000015654 memory Effects 0.000 claims description 20
- 230000014509 gene expression Effects 0.000 claims description 19
- 238000010586 diagram Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004519 manufacturing process Methods 0.000 claims description 11
- 230000033772 system development Effects 0.000 abstract description 14
- 238000009960 carding Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 12
- 238000013499 data model Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的实施例公开一种业务与数据关系模型建立方法、装置、设备及存储介质,通过遍历目标应用的所有框架页面的页面源代码,以提取第一中间文件;遍历所述目标应用的所有框架页面对应的api接口文件,以提取第二中间文件;根据所述第一中间文件和所述第二中间文件,建立所述框架页面与所述数据表的关系模型。解决了现有的方法在系统开发即将完成或已经完成的情况下绘制业务与数据关系模型时,存在效率低的技术问题,实现了提高在系统开发即将完成或已经完成的情况下绘制业务与数据关系模型时的效率,同时还避免了人为梳理造成的数据错误,提高了业务与数据关系模型的准确性。
Description
技术领域
本申请涉及软件技术领域,尤其涉及发明名称一种业务与数据关系模型 建立方法、装置、设备及存储介质。
背景技术
对于大型应用系统,梳理数据库中数据表之间的关系,建立业务与数据 关系模型是项重要而复杂的工作。按照软件工程和数据库正向设计的实施规 范,数据库系统实施完成后,借助第三方工具,能够自动生成业务与数据关 系模型。但是在实际开发中,由于种种原因,无法借助第三方工具自动生成 业务与数据关系模型。因此,如果在系统开发即将完成或已经完成的情况下,需要绘制业务与数据关系模型。
现有的方法,在系统开发即将完成或已经完成的情况下绘制业务与数据 关系模型时,存在效率低的技术问题。
发明内容
本申请的主要目的在于提供一种业务与数据关系模型建立方法、装置、 设备及存储介质,旨在解决现有的方法在系统开发即将完成或已经完成的情 况下绘制业务与数据关系模型时,存在效率低的技术问题。
为实现上述目的,本申请提供一种业务与数据关系模型建立方法,包括:
遍历目标应用的所有框架页面的页面源代码,以提取第一中间文件;其 中,所述第一中间文件包括每个框架页面包含的第一api方法名;
遍历所述目标应用的所有框架页面对应的api接口文件,以提取第二中间 文件;其中,所述第二中间文件包括每个api接口文件中的第二api方法名和 接口地址,所述接口地址中包括接口操作的数据表名称;
根据所述第一中间文件和所述第二中间文件,建立所述框架页面与所述 数据表的关系模型。
可选地,所述遍历目标应用的所有框架页面的页面源代码,以提取出第 一中间文件的步骤之前,所述方法还包括:
获取所述目标应用的源代码文件;
根据所述目标应用的各业务菜单,遍历所述源代码文件,以提取各业务 菜单对应的代码;
根据各业务菜单对应的代码,获得所述目标应用的所有框架页面的结构 关系;
所述遍历目标应用的所有框架页面的页面源代码,以提取出第一中间文 件的步骤,包括:
基于所述目标应用的所有框架页面的结构关系,构建第一正则表达式;
根据所述第一正则表达式,遍历所述目标应用的所有框架页面的页面源 代码,以提取出第一中间文件。
可选地,所述遍历目标应用的所有框架页面的页面源代码,以提取出第 一中间文件的步骤之前,所述方法还包括:
遍历所述目标应用的浏览views目录,以提取所述views目录下的所有子 目录名列表和所有文件名列表;
根据所述views目录下的所有子目录名列表和所有文件名列表,构造 views目录结构;
所述遍历目标应用的所有框架页面的页面源代码,以提取出第一中间文 件的步骤,包括:
基于所述views目录结构,构建第二正则表达式;
根据所述第二正则表达式,遍历所述目标应用的所有框架页面的页面源 代码,以提取出第一中间文件。
可选地,所述根据所述第一中间文件和所述第二中间文件,建立所述框 架页面与所述数据表的关系模型的步骤,包括:
基于所述第一中间文件与所述第二中间文件的对应关系,采用键值对的 方式,建立所述框架页面与所述数据表的关系模型。
可选地,所述根据所述第一中间文件和所述第二中间文件,建立所述框 架页面与所述数据表的关系模型的步骤之后,所述方法还包括:
基于所述框架页面与所述数据表的关系模型,输出业务与数据关系图。
可选地,所述业务与数据关系图中包括所述目标应用的各业务菜单与数 据表的双向关系。
可选地,所述输出业务与数据关系模型的步骤之后,所述方法还包括:
在接收到对第一目标节点的选择操作时,输出所述第一目标节点与其相 关联的业务菜单的关系;其中,所述第一目标节点代表所述目标应用的任一 数据表;
在接收到对第二目标节点的选择操作时,输出所述第二目标节点与其相 关联的数据表的关系;其中,所述第二目标节点代表所述目标应用的任一业 务菜单。
此外,为实现上述目的,本申请还提供一种业务与数据关系模型建立装 置,包括:
第一遍历模块,用于遍历目标应用的所有框架页面的页面源代码,以提 取第一中间文件;其中,所述第一中间文件包括每个框架页面包含的第一api 方法名;
第二遍历模块,用于遍历所述目标应用的所有框架页面对应的api接口文 件,以提取第二中间文件;其中,所述第二中间文件包括每个api接口文件中 的第二api方法名和接口地址,所述接口地址中包括接口操作的数据表名称;
模型建立模块,用于根据所述第一中间文件和所述第二中间文件,建立 所述框架页面与所述数据表的关系模型。
此外,为实现上述目的,本申请还提供一种生产设备,该生产设备包括 存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计 算机程序,实现上述的方法。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述 计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实 现上述的方法。
本申请所能实现的有益效果。
本申请实施例提出的一种业务与数据关系模型建立方法、装置、设备及 存储介质,通过遍历目标应用的所有框架页面的页面源代码,以提取第一中 间文件;其中,所述第一中间文件包括每个框架页面包含的第一api方法名; 遍历所述目标应用的所有框架页面对应的api接口文件,以提取第二中间文 件;其中,所述第二中间文件包括每个api接口文件中的第二api方法名和接 口地址,所述接口地址中包括接口操作的数据表名称;根据所述第一中间文 件和所述第二中间文件,建立所述框架页面与所述数据表的关系模型。也即,通过遍历目标应用前端源代码的方式,来获取业务所对应的框架页面与数据 表的关系,从而建立业务与数据关系模型。解决了现有的方法在系统开发即 将完成或已经完成的情况下绘制业务与数据关系模型时,存在效率低的技术 问题,实现了提高在系统开发即将完成或已经完成的情况下绘制业务与数据 关系模型时的效率,同时还避免了人为梳理造成的数据错误,提高了业务与 数据关系模型的准确性。
附图说明
图1为本申请实施例涉及的硬件运行环境的生产设备结构示意图;
图2为本申请实施例的业务与数据关系模型建立方法的流程示意图;
图3为本申请实施例的业务与数据关系模型建立装置的功能模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步 说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限 定本申请。
本申请实施例的主要解决方案是:通过遍历目标应用的所有框架页面的 页面源代码,以提取第一中间文件;其中,所述第一中间文件包括每个框架 页面包含的第一api方法名;遍历所述目标应用的所有框架页面对应的api接口文件,以提取第二中间文件;其中,所述第二中间文件包括每个api接口文 件中的第二api方法名和接口地址,所述接口地址中包括接口操作的数据表名 称;根据所述第一中间文件和所述第二中间文件,建立所述框架页面与所述 数据表的关系模型。
对于大型应用系统,梳理数据库中数据表之间的关系,建立全局数据模 型是项重要而复杂的工作。按照软件工程和数据库正向设计的实施规范,数 据库系统实施完成后,借助第三方工具,依据数据表之间的主外键关系,能 够自动生成全局数据模型。但是在实际开发中,由于项目时间、成本和范围 的约束,数据库系统通常无法完全按照正向设计实施。在以原型为基础的开 发过程中,开发人员依据原型进行数据库设计。由于数据库设计人员能力有限或者需求不断变化等多种因素,数据库设计过程中经常忽略范式要求,采 用字段冗余的方式将字段信息存储到一张单表中,数据表之间的关系通过代 码绑定,而不是通过外键约束。由于整个数据库没有外键,因而无法借助第 三方工具自动生成全局数据模型。如果在系统开发即将完成或已经完成的情 况下,要求绘制全局数据模型,则应该按照逆向设计的思路,首先梳理业务 模块之间的关系,然后找出业务模块对应的数据表,最后建立数据表之间的关系。这样做的缺点如下:
1.中型或大型应用系统业务模块普遍超过40个,数据表超过160张,接 口超过1500个,完成2张表之间的关系模型建立平均耗时2小时,完成整个 系统的业务与数据模型建立耗时15天左右,工作量大,效率低,而且容易出 错;
2.单纯依靠人工梳理容易造成数据表之间的关系遗漏,无法保证最终生成 的业务与数据模型的准确性和完整性;
3.当系统发生业务调整、接口修改、数据表变化时,需要重新梳理关系建 立模型,造成重复劳动。
为此,本申请提供一种解决方案,通过遍历目标应用前端源代码的方式, 来获取业务所对应的框架页面与数据表的关系,从而建立业务与数据关系模 型。解决了现有的方法在系统开发即将完成或已经完成的情况下绘制业务与 数据关系模型时,存在效率低的技术问题,实现了提高在系统开发即将完成 或已经完成的情况下绘制业务与数据关系模型时的效率,同时还避免了人为梳理造成的数据错误,提高了业务与数据关系模型的准确性。
参照图1,图1为本申请实施例方案涉及的硬件运行环境的生产设备结构 示意图。
如图1所示,该生产设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存 储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接 口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用 户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的 可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI) 接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory, RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001 的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对生产设备的限 定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部 件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数 据存储模块、网络通信模块、用户接口模块以及电子程序。
在图1所示的生产设备中,网络接口1004主要用于与网络服务器进行数 据通信;用户接口1003主要用于与用户进行数据交互;本发明生产设备中的 处理器1001、存储器1005可以设置在生产设备中,所述生产设备通过处理器 1001调用存储器1005中存储的业务与数据关系模型建立装置,并执行本申请实施例提供的业务与数据关系模型建立方法。
参照图2,基于前述实施例的硬件设备,本申请的实施例提供一种业务与 数据关系模型建立方法,包括:
S20、遍历目标应用的所有框架页面的页面源代码,以提取第一中间文件; 其中,所述第一中间文件包括每个框架页面包含的第一api方法名;
在具体实施过程中,目标应用是指应用程序,例如大型应用系统。通常 来讲,一个应用程序都基于框架开发,例如vue框架,相应的,框架页面可 以是vue页面。而由于一个应用程序一般由多个级别的多个业务菜单构成, 每个业务菜单可以对应一个框架页面,每个框架页面中包含页面源代码,页 面源代码中又包括接口的api方法名和api文件名。
因此,为了后续进行业务与数据表的关系建立,首先需要遍历页面源代 码,以提取第一中间文件;其中,所述第一中间文件包括每个框架页面包含 的第一api方法名。
具体的,可以将vue页面调用接口的api方法名和api文件名保存在名称 为api_vue.csv的第一中间文件,其中包括vue文件名称、第一api方法名称 和第一api文件名称。
在一种可选的实施方式中,所述遍历目标应用的所有框架页面的页面源 代码,以提取出第一中间文件的步骤之前,所述方法还包括:获取所述目标 应用的源代码文件;根据所述目标应用的各业务菜单,遍历所述源代码文件, 以提取各业务菜单对应的代码;根据各业务菜单对应的代码,获得所述目标 应用的所有框架页面的结构关系;
在具体实施过程中,通过该实施方式,不仅可以进行业务菜单数据提取, 还可以进行业务菜单数据展示。具体的,业务菜单数据保存在源码中的 src/router/index.js文件中,文件结构有以下特点:父级菜单与子级菜单通过 children属性关联,同级菜单组成数组。而由于Echarts树图data属性要求每 个节点有name属性,如果该节点有子节点,还要有children属性,属性值是 数组。因而后端需要将源代码中js文件、vue文件中包含的目标信息内容提取 出来并封装为前端Echarts解析的JSON格式数据。
因此,可以通过以下步骤完成数据提取与展示:
(1)使用正则表达式从index.js中提取业务菜单所在的代码
引入Python的re模块,根据目标代码特征设计正则表达式,通过re模块 的search函数提取目标信息。
(2)删除注释
提取出的代码包含注释,针对多行注释和单行注释分别设计正则表达式 语句,注意多行匹配标记re.M参数的使用,然后调用re模块的sub函数替换 注释信息。
(3)规范component属性值
代码中component的属性值是Vue可识别的代码,并非符合JSON协议 的字符串,如果直接返回前端,则会解析报错,因而需特别处理。
(4)将处理过的字符串数据转化为JSON格式并对name属性进行完善
字符串转化为JSON格式数据需要使用Python的eval函数。完成转换后, 普通的字符串数据转换为JSON数组,可执行遍历操作。另外由于部分节点 name属性缺失,因而需遍历JSON数组,结合当前层级,完善name属性信 息。
需要说明的是,业务菜单数据的可视化,可以清晰的了解业务模块的划 分、每个业务模块下有那些子模块以及每个子模块的具体组成。由于业务模 块的命名与views目录下vue页面的命名一致,因而,基于业务菜单数据的可视化图,可以实现页面分级,从而获取所有框架页面的结构关系。
此时,所述遍历目标应用的所有框架页面的页面源代码,以提取出第一 中间文件的步骤,包括:基于所述目标应用的所有框架页面的结构关系,构 建第一正则表达式;根据所述第一正则表达式,遍历所述目标应用的所有框 架页面的页面源代码,以提取出第一中间文件。
可以理解的是,基于所述目标应用的所有框架页面的结构关系,构建的 第一正则表达式,使得在遍历框架页面时更高效。
在另一种可选的实施方式中,所述遍历目标应用的所有框架页面的页面 源代码,以提取出第一中间文件的步骤之前,所述方法还包括:遍历所述目 标应用的浏览views目录,以提取所述views目录下的所有子目录名列表和所有文件名列表;根据所述views目录下的所有子目录名列表和所有文件名列 表,构造views目录结构;
在具体实施过程中,目标应用中所有的vue页面都保存在views目录中。 根据数据结构的理论,文件目录本质上是一个树形结构,因而可以设计递归 算法获取views目录下文件和子目录元数据信息,从而获取系统中所有的vue 页面,便于建立页面与接口的对应关系。
具体的,可通过以下方法获取并展示代码目录结构:
(1)利用os模块的walk函数遍历views目录
设置infos数据字典,键为目录名,值为当前目录包含的子目录名列表与 文件名列表通过特殊符号拼接形成的字符串,方便后续递归算法使用。
(2)通过递归函数构造JSON
首先获取文件名列表,直接作为节点添加到chidlren属性中,然后获取目 录名列表,对子目录进行递归操作。设置递归初始参数为全局父节点和infos 数据字典,递归过程中动态生成JSON树形结构。
此时,所述遍历目标应用的所有框架页面的页面源代码,以提取出第一 中间文件的步骤,包括:
基于所述views目录结构,构建第二正则表达式;
根据所述第二正则表达式,遍历所述目标应用的所有框架页面的页面源 代码,以提取出第一中间文件。
可以理解的是,根据所述目标应用的views目录结构,可以了解vue文件 的分布特点,即:(1)业务模块划分根据具体情况的不同,可能有三层及以 上的层次,但是views目录是二层结构,views子目录对应具体的业务子模块。 src/router/index.js文件通过拼接views子目录将二层的文件目录映射为三层以上的业务菜单结构。(2)由于views下的子目录命名与业务模块对应,子目录 下的页面文件代表业务模块的具体组成,因而页面调用接口的总和对应业务 模块所涉及的所有外部数据。因此,基于此特点可知,调用的外部接口保存 在script部分,结合代码特征,设计第二正则表达式语句,提取出调用的api 函数和对应的api文件,使得在遍历框架页面时更高效。
S40、遍历所述目标应用的所有框架页面对应的api接口文件,以提取第 二中间文件;其中,所述第二中间文件包括每个api接口文件中的第二api方 法名和接口地址,所述接口地址中包括接口操作的数据表名称;
在具体实施过程中,为了后续进行关系模型的建立,需要提取出第二中 间文件。具体的,由于开发者编码习惯不同或者没有明确的编码规范,api文 件中接口的表示方法可能存在多种方式。为了能正确提取接口方法名和对应 的接口url地址,按照获取原始信息、删除注释、针对每类接口和函数设计正 则表达式的处理流程,构造多个正则表达式,对目标内容层层过滤,确保不 会遗漏。提取出方法名和url地址后,将其保存在名称为api_js.csv的第二中 间文件。第二中间文件种包括api文件名称、api方法名称和接口url地址。
S60、根据所述第一中间文件和所述第二中间文件,建立所述框架页面与 所述数据表的关系模型;
在具体实施过程中,vue页面代表业务,接口操作的数据表代表数据,利 用2个中间文件建立vue页面与接口操作数据表之间的关系,将业务和数据对应起来,从而建立业务与数据关系模型。
在一种可选的实施方式中,所述根据所述第一中间文件和所述第二中间 文件,建立所述框架页面与所述数据表的关系模型的步骤,包括:
基于所述第一中间文件与所述第二中间文件的对应关系,采用键值对的 方式,建立所述框架页面与所述数据表的关系模型。
在一种可选的实施方式中,所述根据所述第一中间文件和所述第二中间 文件,建立所述框架页面与所述数据表的关系模型的步骤之后,所述方法还 包括:
基于所述框架页面与所述数据表的关系模型,输出业务与数据关系图。
在一种可选的实施方式中,所述业务与数据关系图中包括所述目标应用 的各业务菜单与数据表的双向关系。
具体的,建立所述框架页面与所述数据表的关系模型的方式如下:
(1)读取api_js.csv中间文件,组合api文件名称和方法名作为键,从 url地址中提取数据表(Rest部分)作为值,建立func_map接口方法数据字典。
(2)分析api_vue.csv中间文件中vue文件名称可知,vue页面的上层目 录代表业务子模块,最上层目录代表业务父模块,因而通过遍历api_vue.csv 文件,使用vue页面路径信息可以构造出业务层级结构。具体实现为:获取 vue文件名称,以”/”分割得到字符串数组,数组的第一个元素代表父级目 录,即业务父模块,数组的第一个元素和第二个元素共同确定业务子模块,使用数据字典vue_parent_map保存信息,业务子模块作为键,业务父模块作 为值,这样主要是方便建立业务子模块和接口之间的关系。
(3)中间文件api_vue.csv和api_js.csv通过方法名称和api文件名称关 联。为了获取业务模块所对应的接口,需利用api_vue.csv的方法名称和api 文件名称字段。方法名称是一个拼接的字符串,代表多个方法,所有方法都 保存在同一行的api文件中。使用vue_api_map数据字典保存业务模块对应的 接口地址。vue_api_map以(2)中业务子模块为键,值是集合类型。通过方 法名和api文件名构造字符串作为键,从func_map查找对应的接口地址,从 接口地址中截取数据表名,然后保存到集合中作为值,确保不会重复添加。 vue_api_map建立了业务子模块到数据表之间的一对多单向关系模型。采用逆 向思维,以vue_api_map的值(数据表)作为键,以键(业务模块名称)的集 合作为值生成新的字典,则建立了数据到业务的单向关系模型。结合两个模 型,即建立了业务到数据的双向关系模型。
可以理解得是,通过Echarts树图可以清晰的看出应用系统包含的业务父 模块、业务父模块包含的业务子模块以及每个业务子模块涉及的数据表。由 于是业务与数据单向关系模型,所以图中每个模块对应的数据表有重复的部 分,同样对于数据到业务的单向关系模型,也会出现数据表对应的业务模块重复出现的现象,这是由于Echarts树图无法表达双向多对多关系的原因。如 果应用于实际,应该建立业务子模块与数据表之间的多对多网状关系,并可 视化这种关系,这样才便于发现数据表之间的关系,建立全局数据模型。为了可视化业务与数据双向关系模型,需借助于Echarts关系图。
因此,为了实现从树图到关系图的转换,前端使用ajax调用接口得到响 应数据后,需对数据进行二次处理。请求到的数据是树形结构,树的遍历通 常采用递归算法,但是递归算法无法建立节点关系,无法将原有数据模型转 化为Echarts关系图可解析的数据结构。为了能够动态生成节点位置数据和连 接数据,采用将递归算法转化为循环算法的方式,根据树的层次结构,设计对等层级的循环算法,在循环过程中,生成关系图节点位置数据和节点之间 的连接数据。完成数据转换后,绑定数据到Echarts关系图data和links属性, 同时为了实现良好的交互效果,设置Echarts关系图focusNodeAdjacency参数 为true,使得当点击图中节点时,虚化无关节点,高亮与当前节点相关的内容。 最后进行页面渲染。
在一个实施例中,所述输出业务与数据关系模型的步骤之后,所述方法 还包括:
在接收到对第一目标节点的选择操作时,输出所述第一目标节点与其相 关联的业务菜单的关系;其中,所述第一目标节点代表所述目标应用的任一 数据表;
在接收到对第二目标节点的选择操作时,输出所述第二目标节点与其相 关联的数据表的关系;其中,所述第二目标节点代表所述目标应用的任一业 务菜单。
在具体实施过程中,业务菜单可以分为多级,在双向的业务与数据关系 图中,第一行节点代表应用系统(目标应用),第二行节点代表业务父模块(模 块即业务菜单对应的模块),第三行节点代表每个业务父模块包含的业务子模 块,第四行节点为数据表。因此,第二行和第三行之间的连接线表示业务父模块和子模块之间的树形关系,第三行与第四行之间的连接线表示业务子模 块和数据表之间多对多的网状关系。业务与数据双向关系模型即体现在业务 子模块与数据表之间的网状联系。
在此基础上,点击业务子模块节点(第二目标节点),可以清晰的看出业 务子模块涉及的数据表,有助于发现数据表之间的业务联系和约束。点击数 据表节点(第一目标节点),可以清晰的看出与该数据表相关的业务模块,有 助于发现业务模块之间的数据联系以及约束。
应当理解的是,以上仅为举例说明,对本申请的技术方案并不构成任何 限制,本领域的技术人员在实际应用中可以基于需要进行设置,此处不做限 制。
通过上述描述不难发现,本实施例的方法通过遍历目标应用前端源代码 的方式,来获取业务所对应的框架页面与数据表的关系,从而建立业务与数 据关系模型。解决了现有的方法在系统开发即将完成或已经完成的情况下绘 制业务与数据关系模型时,存在效率低的技术问题,实现了提高在系统开发 即将完成或已经完成的情况下绘制业务与数据关系模型时的效率,同时还避免了人为梳理造成的数据错误,提高了业务与数据关系模型的准确性。
参照图3,基于相同的发明思路,本申请的实施例还提供一种业务与数据 关系模型建立装置,包括:
第一遍历模块,用于遍历目标应用的所有框架页面的页面源代码,以提 取第一中间文件;其中,所述第一中间文件包括每个框架页面包含的第一api 方法名;
第二遍历模块,用于遍历所述目标应用的所有框架页面对应的api接口文 件,以提取第二中间文件;其中,所述第二中间文件包括每个api接口文件中 的第二api方法名和接口地址,所述接口地址中包括接口操作的数据表名称;
模型建立模块,用于根据所述第一中间文件和所述第二中间文件,建立 所述框架页面与所述数据表的关系模型。
需要说明的是,本实施例中业务与数据关系模型建立装置中各模块是与 前述实施例中的业务与数据关系模型建立方法中的各步骤一一对应,因此, 本实施例的具体实施方式可参照前述业务与数据关系模型建立方法的实施方 式,这里不再赘述。
应当理解的是,以上仅为举例说明,对本申请的技术方案并不构成任何 限制,本领域的技术人员在实际应用中可以基于需要进行设置,此处不做限 制。
通过上述描述不难发现,本实施例的装置通过遍历目标应用前端源代码 的方式,来获取业务所对应的框架页面与数据表的关系,从而建立业务与数 据关系模型。解决了现有的方法在系统开发即将完成或已经完成的情况下绘 制业务与数据关系模型时,存在效率低的技术问题,实现了提高在系统开发 即将完成或已经完成的情况下绘制业务与数据关系模型时的效率,同时还避 免了人为梳理造成的数据错误,提高了业务与数据关系模型的准确性。
此外,在一种实施例中,还提供一种生产设备,所述设备包括处理器, 存储器以及存储在所述存储器中的计算机程序,所述计算机程序被处理器运 行时实现前述实施例中方法的步骤。
此外,在一种实施例中,本申请还提供一种计算机存储介质,所述计算 机存储介质上存储有计算机程序,所述计算机程序被处理器运行时实现前述 实施例中方法的步骤。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、 EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器; 也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智 能终端和服务器在内的各种计算设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或 代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或 过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序 或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可 被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语 言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如, 存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于 一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网 络互连的多个计算设备上执行。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体 意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或 者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还 包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、 方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技 术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存 储器、磁碟、光盘)中,包括若干指令用以使得一台多媒体终端设备(可以是 手机,计算机,电视接收机,或者网络设备等)执行本申请各个实施例所述的 方法
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是 利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间 接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (9)
1.一种业务与数据关系模型建立方法,其特征在于,包括:
遍历目标应用的所有框架页面的页面源代码,以提取第一中间文件;其中,所述第一中间文件包括每个框架页面包含的第一api方法名、vue文件名称和第一api文件名称;
遍历所述目标应用的所有框架页面对应的api接口文件,以提取第二中间文件;其中,所述第二中间文件包括每个api接口文件中的第二api方法名、api文件名称和接口地址,所述接口地址中包括接口操作的数据表名称;
提取所述第二中间文件中的所述第二api方法名、api文件名称、所述接口地址和所述接口地址中的所述数据表名称,并以所述第二api方法名和所述api文件名称作为键,以所述数据表名称作为值,构建func_map接口方法数据字典;
提取所述第一中间文件中的所述第一api方法名、所述vue文件名称和所述第一api文件名称,以所述vue文件名称确定的业务子模块为键,并根据所述第一api方法名和所述第一api文件名称提取所述func_map接口方法数据字典中对应接口地址中的数据表名称,以该数据表名称为值,构建vue_api_map数据字典;
根据所述vue_api_map数据字典,建立所述框架页面与所述数据表的关系模型。
2.如权利要求1所述的方法,其特征在于,所述遍历目标应用的所有框架页面的页面源代码,以提取出第一中间文件的步骤之前,所述方法还包括:
获取所述目标应用的源代码文件;
根据所述目标应用的各业务菜单,遍历所述源代码文件,以提取各业务菜单对应的代码;
根据各业务菜单对应的代码,获得所述目标应用的所有框架页面的结构关系;
所述遍历目标应用的所有框架页面的页面源代码,以提取出第一中间文件的步骤,包括:
基于所述目标应用的所有框架页面的结构关系,构建第一正则表达式;
根据所述第一正则表达式,遍历所述目标应用的所有框架页面的页面源代码,以提取出第一中间文件。
3.如权利要求1所述的方法,其特征在于,所述遍历目标应用的所有框架页面的页面源代码,以提取出第一中间文件的步骤之前,所述方法还包括:
遍历所述目标应用的浏览views目录,以提取所述views目录下的所有子目录名列表和所有文件名列表;
根据所述views目录下的所有子目录名列表和所有文件名列表,构造views目录结构;
所述遍历目标应用的所有框架页面的页面源代码,以提取出第一中间文件的步骤,包括:
基于所述views目录结构,构建第二正则表达式;
根据所述第二正则表达式,遍历所述目标应用的所有框架页面的页面源代码,以提取出第一中间文件。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述根据所述第一中间文件和所述第二中间文件,建立所述框架页面与所述数据表的关系模型的步骤之后,所述方法还包括:
基于所述框架页面与所述数据表的关系模型,输出业务与数据关系图。
5.如权利要求4所述的方法,其特征在于,所述业务与数据关系图中包括所述目标应用的各业务菜单与数据表的双向关系。
6.如权利要求5所述的方法,其特征在于,所述输出业务与数据关系模型的步骤之后,所述方法还包括:
在接收到对第一目标节点的选择操作时,输出所述第一目标节点与其相关联的业务菜单的关系;其中,所述第一目标节点代表所述目标应用的任一数据表;
在接收到对第二目标节点的选择操作时,输出所述第二目标节点与其相关联的数据表的关系;其中,所述第二目标节点代表所述目标应用的任一业务菜单。
7.一种业务与数据关系模型建立装置,其特征在于,包括:
第一遍历模块,用于遍历目标应用的所有框架页面的页面源代码,以提取第一中间文件;其中,所述第一中间文件包括每个框架页面包含的第一api方法名、vue文件名称和第一api文件名称;
第二遍历模块,用于遍历所述目标应用的所有框架页面对应的api接口文件,以提取第二中间文件;其中,所述第二中间文件包括每个api接口文件中的第二api方法名、api文件名称和接口地址,所述接口地址中包括接口操作的数据表名称;
模型建立模块,用于提取所述第二中间文件中的所述第二api方法名、api文件名称、所述接口地址和所述接口地址中的所述数据表名称,并以所述第二api方法名和所述api文件名称作为键,以所述数据表名称作为值,构建func_map接口方法数据字典;提取所述第一中间文件中的所述第一api方法名、所述vue文件名称和所述第一api文件名称,以所述vue文件名称确定的业务子模块为键,并根据所述第一api方法名和所述第一api文件名称提取所述func_map接口方法数据字典中对应接口地址中的数据表名称,以该数据表名称为值,构建vue_api_map数据字典;根据所述vue_api_map数据字典,建立所述框架页面与所述数据表的关系模型。
8.一种生产设备,其特征在于,该生产设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111113222.0A CN113901022B (zh) | 2021-09-22 | 2021-09-22 | 一种业务与数据关系模型建立方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111113222.0A CN113901022B (zh) | 2021-09-22 | 2021-09-22 | 一种业务与数据关系模型建立方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113901022A CN113901022A (zh) | 2022-01-07 |
CN113901022B true CN113901022B (zh) | 2024-03-15 |
Family
ID=79028895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111113222.0A Active CN113901022B (zh) | 2021-09-22 | 2021-09-22 | 一种业务与数据关系模型建立方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901022B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116127936B (zh) * | 2023-04-04 | 2023-08-01 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种编制工程单位矩阵图的方法、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391537A (zh) * | 2017-04-25 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 数据关系模型的生成方法、装置及设备 |
CN109101234A (zh) * | 2018-07-05 | 2018-12-28 | 北京三快在线科技有限公司 | 确定页面与业务模块之间对应关系的方法及装置 |
CN111488145A (zh) * | 2020-04-30 | 2020-08-04 | 国网河北省电力有限公司信息通信分公司 | 一种基于业务域数据模型库的微服务代码生成系统及方法 |
CN111984176A (zh) * | 2020-07-08 | 2020-11-24 | 福建亿能达信息技术股份有限公司 | 一种软件在线开发平台及开发方法 |
CN113254017A (zh) * | 2021-05-27 | 2021-08-13 | 平安普惠企业管理有限公司 | 基于Vue框架生成开发模板文件方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060242172A1 (en) * | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Systems and methods for transforming logic entities of a business application into an object-oriented model |
-
2021
- 2021-09-22 CN CN202111113222.0A patent/CN113901022B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391537A (zh) * | 2017-04-25 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 数据关系模型的生成方法、装置及设备 |
CN109101234A (zh) * | 2018-07-05 | 2018-12-28 | 北京三快在线科技有限公司 | 确定页面与业务模块之间对应关系的方法及装置 |
CN111488145A (zh) * | 2020-04-30 | 2020-08-04 | 国网河北省电力有限公司信息通信分公司 | 一种基于业务域数据模型库的微服务代码生成系统及方法 |
CN111984176A (zh) * | 2020-07-08 | 2020-11-24 | 福建亿能达信息技术股份有限公司 | 一种软件在线开发平台及开发方法 |
CN113254017A (zh) * | 2021-05-27 | 2021-08-13 | 平安普惠企业管理有限公司 | 基于Vue框架生成开发模板文件方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
Knowledge extraction from source code based on Hidden Markov Model : application to EPICAM;Azanzi, Fidel Jiomekong et al.;2017 IEEE/ACS 14TH INTERNATIONAL CONFERENCE ON COMPUTER SYSTEMS AND APPLICATIONS (AICCSA);1478-1485 * |
基于J2EE多层架构的Web开发框架研究;李小平;肖岳峰;宿元;宋瀚涛;姚永标;;计算机应用研究(05);第1429-1431页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113901022A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110168518B (zh) | 准备和整理用于后续分析的数据的用户界面 | |
US11023500B2 (en) | Systems and methods for code parsing and lineage detection | |
CN101488151B (zh) | 一种聚合Web站点内容的系统和方法 | |
CN111241454B (zh) | 一种生成网页代码的方法、系统和装置 | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
CN110543571A (zh) | 用于水利信息化的知识图谱构建方法以及装置 | |
CN102446099A (zh) | 工作软件中的用户界面实体模型的反向工程 | |
US8645913B2 (en) | Web-service based generation of business objects | |
CN102520966B (zh) | 一种代码提示方法和装置 | |
CN110222251B (zh) | 一种基于网页分割和搜索算法的服务包装方法 | |
CN112287114A (zh) | 一种知识图谱服务处理方法和装置 | |
CN107220250A (zh) | 一种模板配置方法及系统 | |
CN113901022B (zh) | 一种业务与数据关系模型建立方法、装置、设备及存储介质 | |
CN111508562A (zh) | 流程描述性语言的可视化显示方法、装置、设备和介质 | |
CN115017182A (zh) | 一种可视化的数据分析方法及设备 | |
US10223086B2 (en) | Systems and methods for code parsing and lineage detection | |
CN112861059A (zh) | 可视化组件生成方法、装置、计算机设备及可读存储介质 | |
CN111008011A (zh) | 一个面向电力平台应用开发的系统构建器 | |
Urbieta et al. | A web-based model-driven platform for web augmentation | |
CN106991144B (zh) | 一种定制数据爬取工作流的方法及系统 | |
JP2012194876A (ja) | モジュール解析システム、モジュール解析方法及びモジュール解析プログラム | |
CN114596070A (zh) | 一种基于知识图谱的产品优化设计平台构建方法 | |
CN114281797A (zh) | 基于敏捷低代码平台快速创建基层数据汇聚仓库的方法 | |
CN114489673A (zh) | 一种应用程序中无效代码的删除方法及装置 | |
CN112860725A (zh) | Sql自动生成方法和装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |