时序图描述代码生成方法、装置、存储介质及电子设备与流程
本技术涉及软件开发,具体而言,涉及一种时序图描述代码生成方法、装置、存储介质及电子设备。
背景技术:
1、在金融核心系统、企业级中台架构及微服务治理等复杂软件开发场景中,时序图作为需求分析、接口设计及代码评审的核心交付物,其准确性与一致性至关重要。然而,传统时序图生成技术主要依赖人工绘制或基于静态代码分析的自动化工具,存在如下显著的技术痛点:
2、(1)现有静态分析工具仅能捕获平铺的方法调用链,无法识别循环(如重试机制)、条件分支(如if-else)及异常处理(如try-catch)等动态执行路径。对于包含复杂控制流的代码结构,漏报率极高,导致生成的时序图无法反映真实的业务逻辑,如分布式事务中的补偿机制或重试逻辑往往被简化为单线程调用,严重误导设计评审。
3、(2)传统工具多输出静态图片格式,无法实现代码与文档的双向同步。当代码发生变更时,设计文档需全量重建,维护成本极高。
4、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本技术实施例提供了一种时序图描述代码生成方法、装置、存储介质及电子设备,以至少解决相关技术无法处理包含复杂控制流的代码文件,且依赖全量重建静态图片格式,导致代码文件发生变更时的时序图维护成本高、生成效率低的技术问题。
2、根据本技术实施例的一个方面,提供了一种时序图描述代码生成方法,包括:遍历目标版本的源代码文件,确定带有时序图生成注解的目标方法的目标源代码文本,其中,源代码文件中包括多个方法分别对应的源代码文本;依据目标源代码文本构建目标方法的目标抽象语法树;将目标抽象语法树序列化为目标结构化数据对象,并依据目标结构化数据对象生成结构化提示词;基于生成式模型对结构化提示词进行分析处理,生成目标时序图描述代码。
3、根据本技术实施例的另一方面,还提供了一种时序图描述代码生成装置,包括:确定模块,用于遍历目标版本的源代码文件,确定带有时序图生成注解的目标方法的目标源代码文本,其中,源代码文件中包括多个方法分别对应的源代码文本;构建模块,用于依据目标源代码文本构建目标方法的目标抽象语法树;提示词生成模块,用于将目标抽象语法树序列化为目标结构化数据对象,并依据目标结构化数据对象生成结构化提示词;代码生成模块,用于基于生成式模型对结构化提示词进行分析处理,生成目标时序图描述代码。
4、在一个示例性实施例中,上述装置还用于依据目标源代码文本构建目标方法的目标抽象语法树,包括:对目标源代码文本进行静态语法分析,得到基础抽象语法树和代码注释文本,其中,基础抽象语法树内包括多个语法节点,且语法节点的类型至少包括:类节点、接口节点、方法签名节点、方法参数节点和返回值节点;对目标源代码文本进行执行模拟,得到控制流信息,其中,控制流信息至少包括:方法调用链、条件分支、循环结构和异常处理块;使用正则表达式扫描代码注释列表,以将代码注释列表内的各个代码注释转换为对应的业务语义标签,其中,业务语义标签包括以下至少之一:领域实体标签、业务动作标签、场景标签、规则标签;将控制流信息追加至基础抽象语法树中对应的语法节点中,并将业务语义标签与业务语义标签关联的语法节点进行绑定,得到目标抽象语法树。
5、在一个示例性实施例中,上述装置还用于将目标抽象语法树序列化为目标结构化数据对象,并依据目标结构化数据对象生成结构化提示词,包括:遍历目标抽象语法树内的每个语法节点,将语法节点的节点信息、控制流信息和业务语义标签映射为预设格式的结构化数据对象;对目标抽象语法树内所有语法节点的结构化数据对象进行整合,得到目标结构化数据对象;将目标结构化数据对象填充至预设的提示词模板中,得到结构化提示词。
6、在一个示例性实施例中,上述装置还用于基于生成式模型对结构化提示词进行分析处理,生成目标时序图描述代码,包括:基于生成式模型对结构化提示词进行分析处理,得到初始时序图描述代码;判断初始时序图描述代码是否包含预设起始标记和预设结束标记;在初始时序图描述代码包含预设起始标记和预设结束标记的情况下,判断初始时序图描述代码是否存在语法错误;在初始时序图描述代码不存在语法错误的情况下,输出目标时序图描述代码。
7、在一个示例性实施例中,上述装置还用于在初始时序图描述代码不包含预设起始标记或预设结束标记,或者初始时序图描述代码存在语法错误的情况下,再次基于生成式模型对结构化提示词进行分析处理,生成新的目标时序图描述代码。
8、在一个示例性实施例中,上述装置还用于在生成目标时序图描述代码之后,方法还包括:提取目标版本的源代码文件内各个方法对应的目标时序图描述代码中的时序图元素标识集合,构建映射表,其中,映射表记录了多个方法与对应时序图标识集合之间的关联关系。
9、在一个示例性实施例中,上述装置还用于获取目标版本的下一版本的源代码文件,并将目标版本的源代码文件和下一版本的源代码文件进行差异比对,得到变更方法列表,其中,变更方法列表包括:多个变更方法对应的变更内容;在映射表中查找变更方法列表内各个变更方法对应的目标时序图元素标识集合;对于每个变更方法,依据变更方法对应的变更内容构建局部目标抽象语法树,并将局部目标抽象语法树序列化为结构化数据片段对象,依据结构化数据片段对象和变更方法对应的目标时序图元素标识集合生成新结构化提示词;基于生成式模型对新结构化提示词进行分析处理,生成时序图描述代码片段;基于变更方法对应的目标时序图元素标识集合,利用时序图描述代码片段对变更方法在目标版本下的目标时序图描述代码进行替换,得到新的目标时序图描述代码。
10、根据本技术实施例的另一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机可读的存储介质为被处理器执行时执行上述任一项方法实施例中的步骤。
11、根据本技术实施例的另一方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述任一项方法实施例中的步骤。
12、根据本技术实施例的另一方面,还提供了一种电子设备,包括:存储器和处理器,上述存储器中存储有计算机程序,上述处理器被配置为通过计算机程序执行上述任一项方法实施例中的步骤。
13、在本技术实施例中,遍历目标版本的源代码文件,确定带有时序图生成注解的目标方法的目标源代码文本,其中,源代码文件中包括多个方法分别对应的源代码文本;依据目标源代码文本构建目标方法的目标抽象语法树;将目标抽象语法树序列化为目标结构化数据对象,并依据目标结构化数据对象生成结构化提示词;基于生成式模型对结构化提示词进行分析处理,生成目标时序图描述代码。通过上述技术方案,实现了从代码实现逆向生成包含循环、分支及异常等复杂控制流逻辑且带有业务语义的可编辑时序图描述代码的技术效果,达到了解决传统工具控制流表达失效、业务语义脱节以及设计资产不可演化问题,消除代码与设计文档断层,提升时序图生成准确率及维护效率的目的,进而解决了相关技术无法处理包含复杂控制流的代码文件,且依赖全量重建静态图片格式,导致代码文件发生变更时的时序图维护成本高、生成效率低的技术问题。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com