AUPLearner:上下文敏感的自更新API推荐方法

来源 :南京大学 | 被引量 : 0次 | 上传用户:tq08eb0
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,软件开发者大多采用代码复用技术提高开发效率,其中API是代码复用技术中最常见的表现形式。然而,开发人员在享受API带来的开发便捷的同时,将面临另外一个问题——如何从大量的API库中找到符合需求的API。阅读大量的使用说明文档,并从中挑选符合需求的API是一个耗时且易错的过程。为了降低API的使用门槛,API推荐方法相继被提出。API推荐方法可根据开发者的开发上下文,生成一个后续可能会被调用的API列表,常见的API推荐方法包括SLANG、GraLan、APIREC等等。分析发现,这些方法的实验对象获取方式或模型训练过程均比较复杂,以Nguyen等人提出的API推荐方法APIREC为例,其使用统计学习的方法学习细粒度变更中的规律,由此生成相应的API推荐列表。虽然实验验证APIREC推荐性能优于多种基准方法,但是该方法需要挖掘项目中细粒度的变更信息,这是一个较为繁杂的过程,且需要较大的存储空间;此外训练推荐模型时也需要消耗较长时间。基于此,本文致力于寻找一个简单、有效的API推荐方法,以期望达到与复杂方法相近或更好的推荐性能。论文主要贡献如下:(1)提出了一个上下文敏感的自更新API推荐方法AUPLearner。AUPLearner认为代码上下文中单一类API使用序列以及API周围的字符列表有助于API推荐。首先,AUPLearner使用N-Gram语言模型捕捉单一类API使用序列中的顺序关系;然后使用关联规则挖掘算法挖掘每个类中API与字符间的关联规则;且在每次推荐结束后,AUPLearner使用历史API使用序列、字符列表以及开发者实际调用的API更新推荐模型。特别地,为了降低方法复杂性,AUPLearner只采用2-Gram语言模型捕捉单一类API使用序列中的顺序关系,挖掘频繁项时只挖掘其中包含API的2-频繁项集。(2)在开源Java项目中分析AUPLearner的总体推荐性能,实验结果显示AUPLearner的总体推荐准确性Accuracy@top-5值接近90%,逼近最优推荐方法;平均推荐耗时低于30ms,由此可认为AUPLearner是一个简单、有效的API推荐方法。(3)设计实验对比AUPLearner与基准方法APIREC、N-Gram的推荐性能,实验结果显示AUPLearner的推荐性能显著优于基准方法APIREC、N-Gram的推荐性能。特别地,与Nguyen等人提出的APIREC相比,项目间API(JDKAPI)的 top-1 推荐准确率Accuracy@top-1提高了约 160%(120%),项目内 API(JDK API)的 top-1 推荐准确率Accuracy@top-1提高了81%(77%)。
其他文献
浸没燃烧的技术已经出现60多年,但是在国内仍然没有系统的研究所以没有得到广泛的应用,目前国内的LNG气化站所用的浸没燃烧气化器还是依赖进口公司。浸没燃烧是燃烧的烟气与
碳纳米管作为一种优良的一维碳纳米材料,具有诸多独特的理化特性如高导电率、大表面积、高电催化活性和良好的化学稳定性等,因此是构建电化学传感平台的理想材料。表面功能化
目前我国商业银行面临复杂的经济形势,金融产品的差异化越来越小,人力资源逐渐成为商业银行竞争的重点。而客户经理作为商业银行人才竞争的重要组成部分,在银行经营发展中发
在追求海洋经济高质量发展的背景下,随着海洋经济的迅速发展,海洋生态环境正遭受不可逆的恶劣影响,海洋生态经济系统的协调发展面临巨大威胁,沿海地区作为国家海洋经济的引领
沥青混合料路面以其优良的路用性能被广泛运用于现代道路建设中。我国沥青路面大多采用热拌沥青混合料,热拌沥青混合料不仅消耗能源还会污染环境,而温拌沥青混合料技术能降低
光电化学传感器在工业生产、疾病诊断治疗、环境保护等领域有着广泛的应用,而具有合适的带隙和较高载流子迁移率的光敏材料在获得理想的光电流信号中起着至关重要的作用。氧
无线电能传输(Wireless Power Transfer,WPT)技术是近年来新能源和电力电子领域研究的焦点。磁共振无线电能传输技术相比于传统技术,在安全性、传输距离、传输效率和负载功率
复合地基处理软土地基时通常会采用沉管灌注桩或钻孔灌注桩。施工过程中由于环节众多、工艺复杂,成桩质量容易受到各种因素的影响,往往会出现缩径、断裂和扩径等缺陷。缺陷桩
近十几年来我国高速铁路从无到有,引进、消化、吸收、再创新,直到今天高铁已成为中国制造的一张亮丽名片。高速铁路给我们带来方便、快捷、舒适的同时,还有一群人默默的守护
如今,数值天气预报已成为影响社会发展与日常生活的一种天气预报手段,而气象资料的同化技术有助于提高数值天气预报的准确性。由于地面气象观测资料存在问题,导致地面气象观