一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

信息处理方法及装置、电子设备和计算机可读存储介质与流程

2022-05-18 02:21:40 来源:中国专利 TAG:

信息处理方法及装置、电子设备和计算机可读存储介质
【技术领域】
1.本技术涉及计算机软件技术领域,尤其涉及一种信息处理方法及装置、电子设备和计算机可读存储介质。


背景技术:

2.目前在软件研发和维护过程中往往需要对软件进行改进,一般地,可由开发人员基于软件代码等底层信息对软件的各部分功能和/或可能出现的缺陷情况进行人工分析。然而,这种分析方式消耗大量的人力和时间成本,造成软件改进效率低下。
3.因此,如何便捷高效地分析软件功能以提升软件改进的效率,成为目前亟待解决的技术问题。


技术实现要素:

4.本技术实施例提供了一种信息处理方法及装置、电子设备和计算机可读存储介质,旨在解决相关技术中分析软件功能的过程消耗大量人力和时间成本导致软件改进效率低下的技术问题。
5.第一方面,本技术实施例提供了一种信息处理方法,包括:获取在目标对象的版本更新中发生过变更的目标函数;基于每个所述目标函数在多个维度下的函数属性,对所述多个版本使用的全部目标函数进行聚类,得到多个初始功能模块;在所述多个初始功能模块中选择聚类参数值大于预设聚类阈值的目标功能模块;基于全部所述目标功能模块中每两个所述目标功能模块间的修改关联关系,调整每个所述目标功能模块的聚类参数值,其中,对于每两个所述目标功能模块,两者调整后的聚类参数值的差值用于反映两者的关联程度。
6.在本技术上述实施例中,可选地,所述获取在目标对象的版本更新中发生过变更的目标函数,包括:对于所述目标对象的多个版本中首个版本以外的每个版本,基于所述版本的版本信息,以及所述版本的在前相邻版本的版本信息,获取所述版本内相对于所述在前相邻版本发生过变更的目标文件;若所述目标文件的代码格式为可识别代码格式,对所述目标文件进行语法树分析,将分析结果中的函数确定为从所述在前相邻版本变更至所述版本时所述目标对象中发生改变的所述目标函数;若所述目标文件的代码格式为不可识别代码格式,将所述目标文件确定为所述目标函数。
7.在本技术上述实施例中,可选地,在所述基于每个所述目标函数在多个维度下的函数属性,对所述多个版本使用的全部目标函数进行聚类,得到多个初始功能模块之前,还包括:获取每个所述目标函数在多个维度下的函数属性,其中,每个所述目标函数在所述多个维度下的函数属性包括以下至少两项:全部所述目标函数中的当前目标函数所在目标文件与所述当前目标函数以外的其他目标函数所在其他文件的相对位置参数;从项目根部至所述目标文件的遍历次数与从所述目标文件变更至所述其他文件的最低遍历次数的差值;所述目标文件与所述其他文件的文件名称相似度;所述目标文件与所述其他文件的文件目
录相似度;所述当前目标函数的起始行号与所述其他目标函数的起始行号的差值;所述当前目标函数与所述其他目标函数的修改关联度。
8.在本技术上述实施例中,可选地,获取所述相对位置参数的方式包括:若所述目标文件与所述其他文件为同一文件,设置所述相对位置参数为第一数值,否则,设置所述相对位置参数为第二数值,其中,所述第一数值大于所述第二数值。
9.在本技术上述实施例中,可选地,获取所述文件名称相似度的方式包括:基于预设的编辑距离算法,计算所述目标文件的文件名称与所述其他文件的文件名称的第一修改距离,并将所述第一修改距离设置为所述文件名称相似度;获取所述文件目录相似度的方式包括:基于预设的编辑距离算法,计算所述目标文件的文件目录与所述其他文件的文件目录的第二修改距离,并将所述第二修改距离设置为所述文件目录相似度。
10.在本技术上述实施例中,可选地,获取所述修改关联度的方式包括:获取所述当前目标函数的初始关联度;轮询所述当前目标函数在每次版本变更中是否与每个所述其他目标函数均发生变更,其中,每当所述当前目标函数与任一所述其他目标函数均发生变更时,为所述当前目标函数的初始关联度增加第三数值,得到所述修改关联度,否则,为所述当前目标函数的初始关联度减少第四数值,得到所述修改关联度。
11.在本技术上述实施例中,可选地,所述基于全部所述目标功能模块中每两个所述目标功能模块间的修改关联关系,调整每个所述目标功能模块的聚类参数值,包括:当所述目标对象从每个版本的在前相邻版本变更至所述每个版本时,若全部所述目标功能模块中至少两个目标功能模块同时发生变更,为所述至少两个目标功能模块的聚类参数值增加第五数值,以及为全部所述目标功能模块中所述至少两个目标功能模块以外的其他功能模块的聚类参数值减少第六数值。
12.第二方面,本技术实施例提供了一种信息处理装置,包括:目标函数获取单元,用于获取在目标对象的版本更新中发生过变更的目标函数;功能模块划分单元,用于基于每个所述目标函数在多个维度下的函数属性,对所述多个版本使用的全部目标函数进行聚类,得到多个初始功能模块;功能模块筛选单元,用于在所述多个初始功能模块中选择聚类参数值大于预设聚类阈值的目标功能模块;聚类参数值调整单元,用于基于全部所述目标功能模块中每两个所述目标功能模块间的修改关联关系,调整每个所述目标功能模块的聚类参数值,其中,对于每两个所述目标功能模块,两者调整后的聚类参数值的差值用于反映两者的关联程度。
13.在本技术上述实施例中,可选地,所述目标函数获取单元用于:对于所述目标对象的多个版本中首个版本以外的每个版本,基于所述版本的版本信息,以及所述版本的在前相邻版本的版本信息,获取所述版本内相对于所述在前相邻版本发生过变更的目标文件;若所述目标文件的代码格式为可识别代码格式,对所述目标文件进行语法树分析,将分析结果中的函数确定为从所述在前相邻版本变更至所述版本时所述目标对象中发生改变的所述目标函数;若所述目标文件的代码格式为不可识别代码格式,将所述目标文件确定为所述目标函数。
14.在本技术上述实施例中,可选地,还包括:函数属性获取单元,用于在所述功能模块划分单元对所述多个版本使用的全部目标函数进行聚类,得到多个初始功能模块之前,获取每个所述目标函数在多个维度下的函数属性,其中,每个所述目标函数在所述多个维
度下的函数属性包括以下至少两项:全部所述目标函数中的当前目标函数所在目标文件与所述当前目标函数以外的其他目标函数所在其他文件的相对位置参数;从项目根部至所述目标文件的遍历次数与从所述目标文件变更至所述其他文件的最低遍历次数的差值;所述目标文件与所述其他文件的文件名称相似度;所述目标文件与所述其他文件的文件目录相似度;所述当前目标函数的起始行号与所述其他目标函数的起始行号的差值;所述当前目标函数与所述其他目标函数的修改关联度。
15.在本技术上述实施例中,可选地,所述函数属性获取单元用于:若所述目标文件与所述其他文件为同一文件,设置所述相对位置参数为第一数值,否则,设置所述相对位置参数为第二数值,其中,所述第一数值大于所述第二数值。
16.在本技术上述实施例中,可选地,所述函数属性获取单元用于:基于预设的编辑距离算法,计算所述目标文件的文件名称与所述其他文件的文件名称的第一修改距离,并将所述第一修改距离设置为所述文件名称相似度;所述函数属性获取单元还用于:基于预设的编辑距离算法,计算所述目标文件的文件目录与所述其他文件的文件目录的第二修改距离,并将所述第二修改距离设置为所述文件目录相似度。
17.在本技术上述实施例中,可选地,所述函数属性获取单元用于:获取所述当前目标函数的初始关联度;轮询所述当前目标函数在每次版本变更中是否与每个所述其他目标函数均发生变更,其中,每当所述当前目标函数与任一所述其他目标函数均发生变更时,为所述当前目标函数的初始关联度增加第三数值,得到所述修改关联度,否则,为所述当前目标函数的初始关联度减少第四数值,得到所述修改关联度。
18.在本技术上述实施例中,可选地,所述聚类参数值调整单元用于:当所述目标对象从每个版本的在前相邻版本变更至所述每个版本时,若全部所述目标功能模块中至少两个目标功能模块同时发生变更,为所述至少两个目标功能模块的聚类参数值增加第五数值,以及为全部所述目标功能模块中所述至少两个目标功能模块以外的其他功能模块的聚类参数值减少第六数值。
19.第三方面,本技术实施例提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述第一方面中任一项所述的方法。
20.第四方面,本技术实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述第一方面中任一项所述的方法流程。
21.以上技术方案,针对相关技术中分析软件功能的过程消耗大量人力和时间成本导致软件改进效率低下的技术问题,可基于软件或系统等目标对象在多个版本间的修改内容进行聚类,从而将目标对象划分为多个功能模块,并有效调整各功能模块的聚类参数值,使其准确表达各功能模块间的关联性。这相对于人工评价和分析,既实现了目标对象评价分析的自动化,节约了大量时间成本和人力成本,还能够通过该关联性准确可靠地评价目标对象的各功能模块,为后续的分析、测试等步骤提供了真实可靠的评价分析结果,有助于对目标对象的维护和改进,提升了开发和维护效率。
【附图说明】
22.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
23.图1示出了根据本技术的一个实施例的信息处理方法的流程图;
24.图2示出了根据本技术的另一个实施例的信息处理方法的流程图;
25.图3示出了根据本技术的一个实施例的信息处理装置的框图;
26.图4示出了根据本技术的另一个实施例的信息处理装置的框图;
27.图5示出了根据本技术的一个实施例的电子设备的框图。
【具体实施方式】
28.为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。
29.应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
30.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
31.图1示出了根据本技术的一个实施例的信息处理方法的流程图。
32.如图1所示,根据本技术的一个实施例的信息处理方法包括:
33.步骤102,获取目标对象的多个版本的版本信息。
34.其中,目标对象包括但不限于待分析的软件或系统,还可以是任何以代码形式实现的集成有多种功能的其他对象。
35.为适应实际应用场景,开发人员往往会对软件或系统等目标对象进行更新,原目标对象可成为原始版本,每次更新后的目标对象成为一个新的版本。而对于目标对象的任一版本来说,该版本与在前相邻版本的差异即该版本相对于在前相邻版本的变更内容。在此基础上,版本间的变更内容能够在一定程度上体现目标对象本身的功能变化,而目标对象的功能变化正是目标对象的功能分析的必要部分,能够有效反映目标对象所需的改进之处。
36.换言之,目标对象的多个版本间的差异,能够有效作用于对目标对象的分析之中,是进行软件改进的有利依据。而目标对象的多个版本间的差异正是由各个版本的版本信息来体现的。
37.具体地,每个版本的版本信息包括:所述每个版本的版本标识、所述每个版本的在前相邻版本的版本标识、版本提交者标识、版本提交日期、版本提交时间、版本提交类型、所述每个版本相对于自身的在前相邻版本的修改内容集合以及文件改名信息集合中的一项或多项。
38.其中,版本提交类型包括分支合并提交、正常提交、tag提交、没有实质修改的空提交等;每个版本相对于自身的在前相邻版本的修改内容集合包括新增的文件、新增的文件路径、修改的文件、修改的文件路径、删除的文件、删除的文件路径等。
39.在一种可能的设计中,步骤102具体包括:从所述目标对象的代码版本管理系统
中,获取版本信息配置模板;基于所述版本信息配置模板,生成用于获取所述版本信息的命令序列;执行所述命令序列,得到所述目标对象的每个版本的版本信息。
40.目标对象的代码版本管理系统用于对目标对象的版本更新进行管理和对版本更新的相关数据进行存储,为保证获得完整的、数据结构统一的版本信息,可在目标对象的代码版本管理系统中设置目标对象适用的版本信息配置模板。其中,版本信息配置模板限定了对目标对象进行功能分析所需的各种版本信息类型,以供全面获取各种版本信息类型对应的版本信息,同时,版本信息配置模板还可以限定各种版本信息的数据结构,以便在抓取各种版本信息类型对应的版本信息后,形成结构统一的数据,为后续对版本信息的应用提供统一、合理的基础。
41.接着,基于所述版本信息配置模板限定的数据结构,可生成用于获取所述版本信息的命令序列。该命令序列与版本信息配置模板限定的数据结构相匹配,依次执行该命令序列内的命令,即可按照限定的数据结构依次获得目标对象的各种版本信息类型对应的版本信息。
42.另外,在一种可能的设计中,在所述执行所述命令序列之前,还包括:获取所述目标对象的有效访问路径,供执行所述命令序列时访问。
43.具体地,目标对象的有效访问路径可以是本地路径,也可以是远端仓库的http(s)访问路径,通过执行所述命令序列时访问该有效访问路径,可有效执行命令序列中的命令所要求对目标对象实施的操作。
44.在一种可能的设计中,可设置命令序列中的首个命令为有效访问路径识别命令,并为版本信息配置模板设置统一资源标志符(uniform resource identifier,uri)来描述目标对象的有效访问路径,这样,首个命令在识别到目标对象对应的统一资源标志符时,即可调用该统一资源标志符对应的版本信息配置模板,用以获取和配置数据结构统一的版本信息。
45.在另一种可能的设计中,步骤102具体包括:获取所述目标对象的每个版本的本地版本数据或远程版本数据;从所述每个版本的所述本地版本数据或所述远程版本数据中解析得到所述每个版本的版本信息。
46.目标对象各版本的版本信息往往存储在目标对象的版本数据可能存储在本地,或存储在远程的任何设备中,如目标对象的代码版本管理系统(svn)中。因此,可获取所述目标对象的每个版本的本地版本数据或远程版本数据,再基于本地版本数据或远程版本数据解析得出对应的版本信息。
47.以上,可选择适用于实际的目标对象分析需求的方式获取目标对象的多个版本的版本信息,以便将其用于后续的目标对象分析步骤中去,为高效可靠地分析目标对象奠定了有效基础。
48.在一种可能的设计中,还包括:基于预设的版本提交者标识关联关系,对所述版本提交者标识进行去重处理。
49.同一组开发人员或者同一个版本开发过程中的开发人员在提交版本时具有使用不同版本提交者标识的可能性,换言之,不同的版本提交者标识所对应的提交内容有可能是同一版本的更改内容。因此,可预先设置版本提交者标识关联关系,用以标识哪些不同的版本提交者标识是相同来源,接着,可对相同来源的版本提交者标识进行合并或替换处理,
达成去重的效果,从而简化因对版本提交者标识随意命名造成的数据复杂度,有助于对版本信息的整理和以版本信息为基础的目标对象分析操作高效进行。
50.在一种可能的设计中,还包括:在所述修改内容集合中删除指定文件和/或指定目录。
51.在版本的变更内容中,往往会在指定文件和/或指定目录下产生一些自动生成或自动同步的无效内容,这些内容对目标对象的分析没有任何作用,故为了降低数据冗余度,可直接在修改内容集合中删除指定文件和/或指定目录,不向后传递此指定文件和/或指定目录所涉及的修改。
52.步骤104,对于所述多个版本中首个版本以外的每个版本,基于所述版本的版本信息,以及所述版本的在前相邻版本的版本信息,确定从所述在前相邻版本变更至所述版本时所述目标对象中发生变更的目标函数。
53.由于版本的版本信息以及所述版本的在前相邻版本的版本信息能够反映这两个版本间的差异,这一差异至少包括了该版本相对于在前相邻版本的修改内容集合,换言之,基于这一修改内容合集,能够得出从所述在前相邻版本变更至所述版本时所述目标对象中发生变更的内容,而这一内容包括在变更中发生改变的目标函数。
54.具体来说,可基于所述版本的版本信息,以及所述版本的在前相邻版本的版本信息,获取所述版本内相对于所述在前相邻版本发生过变更的目标文件;若所述目标文件的代码格式为可识别代码格式,对所述目标文件进行语法树分析,将分析结果中的函数确定为从所述在前相邻版本变更至所述版本时所述目标对象中发生变更的目标函数;若所述目标文件的代码格式为不可识别代码格式,将所述目标文件确定为所述目标函数。
55.目标对象中版本更新时发生变更的目标函数必然处于版本更新涉及的目标文件内,因此,可首先获取所述版本内相对于所述在前相邻版本发生过变更的目标文件,作为查找目标函数的对象。
56.接着,可通过预定方式识别目标文件的代码格式,该预定方式包括但不限于使用目标文件的文件后缀名识别、使用目标文件内的关键字识别或调用libmagic等开源工具识别中的一种。
57.若所述目标文件的代码格式为可识别代码格式,也就是说,若通过预定方式可以识别目标文件的代码格式,说明目标文件的结构为已知结构中存在的类型,该目标文件中具有已知类型的目标函数。此时,可对所述目标文件进行语法树分析,将分析结果中的函数确定为从所述在前相邻版本变更至所述版本时所述目标对象中发生变更的目标函数。
58.其中,语法树是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,通过语法树分析可以获得这种结构并从中获得各节点或指节处所涉及的目标函数。
59.反之,若所述目标文件的代码格式为不可识别代码格式,即通过预定方式无法识别目标文件的代码格式,说明目标文件的结构并非已知结构中存在的类型,该目标文件所涉及的目标函数类型无法明确判断,此时,可直接将所述目标文件确定为所述目标函数,以全面掌握目标函数所涉及的内容,避免遗漏对目标对象的分析具有有效影响的信息。
60.语法树分析的具体过程包括:使用词法解析器、语法解析器处理目标文件,得出其单根树形结构的语法树。语法树可划分为类、具名方法、语句,其最小单元为语句,语句属于
具名方法,具名方法即目标函数,可以直接属于根,也可以属于类。另外,若忽略不属于函数的语句,具名方法可以定位到行号范围。
61.具体地,对c、cpp等类型的目标文件,可通过llvm、gcc等开源工具,得出其语法树;对python等类型的目标文件,可通过cpython等开源工具,得出其语法树;对golang等类型的目标文件,可通过go开源编译器,得出其语法树;对java等类型的目标文件,可通过javac等开源工具,得出其语法树。
62.步骤106,基于所述多个版本的全部目标函数,将所述目标对象划分为多个目标功能模块。
63.由于版本间的变更内容能够在一定程度上体现目标对象本身的功能变化,而目标对象的功能变化正是目标对象的功能分析的必要部分,能够有效反映目标对象所需的改进之处,那么版本变更中发生改变的目标函数即能在一定程度上反映目标对象在修改中所涉及的各项功能的分布。
64.换句话说,目标对象的全部发生变更的目标函数可以反映目标对象的功能实现和功能更新,也就能够反映目标对象有哪些相互关联的具体功能。因此,可基于目标对象多个版本的全部目标函数,将目标对象划分为多个目标功能模块,使每个目标功能模块具有相应的目标功能,这相当于将目标对象的各功能分别集成为对应的模块,有助于便捷高效地根据目标对象的各功能对目标对象进行有效分析,合理评价目标对象的使用和发展情况。
65.具体来说,可基于每个所述目标函数的函数属性,对所述多个版本的全部目标函数进行聚类,得到多个初始功能模块;在所述多个初始功能模块中选择聚类参数值大于预设聚类阈值的目标功能模块。
66.也就是说,以目标对象多个版本变更中涉及的全部目标函数的函数属性为数据基础,通过聚类的方式将目标对象划分为多个初始功能模块。初始功能模块为目标对象的各功能的集成,但由于目标对象的功能多种多样,并非全部功能对于目标对象的实际用途来说都是重点,换言之,分析和评价目标对象时,只需要用到目标对象中对自身应用水平起有效作用的部分功能。因此,可进一步对多个初始功能模块进行筛选。
67.具体地,可设置预设聚类阈值,预设聚类阈值为目标对象的功能不足以影响目标对象的应用水平时对应的聚类参数值。因此,若一初始功能模块的聚类参数值大于预设聚类阈值,说明其可以有效影响目标对象的应用水平,能够作为评价和分析目标对象的目标功能模块。
68.通过以上技术方案,可基于软件或系统等目标对象在多个版本间的修改内容将目标对象划分为多个功能模块,并选取可以有效影响目标对象的应用水平的功能模块来评价和分析目标对象。这相对于人工评价和分析,既实现了目标对象评价分析的自动化,节约了大量时间成本和人力成本,还能够获得更为准确可靠的目标对象评价分析结果,有助于对目标对象的维护和改进,提升了开发和维护效率。
69.在图1示出的实施例的基础上,图2示出了根据本技术的另一个实施例的信息处理方法的流程图。
70.如图2所示,根据本技术的另一个实施例的信息处理方法包括:
71.步骤202,获取在目标对象的版本更新中发生过变更的目标函数。
72.在获取目标对象的多个版本的版本信息后,对于所述多个版本中首个版本以外的
每个版本,基于所述版本的版本信息,以及所述版本的在前相邻版本的版本信息,确定从所述在前相邻版本变更至所述版本时所述目标对象中发生变更的目标函数。其具体的目标函数获取方式与图1实施例所示的方式相同,在此处不再赘述。
73.步骤204,基于每个所述目标函数在多个维度下的函数属性,对所述多个版本使用的全部目标函数进行聚类,得到多个初始功能模块。
74.以目标对象多个版本变更中涉及的全部目标函数的函数属性为数据基础,通过聚类的方式将目标对象划分为多个初始功能模块。初始功能模块为目标对象的各功能的集成,但由于目标对象的功能多种多样,并非全部功能对于目标对象的实际用途来说都是重点,换言之,分析和评价目标对象时,只需要用到目标对象中对自身应用水平起有效作用的部分功能。因此,可进一步对多个初始功能模块进行筛选。
75.对此,在步骤202之前,还包括:获取每个所述目标函数在多个维度下的函数属性。
76.其中,每个所述目标函数在所述多个维度下的函数属性包括以下至少两项:全部所述目标函数中的当前目标函数所在目标文件与所述当前目标函数以外的其他目标函数所在其他文件的相对位置参数;从项目根部至所述目标文件的遍历次数与从所述目标文件变更至所述其他文件的最低遍历次数的差值;所述目标文件与所述其他文件的文件名称相似度;所述目标文件与所述其他文件的文件目录相似度;所述当前目标函数的起始行号与所述其他目标函数的起始行号的差值;所述当前目标函数与所述其他目标函数的修改关联度。
77.首先,当前目标函数所在目标文件表明了当前目标函数的存储路径,当前目标函数以外的其他目标函数所在其他文件表明了其他目标函数的存储路径,两者的相对位置参数体现了两者存储位置的差异,两者因所具有的功能不同而对应存储在顺利执行自身功能所需的位置,故这一存储位置的差异能够在一定程度上反映两者在功能上的差异和关联性。
78.在一种可能的设计中,获取所述相对位置参数的方式包括:若所述目标文件与所述其他文件为同一文件,设置所述相对位置参数为第一数值,否则,设置所述相对位置参数为第二数值,其中,所述第一数值大于所述第二数值。
79.在一种可能的设计中,第一数值大于第二数值,表示当前目标函数与同一文件中的其他目标函数的在功能上的差异和关联性大于当前目标函数与不同文件中的其他目标函数的在功能上的差异和关联性。
80.第二,从项目根部至所述目标文件的遍历次数表示目标函数的存储位置从项目根部变更至当前存储位置(即目标文件)所需要发生更改的最低次数,从所述目标文件变更至所述其他文件的最低遍历次数表示目标函数的存储位置从其他目标函数所在的其他文件变更至当前存储位置(即目标文件)所需要发生更改的最低次数。换言之,两者的差值即当前目标函数的最大可能的遍历次数与变更至其他目标函数所在其他文件的遍历次数的差异,能够在一定程度上反映当前目标函数与其他文件中的其他目标函数的在功能上的差异和关联性。
81.第三,所述目标文件与所述其他文件的文件名称相似度是将所述目标文件与所述其他文件的文件名称的相似程度转换为数值的方式进行表示。具体地,获取所述文件名称相似度的方式包括:基于预设的编辑距离算法,计算所述目标文件的文件名称与所述其他
文件的文件名称的第一修改距离,并将所述第一修改距离设置为所述文件名称相似度。
82.以上,距离编辑算法指的是在两个对象之间,由一个对象转成另一个对象所需的最少编辑操作次数。在本技术方案中,两个对象分别为所述目标文件的文件名称与所述其他文件的文件名称,而文件名称相似度表示所述目标文件的文件名称转换为所述其他文件的文件名称所需的变更次数,这一变更次数的大小与当前目标函数与其他文件中在功能上的关联性成正比。
83.第四,所述目标文件与所述其他文件的文件目录相似度是将所述目标文件与所述其他文件各自所在的文件目录(即存储路径)的相似程度转换为数值的方式进行表示。具体地,获取所述文件目录相似度的方式包括:基于预设的编辑距离算法,计算所述目标文件的文件目录与所述其他文件的文件目录的第二修改距离,并将所述第二修改距离设置为所述文件目录相似度。
84.以上,距离编辑算法指的是在两个对象之间,由一个对象转成另一个对象所需的最少编辑操作次数。在本技术方案中,两个对象分别为所述目标文件的文件目录与所述其他文件的文件目录,而文件目录相似度表示所述目标文件的文件目录转换为所述其他文件的文件目录所需的变更次数,这一变更次数的大小与当前目标函数与其他文件中在功能上的关联性成正比。
85.第五,目标对象的底层是以代码方式实现,所述当前目标函数往往占据多行描述,因此,可对代码的各行进行编号,从而获得当前目标函数以及其他目标函数的起始行号。两者的起始行号反映了两者的起始位置,换言之,也表明了两者的存储位置,因此,当前目标函数的起始行号与所述其他目标函数的起始行号的差值能够在一定程度上反映当前目标函数与其他目标函数在功能上的差异和关联性。
86.第六,可获取所述当前目标函数与所述其他目标函数的修改关联度,这一修改关联度将在多个版本修改的每次修改中当前目标函数是否与其他目标函数同时发生修改具象化为一定的数值。需要知晓,所述当前目标函数与所述其他目标函数的修改关联度越高,说明两者在单次更新中同时发生变更的次数越多,两者在功能上的关联也就越紧密。
87.具体地,获取所述修改关联度的方式包括:获取所述当前目标函数的初始关联度;轮询所述当前目标函数在每次版本变更中是否与每个所述其他目标函数均发生变更,其中,每当所述当前目标函数与任一所述其他目标函数均发生变更时,为所述当前目标函数的初始关联度增加第三数值,得到所述修改关联度,否则,为所述当前目标函数的初始关联度减少第四数值,得到所述修改关联度。
88.在一种可能的设计中,可设置所述当前目标函数的初始关联度为0。
89.轮询所述当前目标函数在每次版本变更中是否与每个所述其他目标函数均发生变更,若在单次版本变更中与任一其他目标函数均发生变更,说明在本单次版本变更中当前目标函数与其他目标函数的功能产生关联的可能性较高,故针对该其他目标函数,在当前目标函数的初始关联度的基础上增加第三数值。反之,若在单次版本变更中与任一其他目标函数没有同时发生变更,说明在本单次版本变更中当前目标函数与其他目标函数的功能产生关联的可能性低下,故针对该其他目标函数,在当前目标函数的初始关联度的基础上减少第四数值。
90.需要补充的是,上下文中的其他目标函数包括一个或多个,在具有多个其他目标
函数时,针对每个其他目标函数,均需进行图2实施例所示的操作,以获得有效的数据作为聚类基础。
91.在得到每个所述目标函数在多个维度下的函数属性后,可通过指定聚类方式进行聚类。其中,指定聚类方式包括但不限于最短距离算法、dbscan算法、birch算法、k-means算法等。
92.步骤206,在所述多个初始功能模块中选择聚类参数值大于预设聚类阈值的目标功能模块。
93.初始功能模块为目标对象的各功能的集成,但由于目标对象的功能多种多样,并非全部功能对于目标对象的实际用途来说都是重点,换言之,分析和评价目标对象时,只需要用到目标对象中对自身应用水平起有效作用的部分功能。因此,可进一步对多个初始功能模块进行筛选。
94.具体地,可设置预设聚类阈值,预设聚类阈值为目标对象的功能不足以影响目标对象的应用水平时对应的聚类参数值。因此,若一初始功能模块的聚类参数值大于预设聚类阈值,说明其可以有效影响目标对象的应用水平,能够作为评价和分析目标对象的目标功能模块。
95.步骤208,基于全部所述目标功能模块中每两个所述目标功能模块间的修改关联关系,调整每个所述目标功能模块的聚类参数值,其中,对于每两个所述目标功能模块,两者调整后的聚类参数值的差值用于反映两者的关联程度。
96.进一步地,还可以进一步调整每个所述目标功能模块的聚类参数值,使得各目标功能模块的聚类参数值能够更加准确地反映各目标功能模块间的关联性,以便提升对目标对象进行评价和分析的准确性。对于任一两个所述目标功能模块,两者调整后的聚类参数值的差值用于反映两者的关联程度,该差值越大,说明这两个所述目标功能模块关联性越低,关联发生故障的可能性越低。反之,若该差值越小,说明这两个所述目标功能模块关联性越大,两者间耦合度过大,一旦其中之一发生问题或故障,则很可能会造成其中另一目标功能模块也关联发生问题或故障,因此,调整后的聚类参数值的差值过低的两个所述目标功能模块需要面临整改。
97.以上技术方案,可基于软件或系统等目标对象在多个版本间的修改内容进行聚类,从而将目标对象划分为多个功能模块,并有效调整各功能模块的聚类参数值,使其准确表达各功能模块间的关联性。这相对于人工评价和分析,既实现了目标对象评价分析的自动化,节约了大量时间成本和人力成本,还能够通过该关联性准确可靠地评价目标对象的各功能模块,为后续的分析、测试等步骤提供了真实可靠的评价分析结果,有助于对目标对象的维护和改进,提升了开发和维护效率。
98.需要补充的是,步骤208中调整每个所述目标功能模块的聚类参数值的具体方式包括:当所述目标对象从每个版本的在前相邻版本变更至所述每个版本时,若全部所述目标功能模块中至少两个目标功能模块同时发生变更,为所述至少两个目标功能模块的聚类参数值增加第五数值,以及为全部所述目标功能模块中所述至少两个目标功能模块以外的其他功能模块的聚类参数值减少第六数值。
99.也就是说,在每次的版本变更中,对于任两个目标功能模块来说,若两者同时发生变更,说明两者在功能上的关联性较大,则为两者的聚类参数值均增加第五数值。接着,为
两者以外的其他目标功能模块的聚类参数值减少第六数值。由此,可拉开两者与其他目标功能模块的聚类参数值的差距,使两者的聚类参数值能够进一步体现两者的关联性。这一聚类参数值的调整,可针对每次版本更新中的每两个目标功能模块实行。
100.需要知晓,上下文中的第一数值、第二数值、第三数值、第四数值、第五数值、第六数值均可基于实际的软件评价需求和功能关联水平进行设置,在此处不做具体限制。
101.图3示出了根据本技术的一个实施例的信息处理装置的框图。
102.如图3所示,根据本技术的一个实施例的信息处理装置300包括:版本信息获取单元302,用于获取目标对象的多个版本的版本信息;目标函数确定单元304,用于对于所述多个版本中首个版本以外的每个版本,基于所述版本的版本信息,以及所述版本的在前相邻版本的版本信息,确定从所述在前相邻版本变更至所述版本时所述目标对象中发生变更的目标函数;功能模块划分单元306,用于基于所述多个版本的全部目标函数,将所述目标对象划分为多个目标功能模块。
103.在本技术上述实施例中,可选地,所述功能模块划分单元306用于:基于每个所述目标函数的函数属性,对所述多个版本的全部目标函数进行聚类,得到多个初始功能模块;在所述多个初始功能模块中选择聚类参数值大于预设聚类阈值的目标功能模块。
104.在本技术上述实施例中,可选地,还包括:关联距离检测单元,用于对于全部所述目标功能模块中的每两个所述目标功能模块,基于两个所述目标功能模块各自的聚类参数值,计算两个所述目标功能模块的关联距离;告警单元,用于若所述关联距离小于指定安全距离阈值,生成针对两个所述目标功能模块的告警信息,所述告警信息用于反映两个所述目标功能模块处于关联过度紧密的不安全状态。
105.在本技术上述实施例中,可选地,所述每个版本的版本信息包括:所述每个版本的版本标识、所述每个版本的在前相邻版本的版本标识、版本提交者标识、版本提交日期、版本提交时间、版本提交类型、所述每个版本相对于自身的在前相邻版本的修改内容集合以及文件改名信息集合中的一项或多项。
106.在本技术上述实施例中,可选地,所述版本信息获取单元302用于:从所述目标对象的代码版本管理系统中,获取版本信息配置模板;基于所述版本信息配置模板,生成用于获取所述版本信息的命令序列;执行所述命令序列,得到所述目标对象的每个版本的版本信息。
107.在本技术上述实施例中,可选地,还包括:预先配置单元,用于在所述执行所述命令序列之前,获取所述目标对象的有效访问路径,供执行所述命令序列时访问;以及基于预设的版本提交者标识关联关系,对所述版本提交者标识进行去重处理;以及在所述修改内容集合中删除指定文件和/或指定目录。
108.在本技术上述实施例中,可选地,所述版本信息获取单元302用于:获取所述目标对象的每个版本的本地版本数据或远程版本数据;从所述每个版本的所述本地版本数据或所述远程版本数据中解析得到所述每个版本的版本信息。
109.在本技术上述实施例中,可选地,所述目标函数确定单元304用于:基于所述版本的版本信息,以及所述版本的在前相邻版本的版本信息,获取所述版本内相对于所述在前相邻版本发生过变更的目标文件;若所述目标文件的代码格式为可识别代码格式,对所述目标文件进行语法树分析,将分析结果中的函数确定为从所述在前相邻版本变更至所述版
本时所述目标对象中发生变更的目标函数;若所述目标文件的代码格式为不可识别代码格式,将所述目标文件确定为所述目标函数。
110.该信息处理装置300使用上述实施例中任一项所述的方案,因此,具有上述所有技术效果,在此不再赘述。
111.图4示出了根据本技术的另一个实施例的信息处理装置的框图。
112.如图4所示,根据本技术的另一个实施例的信息处理装置400包括:目标函数获取单元402,用于获取在目标对象的版本更新中发生过变更的目标函数;功能模块划分单元404,用于基于每个所述目标函数在多个维度下的函数属性,对所述多个版本使用的全部目标函数进行聚类,得到多个初始功能模块;功能模块筛选单元406,用于在所述多个初始功能模块中选择聚类参数值大于预设聚类阈值的目标功能模块;聚类参数值调整单元408,用于基于全部所述目标功能模块中每两个所述目标功能模块间的修改关联关系,调整每个所述目标功能模块的聚类参数值,其中,对于每两个所述目标功能模块,两者调整后的聚类参数值的差值用于反映两者的关联程度。
113.在本技术上述实施例中,可选地,所述目标函数获取单元402用于:对于所述目标对象的多个版本中首个版本以外的每个版本,基于所述版本的版本信息,以及所述版本的在前相邻版本的版本信息,获取所述版本内相对于所述在前相邻版本发生过变更的目标文件;若所述目标文件的代码格式为可识别代码格式,对所述目标文件进行语法树分析,将分析结果中的函数确定为从所述在前相邻版本变更至所述版本时所述目标对象中发生改变的所述目标函数;若所述目标文件的代码格式为不可识别代码格式,将所述目标文件确定为所述目标函数。
114.在本技术上述实施例中,可选地,还包括:函数属性获取单元,用于在所述功能模块划分单元404对所述多个版本使用的全部目标函数进行聚类,得到多个初始功能模块之前,获取每个所述目标函数在多个维度下的函数属性,其中,每个所述目标函数在所述多个维度下的函数属性包括以下至少两项:全部所述目标函数中的当前目标函数所在目标文件与所述当前目标函数以外的其他目标函数所在其他文件的相对位置参数;从项目根部至所述目标文件的遍历次数与从所述目标文件变更至所述其他文件的最低遍历次数的差值;所述目标文件与所述其他文件的文件名称相似度;所述目标文件与所述其他文件的文件目录相似度;所述当前目标函数的起始行号与所述其他目标函数的起始行号的差值;所述当前目标函数与所述其他目标函数的修改关联度。
115.在本技术上述实施例中,可选地,所述函数属性获取单元用于:若所述目标文件与所述其他文件为同一文件,设置所述相对位置参数为第一数值,否则,设置所述相对位置参数为第二数值,其中,所述第一数值大于所述第二数值。
116.在本技术上述实施例中,可选地,所述函数属性获取单元用于:基于预设的编辑距离算法,计算所述目标文件的文件名称与所述其他文件的文件名称的第一修改距离,并将所述第一修改距离设置为所述文件名称相似度;所述函数属性获取单元还用于:基于预设的编辑距离算法,计算所述目标文件的文件目录与所述其他文件的文件目录的第二修改距离,并将所述第二修改距离设置为所述文件目录相似度。
117.在本技术上述实施例中,可选地,所述函数属性获取单元用于:获取所述当前目标函数的初始关联度;轮询所述当前目标函数在每次版本变更中是否与每个所述其他目标函
数均发生变更,其中,每当所述当前目标函数与任一所述其他目标函数均发生变更时,为所述当前目标函数的初始关联度增加第三数值,得到所述修改关联度,否则,为所述当前目标函数的初始关联度减少第四数值,得到所述修改关联度。
118.在本技术上述实施例中,可选地,所述聚类参数值调整单元408用于:当所述目标对象从每个版本的在前相邻版本变更至所述每个版本时,若全部所述目标功能模块中至少两个目标功能模块同时发生变更,为所述至少两个目标功能模块的聚类参数值增加第五数值,以及为全部所述目标功能模块中所述至少两个目标功能模块以外的其他功能模块的聚类参数值减少第六数值。
119.该信息处理装置400使用上述实施例中任一项所述的方案,因此,具有上述所有技术效果,在此不再赘述。
120.图5示出了本技术的一个实施例的电子设备的框图。
121.如图5所示,本技术的一个实施例的电子设备500,包括至少一个存储器502;以及,与所述至少一个存储器502通信连接的处理器504;其中,所述存储器存储有可被所述至少一个处理器504执行的指令,所述指令被设置为用于执行上述任一实施例中所述的方案。因此,该电子设备500具有和上述任一实施例中相同的技术效果,在此不再赘述。
122.本技术实施例的电子设备以多种形式存在,包括但不限于:
123.(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
124.(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
125.(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
126.(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
127.(5)其他具有数据交互功能的电子装置。
128.另外,本技术实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一实施例中所述的方法流程。
129.以上结合附图详细说明了本技术的技术方案,通过本技术的技术方案,可基于软件或系统等目标对象在多个版本间的修改内容进行聚类,从而将目标对象划分为多个功能模块,并有效调整各功能模块的聚类参数值,使其准确表达各功能模块间的关联性。这相对于人工评价和分析,既实现了目标对象评价分析的自动化,节约了大量时间成本和人力成本,还能够通过该关联性准确可靠地评价目标对象的各功能模块,为后续的分析、测试等步骤提供了真实可靠的评价分析结果,有助于对目标对象的维护和改进,提升了开发和维护效率。
130.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
131.应当理解,尽管在本技术实施例中可能采用术语第一、第二等来描述数值,但这些数值不应限于这些术语。这些术语仅用来将数值彼此区分开。例如,在不脱离本技术实施例范围的情况下,第一数值也可以被称为第二数值,类似地,第二数值也可以被称为第一数值。
132.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
133.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
134.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
135.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本技术各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
136.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献