[发明专利]一种基于多目标优化算法NSGA-Ⅱ推荐跨项目关联缺陷报告的方法在审
申请号: | 201710932159.0 | 申请日: | 2017-09-30 |
公开(公告)号: | CN109597747A | 公开(公告)日: | 2019-04-09 |
发明(设计)人: | 陈林;任浩;马皖王莹 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F17/27 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210023 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种基于多目标优化算法NSGA‑II推荐跨项目关联缺陷报告的方法,主要包含以下步骤:1)获取与查询缺陷报告所在项目关联的其他项目,主要基于缺陷所在项目的信息以及项目参与人的信息;2)计算项目之间的关联度:主题相似度、项目重要程度、项目之间的距离,对项目的关联度排序;3)对于关联度较大的项目,计算其中的缺陷与查询缺陷报告之间的主题相似性以及将要修改的源代码文件之间的距离;4)根据缺陷报告的主题相似性、源文件距离、项目的关联度计算适应值函数;5)利用多目标优化算法NSGA‑II产生相关联程度最大的跨项目缺陷报告。本发明主要解决目前缺乏对查询缺陷报告推荐相关联的跨缺陷报告问题,能够有效定位、修复跨项目缺陷,提高处理跨项目缺陷报告的效率。 | ||
搜索关键词: | 缺陷报告 多目标优化算法 关联度 主题相似性 关联缺陷 关联 查询 关联度计算 源代码文件 主题相似度 有效定位 源文件 排序 修复 | ||
【主权项】:
1.一种基于多目标优化算法NSGA‑II推荐跨项目关联缺陷报告的方法,其特征在于,首先需要获取与查询缺陷报告所在项目关联的其他项目,主要是基于待查询缺陷的项目源代码和项目参与人的信息;然后对于得到的关联项目,计算其与待查询缺陷所在的项目之间的关联度,主要有三个方面的因素:项目之间的主题相似性、项目之间的距离(将这些项目以网络图的形式组织起来,计算在图中的距离)、项目的重要程度。得到关联度较大的关联项目;对于些关联项目,计算项目中的缺陷报告与待查询缺陷报告之间的相关度,主要有两个因素:缺陷报告之间的文本相似度、与缺陷相关的源代码文件之间的距离;对于上述项目之间关联度以及缺陷报告之间的关联度,最后利用多目标优化算法NSGA‑II推荐得到跨项目关联缺陷报告。该方法包括下列步骤:1)收集python项目中的查询缺陷报告信息,从Github上提取查询缺陷报告的文本信息、该项目的源代码和主题信息以及该项目的参与人的信息。其中缺陷报告的信息主要有id(拥有者/包名#issue.number)、标题、描述信息、参与者、时间(创建、更新、关闭时间),并且获取项目的参与人(Contributors、Owners、Watchers、Stargazers)的相关信息以及项目的源代码文件;2)根据缺陷报告所在项目的源代码文件,从中获取相关项目;根据源代码文件中的语句抽取该项目所引用的其他项目,在python项目的源代码文件中往往会出现类似于“import***”等这样的语句用来导入其他项目。因此,可以得到该项目在源代码中所引入的其他项目。利用正则式匹配可能会出现一些不正确的项目,例如导入的项目内的模块等,因此需要对这些项目进行人工审查;3)获取缺陷报告所在项目的Contributors的活动信息,获取相关项目;在Github上,查询缺陷报告的项目中的Contributors往往会关注(Watch/Star、Follow)其他的相关项目或者其他开发者,因此可以利用Github提供的接口获取每个Contributor所关注的开发者或者项目;4)根据步骤2)和步骤3)中得到的与查询缺陷所在的项目有关联的其他项目,并且可以计算查询缺陷所在的项目与其他关联项目之间的关联程度,按照关联度进行排序;41)根据项目的主题信息,计算这些关联项目与查询缺陷所在的项目之间的主题相似度;42)根据每个项目Owner之间的关注信息或者每个项目Contributors的关系建立项目之间的网络图。其中Owner的关注信息主要是Owner之间的follow关系,以及项目Owner关注(Star)另外一个项目;Contributors的关系主要是任意两个项目之间是否有共同的Contributor;43)利用上一步中建立的网络图,能够计算的到项目的重要程度以及这些关联项目与查询缺陷所在的项目之间的距离;44)结合计算得到的项目之间的主题相似度、项目重要程度、项目之间的距离,可以按照这些信息对项目之间的相关联程度进行排序;5)对于得到的与查询缺陷报告所在项目相关联程度较高的其他项目,分析这些项目中的缺陷,获取这些缺陷报告中的文本信息;其中文本信息主要包括缺陷的标题和描述信息;6)对于步骤5)中的到的缺陷报告的文本信息和查询缺陷报告中的文本信息进行相关处理,主要包括以下几个步骤:61)利用python中的NLTK包对所有缺陷报告的文本信息(标题和描述信息)进行分词,需要去除其中的停词以及词形还原;62)对于所有的缺陷报告中的标题以及描述信息根据TF‑IDF、Word Embedding进行向量化;63)采用余弦相似度分别计算TF‑IDF相似度(TS)、Word Embedding词向量相似度(WS),因为TS和WS是互补的,因此考虑使用两者只和计算得到两个缺陷报告之间的主题相似性;7)根据步骤5)中得到的缺陷报告的文本信息以及源代码,利用LDA模型进行缺陷定位,然后计算得到源文件距离,主要包括以下几个步骤:71)对于缺陷报告文本信息以及源代码进行简单的文本处理,去除其中的停词以及词根;72)使用基于Gibbs抽样的参数推理方法得到LDA模型中最重要的两个参数;73)使用LDA模型得到缺陷报告以及源代码的文章‑主题分布和主题‑词语分布,得到词语在主题维度的分布;74)计算两个文本的相似度,使用KL(Kullback‑Leibler)距离作为相似度度量标准;75)得到与缺陷报告相关度最大的三个源文件路径,计算其与对应的查询缺陷报告相似的源文件之间的距离;8)根据步骤6)和步骤7)中得到的缺陷报告之间的关联度以及步骤4)中计算得到的项目之间的关联度,可以计算得到适应值;9)根据步骤8)得到的适应值,在利用NSGA‑II算法时,需要先计算得到遗传算法中的三个算子:选择算子、交叉算子、变异算子,然后使用多目标优化算法NSGA‑II推荐得到与查询缺陷报告相关联的跨项目缺陷报告。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710932159.0/,转载请声明来源钻瓜专利网。
- 上一篇:故障分析方法及装置
- 下一篇:代码缺陷预警方法及装置