Large corporations currently face an urgent problem in managing their legacy systems. Software re-engineering has been found to be a realistic and viable solution for recovering the design of legacy systems, and implementing them within an environment that assures low maintenance costs, providing technological state-of-the-art infrastructure and at the same time establishing a basis for software evolution.
As the knowledge-based approach is widely used in software re-engineering to support an understanding of intensive tasks, the hypothesis of this research is that a legacy system written in COBOL can be re-engineered to an object-oriented system using a very simple and basic knowledge base requiring only minimal platform attributes.
This thesis derives the essence of the knowledge-based re-engineering approach and builds on this to demonstrate how a simple and effective knowledge base can be built. As
the knowledge-based approach can be reduced to domain modelling, the essence of the knowledge-based reengineering approach is identified to be the abstract syntax tree representation of the COBOL legacy system.
This abstract syntax tree is used as a working base to which the software reengineer applies transformation rules (written in Java) to generate new abstracted versions of the original system. The first level of abstraction produces the COBOL Abstraction Schema, a formal schema/model containing a more abstract and easier to understand representation of the COBOL program. The next level of abstraction is the Idealised Class Schema, an object-oriented schema of the system and is utilized as a basis to forward engineer the new implementation of the system.
Even as Bailes et al [BACJP95] advocate the necessity of persistence, expressiveness, adaptability and openness in their
Generic Transition Architecture (GTA), we present an alternative approach that only requires the platform attributes of expressiveness and openness for any software reengineering tool to work effectively. Persistence and adaptability are dispensable under appropriate and justifiable circumstances and these circumstances can be considered as significant occurrences. Our approach which advocates the AST as the basic and essential component of a KB in any software knowledge-based re-engineering exercise, and requiring only the platform attributes of expressiveness and openness, is a concrete example of a significant sub-class of re-engineering applications for which the full generalities of the GTA does not apply. This consideration of a sub-class of reengineering applications which dispenses with adaptability and persistence has been
exemplified by the construction of the COBOL-to-Java Converter.