当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于一体化开发平台的软件工件关系的挖掘方法技术

技术编号:23099127 阅读:36 留言:0更新日期:2020-01-14 20:36
本发明专利技术公开了一种基于一体化开发平台的软件工件关系的挖掘方法,包括:首先从GitHub页面提取所有的显式引用,过滤掉噪声后,识别缺陷报告、提交请求和来自显式引用的提交记录之间的“解决”关系,并恢复工件之间“解决”关系的缺失链接,再使用文本挖掘和机器学习技术分析剩余引用中的其他关系,最后基于识别出的解决关系和非解决关系,构建连接图。本发明专利技术的方法可以提高挖掘的准确性和效率。

A mining method of software artifact relationship based on integrated development platform

【技术实现步骤摘要】
一种基于一体化开发平台的软件工件关系的挖掘方法
本专利技术涉及计算机
,具体涉及一种基于一体化开发平台的软件工件关系的挖掘方法。
技术介绍
随着开源软件发展的日益普及,软件工件的数量有了巨大的增长,使人们能够深入了解如何构建软件。研究人员总是在寻找大规模的、有代表性的软件工件,以生成新型现有技术的系统的、无偏差的验证。。现有技术中,有部分研究方法,通过重建缺陷报告与修复代码变化之间的关系,来挖掘软件工件之间的关系,例如,ReLink,MLink,RCLinker,FRLink,PULink。本申请专利技术人在实施本专利技术的过程中,发现现有技术的方法,至少存在如下技术问题:现有技术中的研究方法是分别针对两个系统(缺陷存储库和源代码版本控制系统)进行研究,然后研究如何将两个系统之间的工件连接起来,不适用于一体化开发平台,并且,通过重建缺陷报告与修复代码变化之间的关系,来挖掘软件工件之间的关系,容易忽略软件工件之间的其他引用关系,因而导致准确性不高。由此可知,现有技术中的方法存在准确性不高的技术问题。
技术实现思路
有鉴于此,本专利技术提供了一种基于一体化开发平台的软件工件关系的挖掘方法,用以解决或者至少部分解决现有技术中的方法存在准确性不高的技术问题。本专利技术提供了一种基于一体化开发平台的软件工件关系的挖掘方法,包括:步骤S1:从给定的软件工件中获取有效的显式引用,其中,软件工件包括软件缺陷报告、代码库提交记录和提交请求;>步骤S2:采用关键字匹配和基于事实的分析方法,从获取的有效的显式引用中识别出解决关系;步骤S3:对于有效的显式引用中的其他引用,采用监督机器学习方法预测引用的非解决关系,其中,其他引用为有效的显式引用中除具有解决关系的引用之外的引用,非解决关系为引用的原因;步骤S4:根据识别出的解决关系和预测的非解决关系,挖掘软件工件关系。在一种实施方式中,步骤S1具体包括:从给定的软件工件中获取所有显式引用,对显式引用中的噪声进行过滤,获取有效的显式引用。在一种实施方式中,步骤S2具体包括:步骤S2.1:当提交请求或代码库提交记录中是否包含预设关键字时,将提交请求与软件缺陷报告之间的引用关系、或代码库提交记录与软件缺陷报告之间的引用关系作为解决关系;步骤S2.2:根据开发人员对软件缺陷报告的评论识别出解决关系。在一种实施方式中,所述方法还包括步骤S2.3:根据识别出的解决关系构建软件缺陷报告、代码库提交记录以及提交请求之间的三角关系。在一种实施方式中,所述方法还包括:构建提交请求与代码库提交记录之间的映射关系,并通过映射关系消除三角关系中的虚假解决关系。在一种实施方式中,步骤S3具体包括:步骤S3.1:选取预设数量的具有非解决关系的引用作为训练样本,利用训练样本对构建的预测模型进行训练;步骤S3.2:对有效的显式引用中的其他引用,采用经典的VSM模型结合TF-IDF方法进行特征提取,利用训练后的预测模型预测出非解决关系。在一种实施方式中,步骤S4具体包括:根据识别出的解决关系和预测的非解决关系,构建软件工件之间的连接图,并通过构建的连接图挖掘软件工件之间的关系。本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:本专利技术提供的一种基于一体化开发平台的软件工件关系的挖掘方法,首先,从给定的软件工件中获取有效的显式引用;接着采用关键字匹配和基于事实的分析方法,从获取的有效的显式引用中识别出解决关系;然后,对于有效的显式引用中的其他引用,采用监督机器学习方法预测引用的非解决关系,最后根据识别出的解决关系和预测的非解决关系,挖掘软件工件关系。由于本专利技术提供的方法,从给定的软件工件中获取有效的显式引用后,可以采用关键字匹配和基于事实的分析方法,识别出解决关系,从而可以使得识别出的解决关系具有较高的准确性;并且对于有效的显式引用中的其他引用,可以采用监督机器学习方法预测引用的非解决关系,也可以使得识别出的非解决关系具有较高的准确性,进而根据识别出的解决关系和预测的非解决关系,挖掘软件工件关系,故而提高了挖掘方法的准确性,并且本专利技术的方法适用于集成了缺陷存储库和源代码版本控制系统的一体化开发平台。此外,采用关键字匹配和基于事实的分析方法不涉及复杂的计算,采用机器学习方法构建预测模型来预测引用的非解决关系,可以提高效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种基于一体化开发平台的软件工件关系的挖掘方法的流程图;图2为本专利技术实施例的整体框架图;图3为本专利技术实施例的识别解决关系的流程图;图4为本专利技术实施例中完整的修复三角的示意图;图5为本专利技术实施例中缺失代码提交记录的示意图图6为本专利技术实施例的缺失提交请求的示意图;图7为本专利技术实施例的分析非解决关系的流程图;图8为本专利技术实施例的构建连接图的算法的代码示意图。具体实施方式本专利技术的目的在于针对现有技术中的方法存在的准确性不高的技术问题,提供的一种基于一体化开发平台的软件工件关系的挖掘方法,通过识别出显式引用中的解决关系,识别其他引用中的非解决关系,进而挖掘软件工件之间的关系,从而达到提高挖掘的准确性的技术效果。为实现上述技术效果,本专利技术的主要构思如下:提供一种自动提取和分析一体化开发平台的软件工件之间关系的方法,先从GitHub页面提取所有的显式引用,过滤掉噪声后,识别缺陷报告、提交请求和来自显式引用的提交记录之间的“解决”关系,并恢复工件之间“解决”关系的缺失链接,再使用文本挖掘和机器学习技术分析剩余引用中的其他关系,最后基于识别出的解决关系和非解决关系,构建连接图。为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本实施例提供了一种基于一体化开发平台的软件工件关系的挖掘方法,请参见图1,该方法包括:步骤S1:从给定的软件工件中获取有效的显式引用,其中,软件工件包括软件缺陷报告、代码库提交记录和提交请求。具体来说,在软件开发过程中,会不断创建缺陷报告和代码更改提交记录等相互关联的工件,这些工件通常为软件开发和维护提供丰富的信息。软件工件关系可以是软件缺陷报告与代码更改提交记录之间的关系、软件缺陷报告与提交请求之间的关系。...

