ICSE 2024
Fri 12 - Sun 21 April 2024 Lisbon, Portugal
Thu 18 Apr 2024 14:15 - 14:30 at Amália Rodrigues - Evolution 3 Chair(s): Saba Alimadadi

API developers evolve software libraries to fix bugs, add new features, or refactor code, but the evolution can introduce API-breaking changes (e.g., API renaming). To benefit from such evolution, the programmers of client projects have to repetitively upgrade the callsites of libraries, since API-breaking changes introduce many compilation errors. It is tedious and error-prone to resolve such errors, especially when programmers are often unfamiliar with the API usages of newer versions. To migrate client code, the prior approaches either mine API mappings or learn edit scripts, but both the research lines have inherent limitations. For example, mappings alone cannot handle complex cases, and there is no sufficient source (e.g., migration commits) for learning edit scripts.

In this paper, we propose a new research direction. When a library is replaced with a newer version, each type of API-breaking change introduces a type of compilation error. For example, renaming the name of an API method causes undefined-method errors at its callsites. Based on this observation, we propose to resolve errors that are introduced by migration, according to their locations and types that are reported by compilers. In this way, a migration tool can incrementally migrate complex cases, even without any change examples. Towards this direction, we propose the first approach, called LibCatch. It defines 14 migration operators, and in a compiler-directed way, it exploits the combinations of migration operators to generate migration solutions, until its predefined criteria are satisfied. We conducted two evaluations. In the first evaluation, we use LibCatch to handle 123 migration tasks. LibCatch reduced migration-related compilation errors for 92.7% of tasks, and eliminated such errors for 32.4% of tasks. We inspect the tasks whose errors are eliminated, and find that 33.9% of them produce identical edits to manual migration edits. In the second evaluation, we applied LibCatch to migrate 15 real client projects in the wild. LibCatch resolved all compilation errors of 7 projects, and reduced the compilation errors of 6 other projects to no more than two errors. As a comparison, two tools of existing research lines reduced the compilation errors of only 1 project.

Thu 18 Apr

Displayed time zone: Lisbon change

14:00 - 15:30
14:00
15m
Talk
BOMs Away! Inside the Minds of Stakeholders: A Comprehensive Study of Bills of Materials for Software Systems
Research Track
Trevor Stalnaker William & Mary, Nathan Wintersgill William & Mary, Oscar Chaparro William & Mary, Massimiliano Di Penta University of Sannio, Italy, Daniel M. German University of Victoria, Denys Poshyvanyk William & Mary
Pre-print
14:15
15m
Talk
Compiler-directed Migrating API Callsite of Client Code
Research Track
Hao Zhong Shanghai Jiao Tong University, Na Meng Virginia Tech
14:30
15m
Talk
Hard to Read and Understand Pythonic Idioms? DeIdiom and Explain Them in Non-Idiomatic Equivalent CodeACM SIGSOFT Distinguished Paper Award
Research Track
zejun zhang Australian National University, Zhenchang Xing CSIRO's Data61, Dehai Zhao CSIRO's Data61, Qinghua Lu Data61, CSIRO, Xiwei (Sherry) Xu Data61, CSIRO, Liming Zhu CSIRO’s Data61
14:45
15m
Talk
Integrating Canvas and GitLab to Enrich Learning Processes
Software Engineering Education and Training
Laura Schauer Heriot-Watt University, Rob Stewart Heriot-Watt University, Manuel Maarek Heriot-Watt University
15:00
7m
Talk
Refactoring with domain-driven design in an industrial context: An action research report
Journal-first Papers
Ozan Ozkan Eindhoven University of Technology, Önder Babur Wageningen University & Research, Mark van den Brand Eindhoven University of Technology
15:07
14m
Talk
VEER: Enhancing the Interpretability of Model-based Optimizations
Journal-first Papers
Kewen Peng North Carolina State University, Christian Kaltenecker Saarland University, Germany, Norbert Siegmund Leipzig University, Sven Apel Saarland University, Tim Menzies North Carolina State University
DOI Pre-print