Metamodel and Constraints Co-evolution: A Semi Automatic Maintenance of OCL Constraints

Metamodels are core components of modeling languages to define structural aspects of a business domain. As a complement, OCL constraints are used to specify detailed aspects of the business domain, e.g. more than 750 constraints come with the UML metamodel. As the metamodel evolves, its OCL constraints may need to be co-evolved too. Our systematic analysis shows that semantically different resolutions can be applied depending not only on the metamodel changes, but also on the user intent and on the structure of the impacted constraints. In this paper, we investigate the reasons that lead to apply different resolutions. We then propose a co-evolution approach that offers alternative resolutions while allowing the user to choose the best applicable one. We evaluated our approach on the evolution of the UML case study. The results confirm the need of alternative resolutions along with user decision to cope with real co-evolution scenarios. The results show that our approach reaches 80i?ź% of semantically correct co-evolution.

[1]  Gabriele Taentzer,et al.  Co-evolving meta-models and their instance models: A formal approach based on graph transformation , 2015, Sci. Comput. Program..

[2]  Markus Herrmannsdoerfer,et al.  Language Evolution in Practice: The History of GMF , 2009, SLE.

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

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

[5]  Salah Sadou,et al.  Assistance System for OCL Constraints Adaptation during Metamodel Evolution , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[6]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

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

[8]  Marie-Pierre Gervais,et al.  AD-ROOM: A Tool for Automatic Detection of Refactorings in Object-Oriented Models , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[9]  Martin Gogolla,et al.  Object Constraint Language (OCL): A Definitive Guide , 2012, SFM.

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

[11]  Alexander Egyed,et al.  Supporting the Co-evolution of Metamodels and Constraints through Incremental Constraint Management , 2013, MoDELS.

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

[13]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[14]  Werner Retschitzegger,et al.  Systematic Co-Evolution of OCL Expressions , 2015, APCCM.

[15]  Hassan Charaf,et al.  An optimizing OCL Compiler for Metamodeling and Model Transformation Environments , 2006, SET.

[16]  Thomas Baar,et al.  Refactoring OCL annotated UML class diagrams , 2005, MoDELS'05.

[17]  Alexander Egyed,et al.  Automatically generating and adapting model constraints to support co-evolution of design models , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[18]  Jordi Cabot,et al.  Automatic Integrity Constraint Evolution due to Model Subtract Operations , 2004, ER.

[19]  Martin Gogolla,et al.  Towards transformation of integrity constraints and database states , 2005, 16th International Workshop on Database and Expert Systems Applications (DEXA'05).

[20]  Maurizio Morisio,et al.  Success and Failure Factors in Software Reuse , 2002, IEEE Trans. Software Eng..

[21]  James E. Rumbaugh,et al.  Unified Modeling Language (UML) , 2010, Encyclopedia of Software Engineering.

[22]  Guido Wachsmuth,et al.  Metamodel Adaptation and Model Co-adaptation , 2007, ECOOP.

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