Full Text Available

Note: Clicking the button above will open the full text document at the original institutional repository in a new window.

Fine-grain transformations for refactoring

Thesis (PhD)--University of Pretoria, 2009.

Saved in:
Bibliographic Details
Other Authors: Kourie, Derrick G.
Format: Thesis
Published: University of Pretoria 2013
Subjects:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1867613511922745344
access_status_str Open Access
author2 Kourie, Derrick G.
author_browse Kourie, Derrick G.
author_facet Kourie, Derrick G.
collection Thesis
dc_rights_str_mv © 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.
description Thesis (PhD)--University of Pretoria, 2009.
format Thesis
id oai:repository.up.ac.za:2263/25459
institution University of Pretoria (South Africa)
last_indexed 2026-06-10T12:37:19.082Z
license_str Other — see source repository
provenance_str_mv Harvested via OAI-PMH from UPSpace — University of Pretoria Institutional Repository
publishDate 2013
publishDateRange 2013
publishDateSort 2013
publisher University of Pretoria
publisherStr University of Pretoria
record_format dspace
source_str UPSpace — University of Pretoria Institutional Repository
spelling oai:repository.up.ac.za:2263/25459 Fine-grain transformations for refactoring Kourie, Derrick G. esaadeh@cs.up.ac.za Saadeh, Emmad I.M. Abstract and atomic fine-grain transformations Refactoring UCTD Thesis (PhD)--University of Pretoria, 2009. This 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.<p. An alternative container for FGTs is defined, called an FGT-DAG. It is a directed acyclic graph with FGTs as nodes, and with arcs that reflect the sequential dependency relationships between constituent FGTs. An algorithm is provided to convert a list of FGTs into a corresponding set of FGT-DAGs. Thus design level refactorings specified as FGT-lists can be also be converted to corresponding sets of FGT-DAGs. The precondition for applying such a refactoring to a given system is specified at two levels: the FGT-enabling precondition conjuncts that apply to each FGT-DAG, and the refactoring-level precondition conjuncts. 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. Computer Science unrestricted 2013-09-06T21:38:54Z 2010-06-14 2013-09-06T21:38:54Z 2010-04-16 2009 2010-06-11 Thesis Saadeh, EIM 2009, Fine-grain transformations for refactoring, PhD thesis, University of Pretoria, Pretoria, viewed yymmdd < http://hdl.handle.net/2263/25459 > D10/439/ag http://hdl.handle.net/2263/25459 http://upetd.up.ac.za/thesis/available/etd-06112010-194103/ © 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. application/pdf application/pdf application/pdf application/pdf application/pdf application/pdf application/pdf University of Pretoria
spellingShingle Abstract and atomic fine-grain transformations
Refactoring
UCTD
Fine-grain transformations for refactoring
title Fine-grain transformations for refactoring
title_full Fine-grain transformations for refactoring
title_fullStr Fine-grain transformations for refactoring
title_full_unstemmed Fine-grain transformations for refactoring
title_short Fine-grain transformations for refactoring
title_sort fine grain transformations for refactoring
topic Abstract and atomic fine-grain transformations
Refactoring
UCTD
url http://hdl.handle.net/2263/25459
http://upetd.up.ac.za/thesis/available/etd-06112010-194103/