在软件开发过程中,复用应用程序编程接口(Application Programming Interface,API)可以提高软件开发效率,但是使用不熟悉的API是一项耗时且困难的挑战。已有的研究往往将API作为用户输入的查询,通过在语料库中搜索该API的使用模式来进...在软件开发过程中,复用应用程序编程接口(Application Programming Interface,API)可以提高软件开发效率,但是使用不熟悉的API是一项耗时且困难的挑战。已有的研究往往将API作为用户输入的查询,通过在语料库中搜索该API的使用模式来进行推荐,但这并不符合开发人员的查询习惯。文中提出了一种基于自然语言语义相似度的API使用模式推荐方法(Semantic Similazing Based API Recommendation,SSAPIR)。该方法使用层次聚类算法来提取API使用模式,然后通过计算查询信息和API使用模式来描述信息之间的语意相似度,向开发人员推荐相关度高且被广泛使用的API使用模式。为了验证SSAPIR的有效性,文中从GitHub的高质量Java项目中提取9个流行的第三方API库的API使用模式以及API使用模式的描述信息,并根据这9个流行的第三方API库的自然语言查询进行API使用模式推荐。通过计算推荐结果的Hit@K准确率来验证SSAPIR的有效性,实验结果表明,层次聚类能有效提高推荐准确率,且SSAPIR在Hit@10平均准确率上达到了85.02%,优于现有研究工作,能够很好地完成API使用模式推荐任务,为开发人员输入的自然语言查询提供精准的API使用模式。展开更多
通过软件缺陷预测可以有效地提高软件测试效率,保证软件产品的质量。针对新开发的项目面临训练数据不足,标注代价高以及源项目与目标项目的缺陷模式难以匹配的问题,提出了基于主动学习的跨项目软件缺陷预测方法。首先使用主动学习方法...通过软件缺陷预测可以有效地提高软件测试效率,保证软件产品的质量。针对新开发的项目面临训练数据不足,标注代价高以及源项目与目标项目的缺陷模式难以匹配的问题,提出了基于主动学习的跨项目软件缺陷预测方法。首先使用主动学习方法对目标项目进行筛选标注,其次将得到的标签集与跨项目数据进行数据融合和模式匹配,最后构建跨项目软件缺陷预测模型。采用真实的软件缺陷数据进行实验,在保证预测率的前提下,曲线下面积(area under curve, AUC)能够达到0.692,与传统方法相比综合性能均有显著提升。结果表明:所提方法可以通过模式匹配有效提高跨项目软件缺陷预测模型的性能。展开更多
文摘在软件开发过程中,复用应用程序编程接口(Application Programming Interface,API)可以提高软件开发效率,但是使用不熟悉的API是一项耗时且困难的挑战。已有的研究往往将API作为用户输入的查询,通过在语料库中搜索该API的使用模式来进行推荐,但这并不符合开发人员的查询习惯。文中提出了一种基于自然语言语义相似度的API使用模式推荐方法(Semantic Similazing Based API Recommendation,SSAPIR)。该方法使用层次聚类算法来提取API使用模式,然后通过计算查询信息和API使用模式来描述信息之间的语意相似度,向开发人员推荐相关度高且被广泛使用的API使用模式。为了验证SSAPIR的有效性,文中从GitHub的高质量Java项目中提取9个流行的第三方API库的API使用模式以及API使用模式的描述信息,并根据这9个流行的第三方API库的自然语言查询进行API使用模式推荐。通过计算推荐结果的Hit@K准确率来验证SSAPIR的有效性,实验结果表明,层次聚类能有效提高推荐准确率,且SSAPIR在Hit@10平均准确率上达到了85.02%,优于现有研究工作,能够很好地完成API使用模式推荐任务,为开发人员输入的自然语言查询提供精准的API使用模式。
文摘通过软件缺陷预测可以有效地提高软件测试效率,保证软件产品的质量。针对新开发的项目面临训练数据不足,标注代价高以及源项目与目标项目的缺陷模式难以匹配的问题,提出了基于主动学习的跨项目软件缺陷预测方法。首先使用主动学习方法对目标项目进行筛选标注,其次将得到的标签集与跨项目数据进行数据融合和模式匹配,最后构建跨项目软件缺陷预测模型。采用真实的软件缺陷数据进行实验,在保证预测率的前提下,曲线下面积(area under curve, AUC)能够达到0.692,与传统方法相比综合性能均有显著提升。结果表明:所提方法可以通过模式匹配有效提高跨项目软件缺陷预测模型的性能。