Abstract:
The objective of this paper is to explain the notion of fine-grain transformations (FGTs), showing how they can be used as prototypical building blocks for constructing refactorings of a design-level system description. FGT semantics are specified in terms of pre- and postconditions which, in turn, also determines the sequential dependency relationships between them. An algorithm is provided which uses sequential dependency relationships to convert an FGT-list to a set of so-called FGT-DAGs. It is shown how to compute the precondition of such ordered collections of FGTs. The paper introduces a new approach to deal with refactoring pre- and postconditions by defining them at two different levels. To give these concepts syntactical form, we rely on the Prolog formats used by an FGT-based refactoring prototype tool. An example is provided to illustrate the various concepts and to demonstrate that, because of their simplicity, well-defined pre-post semantics and their intuitive nature, FGTs provide a pragmatic basis for building refactorings.