Document Type Doctoral Thesis Author Saadeh, Emmad I M email@example.com URN etd-06112010-194103 Document Title Fine-grain transformations for refactoring Degree PhD Department Computer Science Supervisor
Advisor Name Title Prof D Kourie Supervisor Keywords
- abstract and atomic fine-grain transformations
Date 2010-04-16 Availability unrestricted AbstractThis thesis proposes a new approach to formalize refactorings, principally at the UML class diagram design level (but incorporating a limited amount of code-level informationóbasic access-related information). A set of abstract and atomic fine-grain transformations (FGTs) is defined as prototypical building blocks for constructing refactorings. The semantics of each FGT is specified in terms of its pre- and postcondition conjuncts. Various logical relationships between FGT pre- and postcondition conjuncts are fully catalogued. These include uni- and bidirectional sequential dependency relationships; absorbing and cancelling reduction relationships; and uni- and bi-directional conflict relationships.
The principle container for FGTs is an FGT-list in which the ordering of FGTs respects the sequential relationships between them. Such a list is characterised by the set of FGT precondition conjuncts (which a system should satisfy if the FGTs are to be sequentially applied to the system) as well as the resulting postcondition conjuncts (that describe the effect of applying the list). In the thesis, twenty-nine commonly used primitive refactorings are specified as such FGT-lists, together with their associated FGT-enabling precondition conjuncts. Refactoring-level pre- and postconditions are also identified for each primitive refactoring FGT-list. These are, of course, required to guarantee behaviour preservation.
The thesis provides various algorithms that operate on FGT-DAGs. These include an algorithm to remove redundancies from an FGT-DAG. It also includes algorithms that operate on the elements of a set of FGT-DAGs: to detect sequential dependencies between these elements, to detect whether they are in deadlock, and to detect and possibly remove or modify FGTs causing conflicts between them. In addition, an algorithm is provided to build composite refactorings from primitive refactorings. It indicates how composite-level and FGT-enabling precondition conjuncts can be derived and utilised to avoid the rollback problem.
A Prolog prototype FGT-based refactoring tool has been implemented. The tool stores all of the above-mentioned catalogued information as Prolog rules and facts. This includes the twenty-nine commonly used primitive refactorings (stored as Prolog FGT-lists) and their associated refactoring-level pre- and postcondition conjuncts. The tool also implements all the previously mentioned algorithms as Prolog procedures.
The thesis thus establishes the foundations for a tool in which end users can create (and apply without rollback) not only composite refactorings, but also completely new refactorings whose semantics is constrained only by the fine-grained semantics of FGTs, rather than by the more course-grained semantics of primitive refactorings.
Furthermore, using FGTs as refactoring building blocks (i.e. instead of primitive refactorings) means that redundancies and conflicts can be more accurately pin-pointed and removed; and opportunities for parallel execution are exposed at a more fine-grained level. These advantages come at the cost of having to carry out more computations because analysis has to take place at the FGT-level rather than at the refactoring-level.
© 2009, University of Pretoria. All rights reserved. The copyright in this work vests in the University of Pretoria. No part of this work may be reproduced or transmitted in any form or by any means, without the prior written permission of the University of Pretoria.
Please cite as follows:
Saadeh, EIM 2009, Fine-grain transformations for refactoring, PhD thesis, University of Pretoria, Pretoria, viewed yymmdd < http://upetd.up.ac.za/thesis/available/etd-06112010-194103/ >
Filename Size Approximate Download Time (Hours:Minutes:Seconds)
28.8 Modem 56K Modem ISDN (64 Kb) ISDN (128 Kb) Higher-speed Access 00front.pdf 101.56 Kb 00:00:28 00:00:14 00:00:12 00:00:06 < 00:00:01 01part1.pdf 358.38 Kb 00:01:39 00:00:51 00:00:44 00:00:22 00:00:01 02part2.pdf 1.84 Mb 00:08:29 00:04:22 00:03:49 00:01:54 00:00:09 03part3.pdf 1.71 Mb 00:07:54 00:04:03 00:03:33 00:01:46 00:00:09 04part4.pdf 243.87 Kb 00:01:07 00:00:34 00:00:30 00:00:15 00:00:01 05part5.pdf 307.88 Kb 00:01:25 00:00:43 00:00:38 00:00:19 00:00:01