面向框架API的异常感知生命周期模型构建
软件工程
2024-01-08 v1
摘要
复杂软件系统的实现通常依赖于底层框架或第三方库。在它们的演化过程中,API的添加和移除行为可能导致意外的兼容性问题。因此,精确分析和构建框架/库的API生命周期模型具有重要意义。现有工作提出了用于缺陷检测的API存在性变化模型,但未考虑API语义变化的影响。在某些情况下,开发者不会移除或弃用API,而是通过添加、删除或修改其异常抛出代码来改变其语义,这可能给上层代码带来潜在缺陷。因此,除了API存在性模型,开发者还需要关注API中与异常相关的代码演化,这要求为框架/库项目构建异常感知的API生命周期模型。为实现自动的异常感知API生命周期模型构建,本文采用静态分析技术提取框架API代码中的异常摘要信息,并采用多步匹配策略获取异常的变化过程。然后,为给定的框架/库项目生成异常感知的API生命周期模型。基于该方法,实现了基于Java字节码分析的API生命周期提取工具JavaExP。与最先进的工具相比,JavaExP在F1分数(+60%)和效率(+7倍)上均有提升,其异常匹配和变化结果的精度达到98%。与不考虑异常的API生命周期建模相比,在60个版本上,JavaExp识别的API变化数量多出18%。在分析的75,433个API中,20%的API在引入后至少改变过一次异常抛出行为,这可能带来许多隐藏的兼容性问题。
引用
@article{arxiv.2401.02660,
title = {Exception-aware Lifecycle Model Construction for Framework APIs},
author = {Jiwei Yan and Jinhao Huang and Hengqin Yang and Jun Yan},
journal= {arXiv preprint arXiv:2401.02660},
year = {2024}
}
备注
in Chinese language