Effectiveness of Rule-Based Scripts for Automated Dependency Repair in Legacy Software
Abstract
Researchers often need to compile older projects to compare new techniques of theirs with techniques from prior work. However, one major challenge researchers face is that there are many issues when compiling older projects. The dependencies in older projects are often underspecified, and even when they are specified, specific versions of a dependency may no longer be available. To help with these problems, our work aims to provide solutions to help researchers automatically compile older projects. Rule-based scripts can help automate dependency repair in large legacy systems. Four rule-based scripts we created were compared on 19 legacy software projects that have compilation problems. The most successful script was to enable and disable plugins related to the compilation, resolving 52.6% of the problems. Of the remaining problems, changing to different versions of Java proved to be the best, resolving 50% of problems. The other two scripts were to remove the text SNAPSHOT and change the occurrence of “http” to “https” in the dependency declaration file. These changes effectively change a snapshot version of a dependency into a stable version of the same dependency and allows the compilation to run securely as newer dependency repositories block insecure http downloads. These scripts resulted in 33.3% of the remaining problems being resolved. Overall, the scripts repaired 89.5% of the compilation problems. These results demonstrate that rule-based scripts are a promising solution to repair a large proportion of dependency-related compilation problems in legacy software. Further research to explore integrating these scripts with intelligent systems could be beneficial to deal with more complex projects.
Published
Issue
Section
License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.