A software restructuring tool for oberon

Date
2001-12
Authors
Eloff, Johannes J.
Journal Title
Journal ISSN
Volume Title
Publisher
Stellenbosch : Stellenbosch University
Abstract
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.
AFRIKAANSE OPSOMMING: Die herstrukturering van programmatuur is daarop gemik om die struktuur van 'n program se bronkode te wysig. Hierdie strukturele veranderings dien in die algemeen as voorbereiding vir meer omvangryke onderhoudsaktiwiteite, soos byvoorbeeld die toevoeging van nuwe funksionaliteit of die korrigering van foute wat voorheen verskuil was. Die verandering in struktuur word teweeggebring deur die toepassing van transformasies op die bronkode. Programmatuur-ontwikkelaars voer dikwels sulke transformasies met die hand uit. Sulke optrede kan problematies wees indien 'n transformasie die funksionaliteit, in terme van programgedrag, van die programmatuur beïnvloed. Dit is moeilik om te verseker dat bogenoemde metode funksionaliteit sal behou; om dit te waarborg is so te sê onmoontlik. 'n Oplossing vir bogenoemde probleem is die outomatisering van die herstruktureringsproses deur die gebruik van gespesialiseerde programmatuur. Hierdie programmatuur is in staat om die nodige transformasies toe te pas en terselfdertyd funksionaliteit te waarborg. Die keuse vir die toepassing van 'n spesifieke transformasie lê egter steeds by die programmeerder. Hierdie tesis bespreek die ontwerp en implementering van programmatuur om bronkode, geskryf in Oberon (die opvolger van Pascal en Modula-2), te herstruktureer. Die skep van 'n voldoende abstrakte voorstelling van bronkode, die gebruik van sodanige voorstelling in die toepassing van transformasies en die reprodusering van nuwe bronkode, word bespreek. Transformasies kan in vier breë klasse verdeel word: Bestek, Sintaks, Kontrolevloei en Abstraksie. Die programmatuur wat ontwikkel is vir hierdie tesis bevat voorbeelde uit elkeen van die voorafgenoemde klasse. Informele argumente word aangebied om die korrektheid van die onderskeie transformasies te staaf.
Description
Thesis (MComm) -- University of Stellenbosch, 2001.
Keywords
Oberon, Software refactoring, Dissertations -- Computer science
Citation