Dependency Relation: captures an ordering dependency between pairs of refactoring instances. Specifically, an ordering dependency (r_f2→r_f1) between two refactoring instances (r_f1 and r_f2) exists when r_f2 can only be successfully applied after r_f1 has been applied. That is, r_f1 makes a change to code that is necessary in order to apply r_f2. This condition can be evaluated based on the combination of pre- and post-conditions of the types of refactorings involved and the parameters of each refactoring instances.
Refactoring Graph: a weakly connected directed acyclic graph composed of refactoring instance vertices and ordering dependency edges. Using the ordering dependencies as the basis for forming refactoring graphs (Refactoring Dependency Correctness Algorithm) results in a set of graphs with the following traits:
Each refactoring instance is an element of exactly one refactoring graph.
Some graphs contain a single refactoring instance because that refactoring is truly independent of all others. We call these trivial graphs.
The remaining graphs contain multiple refactoring instances, each of which is part of one or more dependencies. We call these non-trivial graphs.
Each refactoring graph is independent of every other graph in the solution.