【技术保护点】
1.一种基于一体化开发平台的软件工件关系的挖掘方法,其特征在于,包括:/n步骤S1:从给定的软件工件中获取有效的显式引用,其中,软件工件包括软件缺陷报告、代码库提交记录和提交请求;/n步骤S2:采用关键字匹配和基于事实的分析方法,从获取的有效的显式引用中识别出解决关系;/n步骤S3:对于有效的显式引用中的其他引用,采用监督机器学习方法预测引用的非解决关系,其中,其他引用为有效的显式引用中除具有解决关系的引用之外的引用,非解决关系为引用的原因;/n步骤S4:根据识别出的解决关系和预测的非解决关系,挖掘软件工件关系。/n

【技术特征摘要】
1.一种基于一体化开发平台的软件工件关系的挖掘方法,其特征在于,包括:
步骤S1:从给定的软件工件中获取有效的显式引用,其中,软件工件包括软件缺陷报告、代码库提交记录和提交请求;
步骤S2:采用关键字匹配和基于事实的分析方法,从获取的有效的显式引用中识别出解决关系;
步骤S3:对于有效的显式引用中的其他引用,采用监督机器学习方法预测引用的非解决关系,其中,其他引用为有效的显式引用中除具有解决关系的引用之外的引用,非解决关系为引用的原因;
步骤S4:根据识别出的解决关系和预测的非解决关系,挖掘软件工件关系。


2.如权利要求1所述的方法,其特征在于,步骤S1具体包括:
从给定的软件工件中获取所有显式引用,对显式引用中的噪声进行过滤,获取有效的显式引用。


3.如权利要求1所述的方法,其特征在于,步骤S2具体包括:
步骤S2.1:当提交请求或代码库提交记录中是否包含预设关键字时,将提交请求与软件缺陷报告之间的引用关系、或代码库提交记录与软件缺陷报告之间的引用关系作为解决关系...

【专利技术属性】
技术研发人员:谢晓园李家豪浦帆
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1