An approach to support legacy systems reengineering to MDD using metaprogramming

Model-Driven Development (MDD) has been a subject of several studies focused on software development. Most studies in this area aims to show how to transform domain models, designing and implementing applications running on different architectures. However, a problem is related to develop a practical approach to support the reengineering of a legacy application for an MDD application. This paper presents an approach for Software Reengineering of a legacy application using MDD and metaprogramming. In Reverse Engineering, we obtain a object-oriented model based on legacy application code and database and, in Forward Engineering, the object-oriented model is refined and used as basis to metaprograms perform code generation. The proposed approach was evaluated through the reengineering of a real legacy system in academic domain from a database with 155 tables.

[1]  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).

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

[3]  Tom Mens,et al.  A Taxonomy of Model Transformation , 2006, GRaMoT@GPCE.

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

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

[6]  Vytautas Štuikys,et al.  TAXONOMY OF THE FUNDAMENTAL CONCEPTS OF METAPROGRAMMING , 2008 .

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

[8]  Natash Ali Mian,et al.  Database reverse engineering tools , 2008, ICSE 2008.

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

[10]  Tim Sheard,et al.  Accomplishments and Research Challenges in Meta-programming , 2001, SAIG.

[11]  Lisane B. de Brisolara,et al.  Generating Java Code from UML Class and Sequence Diagrams , 2011, 2011 Brazilian Symposium on Computing System Engineering.

[12]  Jochen Ludewig,et al.  Models in software engineering - an introduction , 2004, Informatik Forschung und Entwicklung.

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

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

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

[16]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

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

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

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

[20]  Jochen Ludewig,et al.  Models in software engineering – an introduction , 2003, Software and Systems Modeling.

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

[22]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

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

[24]  Andrew Glover,et al.  Continuous Integration: Improving Software Quality and Reducing Risk (The Addison-Wesley Signature Series) , 2007 .

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

[26]  Shane Sendall,et al.  Model Transformation: The Heart and Soul of Model-Driven Software Development , 2003, IEEE Softw..

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

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

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

[30]  Marcelo de Almeida Maia,et al.  MetaJ: An Extensible Environment for Metaprogramming in Java , 2004, J. Univers. Comput. Sci..

[31]  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.