模型框架代码生成系统及方法技术方案

技术编号:33799973 阅读:14 留言:0更新日期:2022-06-16 10:04
本发明专利技术提供了一种模型框架代码生成系统及方法,其中,该系统包括:模型数据库模块,用于存储预先根据设定业务系统构建的数据元素、数据对象模型及服务描述模型,针对业务领域定义的服务描述语言;可视化界面模块,用于显示存储内容的可视化标识,接收编排操作指令并据其选择所需内容的可视化标识;模型构建层模块,用于根据选择的可视化标识,获取存储的数据元素、数据对象模型、及服务描述模型,构建得到新数据对象模型或新服务描述模型;模型发布层模块,用于对新模型进行发布,生成用于在设定业务系统中运行该新模型的框架代码和相应的环境库文件。通过上述方案能够提高模型的数据质量。据质量。据质量。

【技术实现步骤摘要】
模型框架代码生成系统及方法


[0001]本专利技术涉及云服务
,尤其涉及模型框架代码生成系统及方法。

技术介绍

[0002]数据模型是指现实世界数据特征的抽象,用以描述一组数据的概念和定义,是数据资产管理和数据治理的基础。高质量的数据模型有助于提高业务系统数据的质量。
[0003]现有数据模型是由人工线下定义并开发得到。但是,在信息系统建设开发阶段,人工编写代码存在无法从根本上解决的问题:第一,人工编写代码的工作量大,周期长,成本高;第二,对研发人员要求高,有些错误在不同人员和同一人员不同位置的代码中重复出现,提高个人能力只能降低错误出现率,但无法从根本上避免这些错误;第三,虽然有公共编码规范,但不同人员对代码规范的学习程度和理解方向有所差别,在编码过程中或多或少带有个人不良习惯,发生人员流动时,代码交接难度加大;第四,人工编写的代码重复利用率低、重复利用难度大,大量相似逻辑的代码在移植修改时容易遗漏,并易由此导致一系列严重错误。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供了一种框架代码生成系统及方法,以提高模型的数据质量。
[0005]为了达到上述目的,本专利技术采用以下方案实现:
[0006]根据本专利技术实施例的一个方面,提供了一种模型框架代码生成系统,包括:
[0007]模型数据库模块,用于存储预先根据设定业务系统构建的数据元素、数据对象模型、及服务描述模型中的至少一个,以及针对所述设定业务系统所在业务领域定义的服务描述语言;
[0008]可视化界面模块,用于显示存储的数据元素、数据对象模型、及服务描述模型的可视化标识,接收编排操作指令,并根据所述编排操作指令选择数据元素、数据对象模型、及服务描述模型的可视化标识中的至少一个;
[0009]模型构建层模块,用于根据选择的可视化标识,获取相应的存储的数据元素、数据对象模型、及服务描述模型中的至少一个,以构建得到新模型;其中,新模型为新的数据对象模型或新的服务描述模型;
[0010]模型发布层模块,用于根据存储的服务描述语言对新模型进行发布,生成用于在所述设定业务系统中运行该新模型的框架代码和相应的环境库文件。
[0011]在一些实施例中,所述的模型框架代码生成系统还包括:
[0012]模型测试层模块,用于对新模型的框架代码和相应的环境库文件进行校验分析,以进行客户端和服务端契约测试。
[0013]在一些实施例中,模型发布层模块,还用于记录该新模型相关信息;其中,该新模型相关信息包括发布时间信息、发布描述信息、发布版本信息、发布领域信息、及发布机构
信息中的至少一个;
[0014]模型数据库模块,还用于导入并存储该新模型的框架代码和相应的环境库文件,以及该新模型相关信息。
[0015]在一些实施例中,存储的数据元素、数据对象模型、及服务描述模型中的至少一个的存储结构为树形结构。
[0016]在一些实施例中,所述编排操作指令包括拖拽操作指令和/或关联操作指令。
[0017]在一些实施例中,所述服务描述语言包括数据对象模型的结构体及其含义、数据元素及其含义、函数接口模型及其含义、函数类型、及容器,以及其之间所需的继承关系、组合关系及聚合关联。
[0018]在一些实施例中,模型发布层模块,包括:
[0019]词法分析及校验模块,用于以字符为单位扫描新模型的描述文件,在扫描到的新模型中的单词为服务描述语言中的关键字时,返回该单词对应的属性编码,在扫描到的新模型中的单词是无效字符时,跳过该无效字符,在扫描到的新模型中的单词不是服务描述语言中的关键字时且不是无效字符时,保留相应单词的字符串信息,以在扫描完新模型的描述文件后得到新模型的词法分析及校验结果;
[0020]框架代码生成模块,用于根据新模型的词法分析及校验结果解析该新模型的描述文件,以执行相应功能,初始化全局变量,调用设定代码生成函数,解析语言类型,并根据语言类型生成相应的框架代码;
[0021]打包模块,用于将框架代码复制到编程语言工程的源代码路径,并将所述编程语言工程依赖的服务框架环境库文件拷贝至环境库路径,并对源代码路径下的框架代码和环境库路径和服务框架环境库文件进行打包压缩,得到该新模型的框架代码和相应的环境库文件的压缩包。
[0022]在一些实施例中,模型测试层模块,包括:
[0023]服务端服务实例MockServer生成模块,用于根据新模型的框架代码,利用用于测试的服务描述模型的描述文件,模拟函数接口返回参数值,生成服务端服务实例MockServer;
[0024]客户端能力测试MockClient生成模块,用于根据服务端服务实例的框架代码,使用Java父类加载器加载接口以利用反射机制获取类对象实例,通过反射机制收集用于测试的服务描述模型的接口方法数组信息,根据获取的类对象实例和接口方法数据信息通过反射机制得到创建客户端所需的实例类,通过实例类创建客户端对象并获取成员变量和相应调用方法,形成客户端能力测试MockClient;
[0025]xml模板生成模块,用于利用客户端能力测试MockClient,根据获取的成员变量得到接口函数的入参类型、出参类型及方法名称,根据入参类型、出参类型及方法名称生成xml模板;
[0026]契约测试模块,用于利用生成的xml模板填入输入的测试参数对应类型的参数值,并通过反射机制将输入的参数值传入客户端对象的invoke方法,以利用所述调用方法对服务端服务实例MockServer进行远程调用。
[0027]根据本专利技术实施例的另一个方面,还提供了一种模型框架代码生成方法,包括:
[0028]获取存储的预先根据设定业务系统构建的数据元素、数据对象模型、及服务描述
模型中的至少一个,以及针对所述设定业务系统所在业务领域定义的服务描述语言;
[0029]显示存储的数据元素、数据对象模型、及服务描述模型的可视化标识,接收编排操作指令,并根据所述编排操作指令选择数据元素、数据对象模型、及服务描述模型的可视化标识中的至少一个;
[0030]根据选择的可视化标识,获取相应的存储的数据元素、数据对象模型、及服务描述模型中的至少一个,以构建得到新模型;其中,新模型为新的数据对象模型或新的服务描述模型;
[0031]根据存储的服务描述语言对新模型进行发布,生成用于在所述设定业务系统中运行该新模型的框架代码和相应的环境库文件。
[0032]根据本专利技术实施例的又一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所述方法的步骤。
[0033]本专利技术实施例的模型框架代码生成系统、模型框架代码生成方法及计算机可读存储介质,能够辅助用户进行模型编排,减少了人力工作量、重复性工作、人为错误等,提高了模型的数据质量。
附图说明
[0034]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模型框架代码生成系统,其特征在于,包括:模型数据库模块,用于存储预先根据设定业务系统构建的数据元素、数据对象模型、及服务描述模型中的至少一个,以及针对所述设定业务系统所在业务领域定义的服务描述语言;可视化界面模块,用于显示存储的数据元素、数据对象模型、及服务描述模型的可视化标识,接收编排操作指令,并根据所述编排操作指令选择数据元素、数据对象模型、及服务描述模型的可视化标识中的至少一个;模型构建层模块,用于根据选择的可视化标识,获取相应的存储的数据元素、数据对象模型、及服务描述模型中的至少一个,以构建得到新模型;其中,新模型为新的数据对象模型或新的服务描述模型;模型发布层模块,用于根据存储的服务描述语言对新模型进行发布,生成用于在所述设定业务系统中运行该新模型的框架代码和相应的环境库文件。2.如权利要求1所述的模型框架代码生成系统,其特征在于,还包括:模型测试层模块,用于对新模型的框架代码和相应的环境库文件进行校验分析,以进行客户端和服务端契约测试。3.如权利要求1所述的模型框架代码生成系统,其特征在于,模型发布层模块,还用于记录该新模型相关信息;其中,该新模型相关信息包括发布时间信息、发布描述信息、发布版本信息、发布领域信息、及发布机构信息中的至少一个;模型数据库模块,还用于导入并存储该新模型的框架代码和相应的环境库文件,以及该新模型相关信息。4.如权利要求1所述的模型框架代码生成系统,其特征在于,存储的数据元素、数据对象模型、及服务描述模型中的至少一个的存储结构为树形结构。5.如权利要求1所述的模型框架代码生成系统,其特征在于,所述编排操作指令包括拖拽操作指令和/或关联操作指令。6.如权利要求1所述的模型框架代码生成系统,其特征在于,所述服务描述语言包括数据对象模型的结构体及其含义、数据元素及其含义、函数接口模型及其含义、函数类型、及容器,以及其之间所需的继承关系、组合关系及聚合关联。7.如权利要求1所述的模型框架代码生成系统,其特征在于,模型发布层模块,包括:词法分析及校验模块,用于以字符为单位扫描新模型的描述文件,在扫描到的新模型中的单词为服务描述语言中的关键字时,返回该单词对应的属性编码,在扫描到的新模型中的单词是无效字符时,跳过该无效字符,在扫描到的新模型中的单词不是服务描述语言中的关键字时且不是无效字符时,保留相应单词的字符串信息,以在扫描完新模型的描述文件后得到新模型的词法分析及校验结果;框架代码生成模块,用于根据新模型的词法分析及校验结果解析该新模型的描述...

【专利技术属性】
技术研发人员:周烁李荣宽丁乙马雪杰王长纯屠志鹏张晨宇
申请(专利权)人:电科云北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1