Date of Award
Doctor of Philosophy
Carl K. Chang
Evolution of software components may lead to compatibility problems, such as incorrect executing results, compilation errors and system crashes. Solving those problems is a big challenge in software engineering.
In the past decade, many automatic solutions to address this issue have been proposed. However, all of them rely on extra change information (i.e., the information regarding the changes of the upgraded components). Without such information, none of the existing solutions can work. Therefore, how to fully automatically solve compatibility problems without extra information is still an important open issue.
In the current study, I proposed an end-to-end solution to fully automatically adapt incompatible components without resorting to any extra information. It is composed of two parts. The first part is TARP, an AI-planning based automatic refactoring history reconstruction framework. For an upgraded component, TARP can automatically reconstruct the missing refactoring history. The second part is ALTA, an automatic load-time adaptation framework, which can adapt incompatible components on-the-fly according to the refactoring history generated from TARP. Therefore, as an integrated solution with both TARP and ALTA, compatibility problems among application and components can be fully automatically solved to a very large extent.
The implementation of ALTA as ALTA*, and TARP as TARP*, were evaluated by conducting five sets of tests. The experimental results show that the TARP* + ALTA* solution can indeed fully automatically fix compatibility problems incurred to large-scale components without any additional information.
Lu, Kai-Shin, "Automatic refactoring history reconstruction and dynamic component adaptation frameworks for refactoring-based software component evolution" (2013). Graduate Theses and Dissertations. 13637.