Selected CSM Publications


An Open Architecture Object Store System for Persistent Abstract Syntax Trees

Abstract:
Researchers in the field of software re-engineering have recognised that transformations acting upon the abstract syntax trees of source programs are a useful method of preserving the semantics of program constructs whilst changing the language in which they are expressed. Software re-engineering environments will therefore require infrastructure support for storing abstract syntax trees. This report describes the development of an open architecture object store system which provides this support, and then demonstrates how the openness of the system allows communication of abstract syntax structures between the system and multiple external languages.
Author:
Atkinson, Steven.
Publication:
Download oos.ps.gz (168649 bytes)

Ada Design Recovery

Abstract:
Describes work on an Ada 83 to Ada 9X translator, using Software Refinery, Refine/Ada, GNAT and other tools.
Author:
Chapman, Murray.
Publication:
In Proceedings of the Fourth Reengineering Forum, pages 51-1-51-9, Victoria, BC, September 19-21, 1994. Reverse Engineering Forum, Inc. Download adr-slides.ps.gz (25742 bytes)

Derivation and Presentation of an Abstract Program Space for Ada

Abstract:
A visualisation concepty called ``layering'' promises to deal with large software systems, but has to date been exclusively oriented towards the level of concrete code rather than more design-level information. The first step in further progress is to derive with some degree of formalism a space of abstract program constructs that can be viewed by layers. Next, iconography for the elements of the space is derived with a similar formal spirit. Finally, the implementation not only allows simultaneous, linked views of concrete and abstract layers, but can also be extended to accommodate any number of subsequent higher-level design views that may be envisaged.
Authors:
Bailes, Paul A., Burnim, Paul, Chapman, Murray, and Johnston, Dan.
Publication:
Download aps-ada.ps.gz (83064 bytes)

Knowledge-Based Requirements Analysis for Ada Design Recovery: Design Entity Identification and Representation

Abstract:
Much of the great amount of attention given to design recovery to date has concentrated on the processess of extracting design information from program source code. This paper compliments that prior concentration on the implementation or how of design recovery by focussing instead on the requirements or what aspects: the identification of the design entities that are to be recovered; and their visual representations. These requirements are discerned by the conscious application of powerful and general problem-solving and confidence-raising techniques: formalism; involution; and orthogonality.
Authors:
Bailes, Paul A., Burnim, Paul, and Johnston, Dan.
Publication:
Download adr-entity.ps.gz (56963 bytes)

KBSE and Ada: Object and Enabling Technology

Abstract:
``Layering'' is a visualisation technique that enables basic relationships between software system components to be overlaid with the results of more sophisticated design recovery analyses. Layering can be implemented via a simple presentation tool, to which the results of different analysers can be coupled. Knowledge-based analysis technology can be extended to support Ada83-Ada95 conversion. Taking advantage of the self-implementation of the enalbling technology, the conversion tool can be involuted so that the enabling technology itself is able to be represented in Ada95.
Authors:
Bailes, Paul A., Burnim, Paul, Chapman, Murray, and Salzman, Eric.
Publication:
Download kbse-ada.ps.gz (69459 bytes)

Refine "Refine"

Abstract:
The quality of the Software Refinery KBSE environment derives significantly from the quality of its embedded Refine programming language. While Refine provides strong support for many modern high-level programming paradigms (functional, logic, object-oriented and metaprogramming), a number of improvements seem approppriate. These improvements are motivated through analysis of Refine's existing capabilities, embodied in suggested language changes, and validated by implementation feasibility studies.
Authors:
Bailes, Paul A., Chapman, Murray, and Peake, Ian.
Publication:
Download refine-refine.ps.gz (34443 bytes)

A Formal Basis for the Perception of Programming as a Language Design Activity

Abstract:
Recognising language design as a valid programming paradigm should have widespread benefits e.g. for the development of CASE tools. This validity is demonstrated both pragmatically and formally. The pragmatic justification derives from matching the patterns of usage and quality assessment of programming languages on the one hand, with corresponding patterns for the output of the ``programming '' activity. The formal justification derives from an examination of denotational semantics. Language design as incarnated in the production of a denotational semantics is evidently functional programming, with all the concerns for modularity and abstraction that should also be the concerns of applications programmers. Then, when the denotational equations are restructured in better accord with these programming principles, it emerges that the semantics of a centrepiece of programmer activity - declarations - are evidently language extensions.
Authors:
Bailes, Paul A., Chorvat, Trevor, and Peake, Ian.
Publication:
Download prog-langdesign.ps.gz (17995 bytes)

A Re-Engineering Evaluation of Software Refinery: Architecture, Process and Technology

Abstract:
The quality of software re-engineering tools depends on that of the generic environments used in their construction. Because re-engineering is extremely challenging, too much so for full automation, generic re-engineering environment design criteria emphasise linguistic expressiveness and interaction with persistent repositories for program representations. Existing quality re-engineering environments, such as the Software Refinery, go a long way to satisfying these criteria, but fail to meet open systems criteria. One remedial approach is to recreate some of the functionality of these environments by modifying public domain technology, but which runs the risk of limited interoperability and over-investment in development. Our preferred approach however is to develop interfaces to general persistent object bases, to which bindings from existing languages, tools and environments can be made.
Authors:
Atkinson, Steven. Bailes, Paul A., Chapman, Murray, Chilvers, Martin, and Peake, Ian.
Publication:
Download eval-sr.ps.gz (22698 bytes)

LXWB User's Guide

Abstract:
The LXWB package provides additional functionality to that provided by Refine and Dialect for use in developing language models.
Authors:
Peake, Ian.
Publication:
Download lxwb-guide.ps.gz (37731 bytes)

COBOL-to-Ingres Translation Package

Abstract:
This report describes the results of work carried out on a COBOL-to-Ingres translation pilot-project at the University of Queensland sponsored by Fujitsu Queensland (then ICL) from February to May of 1992. The goal of this project was to produce a prototype tool for transforming a specific class of COBOL programs - all written by a single author for a specific system - into Ingres. Given the constraints on the COBOL source code, the task of providing a pro- totype tool was considered to be within the scope of a small-scale project. The Refine language was chosen as the meta-programming tool for the project.
Authors:
Peake, Ian and Chilvers, Martin.
Publication:
Download cobol-ingres.ps.gz (48282 bytes)


Home - Contact Info- Personnel - Publications - Resources


Copyright ©1995-1998 Centre for Software Maintenance
all rights reserved.
Home Page: http://www.it.uq.edu.au/csm
    Email: csm@it.uq.edu.au
UQIT Logo
.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.