【24h】

A Graph-based Approach to API Usage Adaptation

机译:基于图形的API使用过程方法

获取原文

摘要

Reusing existing library components is essential for reducing the cost of software development and maintenance. When library components evolve to accommodate new feature requests, to fix bugs, or to meet new standards, the clients of software libraries often need to make corresponding changes to correctly use the updated libraries. Existing API usage adaptation techniques support simple adaptation such as replacing the target of calls to a deprecated API, however, cannot handle complex adaptations such as creating a new object to be passed to a different API method, or adding an exception handling logic that surrounds the updated API method calls. This paper presents LibSync that guides developers in adapting API usage code by learning complex API usage adaptation patterns from other clients that already migrated to a new library version (and also from the API usages within the library's test code). LibSync uses several graph-based techniques (1) to identify changes to API declarations by comparing two library versions, (2) to extract associated API usage skeletons before and after library migration, and (3) to compare the extracted API usage skeletons to recover API usage adaptation patterns. Using the learned adaptation patterns, LibSync recommends the locations and edit operations for adapting API usages. The evaluation of LibSync on real-world software systems shows that it is highly correct and useful with a precision of 100% and a recall of 91 %.
机译:重用现有的库组件是降低软件开发和维护的成本是必不可少的。当库组件进化以适应新的功能要求,修复bug,或满足新的标准,软件库的客户经常需要做出相应的变化正确地使用更新的库。现有API使用自适应技术支持简单的适应如更换呼叫的目标到弃用的API,但是,不能处理复杂的适应,例如,创建一个新的对象要被传递给不同的API方法,或添加围绕一个异常处理逻辑更新的API方法调用。本文礼物LibSync,在通过学习从已经(库的测试代码中,并且还从API用法)迁移到新的库版本其他客户复杂的API使用适应模式适应API使用代码引导开发。 LibSync使用若干基于图形的技术(1),通过比较两个库的版本,以确定改变API声明,(2)之前和库迁移后,以提取相关联的API使用骨架,和(3)比较所提取的API使用骨骼,以恢复API使用适应模式。利用学习适应模式,LibSync建议适应API用途的位置和编辑操作。 LibSync对现实世界的软件系统显示了这些评价,这是非常正确和有用的100%精度和91%的召回。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号