Harvesting Software Systems for MDA-Based Reengineering

In this paper we report on a feasibility study in reengineering legacy systems towards a model-driven architecture (MDA). Steps in our approach consist of (1) parsing the source code of the legacy system according to a grammar; (2) mapping the abstract syntax trees thus obtained to a grammar model that is defined in the Meta-Object Facility (MOF); (3) using model to model (M2M) transformations to turn the grammar model into a generic meta-model, called Generic-AST, in which information about software systems can be stored in a language-independent way; (4) mapping the GenericAST models, again using M2M transformations, to UML models that can be either used for code generation or for documentation purposes. The steps have been implemented in a prototype model harvesting tool that is based on Arc-Styler, the MDA environment provided by Interactive Objects. Our paper presents this approach, and reports on our experiences in applying the method to a 178 KLOC production system from the insurance domain written in PL/SQL.

[1]  Jean Bézivin,et al.  Technological Spaces: An Initial Appraisal , 2002 .

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

[3]  Eelco Visser,et al.  Syntax definition for language prototyping , 1997 .

[4]  Manuel Wimmer,et al.  Bridging Grammarware and Modelware , 2005, MoDELS Satellite Events.

[5]  Arie van Deursen,et al.  Building documentation generators , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[6]  Artur Boronat,et al.  Automatic reengineering in MDA using rewriting logic as transformation engine , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[7]  Jean-Marie Favre,et al.  Towards a Megamodel to Model Software Evolution Through Transformations , 2005, SETra@ICGT.

[8]  Thijs Reus,et al.  Harvesting existing software systems for MDA-based reengineering , 2006 .

[9]  Ivan Porres,et al.  A Relation Between Context-Free Grammars and Meta Object Facility Metamodels , 2003 .

[10]  Kostas Kontogiannis,et al.  An XML-based framework for language neutral program representation and generic analysis , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[11]  Leon Moonen Lightweight impact analysis using island grammars , 2002, Proceedings 10th International Workshop on Program Comprehension.

[12]  Arie van Deursen,et al.  Symphony: view-driven software architecture reconstruction , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[13]  Arie van Deursen,et al.  Research Issues in the Renovation of Legacy Systems , 1999, FASE.

[14]  William Ulrich A Status on OMG Architecture-Driven Modernization Task Force , 2004 .

[15]  Djenana Campara,et al.  Managed Architecture of Existing Code as a Practical Transition Towards MDA , 2004, UML Satellite Activities.

[16]  Bryan Ford,et al.  Parsing expression grammars: a recognition-based syntactic foundation , 2004, POPL '04.

[17]  Leon Moonen,et al.  Exploring software systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[18]  Mira Mezini,et al.  Language support for model-driven software development , 2008, Sci. Comput. Program..

[19]  Gerald C. Gannod,et al.  Evolution of Java Programs to a Model-Driven Environment Using EMF , 2004 .