首页> 外文会议>IEEE/ACM International Conference on Automated Software Engineering >Iterative mining of resource-releasing specifications
【24h】

Iterative mining of resource-releasing specifications

机译:迭代挖掘资源释放规范

获取原文

摘要

Software systems commonly use resources such as network connections or external file handles. Once finish using the resources, the software systems must release these resources by explicitly calling specific resource-releasing API methods. Failing to release resources properly could result in resource leaks or even outright system failures. Existing verification techniques could analyze software systems to detect defects related to failing to release resources. However, these techniques require resource-releasing specifications for specifying which API method acquires/releases certain resources, and such specifications are not well documented in practice, due to the large amount of manual effort required to document them. To address this issue, we propose an iterative mining approach, called RRFinder, to automatically mining resource-releasing specifications for API libraries in the form of (resource-acquiring, resource-releasing) API method pairs. RRFinder first identifies resource-releasing API methods, for which RRFinder then identifies the corresponding resource-acquiring API methods. To identify resource-releasing API methods, RRFinder performs an iterative process including three steps: model-based prediction, call-graph-based propagation, and class-hierarchy-based propagation. From heterogeneous information (e.g., source code, natural language), the model-based prediction employs a classification model to predict the likelihood that an API method is a resource-releasing method. The call-graph-based and class-hierarchy-based propagation propagates the likelihood information across methods. We evaluated RRFinder on eight open source libraries, and the results show that RRFinder achieved an average recall of 94.0% with precision of 86.6% in mining resource-releasing specifications, and the mined specifications are useful in detecting resource leak defects.
机译:软件系统通常使用网络连接或外部文件处理等资源。一旦使用资源完成,软件系统必须通过显式调用特定的资源释放API方法来释放这些资源。无法正确释放资源可能导致资源泄漏甚至彻底的系统故障。现有验证技术可以分析软件系统以检测与未能释放资源相关的缺陷。然而,这些技术需要用于指定哪些API方法获取/释放某些资源的资源释放规范,并且由于记录它们所需的手动努力,因此在实践中没有充分记录此类规格。为解决此问题,我们提出了一种迭代挖掘方法,称为RRFinder,以自动挖掘用于API库的资源释放规范(资源获取,资源释放)API方法对的形式。 RRFinder首先识别资源释放API方法,其中RRFinder识别相应的资源获取API方法。为了识别资源 - 释放API方法,RRFinder执行迭代过程,包括三个步骤:基于模型的预测,基于呼叫图的传播和基于类的基于层次的传播。来自异构信息(例如,源代码,自然语言),基于模型的预测采用分类模型来预测API方法是资源释放方法的可能性。基于呼叫图和基于类层级的传播传播跨方法的可能性信息。我们在八个开源库中评估了RRFINDER,结果表明,采矿资源释放规范的精度为86.6%的平均召回量为94.0%,采用开采规格在检测资源泄漏缺陷方面有用。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号