基于多种数据源的API使用约束挖掘技术研究

来源 :北京大学 | 被引量 : 0次 | 上传用户:babyleah
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件复用是解决软件危机的一种有效途径,而基于API库的软件开发是软件复用的一种重要方式。API使用约束描述了程序在调用API方法时必须满足的要求。这些约束的违反将导致使用这些API的客户程序包含缺陷,并可能发生运行错误。因此,API使用约束对于开发正确的客户程序具有非常重要的作用。由于人工建立这些约束繁琐、费时、费力,越来越多的研究人员开展了API使用约束自动挖掘方面的研究工作。  API使用约束的自动挖掘技术通过分析API相关的数据,如API实现源码、API客户代码、API文档等,自动挖掘出API使用约束。然而,现有的工作仍然存在若干尚待解决的问题:首先,现有的工作大多都是基于单一数据源,难以同时保证较高的召回率(Recall)和准确率(Precision);其次,现有的工作难以较好地平衡挖掘到的约束的准确率和方法的执行效率;最后,现有的工作对于一些特殊类型的API使用约束的关注不够。  针对现有研究工作中的问题和不足,本文开展了综合利用多种数据源的若干约束挖掘方法研究。通过综合分析多种数据源,如API源码、文档、客户代码、以及API运行实体,针对不同的挖掘目标,选取不同的多数据源,从而挖掘出高质量的API使用约束。此外,通过采用两阶段式的挖掘,能够在执行效率与挖掘出的约束质量上取得较好的平衡:在初步挖掘阶段,主要是得到一个初步的候选约束集合,在质量优化阶段,从候选约束出发,得到更多或者更准确的约束,由此进一步提高准确率、召回率。  本文的主要工作与创新点包括:  1、基于API源码和文档的资源释放约束挖掘方法  在初步挖掘阶段,该方法使用基于模型的预测技术,综合分析API源码和文档中的多种信息,识别出初步的资源释放约束,由此克服了单一数据源中的信息局限。在质量优化阶段,该方法采用基于调用图、类继承关系的传播技术,识别出更多的资源释放约束,由此提高约束挖掘的召回率。特别地,由于初步挖掘阶段的模型特征会随着质量优化阶段的传播而动态发生变化,该方法将这两个阶段迭代交替进行,从而可以相互配合而发现更多、更准确的约束。  2、基于客户代码、API源码和文档的时序约束挖掘方法  该方法综合利用客户代码、API实现源码和API文档挖掘API调用的时序约束。在初步挖掘阶段,该方法首先从客户代码中挖掘得到一个候选约束的集合,由此降低了后续分析API源码的工作量,缩减了求解空间,提高了方法的总体效率。在质量优化阶段,该方法利用API实现源码和API文档中的信息对候选约束进行验证和筛选,从而最终得到一个准确率较高的约束集合,解决了仅基于客户代码挖掘出约束的误报率高的问题。  3、基于服务文档、客户代码(SDK)和服务运行实体的Web服务参数的依赖约束挖掘方法  该方法综合利用服务文档、客户代码(SDK)和服务运行实体,挖掘Web服务参数的依赖约束。Web服务参数的依赖约束是客户程序在调用Web服务时需要满足的传入参数上的一种重要的约束。在初步挖掘阶段,该方法从服务文档和客户代码(SDK)中挖掘出候选约束。在质量优化阶段,通过测试Web服务的方式,利用服务运行时信息,对候选约束进行自动验证,从而进一步提升约束挖掘的准确率。  实验结果表明,通过合理利用多种数据源,本文所提出的方法能够以较低的执行代价,挖掘出具有高准确率和召回率的约束。同时,本文也研究了一些特殊类型的约束的挖掘方法,如资源释放的约束、Web服务的参数依赖约束等。
其他文献
该文提出了一种新的算法.该算法采用了一种向量变换,这种向量变换满足针对向量量化的信号处理过程的最优属性.该算法还采用了多套多层结构的码书和动态位分配的向量量化技术.
云计算将数据中心的计算、存储和网络等资源进行平台化,为各式各样的互联网应用提供资源服务。虚拟化技术是进行云计算资源平台化的关键技术,可以提高云计算数据中心资源利用效
研究人员从手术仿真系统的研究背景出发,对构成手术仿真系统的几个主要组成部分的研究进展加以介绍.其中包含软组织模型的建模工作,主要是几何建模、物理/生理建模和计算模型
该文主要关注的是结构复杂笥中的复杂类的非一致复杂笥和概率复杂性.对于NP的非一致复杂性,作者讨论了一个NP集与P/poly的关系.IP是比较新的复杂类,是使用了随机、交互的验证
随着当今医疗科技的不断进步与发展,医学影像技术已经广泛应用到临床诊断与治疗方案制定中,计算机辅助诊断技术也越来越受到研究者的重视。由于CT图像的获取方式具有小的伤害性
随着时代的发展,火灾探测报警系统越来越广泛的应用于大型高层建筑、地下工程等,对于火灾的早期预防和控制起着重要作用,保护人民生命财产安全.SX3000系统是公安部沈阳消防科
信息熵是度量Rough预测(Rough Set Prediction)的结果的不确定性的一种非常有效且有竞争力的方法。在Rough集中,Miao和Wang利用信息熵定义了对应的粗熵(Rough Entropy),并证明
B树及其变种近年来一直作为一种数据结构用来存储大文件信息,特别是在辅存中. 那如何保证B树搜索,插入,删除的安全性就变得对数据库应用及其重要.该论文中对B树的结构做了很
为适应计算机辅助教学发展的趋势,该文实现了一种新的课件开发模式---以多媒体 数据库为核心,以超媒体为主要表现方式的课件开发(该文称超媒体CAI课件).整个系统在 中文WINDO
该论文正是在完成了装备能源管理系统这样一个实际的应用系统的基础上撰写的.论文依据计算机集成制造理论,信息工程,分布式数据库技术等理论,通过对大型企业设备能源管理(特