On the application of model-driven engineering in data reengineering

Abstract Model-Driven Engineering (MDE) emphasizes the systematic use of models to improve software productivity and some aspects of the software quality such as maintainability or interoperability. Model-driven techniques have proven useful not only as regards developing new software applications but also the reengineering of legacy systems. Models and metamodels provide a high-level formalism with which to represent artefacts commonly manipulated in the different stages of a software evolution process (e.g., a software migration) while model transformation allows the automation of the evolution tasks to be performed. Some approaches and experiences of model-driven software reengineering have recently been presented but they have been focused on the code while data reengineering aspects have been overlooked. The objective of this work is to assess to what extent data reengineering processes could also take advantage of MDE techniques. The article starts by characterising data-reengineering in terms of the tasks involved. It then goes on to state that MDE is particularly amenable as regards addressing the tasks previously identified. We present an MDE-based approach for the reengineering of data whose purpose is to improve the quality of the logical schema in a relational data migration scenario. As a proof of concept, the approach is illustrated for two common problems in data re-engineering: undeclared foreign keys and disabled constraints. This approach is organised following the three stages of a software reengineering process: reverse engineering, restructuring and forward engineering. We show how each stage is implemented by means of model transformation chains. A running example is used to illustrate each stage of the process throughout the article. The approach is validated with a real widely-used database. An assessment of the application of MDE in each stage is then presented, and we conclude by identifying the main benefits and drawbacks of using MDE in data reengineering.

[1]  Håkan Burden,et al.  Industrial Adoption of Model-Driven Engineering: Are the Tools Really the Problem? , 2013, MoDELS.

[2]  Manfred A. Jeusfeld,et al.  An Executable Meta Model for Re-Engineering of Database Schemas , 1994, ER.

[3]  Sreedhar Reddy,et al.  A Model-Driven Approach to Enterprise Data Migration , 2015, CAiSE.

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

[5]  Jean-Marc Jézéquel,et al.  Bridging the chasm between MDE and the world of compilation , 2012, Software & Systems Modeling.

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

[7]  Jean Bézivin,et al.  On the unification power of models , 2005, Software & Systems Modeling.

[8]  Jesús Sánchez Cuadrado,et al.  Morsa: a scalable approach for persisting and accessing large models , 2011, MODELS'11.

[9]  Jean-Luc Hainaut,et al.  Transformation-Based Framework for the Evaluation and Improvement of Database Schemas , 2010, CAiSE.

[10]  Jens H. Jahnke,et al.  Varlet: Human-Centered Tool Support for Database Reengineering , 2000 .

[11]  Aniruddha S. Gokhale,et al.  Domain-Specific Modeling , 2008, Handbook of Dynamic System Modeling.

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

[13]  Jesús García Molina,et al.  Inferring Versioned Schemas from NoSQL Databases and Its Applications , 2015, ER.

[14]  Jean-Luc Hainaut,et al.  Quality Evaluation and Improvement Framework for Database Schemas - Using Defect Taxonomies , 2011, CAiSE.

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

[16]  Anthony Cleve,et al.  Establishing Referential Integrity in Legacy Information Systems - Reality Bites! , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[17]  Oscar Díaz,et al.  Harvesting models from web 2.0 databases , 2011, Software & Systems Modeling.

[18]  Vincent Englebert,et al.  Database Evolution: the DB-Main Approach , 1994, ER.

[19]  Eelco Visser,et al.  Stratego/XT 0.17. A language and toolset for program transformation , 2008, Sci. Comput. Program..

[20]  Markus Völter,et al.  MD* Best Practices , 2009, J. Object Technol..

[21]  Martin Fowler,et al.  Domain-Specific Languages , 2010, The Addison-Wesley signature series.

[22]  Danilo Caivano,et al.  Database Schema Elicitation to Modernize Relational Databases , 2012, ICEIS.

[23]  Jesús García Molina,et al.  Extracting models from source code in software modernization , 2012, Software & Systems Modeling.

[24]  Vincent Englebert,et al.  Program Understanding in Databases Reverse Engineering , 1998, DEXA.

[25]  Jean-Luc Hainaut,et al.  Transformation-Based Database Engineering , 2005, Encyclopedia of Database Technologies and Applications.

[26]  Jesús Sánchez Cuadrado,et al.  RubyTL: A Practical, Extensible Transformation Language , 2006, ECMDA-FA.

[27]  Jesús Sánchez Cuadrado,et al.  Applying model-driven engineering in small software enterprises , 2014, Sci. Comput. Program..

[28]  Kathi Hogshead Davis,et al.  Data reverse engineering: a historical survey , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[29]  Philip H. Newcomb,et al.  Information Systems Transformation: Architecture-Driven Modernization Case Studies , 2010 .

[30]  Bran Selic,et al.  What will it take? A view on adoption of model-based methods in practice , 2012, Software & Systems Modeling.

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

[32]  Behzad Bordbar,et al.  Automatic Normalisation via Metamodelling , 2002 .

[33]  Thomas Tilley Tool Support for FCA , 2004, ICFCA.

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

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

[36]  K. PandeyR. Object constraint language (OCL) , 2011 .

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

[38]  Mark Rouncefield,et al.  The State of Practice in Model-Driven Engineering , 2014, IEEE Software.

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

[40]  Mirko Seifert,et al.  Model-Based Language Engineering with EMFText , 2011, GTTSE.

[41]  Philip Newcomb,et al.  Architecture-Driven Modernization (ADM) , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[42]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[43]  Viorica Varga,et al.  A Software Tool to Transform Relational Databases in Order to Mine Functional Dependencies in it Using Formal Concept Analysis , 2008 .

[44]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[45]  Anthony Cleve,et al.  Migration of Legacy Information Systems , 2008, Software Evolution.

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

[47]  Jordi Cabot,et al.  MoDisco: a generic and extensible framework for model driven reverse engineering , 2010, ASE.

[48]  Tom Mens,et al.  Data-Intensive System Evolution , 2010, Computer.

[49]  Jose-Norberto Mazón,et al.  A Model Driven Modernization Approach for Automatically Deriving Multidimensional Models in Data Warehouses , 2007, ER.

[50]  Arie van Deursen,et al.  Harvesting Software Systems for MDA-Based Reengineering , 2006, ECMDA-FA.

[51]  Jean Bézivin,et al.  Model Driven Tool Interoperability in Practice , 2010 .

[52]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[53]  Mario Piattini,et al.  Empirical-based recovery and maintenance of input error-correction features , 2007 .

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

[55]  Christopher W. Pidgeon,et al.  DMS®: Program Transformations for Practical Scalable Software Evolution , 2002, IWPSE '02.