Reverse Engineering of Event Handlers of RAD-Based Applications

Businesses are more and more modernising the legacy systems they developed with Rapid Application Development (RAD) environments, so that they can benefit from the new platforms and technologies. When facing the modernisation of applications developed with RAD environments, developers must deal with event handling code that typically mixes concerns such as GUI and business logic. In this paper we propose a model-based approach to tackle the reverse engineering of event handlers in RAD-based applications. Event handling code is transformed into an intermediate representation that captures the high-level behaviour of the code. From this representation, some modernisation tasks can be automated, and we propose the migration to a different architecture as an example. In particular, from PL/SQL code, a new Ajax application will be generated, where business logic, user interface and control code have been separated.

[1]  Jesús García Molina,et al.  A Domain Specific Language for Extracting Models in Software Modernization , 2009, ECMDA-FA.

[2]  Jesús Sánchez Cuadrado,et al.  Modularization of model transformations through a phasing mechanism , 2009, Software & Systems Modeling.

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

[4]  Atif M. Memon,et al.  An event‐flow model of GUI‐based applications for testing , 2007, Softw. Test. Verification Reliab..

[5]  Eleni Stroulia,et al.  Reverse engineering legacy interfaces: an interaction-driven approach , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[6]  Grace A. Lewis,et al.  Modernizing Legacy Systems - Software Technologies, Engineering Processes, and Business Practices , 2003, SEI series in software engineering.

[7]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[8]  Atif M. Memon An event-flow model of GUI-based applications for testing: Research Articles , 2007 .

[9]  James Martin,et al.  Rapid Application Development , 1991 .

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

[11]  Jesús Sánchez Cuadrado,et al.  Building Domain-Specific Languages for Model-Driven Development , 2007, IEEE Software.

[12]  Andrew M. Sutton,et al.  Mappings for accurately reverse engineering UML class models from C++ , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[13]  Paolo Tonella,et al.  Reverse engineering of the interaction diagrams from C++ code , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

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

[15]  Mohammad El-Ramly,et al.  Forms2Net - Migrating Oracle Forms to Microsoft .NET , 2005, GTTSE.

[16]  Gerardo Canfora,et al.  A wrapping approach for migrating legacy system interactive functionalities to Service Oriented Architectures , 2008, J. Syst. Softw..

[17]  Mario Piattini,et al.  A case study on business process recovery using an e‐government system , 2012, Softw. Pract. Exp..

[18]  Stefan Staiger,et al.  Reverse Engineering of Graphical User Interfaces Using Static Analyses , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).