Developing a Model-Driven Reengineering Approach for Migrating PL/SQL Triggers to Java: A Practical Experience
Carlos J. Fernandez-Candel, Jesus Garcia-Molina, Francisco Javier Bermudez Ruiz, Jose Ramon Hoyos Barcelo, Diego Sevilla Ruiz, Benito Jose Cuesta Viera
TL;DR
This work presents a practical model‑driven reengineering approach to migrate PL/SQL triggers and program units from Oracle Forms to a Java MVC stack. It defines a two‑phase, model‑driven pipeline (reverse engineering into KDM, restructuring into Primitives and Platform/Object models, then forward engineering to Java) supported by a test‑driven development process and multiple validation steps. The authors compare transformation languages (Java, ATL, QVT) for M2M tasks, introduce graph‑based visualization to aid testing, and demonstrate the approach on real Forms applications within a Morpheus‑inspired pipeline integrated with Open Canarias tooling. The work contributes a complete development process, practical engineering insights, and empirical validation, showing how MDE can systematize large‑scale software modernization and provide actionable guidance for practitioners deploying KDM in migration projects.
Abstract
Model-driven software engineering (MDE) techniques are not only useful in forward engineering scenarios, but can also be successfully applied to evolve existing systems. RAD (Rapid Application Development) platforms emerged in the nineties, but the success of modern software technologies motivated that a large number of enterprises tackled the migration of their RAD applications, such as Oracle Forms. Our research group has collaborated with a software company in developing a solution to migrate PL/SQL monolithic code on Forms triggers and program units to Java code separated in several tiers. Our research focused on the model-driven reengineering process applied to develop the migration tool for the conversion of PL/SQL code to Java. Legacy code is represented in form of KDM (Knowledge-Discovery Metamodel) models. In this paper, we propose a software process to implement a model-driven re-engineering. This process integrates a TDD-like approach to incrementally develop model transformations with three kinds of validations for the generated code. The implementation and validation of the re-engineering approach are explained in detail, as well as the evaluation of some issues related with the application of MDE.
