Reducing time and effort in legacy systems reengineering to MDD using metaprogramming

Model-Driven Development (MDD) has been a subject of several studies focused on software development. MDD aims to keep the model consistent with the implementation and most studies in this area are restricted to show how to transform domain models to implement different applications. However, a problem that still challenges the researchers is to develop a practical approach to support the reengineering of a legacy system, migrating the system for using MDD and reducing time and effort spent in this process. In this sense, the physical model of the database and metaprogramming techniques can assist in this reengineering, automating partially the generation of modeling and implementation artifacts. Focusing on these ideas, this article presents an approach for Software Reengineering of a legacy application from its database, using MDD and metaprogramming. The proposed approach was evaluated through the reengineering of a legacy system in the academic domain from a database with 155 tables.

[1]  Krzysztof Czarnecki,et al.  Classification of Model Transformation Approaches , 2003 .

[2]  James R. Cordy,et al.  Practical metaprogramming , 1992, CASCON.

[3]  Ira R. Forman,et al.  Java Reflection in Action (In Action series) , 2004 .

[4]  Veda C. Storey,et al.  Reverse Engineering of Relational Databases: Extraction of an EER Model from a Relational Database , 1994, Data Knowl. Eng..

[5]  Pedro J. Clemente,et al.  Modernization of Legacy Web Applications into Rich Internet Applications , 2011, ICWE Workshops.

[6]  Mario Mulansky,et al.  Metaprogramming Applied to Numerical Problems , 2011, ArXiv.

[7]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[8]  Daniel Lucrdio,et al.  MVCASE Tool - Working with Design Patterns , 2003 .

[9]  Zhenbing Zeng,et al.  Reengineering of Java Legacy System Based on Aspect-Oriented Programming , 2010, 2010 Second International Workshop on Education Technology and Computer Science.

[10]  Daniel Lucrédio Uma abordagem orientada a modelos para reutilização de software , 2009 .

[11]  Philip A. Bernstein,et al.  Reverse engineering models from databases to bootstrap application development , 2010, 2010 IEEE 26th International Conference on Data Engineering (ICDE 2010).

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

[13]  Renata Pontin de Mattos Fortes,et al.  Web communication and interaction modeling using model-driven development , 2009, SIGDOC '09.

[14]  Petra Bosch-Sijtsema,et al.  From integration to composition: On the impact of software product lines, global development and ecosystems , 2010, J. Syst. Softw..

[15]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[16]  Christian Bauer,et al.  Java Persistence with Hibernate , 2006 .

[17]  Beijun Shen,et al.  Model-Driven Reengineering of Database , 2009, 2009 WRI World Congress on Software Engineering.

[18]  Gregory T. Sullivan Aspect-oriented programming using reflection and metaobject protocols , 2001, CACM.

[19]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[20]  Takeo Kanade,et al.  Models in Software Engineering , 2011, Lecture Notes in Computer Science.

[21]  Tom Mens,et al.  Challenges in Model-Driven Software Engineering , 2009, MoDELS.