[发明专利]基于领域模型的代码生成方法、装置、设备、介质及产品在审
申请号: | 202310820859.6 | 申请日: | 2023-07-06 |
公开(公告)号: | CN116541020A | 公开(公告)日: | 2023-08-04 |
发明(设计)人: | 邬俊杰;张晋铭;王少鸣;郭润增 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06N20/00 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 孙晓丽 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 领域 模型 代码 生成 方法 装置 设备 介质 产品 | ||
本申请公开了一种基于领域模型的代码生成方法、装置、设备、介质及产品,属于软件开发技术领域。该方法包括:对领域模型进行数据解析,得到所述领域模型对应的结构化描述信息,所述领域模型是指包括领域内的至少两个类以及所述至少两个类之间的关联关系,所述结构化描述信息包括以实例形式描述所述领域模型的格式化语句;基于预训练深度学习模型对所述结构化描述信息进行数据配置,得到DSL;基于所述DSL进行代码生成,得到所述领域模型对应的第一代码。通过上述方法,利用预训练深度学习模型对领域模型对应的结构化描述信息进行数据配置,避免了人力对结构化描述信息进行优化调整,极大地提高了代码生成效率。
技术领域
本申请实施例涉及软件开发技术领域,特别涉及一种基于领域模型的代码生成方法、装置、设备、介质及产品。
背景技术
在项目开发过程中,需要编程人员编写大量的代码以实现项目中的业务运行逻辑。
为了提高代码编写工作的效率,相关技术中,采用代码生成工具协助项目开发,从而解决代码编写效率低的问题。目前代码生成工具生成代码的步骤主要是获取领域模型对应的结构化描述信息,将结构化描述信息写入至代码生成工具中的代码模板中直接生成代码。
但代码生成工具中的代码模板都已预定义,且基于领域模型解析得到的结构化描述信息生成的代码可能不符合团队规范,或在生成代码后依然需要大量的人力去进行优化调整,因此,如何在保证生成代码质量的前提下提高代码生成效率,是亟待解决的重要问题。
发明内容
本申请提供了一种基于领域模型的代码生成方法、装置、设备、介质及产品,所述技术方案如下。
根据本申请的一方面,提供了一种基于领域模型的代码生成方法,所述方法包括以下步骤。
对领域模型进行数据解析,得到所述领域模型对应的结构化描述信息,所述领域模型是指包括领域内的至少两个类以及所述至少两个类之间的关联关系,所述结构化描述信息包括以实例形式描述所述领域模型的格式化语句。
基于预训练深度学习模型对所述结构化描述信息进行数据配置,得到领域特定语言DSL,所述DSL包括对所述结构化描述信息进行数据配置后得到的受限于所述领域的语言。
基于所述DSL进行代码生成,得到所述领域模型对应的第一代码。
根据本申请的一方面,提供了一种基于领域模型的代码生成装置,所述装置包括以下模块。
数据解析模块,用于对领域模型进行数据解析,得到所述领域模型对应的结构化描述信息,所述领域模型用于表示领域内的至少两个类以及所述至少两个类之间的关联关系,所述结构化描述信息包括以实例形式描述所述领域模型的格式化语句。
数据配置模块,用于基于预训练深度学习模型对所述结构化描述信息进行数据配置,得到领域特定语言DSL,所述DSL包括对所述结构化描述信息进行数据配置后得到的受限于所述领域的语言。
代码生成模块,用于基于所述DSL进行代码生成,得到所述领域模型对应的第一代码。
在一些实施例中,所述数据配置模块,还用于基于所述预训练深度学习模型对所述结构化描述信息进行所述数据配置,得到所述结构化描述信息对应的配置信息,所述配置信息是指对所述结构化描述信息进行补充的信息。
在一些实施例中,所述数据配置模块,还用于将所述配置信息嵌入至所述结构化描述信息中,得到所述DSL。
在一些实施例中,所述结构化描述信息包括实体类信息,所述配置信息包括类配置信息;所述数据配置模块,还用于基于所述预训练深度学习模型对所述实体类信息中的变量进行所述数据配置,得到所述实体类信息对应的所述类配置信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310820859.6/2.html,转载请声明来源钻瓜专利网。