arrow
返回

Third-party software library migration at the method-level using multi-objective evolutionary search

delete2024-02-01
delete0
PRE
AI
N
Niranjana Deshpande *
M
Mohamed Wiem Mkaouer
A
Ali Ouni
N
Naveen Kumar Sharma
DOI:10.1016/j.swevo.2023.101444delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Software developers commonly use third-party software libraries to reduce implementation efforts and mitigate errors in their source code while building high-quality and reliable software. To support software evolution, newer libraries are released periodically with added features, improvements in performance as well as critical updates such as bug fixes. Hence, older, existing (source) libraries need to be replaced with their newer, updated (target) counterparts, in a process known as library migration. Typically, library migration is a time-consuming, manual, and error-prone process that requires developers to analyze the source and target library code and its documentation. Specifically, developers examine Application Programming Interface (API) implementations and documentation to replace each source API with a target API without modifying the underlying software functionality. While recent works have used various techniques to recommend suitable target library replacements, these approaches do not generalize well, e.g., when a source library method needs to be replaced by one or more target library APIs or methods. To address this limitation, we propose the use of multi-objective evolutionary algorithms to identify suitable method replacements during library migration. In particular, we formulate library migration at the method-level as a multi-objective combinatorial optimization problem and examine the performance of 7 multi-objective evolutionary algorithms: UNSGAIII, RNSGAII, AGEMOEA, SMSEMOA, NSGAII, IBEA and MOEAD. We use method signature and documentation similarity, and co-occurrence probability to accurately recommend one or more target library methods. We evaluate our approach by conducting an empirical study on 9 popular Java library migrations mined from 57,447 open -source projects on GitHub. Our results demonstrate that UNSGAIII, RNSGAII, AGEMOEA, SMSEMOA, NSGAII, IBEA and MOEAD achieve 90%, 89%, 94%, 90%, 91%, 94%, and 71% precision on average, and 83%, 23%, 58%, 63%, 58%, 60% and 17% average recall respectively. In the interest of reproducibility, we make all code and results publicly available at: http://bit.ly/MOO-api-migration.
Keyword:
Search-based software engineering
Library migration
API migration
NSGAII
Multi-objective search

期刊

Swarm and Evolutionary Computation 封面图
Swarm and Evolutionary Computation
IF:
8.5
论文数:
2.2K
被引数:
1.0W

机构

R
Rochester Institute of Technology
学者数:
3.8K
论文数: 3.3K
被引数: 45
U
university of quebec
学者数:
2.0W
论文数: 1.9W
被引数: 19
引用论文

引用论文

Learning to recommend third-party library migration opportunities at the API level
err2020-05-01
err32
errOAAI
errAlrubaye, Hussein; Mkaouer, Mohamed Wiem; Khokhlov, Igor; Reznik, Leon; Ouni, Ali; Mcgoff, Jason
err分享
err收藏
Multiobjective evolutionary algorithms: A survey of the state of the art
err2011-03-01
err1.8K
PREAI
errZhou, Aimin; Qu, Bo-Yang; Li, Hui; Zhao, Shi-Zheng; Suganthan, Ponnuthurai Nagaratnam; Zhang, Qingfu
err分享
err收藏
Optimization approaches for the urban delivery problem with trucks and drones
err2022-12-01
err16
PREAI
errZang, Xiaoning; Jiang, Li; Liang, Changyong; Dong, Junfeng; Lu, Wenxing; Mladenovic, Nenad
err分享
err收藏
err分享
err收藏
Differential evolution reveals the effect of polar and nonpolar solvents on carotenoids: A case study of astaxanthin optical response modeling
err2022-12-01
err8
PREAI
errChesalin, Denis D.; Kulikov, Eugene A.; Yaroshevich, Igor A.; Maksimov, Eugene G.; Selishcheva, Alla A.; Pishchalnikov, Roman Y.
err分享
err收藏
学者 查看更多内容