School of Accountancy
Permanent URI for this community
This Department was known as the Department of Accounting until 27 June 2013.
Browse
Browsing School of Accountancy by browse.metadata.advisor "De Villiers, P. J. A."
Now showing 1 - 1 of 1
Results Per Page
Sort Options
- ItemA software restructuring tool for oberon(Stellenbosch : Stellenbosch University, 2001-12) Eloff, Johannes J.; De Villiers, P. J. A.; Stellenbosch University. Faculty of Economic and Management Sciences. Dept. of School of Accounting.ENGLISH ABSTRACT: Software restructuring is a form of perfective maintenance that modifies the structure of a program's source code. lts goal is increased maintainability to better facilitate other maintenance activities, such as adding new functionality or correcting previously undetected errors. The modification of structure is achieved by applying transformations to the source code of a software system. Software engineers often attempt to restructure software by manually transforming the source code. This approach may lead to undesirable and undetectable changes in its behaviour. Ensuring that manual transformations preserve functionality during restructuring is difficult; guaranteeing it is almost impossible. One solution to the problem of manual restructuring is automation through use of a restructuring tool. The tool becomes responsible to examine each transformation and determine its impact on the software's behaviour. If a transformation preserves functionality, it may be applied to produce new source code. The tool only automates the application of transformations. The decision regarding which transformation to apply in a specific situation still resides with the maintainer. This thesis describes the design and implementation of a restructuring tool for the Oberon language, a successor of Pascal and Modula-2, under the PC Native Oberon operating system. The process of creating an adequate abstraction of a program's structure and its use to apply transformations and generate new source code are investigated. Transformations can be divided into different classes: Scoping, Syntactic, Control flow and Abstraction transformations. The restructuring tool described in this thesis contains implementations from all four classes. Informal arguments regarding the correctness of each transformation are also presented.