Pattern detection for conceptual schema recovery in data‐intensive systems

In this paper, an approach for information systems reverse engineering is proposed and applied. The aim is to support a unified perspective to the reverse engineering process of both data and software. At the state of the art, indeed, many methods, techniques, and tools for software reverse engineering have been proposed to support program comprehension, software maintenance, and software evolution. Other approaches and tools have been proposed for data reverse engineering, with the aim, for example, to provide complete and up‐to‐date documentation of legacy databases. However, the two engineering communities often worked independently, and very few approaches addressed the reverse engineering of both data and software as information system's constituencies. Hence, a higher integration is needed to support a better co‐evolution of databases and programs, in an environment often characterized by high availability of data and volatility of information flows. Accordingly, the approach we propose leverages the detection of object‐relational mapping design patterns to build a conceptual schema of the software under analysis. Then, the conceptual schema is mapped to the domain model of the system, to support the design of the evolution of the information system itself. The approach is evaluated on two large‐scale open‐source enterprise applications. Copyright © 2014 John Wiley & Sons, Ltd.

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

[2]  Antoni Olivé,et al.  Conceptual modeling of information systems , 2007 .

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

[4]  M M Lehman,et al.  Software Evolution , 2002 .

[5]  Carlo Batini,et al.  Managing Quality of Large Set of Conceptual Schemas in Public Administration: Methods and Experiences , 2012, MEDI.

[6]  Cristina Marinescu,et al.  Discovering the Objectual Meaning of Foreign Key Constraints in Enterprise Applications , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[7]  Joseph Fong Information Systems Reengineering and Integration , 2010 .

[8]  Yann-Gaël Guéhéneuc,et al.  Identification of behavioural and creational design motifs through dynamic analysis , 2010, J. Softw. Maintenance Res. Pract..

[9]  Peter H. Aiken,et al.  Data Reverse Engineering : Slaying the Legacy Dragon , 1995 .

[10]  Jean-Luc Hainaut,et al.  Interactively Eliciting Database Constraints and Dependencies , 2011, CAiSE.

[11]  Arne Sølvberg,et al.  Data and What They Refer to , 1997, Conceptual Modeling.

[12]  Serge Demeyer,et al.  Software Evolution , 2010 .

[13]  Jordi Cabot,et al.  A Research Agenda for Conceptual Schema-Centric Development , 2007 .

[14]  Gerardo Canfora,et al.  Achievements and challenges in software reverse engineering , 2011, Commun. ACM.

[15]  Anthony Cleve,et al.  Data Reverse Engineering using System Dependency Graphs , 2006, 2006 13th Working Conference on Reverse Engineering.

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

[17]  Wilhelm Hasselbring,et al.  Information system integration , 2000, CACM.

[18]  Tanja Hueber,et al.  Information Systems Development Methodologies Techniques And Tools , 2016 .

[19]  Francesca Arcelli Fontana,et al.  A tool for design pattern detection and software architecture reconstruction , 2011, Inf. Sci..

[20]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[21]  Gianluigi Viscusi,et al.  Unifying Software and Data Reverse Engineering - A Pattern based Approach , 2010, ICSOFT.

[22]  Dennis B. Smith,et al.  Towards a framework for program understanding , 1996, WPC '96. 4th Workshop on Program Comprehension.

[23]  Jeanne W. Ross,et al.  Enterprise Architecture As Strategy: Creating a Foundation for Business Execution , 2006 .

[24]  Anthony Cleve,et al.  An Industrial Experience Report on Legacy Data-Intensive System Migration , 2007, ICSM.

[25]  Carlo Batini,et al.  Reuse a Repository of Conceptual Schemas in a Large Scale Project , 2006 .

[26]  Michele Risi,et al.  Design pattern recovery through visual language parsing and source code analysis , 2009, J. Syst. Softw..

[27]  Oscar Nierstrasz,et al.  The story of moose: an agile reengineering environment , 2005, ESEC/FSE-13.

[28]  Carlo Batini,et al.  Design and Use of ER Repositories: Methodologies and Experiences in eGovernment Initiatives , 2006, ER.

[29]  Claudia Raibulet,et al.  Design patterns: a survey on their micro‐structures , 2013, J. Softw. Evol. Process..

[30]  Oscar Nierstrasz,et al.  Can We Predict Dependencies Using Domain information? , 2011, 2011 18th Working Conference on Reverse Engineering.

[31]  P. Tonella Reverse engineering of object oriented code , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[32]  Carlo Batini,et al.  Information Systems for eGovernment - A Quality-of-Service Perspective , 2010 .

[33]  Philippe Thiran,et al.  Strategies for data reengineering , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[34]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[35]  Paolo Tonella,et al.  Reverse Engineering of Object Oriented Code (Monographs in Computer Science) , 2004 .

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

[37]  Mario Piattini,et al.  Journal of Software Maintenance and Evolution: Research and Practice an Mda-based Approach for Database Re-engineering , 2022 .

[38]  Nazir Ahmad Zafar,et al.  Database Reverse Engineering Methods: What is Missing? , 2013 .