Legacy 4GL application migration via knowledge-based software engineering technology: a case study

Most contemporary fourth-generation languages (4GL) are tightly coupled with the database, and other subsystems provided by the vendor. As a result, organisations that wish to change database vendors are typically forced to rewrite their applications using the new vendor's 4GL. The anticipated cost of this redevelopment can deter an organisation from changing vendors, hence denying it the benefits that would otherwise result, e.g., the exploitation of more sophisticated database technology. If tools existed that could reduce the rewriting effort, the large upfront cost of migrating the organisation's applications would also be reduced, which could make the shift economically feasible. This paper describes two approaches for migrating 4GL-based information system applications and how these approaches are enabled using knowledge-based software engineering (KBSE) technology. Semantic issues identified during the design of the toolset are addressed. These issues are instantiated using examples from the project. The approaches described in this paper were developed as part of an industry-sponsored research project to construct a "real world" software re-engineering toolset. The project represents the first significant attempt to apply KBSE technology to this problem.

[1]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[2]  John V. Harrison,et al.  Evaluation of the ITOC information system design recovery tool , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[3]  Wojtek Kozaczynski,et al.  A Knowledge-based Approach To Software System Understanding , 1991, Proceedings., 6th Annual Knowledge-Based Software Engineering Conference.

[4]  Jeffrey D. Ullman,et al.  Principles of database and knowledge-base systems, Vol. I , 1988 .

[5]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[6]  I. Peake,et al.  A generic, knowledge-based re-engineering architecture , 1993, Proceedings of 6th International Workshop on Computer-Aided Software Engineering.

[7]  Wojtek Kozaczynski,et al.  Recovering reusable components from legacy systems by program segmentation , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[8]  Lawrence Markosian,et al.  Using an enabling technology to reengineer legacy systems , 1994, CACM.

[9]  Chap-Liong Ong Class and object extraction from imperative code , 1994 .

[10]  John V. Harrison,et al.  Re-engineering 4GL-based information system applications , 1995, Proceedings 1995 Asia Pacific Software Engineering Conference.