CN117435178B - 一种代码生成系统、方法、装置及存储介质 - Google Patents
一种代码生成系统、方法、装置及存储介质 Download PDFInfo
- Publication number
- CN117435178B CN117435178B CN202311756633.0A CN202311756633A CN117435178B CN 117435178 B CN117435178 B CN 117435178B CN 202311756633 A CN202311756633 A CN 202311756633A CN 117435178 B CN117435178 B CN 117435178B
- Authority
- CN
- China
- Prior art keywords
- code
- dynamic
- data
- suspicious
- determining
- 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 41
- 230000008569 process Effects 0.000 claims description 16
- 238000013210 evaluation model Methods 0.000 claims description 14
- 238000011156 evaluation Methods 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 description 41
- 239000013598 vector Substances 0.000 description 38
- 238000012549 training Methods 0.000 description 28
- 238000011161 development Methods 0.000 description 12
- 230000018109 developmental process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000001276 controlling effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000004540 process dynamic Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本说明书实施例提供一种代码生成系统、方法、装置及存储介质,该系统包括:动态框架生成模块被配置为:基于待处理程序信息确定样板子代码;基于样板子代码,生成动态框架;动态参数配置模块被配置为:根据待处理程序信息和动态框架,检索代码数据库,确定文件目录结构、参数变量;代码生成模块被配置为:根据动态框架、文件目录结构、参数变量,确定动态子代码的排序信息;结合动态框架和排序信息,生成目标系统代码;控制模块被配置为:响应于动态框架、文件目录结构、参数变量中的至少一个满足预设更新条件;控制动态框架生成模块对动态框架进行更新处理;以及控制动态参数配置模块对文件目录结构和/或参数变量进行更新处理。
Description
技术领域
本说明书涉及代码开发领域,特别涉及一种代码生成系统、方法、装置及存储介质。
背景技术
随着计算机技术的发展,人们的生活越来越依赖计算机技术,为满足各种各样的需求,功能各异的系统程序应运而生。在系统程序开发过程中,由于不同软件通常都具有部分类似的功能或步骤,因此有很多代码具有较高的重复性。
目前软件系统开发过程中,为了节约开发时间并降低成本,有着大量根据数据原型生成重复性代码的需求。现有的代码生成方式有文本替换,抽象语法树准换等。其中文本替换虽然简单,但是维护成本高,难以处理动态参数和逻辑条件语句。抽象语法树准换虽然可以进行复杂的逻辑条件和语法分析,但是实现一个强大的转换器需要对编译原理和语言有深刻的理解,成本高昂,开发周期长。此外,对于不同类型的代码之间的转换,往往缺乏高效全面、适应性较好的方案。
因此,希望提供一种代码生成系统、方法、装置及存储介质,能够准确可靠地进行大量代码生成与转换,并且易于后期维护,升级。
发明内容
本说明书一个或多个实施例提供一种代码生成系统。所述代码生成系统包括:动态框架生成模块,被配置为:基于待处理程序信息确定样板子代码;基于样板子代码,生成动态框架;动态参数配置模块,被配置为:根据待处理程序信息和动态框架,检索代码数据库,确定文件目录结构和参数变量;代码生成模块,被配置为:根据动态框架、文件目录结构、参数变量,确定动态子代码的排序信息;动态子代码从代码数据库中调取;结合动态框架和排序信息,生成目标系统代码;控制模块,被配置为:响应于动态框架、文件目录结构和参数变量中的至少一个满足预设更新条件;控制动态框架生成模块对动态框架进行更新处理;以及,控制动态参数配置模块对文件目录结构和/或参数变量进行更新处理。
本说明书一个或多个实施例提供一种代码生成方法。所述代码生成方法包括:基于待处理程序信息确定样板子代码;基于所述样板子代码,生成动态框架;根据所述待处理程序信息和所述动态框架,检索代码数据库,确定文件目录结构和参数变量;根据所述动态框架、所述文件目录结构、所述参数变量,确定动态子代码的排序信息;所述动态子代码从所述代码数据库中调取;结合所述动态框架和所述排序信息,生成目标系统代码;响应于所述动态框架、所述文件目录结构和所述参数变量中的至少一个满足预设更新条件;控制所述动态框架生成模块对所述动态框架进行更新处理;以及,控制所述动态参数配置模块对所述文件目录结构和/或所述参数变量进行更新处理。
本说明书一个或多个实施例提供一种代码生成装置,所述装置包括至少一个处理器以及至少一个存储器;所述至少一个存储器用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现上述实施例所述的代码生成方法。
本说明书一个或多个实施例提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行上述实施例所述的代码生成方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的代码生成系统的示例性模块示意图;
图2是根据本说明书一些实施例所示的代码生成方法的示例性流程示意图;
图3是根据本说明书一些实施例所示的代码评估模型的示例性示意图;
图4是根据本说明书一些实施例所示的更新方式的确定流程示意图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的代码生成系统的示例性模块示意图。
在一些实施例中,代码生成系统100可以包括动态框架生成模块110、动态参数配置模块120、代码生成模块130、控制模块140。
动态框架生成模块110是用于生成不同类型代码的动态框架信息的模块。在一些实施例中,动态框架生成模块110可以基于待处理程序信息(如,设计逻辑和程序架构等)确定多组样板子代码,基于多组样板子代码生成动态框架。
动态参数配置模块120是用于确定文件目录结构和参数变量的模块。在一些实施例中,态参数配置模块120可以基于待处理程序信息和动态框架,检索代码数据库确定至少一组文件目录结构和参数变量。
代码生成模块130是用于生成目标系统代码的模块。在一些实施例中,代码生成模块130可以基于动态框架、文件目录结构和参数变量确定排序信息,以及从代码数据库中调取至少一组动态子代码,结合动态框架按排序信息生成目标系统代码。其中,排序信息是指动态框架中不同动态子代码所处位置的顺序信息,动态子代码是指存储在代码数据中的用于个性化调整的代码。
控制模块140是对动态框架信息、文件目录结构和参数变量进行更新的功能模块。在一些实施例中,控制模块140可以控制动态框架生成模块110对动态框架信息进行更新,控制模块140还可以控制动态参数配置模块120对文件目录结构和/或参数变量进行更新。
在一些实施例中,控制模块可以在动态框架、文件目录结构和参数变量中至少一个满足预设条件(用户主动更新、数据更新)时,控制动态框架生成模块110对动态框架进行更新处理,以及控制动态参数配置模块对文件目录结构和/或参数变量进行更新处理。
在一些实施例中,代码生成系统100还可以包括评估模块150。评估模块150被配置为评估目标系统代码与待处理程序信息之间的关联度。其中,关联度可以反应目标系统代码与待处理程序信息的吻合程度。
在一些实施例中,代码生成系统的部分或全部模块可以被集成于终端处理器中。终端处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、现场可编程门阵列(FPGA)等。关于终端处理器的更多内容可以参见图2至图4及相关描述。
关于上述模块的更多相关内容,具体可参见下述图2至图4的相关描述。
需要注意的是,以上对于代码生成系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。在一些实施例中,图1中披露的动态框架生成模块110、动态参数配置模块120、代码生成模块130、控制模块140和评估模块150可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
图2是根据本说明书一些实施例所示的生成目标系统代码的示例性流程示意图。
如图2所示,在一些实施例中,终端处理器生成目标系统代码270的流程如下:
S10:基于待处理程序信息210,确定样板子代码220。
待处理程序信息是指与待编码程序(即待处理程序)相关的数据信息。例如,待处理程序信息包括待编码程序的设计逻辑、架构等。
样板子代码是预先确定并封装的程序代码。例如,样板子代码包括通用代码(如登录功能的代码)、使用频率较高的代码(如API请求代码)等。
在一些实施例中,终端处理器可以基于待处理程序信息,通过多种方式确定样板子代码。终端处理器可以提取待处理程序信息中的关键词或短语,来匹配确定样板子代码。例如,待处理程序信息中包含“用户登录”,终端处理器会从样板代码库中确定出具有登录功能的样板子代码。其中,样板代码库存储有若干预先设计好的样板子代码及其对应的关键词或短语信息,终端处理器可以根据关键词或短语匹配其中的样板子代码。
S20:基于样板子代码220,生成动态框架230。
动态框架是指待编码程序对应的程序框架。在一些实施例中,动态框架能由多组具有固定模板的代码(即样板子代码)组合成。例如,具有固定模板的代码包括用户登录界面对应的代码组合、弹出验证码窗对应的代码组合等。
在一些实施例中,终端处理器可以基于多组样板子代码,自动查询预先构建的样板代码表,确定出匹配度最高的动态框架;进而将匹配度最高的动态框架确定为待编码程序所需的动态框架。
样板代码表是由多组动态框架和对应索引组成的统计表,多组动态框架可以基于FreeMarker预先进行创建。
例如,终端处理器通过代码编辑器,确定待编码程序对应的动态框架需要50组不同的样板子代码,通过查询样板代码表,确定样板代码表中存在某三个动态框架,该三个动态框架分别具有45组、30组和20组样板子代码能够与待编码程序对应的动态框架需要的样板子代码相符合,相符合是指从样板代码表中查询的动态框架中的样板子代码,与待编码程序对应的动态框架需要的样板子代码均能用于实现相关的功能,此时该三个动态框架得匹配度分别确定为90%、60%和40%,将匹配度为90%对应的动态框架确定为待编码程序所需的动态框架。50组样板子代码里有我需要的一组登录界面相关的样板子代码,而匹配到的一个动态框架里恰好有这组样板子代码,就是符合
S30:根据待处理程序信息210和动态框架230,检索代码数据库,确定文件目录结构240和参数变量250。
文件目录结构是动态框架中的组织结构。例如,文件目录结构包括开放接口层、终端显示层、接口访问层、数据库访问层和服务层等,每层包括至少一组样板子代码。
参数变量是指与待编码程序的代码相关的参数和变量。例如,参数包括形参和实参,变量包括局部变量和全局变量。终端处理器可以通过改变参数变量对待编码程序进行调整。例如,终端处理器可以通过改变参数变量调整相关弹窗的颜色大小、页面加载类型等。
在一些实施例中,终端处理器可以基于待处理程序信息和动态框架,通过向量检索的方式确定文件目录结构和参数变量。
例如,终端处理器可以至少以待处理程序信息和动态框架为元素,构建待匹配向量。终端处理器可以基于待匹配向量在代码数据库中进行检索,获取与待匹配向量的向量距离小于距离阈值的参考向量,将参考向量对应的历史文件目录结构和历史参数变量,确定为当前所需的文件目录结构和参数变量。
其中,代码数据库是用于存储、索引和查询文件目录结构和参数变量的数据库,存储有若干参考向量及其对应的历史文件目录结构和历史参数变量。参考向量基于历史待处理程序信息和历史动态框架构建,历史文件目录结构为历史文件待处理程序信息和历史动态框架实际对应的文件目录结构,历史参数变量为历史待处理程序信息和历史动态框架实际对应的参数变量。代码数据库可以基于历史数据或先验知识预先构建。
S40:根据动态框架230、文件目录结构240、参数变量250,确定动态子代码的排序信息260。
排序信息是指动态框架中的动态子代码所处位置的顺序信息,动态子代码是指需要组合到动态框架的代码片段。例如,动态子代码的排序信息包括动态框架中的位置先后、所在层次或分组信息等。
在一些实施例中,终端处理器可以根据文件目录结构确定动态子代码在动态框架中的层,基于参数变量确定动态子代码在层中的位置,进而基于动态子代码在层中的位置确定排序信息。
例如,负责用户身份验证的动态子代码位于动态框架中的接口访问层,终端处理器将出用户名(Username)、密码(Password)等参数变量在接口访问层中的若干位置,分别确定为负责用户身份验证的动态子代码在接口访问层中的位置,与用户名(Username)相关的动态子代码的位置排序在与密码(Password)相关的动态子代码之前。
在一些实施例中,动态子代码可以从代码数据库中调取。例如,终端处理器基于从代码数据库中确定的文件目录结构,调取代码数据库中文件目录结构对应的至少一组动态子代码,并将其确定为所需的动态子代码。
S50:结合动态框架230和排序信息260,生成目标系统代码270。
目标系统代码是用于构成待编码程序的代码数据。在一些实施例中,终端处理器可以将动态子代码按排序信息与动态框架组合,生成目标系统代码。
在一些实施例中,响应于动态框架、文件目录结构和参数变量中的至少一个满足预设更新条件,终端处理器还可以进一步执行下述操作S60和S70:
S60:控制动态框架生成模块对动态框架进行更新处理。
关于动态框架生成模块的说明可以参见图1及其相关描述。
预设更新条件是预设来用于判断是否对动态框架进行更新处理的条件。例如,预设更新条件包括出现至少一组样板子代码与动态子代码发生冲突、参数变量不符合要求等的提示信息,提示信息可以在代码编辑器、日志记录中显示。
在一些实施例中,终端处理器通过多种方式,控制动态框架生成模块对动态框架进行更新处理。例如,当动态框架中的样板子代码与动态子代码发生冲突时,终端处理器可以对动态框架中的动态子代码的位置进行调整、更改变量名等,以确保动态框架的稳定性。
S70:控制动态参数配置模块对文件目录结构和/或参数变量进行更新处理。
在一些实施例中,终端处理器通过多种方式,控制动态参数配置模块对文件目录结构进行更新处理。例如,终端处理器对文件目录结构进行调整,包括增加新的目录或子目录,删除旧有的目录等。
在一些实施例中,终端处理器通过多种方式,控制动态参数配置模块对参数变量进行更新处理。例如,参数变量不符合要求,终端处理器可以对参数变量的值或格式进行更新调整,或对参数变量增加额外的验证和处理逻辑。
在一些实施例中,响应于动态框架、文件目录结构和参数变量中的至少一个满足预设调整条件,终端处理器还可以控制动态参数配置模块进行自动调整;自动调整包括框架调整和参数变量调整中的至少一种。
预设调整条件是预设来用于判断是否进行自动调整的条件。在一些实施例中,预设调整条件包括目标系统代码的数据(即动态框架、文件目录结构和参数变量中的至少一个)发生更新(如用户主动更新)。
框架调整是指对动态框架进行的调整,参数变量调整是指对参数变量进行的调整。在一些实施例中,响应于目标系统代码的数据发生更新,终端处理器确定更新后的目标系统代码的通用框架和通用参数变量。其中,通用的框架的确定方式和确定出匹配度最高的动态框架的方式相同,通用的参数变量的确定方式和通过向量检索确定参数变量的方式相同,具体细节可以参见上文所述。
在一些实施例中,终端处理器将更新后的目标系统代码分别和通用框架、通用参数变量进行相似度比较,将更新后的目标系统代码中,相似度小于预设相似度阈值的部分确定为结构差异。结构差异是指更新后的目标系统代码,相较于更新前的目标系统代码的差异。例如,根据已有的聊天程序基础上开发新的聊天程序,用户会在已有的聊天程序的框架基础上调整界面功能从而得到新的聊天程序,此时界面功能即为新的聊天程序相较于已有的聊天程序的结构差异。
在一些实施例中,终端处理器基于结构差异的排序信息、样板子代码和待处理程序信息,通过向量检索的方式,确定结构差异对应的样板子代码和参数变量,并将结构差异对应的样板子代码和参数变量进行替换或调整。
例如,终端处理器可以以结构差异的排序信息、样板子代码和待处理程序信息为元素,构建待匹配向量。终端处理器可以基于待匹配向量在向量数据库中进行检索,获取与待匹配向量的向量距离小于距离阈值的参考向量,将参考向量对应的历史样板子代码和历史参数变量,确定为当前结构差异的样板子代码和参数变量。
其中,向量数据库存储有若干参考向量及其对应的历史样板子代码和历史参数变量。参考向量基于历史排序信息、历史样板子代码和历史待处理程序信息构建,历史样板子代码为历史排序信息、历史样板子代码和历史待处理程序信息实际对应的样板子代码,历史参数变量分别为历史排序信息、历史样板子代码和历史待处理程序信息实际对应的参数变量。
在一些实施例中,在动态框架、文件目录结构和参数变量发生更新时,通过对更新后的目标系统代码的结构差异进行自动调整,能够有效降低开发者对待编码程序手动调整的工作量,有效减少人为调整导致错误和遗漏。
在一些实施例中,通过待编码程序的待处理程序信息,就能生成待编码程序的目标系统代码,有效降低了开发人员对待编码程序进行编写的工作量,提高开发程序的效率,且自动化生成待编码程序的目标系统代码,能够降低人工开发程序时导致的错误,提高程序代码的准确性。在一些实施例中,通过预设更新条件自动对目标系统代码进行更新,有效确保程序能够始终保持稳定性。
在一些实施例中,终端处理器被配置为评估目标系统代码与待处理程序信息的关联度。
关联度是用于反映目标系统代码与待处理程序信息的吻合程度的参数。例如,关联度越大,表明代码生成系统自动生成的目标系统代码越符合用户(开发人员)的需求;反之,关联度越小,表明目标系统代码越需要人工校正。
在一些实施例中,关联度基于目标系统代码中的冗余代码数据和/或可疑代码数据的数据量确定。
冗余代码数据是指目标系统代码中能够进行优化的代码数据。例如,目标系统代码中的某段代码用于执行既定的任务,但经过优化后能够同样执行既定的任务,且执行效率增强(即执行耗时降低),代码数量减少,则说明该段代码即为冗余代码数据。
可疑代码数据是指目标系统代码中可能存在的问题的代码数据。例如,可疑代码数据包括直接报错不能运行的代码数据、能运行(即不会报错),但长时间运行会存在内存泄露、死锁或堆栈溢出等异常情况的代码数据等等。
在一些实施例中,终端处理器基于目标系统代码中满足预设更新条件的代码数据,确定冗余代码数据和可疑代码数据,以及确定冗余代码数据的数据量和可疑代码数据的数据量。例如,日志记录中提示样板子代码与动态子代码发生冲突,终端处理器根据日志记录对样板子代码与动态子代码的记录,确定其中的冗余代码数据和可疑代码数据,以及各自对应的数据量。关于预设更新条件的说明可以参见上文所述。
在一些实施例中,终端处理器基于冗余代码数据的数据量、可疑代码数据的数据量,确定关联度。冗余代码数据的数据量越多、可疑代码数据的数据量越多,则说明目标系统代码与待处理程序信息的关联度越低。
在一些实施例中,终端处理器可以通过代码评估模型确定冗余代码数据的数据量、可疑代码数据的数据量和关联度,更多细节参见图3及其相关描述。
在一些实施例中,代码生成系统自动生成的目标系统代码,往往会存在部分冗余代码或与待处理程序在局部存在不匹配的情况,通过确定出合理的关联度,能够有效评估后续需要人工对目标系统代码进行校正处理的工作量,缩短待处理程序的开发周期。
图3是根据本说明书一些实施例所示的代码评估模型的示例性示意图。
在一些实施例中,终端处理器还可以根据动态框架230、文件目录结构240、参数变量250、待处理程序信息210、动态子代码序列数据314以及目标系统代码340,基于代码评估模型确定关联度360。
代码评估模型是指用以确定关联度360的模型。在一些实施例中,代码评估模型可以是机器学习模型。
如图3所示,代码评估模型300可以包括冗余代码层320、可疑代码层330和关联层350。
在一些实施例中,冗余代码层320、可疑代码层330可以是循环神经网络(RecurrentNeuralNetwork,RNN)等模型,关联层350可以是神经网络(NeuralNetwork,NN)等模型。
在一些实施例中,冗余代码层320可以输入动态框架230、文件目录结构240、参数变量250、动态子代码序列数据314以及待处理程序信息210,输出冗余代码数据的数据量321。
动态子代码序列数据314是指按排序信息260将动态子代码排序后得到的至少一组子代码数据,冗余代码数据的数据量321是指目标系统代码中冗余代码数据的所占的组数。关于动态框架、文件目录结构、参数变量、待处理程序信息的说明可以参见图2及其相关内容。
在一些实施例中,冗余代码层可以基于大量带有第一训练标签的第一训练样本对初始冗余代码层训练得到。其中,第一训练样本可以包括样本目标系统代码对应的样本文件目录结构、样本参数变量、样本待处理程序信息、样本动态子代码序列数据以及样本冗余代码数据的数据量。
第一训练标签可以是样本目标系统代码对应的样本冗余代码数据的数据量。其中,第一训练样本可以基于历史数据确定,第一训练标签可以通过人工标注获得,例如,人工在样本目标系统代码的动态子代码序列数据中植入多组冗余代码,标签为人工标注的冗余代码数据的数据量。
训练时,将第一训练样本输入初始冗余代码层,基于初始冗余代码层的输出与第一标签构建损失函数,基于损失函数迭代更新初始冗余代码层的参数,直至满足预设条件时,训练结束,得到训练好的冗余代码层。其中,预设条件可以包括但不限于损失函数收敛、训练周期达到阈值等。
在一些实施例中,可疑代码层330可以输入动态框架230、文件目录结构240、参数变量250、待处理程序信息210以及动态子代码序列数据314,输出可疑代码数据的数据量331。
可疑代码数据的数据量331是指目标系统代码中可疑代码数据的所占的组数。
在一些实施例中,可疑代码层330可以基于大量带有第二训练标签的第二训练样本对初始可疑代码层训练得到。其中,第二训练样本的内容可以与第一训练样本相同,具体参见前述第一训练样本的说明第二训练标签可以是样本目标系统代码的可疑代码数据的数据量。
第二训练标签可以通过人工标注获得,例如,人工在样本目标系统代码的动态子代码序列数据中植入多组可疑代码,标签为人工标注的可疑代码数据的数据量。
可疑代码层的具体的训练过程与冗余代码层的训练过程相同,具体说明参见前述冗余代码层的训练说明。
在一些实施例中,关联层350可以输入待处理程序信息210、冗余代码数据的数据量321、可疑代码数据的数据量331以及目标系统代码270,输出关联度360。
关于目标系统代码270和关联度360的说明参见图2的相应内容。
在一些实施例中,关联层可以基于大量带有第三训练标签的第三训练样本对初始关联层训练得到。其中,第三训练样本可以包括样本目标系统代码、样本目标系统代码对应的样本待处理程序信息、样本冗余代码数据的数据量以及样本可疑代码数据的数据量。第三训练标签可以是样本目标系统代码对应的关联度(即样本目标系统代码与其对应的待处理程序信息的关联度)。
第三训练标签可以通过人工标注获得,例如,可以人工确定样本目标系统代码内的冗余代码数据的数据量和可疑代码数据的数据量,将样本目标系统代码中的冗余代码数据的数据量和可疑代码数据的数据量之和低于第一预设阈值的,设置该样本目标系统代码对应的第三训练标签中的关联度取值为1;冗余代码数据的数据量和可疑代码数据的数据量之和高于第二预设阈值的,设置其关联度取值为0。第一预设阈值小于第二预设阈值;第一预设阈值和第二预设阈值可以基于先验经验确定。
关联层的具体的训练过程与冗余代码层的训练过程相同,具体说明参见前述冗余代码层的训练说明。
本说明书的一些实施例中,可以通过使用代码评估模型,快速确定出代码生成系统自动生成的代码数据中,可能存在与待处理程序局部不匹配、存在部分冗余代码等问题的冗余代码量和可疑代码量,进而确定出合理的关联度,以便评估后续需要人工介入处理的工作量,有助于在一定程度上缩短开发周期。
在一些实施例中,终端处理器还可以基于关联度360,确定目标数据的可疑位置及发生概率;目标数据包括冗余代码数据和/或可疑代码数据;基于可疑位置及发生概率,发出注释指令以及预警通知。
可疑位置是指冗余代码数据和/或可疑代码数据在目标系统代码270中所处的位置。
在一些实施例中,可疑位置可以包括冗余代码数据和/或可疑代码数据的类型、数据长度、文件名、存储的文件目录等信息。
可疑位置的发生概率是指可疑位置的代码为冗余代码或为可疑代码的概率,概率越高,说明该代码越有可能出现异常情况,越需要进行注释或预警通知。
在一些实施例中,终端处理器可以通过多种方式确定可疑位置。例如,终端处理器可以将目标系统代码与待处理程序信息的关联度作为目标系统代码270的关联度360,并将目标系统代码270的关联度360与历史目标系统代码的历史关联度进行匹配(如计算相似度),当目标系统代码270的关联度360与历史目标系统代码的历史关联度满足相似度匹配要求时,可以将该历史目标系统代码对应的冗余代码和/或可疑代码的位置,确定为目标系统代码270的冗余代码和/或可疑代码的位置。其中,相似度匹配要求可以是相似度大于预设阈值。
在一些实施例中,终端处理器还可以基于目标系统代码270的关联度360与历史目标系统代码的历史关联度的相似度,确定可疑位置对应的发生概率。例如,目标系统代码的关联度与历史目标系统代码的历史关联度的相似度越高,基于历史目标系统代码确定的可疑位置对应的发生概率越大。
在一些实施例中,终端处理器还可以通过在向量数据库进行检索确定可疑位置和可疑位置对应的发生概率。例如,终端处理器可以基于冗余代码数据的数据量321,可疑代码数据的数据量331,目标系统代码270的关联度360和待处理程序信息210中的至少一种,构建第一特征向量。
终端处理器可以基于第一特征向量在向量数据库中进行检索,获取与第一特征向量的向量距离小于距离阈值的历史向量作为第一参考向量,将第一参考向量对应的目标数据所在位置,确定为目标系统代码270的目标数据的可疑位置,基于第一参考向量与第一特征向量的向量距离确定该可疑位置对应的发生概率,例如,向量距离越小,则对应的发生概率越大。
其中,向量数据库用于存储若干历史向量及其对应的目标数据所在位置。历史向量可以基于目标系统代码270的历史冗余代码数据的数据量、历史可疑代码数据的数据量、历史关联度和目标系统代码270的对应的历史待处理程序信息构建。
通过向量数据库匹配确定比较合理的冗余代码和/或可疑代码的可疑位置以及发生概率,进而对发生概率较高的可疑位置进行注释以及发出预警通知,以便工作人员及时确认和处理,提高代码开发效率;
注释指令是指在目标系统代码270中添加注释行的指令,在一些实施例中,注释行可以用于提示其所在行是否为冗余代码或可疑代码以及发生概率。
终端处理器可以基于前述确定的目标数据的可疑位置及发生概率,生成在相应行添加注释行的注释指令。
在一些实施例中,控制模块140可以通过多种方式向用户发出预警。例如,文字提示、语音提示等。
在一些实施例中,控制模块140可以响应于可疑位置的发生概率大于预警阈值时,向用户发出预警。该实施例中,预警阈值可以是发出预警时,可疑位置的代码可能为冗余代码或可能为可疑代码的概率需要满足的最小值。
本说明书的一些实施例中,通过主动确定冗余代码数据和/或所述可疑代码数据的可疑位置及发生概率,可以及时提醒工作人员对目标代码进行检查修改,可以减少生成代码的错误概率,确保生成代码能够准确可靠运行。
图4是根据本说明书一些实施例所示的确定流程示意图。
在一些实施例中,终端处理器被配置为基于预设算法410,确定更新处理采用的更新方式,更新方式包括自动更新和协同更新。
预设算法410是用于确定更新方式的算法规则。例如,预设算法410包括数学计算公式。
自动更新是指代码生成系统自动执行更新的更新方式。
协同更新是指代码生成系统发出预警通知后,由人工确认后进行更新的更新方式。
在一些实施例中,终端处理器可以基于预设算法410,通过多种方式确定更新处理采用的更新方式。例如,终端处理器通过日志记录确定目标系统代码270中需要更新的代码数据量超过预设数据量阈值,则将更新方式确定为协同更新;否则,将更新方式确定为自动更新。又例如,在非工作时间,确定更新方式为自动更新;在工作时间,确定更新方式为协同更新。
在一些实施例中,终端处理器被配置为基于预设算法410,确定更新值420;响应于更新值420大于更新阈值,确定更新方式为协同更新;否则,确定更新方式为自动更新。
更新值420是用于确定更新方式的数值。在一些实施例中,更新值420分别与冗余代码数据的发生概率、冗余代码数据的数据量、可疑代码数据的发生概率和可疑代码数据的数据量成正相关.例如,终端处理器可以通过下述公式(1)确定更新值420。
Q=A×P+B1×Σ(Di×ni)+B2×Σ(Ej×nj)(1)
其中,Q表示更新值;P表示关联度;A表示关联度的预设系数,可以基于历史经验由工作人员或终端处理器预先确定;B1为冗余代码数据的系数,B2为可疑代码数据的系数;Di表示在第i个可疑位置处冗余代码数据的数据量,数据量可以用组数表示,可以反映该可疑位置具有冗余代码的组数;ni表示第i个可疑位置处冗余代码数据的发生概率;Ej表示在第j个可疑位置处可疑代码数据的数据量,数据量可以用组数表示,反映该可疑位置具有可疑代码的组数;nj表示第j个可疑位置处可疑代码数据的发生概率。
关于可疑位置和发生概率的说明可以参见图3及其相关描述。
更新阈值是预设来用于确定更新方式的阈值,可以基于历史经验由工作人员或终端处理器预先确定。
在一些实施例中,将预设算法410设置为更新值420和更新阈值的大小关系来选择更新方式,更新值420通过数学计算公式来确定,能够提高终端处理器的数据处理效率,从而快速确定出目标系统代码的更新方式。
从而能够确定目标系统代码是否需要人工确认以进行更新或自动更新,合理有效地减少人工对目标系统代码进行增查改删的开发时间,提高开发效率。
在一些实施例中,冗余代码数据的系数和可疑代码数据的系数(即B1和B2)关联于代码评估模型内部确定的权重参数,B1和B2分别为关联层内部不同输入层与隐藏层之间的权重的均值。其中,关联层可以包括输入层、隐藏层、输出层。输入层是指关联层中用于接收数据的神经网络层,输入层通过输入节点接收外部数据,例如,外部数据包括待处理程序信息、冗余代码数据的数据量、可疑代码数据的数据量和目标系统代码,且冗余代码数据的数据量、可疑代码数据的数据量通过不同的输入节点输入到关联层;隐藏层是指关联层中用于对数据处理的神经网络层,隐藏层通过隐藏节点对数据进行处理,例如,隐藏节点通过对外部数据进行分析处理从而确定关联度;输出层是指关联层中用于输出处理后的数据的神经网络层,输入层通过输出节点输出处理后的数据,例如,输出节点将关联度作为关联层的输出数据。
示例地,关联层的输入层具有3个输入节点,关联层的隐藏层具有4个隐藏节点,每个输入节点与每个隐藏节点之间均对应一个权重,且冗余代码数据的数据量、可疑代码数据的数据量分别通过第一个输入节点和第二个输入节点输入到关联层,则冗余代码数据的系数B1正相关于第一个输入节点与每个隐藏节点之间对应的权重,可疑代码数据的系数B2正相关于第二个输入节点与每个隐藏节点之间对应的权重。例如,终端处理器将第一个输入节点对应的四个权重的均值确定为冗余代码数据的系数B1,将第二个输入节点对应的四个权重的均值确定为可疑代码数据的系数B2。
示例性的,终端处理器分别通过下述公式(2)和公式(3)确定冗余代码数据的系数B1和可疑代码数据的系数B2
B1=(2)
B2=(3)
其中,k11表示第一个输入节点与第一个隐藏节点对应的权重,k21表示第二个输入节点与第一个隐藏节点对应的权重,k12、k13、k14、k22、k23和k24以此类推。
在一些实施例中,每个输入节点与每个隐藏节点之间的权重相关于与代码评估模型的内部参数,即代码评估模型训练完毕后,关联层的内部参数保持固定,此时终端处理器基于关联层的内部参数确定每个输入节点与每个隐藏节点之间的权重。例如,关联层的神经元数量越多,每个输入节点与每个隐藏节点之间的权重越大。
在一些实施例中,将预设算法410内部的预设系数与代码评估模型内部的权重参数关联,可以使得确定的更新值420更符合实际,使得开发人员能够合理准确选择合适的更新方式。
在一些实施例中,通过预设算法410确定合理的更新值420,从而能够确定目标系统代码是否需要人工确认以进行更新或自动更新,合理有效地减少人工对目标系统代码进行增查改删的开发时间,提高开发效率。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (4)
1.一种代码生成系统,其特征在于,所述系统基于处理器实现,包括:
动态框架生成模块,被配置为:
基于待处理程序信息确定样板子代码;
基于所述样板子代码,生成动态框架;
动态参数配置模块,被配置为:根据所述待处理程序信息和所述动态框架,检索代码数据库,确定文件目录结构和参数变量;
代码生成模块,被配置为:
根据所述动态框架、所述文件目录结构、所述参数变量,确定动态子代码的排序信息;所述动态子代码从所述代码数据库中调取;
结合所述动态框架和所述排序信息,生成目标系统代码;
控制模块,被配置为:
响应于所述动态框架、所述文件目录结构和所述参数变量中的至少一个满足预设更新条件;
控制所述动态框架生成模块对所述动态框架进行更新处理;以及,
控制所述动态参数配置模块对所述文件目录结构和/或所述参数变量进行更新处理;
评估模块,被配置为评估所述目标系统代码与所述待处理程序信息的关联度,包括:
基于所述动态框架、所述文件目录结构、所述参数变量、动态子代码序列数据以及所述待处理程序信息,通过代码评估模型的冗余代码层,确定冗余代码数据的数据量;
基于所述动态框架、所述文件目录结构、所述参数变量、所述待处理程序信息以及所述动态子代码序列数据,通过所述代码评估模型的可疑代码层,确定可疑代码数据的数据量;
基于所述待处理程序信息、所述冗余代码数据的数据量、所述可疑代码数据的数据量以及所述目标系统代码,通过所述代码评估模型的关联层,确定所述关联度;
所述控制模块进一步被配置为:
基于所述关联度,确定目标数据的可疑位置及发生概率;所述目标数据包括冗余代码数据和/或可疑代码数据;
基于所述可疑位置及所述发生概率,发出注释指令以及预警通知;
基于预设算法,确定所述更新处理采用的更新方式;所述更新方式包括自动更新和协同更新;所述更新方式相关于更新值;
所述预设算法包括基于下述公式确定所述更新值:
其中,表示更新值;/>表示关联度;/>表示关联度的预设系数;/>为冗余代码数据的系数,/>为可疑代码数据的系数;/>表示在第i个可疑位置处冗余代码数据的数据量;表示第i个可疑位置处冗余代码数据的发生概率;/>表示在第j个可疑位置处可疑代码数据的数据量;/>表示第j个可疑位置处可疑代码数据的发生概率,i、j为正整数。
2.一种代码生成方法,其特征在于,基于处理器实现,包括:
基于待处理程序信息确定样板子代码;
基于所述样板子代码,生成动态框架;
根据所述待处理程序信息和所述动态框架,检索代码数据库,确定文件目录结构和参数变量;
根据所述动态框架、所述文件目录结构、所述参数变量,确定动态子代码的排序信息;所述动态子代码从所述代码数据库中调取;
结合所述动态框架和所述排序信息,生成目标系统代码;
响应于所述动态框架、所述文件目录结构和所述参数变量中的至少一个满足预设更新条件;
控制动态框架生成模块对所述动态框架进行更新处理;以及,
控制动态参数配置模块对所述文件目录结构和/或所述参数变量进行更新处理;
基于所述动态框架、所述文件目录结构、所述参数变量、动态子代码序列数据以及所述待处理程序信息,通过代码评估模型的冗余代码层,确定冗余代码数据的数据量;
基于所述动态框架、所述文件目录结构、所述参数变量、所述待处理程序信息以及所述动态子代码序列数据,通过所述代码评估模型的可疑代码层,确定可疑代码数据的数据量;
基于所述待处理程序信息、所述冗余代码数据的数据量、所述可疑代码数据的数据量以及所述目标系统代码,通过所述代码评估模型的关联层,确定所述待处理程序信息的关联度;
基于所述关联度,确定目标数据的可疑位置及发生概率;所述目标数据包括冗余代码数据和/或可疑代码数据;
基于所述可疑位置及所述发生概率,发出注释指令以及预警通知;
基于预设算法,确定所述更新处理采用的更新方式;所述更新方式包括自动更新和协同更新;所述更新方式相关于更新值;
所述预设算法包括基于下述公式确定所述更新值:
其中,表示更新值;/>表示关联度;/>表示关联度的预设系数;/>为冗余代码数据的系数,/>为可疑代码数据的系数;/>表示在第i个可疑位置处冗余代码数据的数据量;表示第i个可疑位置处冗余代码数据的发生概率;/>表示在第j个可疑位置处可疑代码数据的数据量;/>表示第j个可疑位置处可疑代码数据的发生概率,i、j为正整数。
3.一种代码生成装置,其特征在于,所述装置包括至少一个处理器以及至少一个存储器;
所述至少一个存储器用于存储计算机指令;
所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现如权利要求2所述的代码生成方法。
4.一种计算机可读存储介质,所述存储介质存储计算机指令,其特征在于,当计算机读取存储介质中的计算机指令后,计算机执行如权利要求2所述的代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311756633.0A CN117435178B (zh) | 2023-12-20 | 2023-12-20 | 一种代码生成系统、方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311756633.0A CN117435178B (zh) | 2023-12-20 | 2023-12-20 | 一种代码生成系统、方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117435178A CN117435178A (zh) | 2024-01-23 |
CN117435178B true CN117435178B (zh) | 2024-03-15 |
Family
ID=89553865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311756633.0A Active CN117435178B (zh) | 2023-12-20 | 2023-12-20 | 一种代码生成系统、方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435178B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256492A (zh) * | 2008-03-31 | 2008-09-03 | 宋乃辉 | 一种进行模型驱动架构的软件开发方法及其系统 |
EP1995931A2 (fr) * | 2007-05-24 | 2008-11-26 | France Telecom | Système et procédé de mise a jour d'un etat de presence d'un utilisateur sur un terminal par agregation d'informations multi-sources |
CN104077227A (zh) * | 2014-07-08 | 2014-10-01 | 大连海事大学 | 一种基于b/s架构的程序源代码的评判系统及方法 |
CN110147225A (zh) * | 2019-04-02 | 2019-08-20 | 平安科技(深圳)有限公司 | 一种代码生成方法、装置及计算机设备、存储介质 |
CN110443045A (zh) * | 2019-08-13 | 2019-11-12 | 北京计算机技术及应用研究所 | 一种基于机器学习方法的模糊测试用例生成方法 |
CN113326187A (zh) * | 2021-05-25 | 2021-08-31 | 扬州大学 | 数据驱动的内存泄漏智能化检测方法及系统 |
CN116049831A (zh) * | 2022-12-27 | 2023-05-02 | 天翼云科技有限公司 | 一种基于静态分析和动态分析的软件漏洞检测方法 |
CN116560642A (zh) * | 2023-05-11 | 2023-08-08 | 中国工商银行股份有限公司 | 代码生成方法及其装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417314B2 (en) * | 2012-06-14 | 2019-09-17 | Open Text Sa Ulc | Systems and methods of a script generation engine |
US10043012B2 (en) * | 2015-01-30 | 2018-08-07 | Denim Group, Ltd | Method of correlating static and dynamic application security testing results for a web application |
-
2023
- 2023-12-20 CN CN202311756633.0A patent/CN117435178B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1995931A2 (fr) * | 2007-05-24 | 2008-11-26 | France Telecom | Système et procédé de mise a jour d'un etat de presence d'un utilisateur sur un terminal par agregation d'informations multi-sources |
CN101256492A (zh) * | 2008-03-31 | 2008-09-03 | 宋乃辉 | 一种进行模型驱动架构的软件开发方法及其系统 |
CN104077227A (zh) * | 2014-07-08 | 2014-10-01 | 大连海事大学 | 一种基于b/s架构的程序源代码的评判系统及方法 |
CN110147225A (zh) * | 2019-04-02 | 2019-08-20 | 平安科技(深圳)有限公司 | 一种代码生成方法、装置及计算机设备、存储介质 |
CN110443045A (zh) * | 2019-08-13 | 2019-11-12 | 北京计算机技术及应用研究所 | 一种基于机器学习方法的模糊测试用例生成方法 |
CN113326187A (zh) * | 2021-05-25 | 2021-08-31 | 扬州大学 | 数据驱动的内存泄漏智能化检测方法及系统 |
CN116049831A (zh) * | 2022-12-27 | 2023-05-02 | 天翼云科技有限公司 | 一种基于静态分析和动态分析的软件漏洞检测方法 |
CN116560642A (zh) * | 2023-05-11 | 2023-08-08 | 中国工商银行股份有限公司 | 代码生成方法及其装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117435178A (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107436875B (zh) | 文本分类方法及装置 | |
US11468246B2 (en) | Multi-turn dialogue response generation with template generation | |
US7636657B2 (en) | Method and apparatus for automatic grammar generation from data entries | |
US11763203B2 (en) | Methods and arrangements to adjust communications | |
US20220343257A1 (en) | Intelligent routing framework | |
EP3832485A1 (en) | Question answering systems | |
US20220351634A1 (en) | Question answering systems | |
CN112579733A (zh) | 规则匹配方法、规则匹配装置、存储介质及电子设备 | |
KR102608867B1 (ko) | 업계 텍스트를 증분하는 방법, 관련 장치 및 매체에 저장된 컴퓨터 프로그램 | |
WO2021174814A1 (zh) | 众包任务的答案验证方法、装置、计算机设备及存储介质 | |
CN117435178B (zh) | 一种代码生成系统、方法、装置及存储介质 | |
CN112363814A (zh) | 任务调度方法、装置、计算机设备及存储介质 | |
CN111324344A (zh) | 代码语句的生成方法、装置、设备及可读存储介质 | |
CN114547257B (zh) | 类案匹配方法、装置、计算机设备及存储介质 | |
CN112529743B (zh) | 合同要素抽取方法、装置、电子设备及介质 | |
US20230142351A1 (en) | Methods and systems for searching and retrieving information | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN111539208B (zh) | 语句处理方法和装置、以及电子设备和可读存储介质 | |
US20220374914A1 (en) | Regulatory obligation identifier | |
US11830081B2 (en) | Automated return evaluation with anomoly detection | |
KR102682244B1 (ko) | Esg 보조 툴을 이용하여 정형화된 esg 데이터로 기계학습 모델을 학습하는 방법 및 기계학습 모델로 자동완성된 esg 문서를 생성하는 서비스 서버 | |
US20240202596A1 (en) | Method of providing explanation of artificial intelligence model based on plug-and-play mode | |
CN116431656A (zh) | 基于大数据的道路识别方法、装置、计算机设备及可读介质 | |
CN114490934A (zh) | 业务环节的要素检测方法、装置、计算机设备和存储介质 | |
CN114942961A (zh) | 一种基于ai和数字孪生技术的素材可视化调取方法及系统 |
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 |