AD-ROOM: A Tool for Automatic Detection of Refactorings in Object-Oriented Models

Detecting refactorings in Object-Oriented Models (OOM) is essential to automate the repair, maintenance, and migration of OOM-related products. However, detecting refactorings is challenging since multiple sequences of atomic changes may define a single user intention and refactorings may overlap over the atomic change trace. In this paper, we present AD-ROOM an Eclipse-based tool to automatically detect refactorings during evolution of OOM. In contrast to existing tools, AD-ROOM is designed to reach 100% recall that is confirmed in our eight case studies. We allow user confirmation and we support the user with three heuristics that help to improve the precision of AD-ROOM. See the demonstration video: https://youtu.be/4OJ8zHtfnq8

[1]  Tom Mens,et al.  Detecting model inconsistency through operation-based model construction , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[2]  Marie-Pierre Gervais,et al.  Detecting complex changes and refactorings during (Meta)model evolution , 2016, Inf. Syst..

[3]  Sander Vermolen,et al.  Reconstructing Complex Metamodel Evolution , 2011, SLE.

[4]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

[5]  Marie-Pierre Gervais,et al.  Detecting Complex Changes During Metamodel Evolution , 2015, CAiSE.

[6]  Danilo Caivano,et al.  Are Forward Designed or Reverse-Engineered UML diagrams more helpful for code maintenance?: A family of experiments , 2015, Inf. Softw. Technol..

[7]  Jörg Rech,et al.  Model-Driven Software Development - Integrating Quality Assurance , 2008 .

[8]  Jörgen Hansson,et al.  Assessing the State-of-Practice of Model-Based Engineering in the Embedded Systems Domain , 2014, MoDELS.

[9]  Eleni Stroulia,et al.  Refactoring Detection based on UMLDiff Change-Facts Queries , 2006, 2006 13th Working Conference on Reverse Engineering.

[10]  Sander Vermolen,et al.  An Extensive Catalog of Operators for the Coupled Evolution of Metamodels and Models , 2010, SLE.

[11]  Gerti Kappel,et al.  A posteriori operation detection in evolving software models , 2013, J. Syst. Softw..

[12]  Tom Mens,et al.  Model-driven Software Refactoring , 2007, WRT.

[13]  Lerina Aversano,et al.  An empirical study on the maintenance of source code clones , 2010, Empirical Software Engineering.

[14]  Iman Hemati Moghadam,et al.  Automated Refactoring Using Design Differencing , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[15]  Alexander Dekhtyar,et al.  Information Retrieval , 2018, Lecture Notes in Computer Science.

[16]  Eleni Stroulia,et al.  UMLDiff: an algorithm for object-oriented design differencing , 2005, ASE.

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

[18]  Isabel M. Ramos,et al.  Are forward designed or reverse-engineered UML diagrams more helpful for code maintenance?: a controlled experiment , 2013, EASE '13.

[19]  Mark Rouncefield,et al.  Empirical assessment of MDE in industry , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[20]  Oscar Díaz,et al.  Model Transformation Co-evolution: A Semi-automatic Approach , 2012, SLE.

[21]  Regina Hebig,et al.  Surveying the Corpus of Model Resolution Strategies for Metamodel Evolution , 2015, 2015 Asia-Pacific Software Engineering Conference (APSEC).