Abstract
AbstractIn software development, third-party libraries are commonly used to reduce implementation efforts and errors, while delivering high-quality, reliable and secure software. To support software evolution, newer libraries are continuously released to offer added features, and critical updates such as bug and vulnerability fixes. As a result, old (source) libraries and their methods must be replaced with their newer, updated counterparts (target libraries) during the library migration process. This is known to be a time-consuming and error-prone process as developers need to analyze both the source and target library’s Application Programming Interface (API) documentation and implementation to replace every source API with target API(s). Recent studies have utilized various techniques to recommend the appropriate target library for replacement, but do not provide generalizable guidelines on how to replace each source API with target library APIs. To address this limitation, our work leverages evolutionary search algorithms to recommend APIs by (1) formulating API migration as a combinatorial optimization problem, and (2) using genetic algorithms (GA) to recommend suitable APIs during migration based on the method signature and documentation similarity, and co-occurrence. We conduct an empirical study on 9 popular library migrations from 57,447 open-source Java projects and demonstrate that GA can recommend multiple APIs for replacement with up to 100% precision for certain library migrations.KeywordsGenetic AlgorithmSearch based software engineeringLibrary migrationAPI Migration
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.