1 research outputs found

    Semi-Automatic Component Upgrade with RefactoringNG

    No full text
    Software components evolve and this evolution often leads to changes in their interfaces. Upgrade to a new version of component then involves changes in client code that are nowadays usually done manually. We deal with the problem of automatic update of client code when the client upgrades to a new version of component. We describe a new flexible refactoring tool for the Java programming language that performs refactorings described by refactoring rules. Each refactoring rule consists of two abstract syntax trees: pattern and rewrite. The tool searches for the pattern tree in clientsource-code abstract syntax trees and replaces each occurrence with the rewrite tree. The client-source-code abstract syntax trees are built and fully attributed by the Java compiler. Thus, the tool has complete syntactic and semantic information. Semantic analysis and flexibility in refactoring definitions make the tool superior to most competitors
    corecore