基于深度强化学习的软件重构方法与流程
未命名
10-09
阅读:66
评论:0

1.本发明涉及信息处理的技术领域,特别涉及基于深度强化学习的软件重构方法。
背景技术:
2.软件的运行是通过其内部算法架构平台中分别包含不同算法的算法模块相互协同工作,才能实现软件的正常运行。现有的软件都是将不同算法模块集成封装在一起,虽然这样能够保证软件整体运行的稳定性,但是当软件发生运行错误时,需要逐一对所有算法模型进行检验,这增加了对软件的检验工作量,并且无法对相应的算法模型进行有效的修正,从而降低了软件整体修正重构的可靠性和准确性。
技术实现要素:
3.针对现有技术存在的缺陷,本发明提供基于深度强化学习的软件重构方法,其通过监测软件运行过程,获得软件自身和硬件终端各自对应的运行实况信息,以此得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息;根据上述两种信息,分别确定算法架构平台中处于执行错误状态或处于运算死循环状态的算法模块;再从相应算法模型中调取其包含的算法,利用预设深度学习模型对调取的算法进行训练重构,并将完成训练重构的算法返回到相应的算法模块中;上述方法先对软件运行过程进行监测,从软件本身和软件所在的硬件设备两方面对软件的运行实况进行分析,对软件的算法架构平台的每个算法模块进行运行状态正常与否的判断,并对相应的算法模块的算法进行深度学习训练重构,降低对软件的检验工作量,提高对软件整体修正重构的可靠性和准确性。
4.本发明提供基于深度强化学习的软件重构方法,其包括如下步骤:
5.步骤s1,对软件运行过程进行监测,获取软件运行实况信息和软件所对应的硬件终端的终端运行实况信息;对所述软件运行实况信息和所述终端运行实况信息进行分析处理,得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息;
6.步骤s2,根据所述数据流处理信息,得到软件在运行过程中自身算法架构平台的算法执行结果信息;根据所述算法执行结果信息,确定所述算法架构平台中处于执行错误状态的算法模块;
7.步骤s3,根据所述终端数据处理负荷信息,得到软件在运行过程中自身算法架构平台的每个算法模块的执行算法的数据运算流量信息;根据所述数据运算流量信息,确定所述算法架构平台的每个算法模块是否处于运算死循环状态;
8.步骤s4,当所述算法模块处于执行错误状态或运算死循环状态,则从所述算法模块中调取相应的算法;并将调取的算法传输到预设深度学习模型中进行训练重构,直到调取的算法完成训练重构后,再返回到所述算法模块。
9.进一步,在所述步骤s1中,对软件运行过程进行监测,获取软件运行实况信息和软件所对应的硬件终端的终端运行实况信息具体包括:
10.当用户在硬件终端中发起软件运行触发指令后,根据所述软件运行触发指令的软
件标记,指示对应的软件进入运行状态;其中,所述软件标记是指软件在硬件终端的系统中的安装位置;
11.在硬件终端的后台对处于运行状态的软件进行监测,获取软件在运行过程中的软件运行日志信息和硬件终端的终端内存占用率与上传/下载信息,以此分别作为所述软件运行实况信息和所述终端运行实况信息。
12.进一步,在所述步骤s1中,对所述软件运行实况信息和所述终端运行实况信息进行分析处理,得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息具体包括:
13.对所述软件运行日志信息进行分析处理,从中提取得到软件在运行过程中其自身算法架构平台的所有算法模块各自的输入数据和输出数据;并根据所有算法模块相互之间在软件运行过程中的算法逻辑关系,对所有输入数据和所有输出数据进行分析处理,从而得到软件的数据流处理信息;
14.对所述终端内存占用率与上传/下载信息进行分析处理,从中提取得到软件在运行过程中每个算法模块在运行过程中对应的内存占用率、上传流量值和下载流量值,以此作为所述终端数据处理负荷信息。
15.进一步,在所述步骤s2中,根据所述数据流处理信息,得到软件在运行过程中自身算法架构平台的算法执行结果信息具体包括:
16.从所述数据流处理信息中提取得到软件在运行过程中自身算法架构平台的每个算法模块对应的算法执行输出结果;其中,所述算法执行输出结果是指每个算法模块对接收到的输入数据完成相应的运算环节后,得到的输出数据。
17.进一步,在所述步骤s2中,根据所述算法执行结果信息,确定所述算法架构平台中处于执行错误状态的算法模块具体包括:
18.对每个算法模块对应的输出数据进行分析处理,确定每个算法模块对应的输出数据是否存在乱码数据,若存在,则确定对应的算法模块处于执行错误状态,若不存在,则确定对应的算法模块不处于执行错误状态;并且在所述算法架构平台对处于执行错误状态的算法模块进行标识。
19.进一步,在所述步骤s3中,根据所述终端数据处理负荷信息,得到软件在运行过程中自身算法架构平台的每个算法模块的执行算法的数据运算流量信息具体包括:
20.对每个算法模块对应的内存占用率、上传流量值和下载流量值进行分析,确定每个算法模块在自身执行算法过程中的平均内存占用率、平均上传流量值和平均下载流量值,以此作为每个算法模块的执行算法的数据运算流量信息。
21.进一步,在所述步骤s3中,根据所述数据运算流量信息,确定所述算法架构平台的每个算法模块是否处于运算死循环状态具体包括:
22.若所述平均内存占用率大于或等于预设内存占用率阈值,或所述平均上传流量值大于或等于第一流量阈值,或所述平均下载流量值大于或等于第二流量阈值,则确定对应的算法模块处于运算死循环状态;否则,确定对应的算法模块不处于运算死循环状态;并且在所述算法架构平台对处于运算死循环状态的算法模块进行标识。
23.进一步,在所述步骤s4中,当所述算法模块处于执行错误状态或运算死循环状态,则从所述算法模块中调取相应的算法;并将调取的算法传输到预设深度学习模型中进行训练重构,直到调取的算法完成训练重构后,再返回到所述算法模块具体包括:
24.根据在所述算法架构平台对处于执行错误状态或运算死循环状态的算法模块的标识结果,调取相应算法模块包含的算法;将调取的算法传输到预设深度学习模型中进行训练,根据训练结果,确定调取的算法存在的算法缺陷,并对所述算法缺陷进行重构处理;再将完成训练重构的算法返回到所述算法模型。
25.相比于现有技术,该基于深度强化学习的软件重构方法通过监测软件运行过程,获得软件自身和硬件终端各自对应的运行实况信息,以此得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息;根据上述两种信息,分别确定算法架构平台中处于执行错误状态或处于运算死循环状态的算法模块;再从相应算法模型中调取其包含的算法,利用预设深度学习模型对调取的算法进行训练重构,并将完成训练重构的算法返回到相应的算法模块中;上述方法先对软件运行过程进行监测,从软件本身和软件所在的硬件设备两方面对软件的运行实况进行分析,对软件的算法架构平台的每个算法模块进行运行状态正常与否的判断,并对相应的算法模块的算法进行深度学习训练重构,降低对软件的检验工作量,提高对软件整体修正重构的可靠性和准确性。
26.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
27.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本发明提供的基于深度强化学习的软件重构方法的流程示意图。
具体实施方式
30.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.参阅图1,为本发明实施例提供的基于深度强化学习的软件重构方法的流程示意图。该基于深度强化学习的软件重构方法包括如下步骤:
32.步骤s1,对软件运行过程进行监测,获取软件运行实况信息和软件所对应的硬件终端的终端运行实况信息;对该软件运行实况信息和该终端运行实况信息进行分析处理,得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息;
33.步骤s2,根据该数据流处理信息,得到软件在运行过程中自身算法架构平台的算法执行结果信息;根据该算法执行结果信息,确定该算法架构平台中处于执行错误状态的算法模块;
34.步骤s3,根据该终端数据处理负荷信息,得到软件在运行过程中自身算法架构平
台的每个算法模块的执行算法的数据运算流量信息;根据该数据运算流量信息,确定该算法架构平台的每个算法模块是否处于运算死循环状态;
35.步骤s4,当该算法模块处于执行错误状态或运算死循环状态,则从该算法模块中调取相应的算法;并将调取的算法传输到预设深度学习模型中进行训练重构,直到调取的算法完成训练重构后,再返回到该算法模块。
36.上述技术方案的有益效果为:该基于深度强化学习的软件重构方法通过监测软件运行过程,获得软件自身和硬件终端各自对应的运行实况信息,以此得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息;根据上述两种信息,分别确定算法架构平台中处于执行错误状态或处于运算死循环状态的算法模块;再从相应算法模型中调取其包含的算法,利用预设深度学习模型对调取的算法进行训练重构,并将完成训练重构的算法返回到相应的算法模块中;上述方法先对软件运行过程进行监测,从软件本身和软件所在的硬件设备两方面对软件的运行实况进行分析,对软件的算法架构平台的每个算法模块进行运行状态正常与否的判断,并对相应的算法模块的算法进行深度学习训练重构,降低对软件的检验工作量,提高对软件整体修正重构的可靠性和准确性。
37.优选地,在该步骤s1中,对软件运行过程进行监测,获取软件运行实况信息和软件所对应的硬件终端的终端运行实况信息具体包括:
38.当用户在硬件终端中发起软件运行触发指令后,根据该软件运行触发指令的软件标记,指示对应的软件进入运行状态;其中,该软件标记是指软件在硬件终端的系统中的安装位置;
39.在硬件终端的后台对处于运行状态的软件进行监测,获取软件在运行过程中的软件运行日志信息和硬件终端的终端内存占用率与上传/下载信息,以此分别作为该软件运行实况信息和该终端运行实况信息。
40.上述技术方案的有益效果为:通过上述方式,能够在软件进入运行状态时,对软件自身以及软件所在的硬件终端进行同步监测,从而分别获得软件运行实况信息和终端运行实况信息,为后续分析软件运行正常与否提供全面的信息数据基础。
41.优选地,在该步骤s1中,对该软件运行实况信息和该终端运行实况信息进行分析处理,得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息具体包括:
42.对该软件运行日志信息进行分析处理,从中提取得到软件在运行过程中其自身算法架构平台的所有算法模块各自的输入数据和输出数据;并根据所有算法模块相互之间在软件运行过程中的算法逻辑关系,对所有输入数据和所有输出数据进行分析处理,从而得到软件的数据流处理信息;
43.对该终端内存占用率与上传/下载信息进行分析处理,从中提取得到软件在运行过程中每个算法模块在运行过程中对应的内存占用率、上传流量值和下载流量值,以此作为该终端数据处理负荷信息。
44.上述技术方案的有益效果为:通过上述方式,软件运行日志信息包括软件的算法架构平台中每个算法模块在运行过程中输入数据与输出数据之间的详细信息,并且在软件的算法架构平台中不同算法模块之间存在相应的算法逻辑关系,该算法逻辑关系是指其中一个算法模块的输出数据是作为另一个算法模块的输入数据,从该软件运行日志信息中根据该算法逻辑关系能够准确全面地得到软件的数据流处理信息,该数据流处理信息即为不
同算法模块之间在输出数据与输入数据之间的关联性。此外,当算法模块执行自身所带的算法时,会相应占用硬件终端的内存空间以及进行数信息的上传与下载,通过提取得到软件在运行过程中每个算法模块在运行过程中对应的内存占用率、上传流量值和下载流量值,能够对终端数据处理负荷信息进行细化的表征。
45.优选地,在该步骤s2中,根据该数据流处理信息,得到软件在运行过程中自身算法架构平台的算法执行结果信息具体包括:
46.从该数据流处理信息中提取得到软件在运行过程中自身算法架构平台的每个算法模块对应的算法执行输出结果;其中,该算法执行输出结果是指每个算法模块对接收到的输入数据完成相应的运算环节后,得到的输出数据。
47.上述技术方案的有益效果为:通过上述方式,能够对软件在运行过程中每个算法模块的数据输入/输出情况进行有效的提取,从而完整地得到对应的数据流处理信息。
48.优选地,在该步骤s2中,根据该算法执行结果信息,确定该算法架构平台中处于执行错误状态的算法模块具体包括:
49.对每个算法模块对应的输出数据进行分析处理,确定每个算法模块对应的输出数据是否存在乱码数据,若存在,则确定对应的算法模块处于执行错误状态,若不存在,则确定对应的算法模块不处于执行错误状态;并且在该算法架构平台对处于执行错误状态的算法模块进行标识。
50.上述技术方案的有益效果为:通过上述方式,当算法模块在运行自身所带算法时存在运行错误,其输出数据会存在一定的乱码数据成分,通过对输出数据进行数据码的分析处理,能够快速准确判断算法模型是否存在算法执行错误的情况。
51.优选地,在该步骤s3中,根据该终端数据处理负荷信息,得到软件在运行过程中自身算法架构平台的每个算法模块的执行算法的数据运算流量信息具体包括:
52.对每个算法模块对应的内存占用率、上传流量值和下载流量值进行分析,确定每个算法模块在自身执行算法过程中的平均内存占用率、平均上传流量值和平均下载流量值,以此作为每个算法模块的执行算法的数据运算流量信息。
53.上述技术方案的有益效果为:通过上述方式,能够在算法模块执行自身所带算法的整个过程中,对内存占用率、上传流量值和下载流量值进行平均化衡量,这样能够对每个算法模块的执行算法的数据运算流量信息进行准确的标定。
54.优选地,在该步骤s3中,根据该数据运算流量信息,确定该算法架构平台的每个算法模块是否处于运算死循环状态具体包括:
55.若该平均内存占用率大于或等于预设内存占用率阈值,或该平均上传流量值大于或等于第一流量阈值,或该平均下载流量值大于或等于第二流量阈值,则确定对应的算法模块处于运算死循环状态;否则,确定对应的算法模块不处于运算死循环状态;并且在该算法架构平台对处于运算死循环状态的算法模块进行标识。
56.上述技术方案的有益效果为:通过上述方式,当算法模型在执行自身所带算法时,在某一算法环节发生运算死循环时,其会导致在硬件终端占用较大的内存空间,或者导致数据上传/下载流量异常增大,这样通过对平均内存占用率、平均上传流量值和平均下载流量值进行阈值对比,能够及时地判断算法模块是否处于运算死循环状态。
57.优选地,在该步骤s4中,当该算法模块处于执行错误状态或运算死循环状态,则从
该算法模块中调取相应的算法;并将调取的算法传输到预设深度学习模型中进行训练重构,直到调取的算法完成训练重构后,再返回到该算法模块具体包括:
58.根据在该算法架构平台对处于执行错误状态或运算死循环状态的算法模块的标识结果,调取相应算法模块包含的算法;将调取的算法传输到预设深度学习模型中进行训练,根据训练结果,确定调取的算法存在的算法缺陷,并对该算法缺陷进行重构处理;再将完成训练重构的算法返回到该算法模型。
59.上述技术方案的有益效果为:通过上述方式,利用预设构建的深度学习模型对调取得到的算法进行训练,确定其中存在的算法缺陷,针对确定的算法缺陷进行修复重构,从而最大限度保证算法模块的算法的正确性,保证软件整体运行的可靠性。
60.从上述实施例的内容可知,该基于深度强化学习的软件重构方法通过监测软件运行过程,获得软件自身和硬件终端各自对应的运行实况信息,以此得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息;根据上述两种信息,分别确定算法架构平台中处于执行错误状态或处于运算死循环状态的算法模块;再从相应算法模型中调取其包含的算法,利用预设深度学习模型对调取的算法进行训练重构,并将完成训练重构的算法返回到相应的算法模块中;上述方法先对软件运行过程进行监测,从软件本身和软件所在的硬件设备两方面对软件的运行实况进行分析,对软件的算法架构平台的每个算法模块进行运行状态正常与否的判断,并对相应的算法模块的算法进行深度学习训练重构,降低对软件的检验工作量,提高对软件整体修正重构的可靠性和准确性。
61.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
技术特征:
1.基于深度强化学习的软件重构方法,其特征在于,其包括如下步骤:步骤s1,对软件运行过程进行监测,获取软件运行实况信息和软件所对应的硬件终端的终端运行实况信息;对所述软件运行实况信息和所述终端运行实况信息进行分析处理,得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息;步骤s2,根据所述数据流处理信息,得到软件在运行过程中自身算法架构平台的算法执行结果信息;根据所述算法执行结果信息,确定所述算法架构平台中处于执行错误状态的算法模块;步骤s3,根据所述终端数据处理负荷信息,得到软件在运行过程中自身算法架构平台的每个算法模块的执行算法的数据运算流量信息;根据所述数据运算流量信息,确定所述算法架构平台的每个算法模块是否处于运算死循环状态;步骤s4,当所述算法模块处于执行错误状态或运算死循环状态,则从所述算法模块中调取相应的算法;并将调取的算法传输到预设深度学习模型中进行训练重构,直到调取的算法完成训练重构后,再返回到所述算法模块。2.如权利要求1所述的基于深度强化学习的软件重构方法,其特征在于:在所述步骤s1中,对软件运行过程进行监测,获取软件运行实况信息和软件所对应的硬件终端的终端运行实况信息具体包括:当用户在硬件终端中发起软件运行触发指令后,根据所述软件运行触发指令的软件标记,指示对应的软件进入运行状态;其中,所述软件标记是指软件在硬件终端的系统中的安装位置;在硬件终端的后台对处于运行状态的软件进行监测,获取软件在运行过程中的软件运行日志信息和硬件终端的终端内存占用率与上传/下载信息,以此分别作为所述软件运行实况信息和所述终端运行实况信息。3.如权利要求2所述的基于深度强化学习的软件重构方法,其特征在于:在所述步骤s1中,对所述软件运行实况信息和所述终端运行实况信息进行分析处理,得到软件的数据流处理信息和硬件终端的终端数据处理负荷信息具体包括:对所述软件运行日志信息进行分析处理,从中提取得到软件在运行过程中其自身算法架构平台的所有算法模块各自的输入数据和输出数据;并根据所有算法模块相互之间在软件运行过程中的算法逻辑关系,对所有输入数据和所有输出数据进行分析处理,从而得到软件的数据流处理信息;对所述终端内存占用率与上传/下载信息进行分析处理,从中提取得到软件在运行过程中每个算法模块在运行过程中对应的内存占用率、上传流量值和下载流量值,以此作为所述终端数据处理负荷信息。4.如权利要求3所述的基于深度强化学习的软件重构方法,其特征在于:在所述步骤s2中,根据所述数据流处理信息,得到软件在运行过程中自身算法架构平台的算法执行结果信息具体包括:从所述数据流处理信息中提取得到软件在运行过程中自身算法架构平台的每个算法模块对应的算法执行输出结果;其中,所述算法执行输出结果是指每个算法模块对接收到的输入数据完成相应的运算环节后,得到的输出数据。5.如权利要求4所述的基于深度强化学习的软件重构方法,其特征在于:在所述步骤s2
中,根据所述算法执行结果信息,确定所述算法架构平台中处于执行错误状态的算法模块具体包括:对每个算法模块对应的输出数据进行分析处理,确定每个算法模块对应的输出数据是否存在乱码数据,若存在,则确定对应的算法模块处于执行错误状态,若不存在,则确定对应的算法模块不处于执行错误状态;并且在所述算法架构平台对处于执行错误状态的算法模块进行标识。6.如权利要求5所述的基于深度强化学习的软件重构方法,其特征在于:在所述步骤s3中,根据所述终端数据处理负荷信息,得到软件在运行过程中自身算法架构平台的每个算法模块的执行算法的数据运算流量信息具体包括:对每个算法模块对应的内存占用率、上传流量值和下载流量值进行分析,确定每个算法模块在自身执行算法过程中的平均内存占用率、平均上传流量值和平均下载流量值,以此作为每个算法模块的执行算法的数据运算流量信息。7.如权利要求6所述的基于深度强化学习的软件重构方法,其特征在于:在所述步骤s3中,根据所述数据运算流量信息,确定所述算法架构平台的每个算法模块是否处于运算死循环状态具体包括:若所述平均内存占用率大于或等于预设内存占用率阈值,或所述平均上传流量值大于或等于第一流量阈值,或所述平均下载流量值大于或等于第二流量阈值,则确定对应的算法模块处于运算死循环状态;否则,确定对应的算法模块不处于运算死循环状态;并且在所述算法架构平台对处于运算死循环状态的算法模块进行标识。8.如权利要求7所述的基于深度强化学习的软件重构方法,其特征在于:在所述步骤s4中,当所述算法模块处于执行错误状态或运算死循环状态,则从所述算法模块中调取相应的算法;并将调取的算法传输到预设深度学习模型中进行训练重构,直到调取的算法完成训练重构后,再返回到所述算法模块具体包括:根据在所述算法架构平台对处于执行错误状态或运算死循环状态的算法模块的标识结果,调取相应算法模块包含的算法;将调取的算法传输到预设深度学习模型中进行训练,根据训练结果,确定调取的算法存在的算法缺陷,并对所述算法缺陷进行重构处理;再将完成训练重构的算法返回到所述算法模型。
技术总结
本发明提供了基于深度强化学习的软件重构方法,其对软件运行过程进行监测,从软件本身和软件所在的硬件设备两方面对软件的运行实况进行分析,对软件的算法架构平台的每个算法模块进行运行状态正常与否的判断,并对相应的算法模块的算法进行深度学习训练重构,降低对软件的检验工作量,提高对软件整体修正重构的可靠性和准确性。的可靠性和准确性。的可靠性和准确性。
技术研发人员:兰雨晴 余丹 唐霆岳 王丹星 张腾怀
受保护的技术使用者:慧之安信息技术股份有限公司
技术研发日:2022.11.29
技术公布日:2023/10/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/