Backwards reasoning for model transformations: Method and applications

Robert Clarisó, Jordi Cabot, Esther Guerra, Juan de Lara
2016 Journal of Systems and Software  
Esta es la versión de autor del artículo publicado en: This is an author produced version of a paper published in: El acceso a la versión del editor puede requerir la suscripción del recurso Access to the published version may require subscription Abstract Model transformations are key elements of Model Driven Engineering. Current challenges for transformation languages include improving usability (i.e., succinct means to express the transformation intent) and devising powerful analysis
more » ... In this paper, we show how backwards reasoning helps in both respects. The reasoning is based on a method that, given an OCL expression and a transformation rule, calculates a constraint that is satisfiable before the rule application if and only if the original OCL expression is satisfiable afterwards. With this method we can improve the usability of the rule execution process by automatically deriving suitable application conditions for a rule (or rule sequence) to guarantee that applying that rule does not break any integrity constraint (e.g. meta-model constraints). When combined with model finders, this method facilitates the validation, verification, testing and diagnosis of transformations, and we show several applications for both inplace and exogenous transformations. Definition 3 (Rule sequence testing (RST)). Given a rule sequence s = ⟨p 1 = ⟨r 1 : L 1 → R 1 , AT T 1 CON D ⟩; ...; p n = ⟨r n : L n → R n , AT T n CON D ⟩⟩, a meta-model M M , and two constraints C pre and C post , find a model M s.t. M |= M M , M |= C pre and M s ⇒ M ′ , with M ′ |= M M , and M ′ |= C post . 23
doi:10.1016/j.jss.2015.08.017 fatcat:lx5pddzlivf5npplctrbjl74kq