Search papers, labs, and topics across Lattice.
This paper investigates the challenges of code reuse during software redesign, particularly in cross-repository scenarios, using a bidirectional study of the Soot/SootUp redesign. They identify non-linear migration, deferred reuse, neglected test porting, and residual bug propagation as key issues. To address these challenges, they retrofit clone detection with semantic alignment heuristics and a hierarchical detection strategy to derive code mappings, achieving significant reductions in irrelevant clones and improved precision in identifying reusable code.
Retrofitting clone detection with semantic awareness slashes irrelevant clones by up to 99% when porting code across redesigned software projects.
Software redesign preserves functionality while improving quality attributes, but manual reuse of code and tests is costly and error-prone, especially in crossrepository redesigns. Focusing on static analyzers where cross-repo redesign needs often arise, we conduct a bidirectional study of the ongoing Soot/SootUp redesign case using an action research methodology that combines empirical investigation with validated open-source contributions. Our study reveals: (1) non-linear migration which necessitates bidirectional reuse, (2) deferred reuse via TODOs, (3) neglected test porting, and (4) residual bug propagation during migrations. We identify tracking corresponding code and tests as the key challenge, and address it by retrofitting clone detection to derive code mappings between original and redesigned projects. Guided by semantic reuse patterns derived in our study, we propose Semantic Alignment Heuristics and a scalable hierarchical detection strategy. Evaluations on two redesigned project pairs (Soot/SootUp and FindBugs/SpotBugs) show that our approach achieves an average reduction of 33-99% in likely irrelevant clones at a SAS threshold of 0.5 across all tool results, and improves precision up to 86% on our benchmark of 1,749 samples. Moreover, we contribute to the redesigned projects by submitting five issues and 10 pull requests, of which eight have been merged.