Developing a model-driven reengineering approach for migrating PL/SQL triggers to Java: A practical experience

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.

[1]  Jordi Cabot,et al.  MoDisco: A model driven reverse engineering framework , 2014, Inf. Softw. Technol..

[2]  Jean-Luc Dekeyser,et al.  Towards an automation of the mutation analysis dedicated to model transformation , 2015, Softw. Test. Verification Reliab..

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

[4]  Jean Vanderdonckt,et al.  A layout inference algorithm for Graphical User Interfaces , 2016, Inf. Softw. Technol..

[5]  Richard F. Paige,et al.  The Epsilon Transformation Language , 2008, ICMT@TOOLS.

[6]  Dániel Varró,et al.  Model transformation by example , 2006, MoDELS'06.

[7]  Claudia Raibulet,et al.  Model-Driven Reverse Engineering Approaches: A Systematic Literature Review , 2017, IEEE Access.

[8]  Richard F. Paige,et al.  EUnit: a unit testing framework for model management tasks , 2011, MODELS'11.

[9]  Rubby Casallas,et al.  White-box modernization of legacy applications: The oracle forms case study , 2018, Comput. Stand. Interfaces.

[10]  Gianna Reggio,et al.  Unit Testing of Model to Text Transformations , 2014, AMT@MoDELS.

[11]  Jordi Cabot,et al.  Static Analysis of Model Transformations for Effective Test Generation , 2012, 2012 IEEE 23rd International Symposium on Software Reliability Engineering.

[12]  Olaf Zimmermann,et al.  Incremental Development of Model Transformation Chains Using Automated Testing , 2009, MoDELS.

[13]  Jesús Sánchez Cuadrado,et al.  Reverse Engineering of Event Handlers of RAD-Based Applications , 2011, 2011 18th Working Conference on Reverse Engineering.

[14]  Mario Piattini,et al.  Reengineering Technologies , 2011, IEEE Software.

[15]  Raffaela Mirandola,et al.  MANTra: Towards Model Transformation Testing , 2010, 2010 Seventh International Conference on the Quality of Information and Communications Technology.

[16]  Yves Le Traon,et al.  Barriers to systematic model transformation testing , 2010, Commun. ACM.

[17]  Jordi Cabot,et al.  Using Models of Partial Knowledge to Test Model Transformations , 2012, ICMT@TOOLS.

[18]  Jesús Sánchez Cuadrado,et al.  Model-driven reverse engineering of legacy graphical user interfaces , 2010, ASE.

[19]  B. Baudry,et al.  Validation in model-driven engineering: testing model transformations , 2004, Proceedings. 2004 First International Workshop on Model, Design and Validation, 2004..

[20]  Rick Kazman,et al.  Requirements for integrating software architecture and reengineering models: CORUM II , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[21]  Jesús García Molina,et al.  On the application of model-driven engineering in data reengineering , 2017, Inf. Syst..

[22]  Reiko Heckel,et al.  Architectural Transformations: From Legacy to Three-Tier and Services , 2008, Software Evolution.

[23]  Jordi Cabot,et al.  Model-Driven Software Engineering in Practice , 2017, Synthesis Lectures on Software Engineering.

[24]  Benoit Baudry,et al.  Automatic Model Generation Strategies for Model Transformation Testing , 2009, ICMT@TOOLS.

[25]  Richard F. Paige,et al.  Localized model transformations for building large-scale transformations , 2015, Software & Systems Modeling.

[26]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

[27]  Jesús García Molina,et al.  An Architecture-Driven Modernization Tool for Calculating Metrics , 2010, IEEE Software.

[28]  Jean-Marc Jézéquel,et al.  Model-driven engineering for software migration in a large industrial context , 2007, MODELS'07.

[29]  Mario Piattini,et al.  Business process archeology using MARBLE , 2011, Inf. Softw. Technol..

[30]  Olegas Vasilecas,et al.  Extracting Business Rules from Existing Enterprise Software System , 2012, ICIST.

[31]  Arend Rensink,et al.  A survey and comparison of transformation tools based on the transformation tool contest , 2014, Sci. Comput. Program..

[32]  Christian Wagner Model-Driven Software Migration: A Methodology - Reengineering, Recovery and Modernization of Legacy Systems , 2014 .

[33]  Jesús García Molina,et al.  A tool to support the definition and enactment of model-driven migration processes , 2017, J. Syst. Softw..

[34]  Bernhard Schätz,et al.  Graph and model transformation tools for model migration , 2014, Software & Systems Modeling.