Demystifying model transformations: an approach based on automated rule inference

Model-driven development (MDD) is widely used to develop modern business applications. MDD involves creating models at different levels of abstractions. Starting with models of domain concepts, these abstractions are successively refined, using transforms, to design-level models and, eventually, code-level artifacts. Although many tools exist that support transform creation and verification, tools that help users in understanding and using transforms are rare. In this paper, we present an approach for assisting users in understanding model transformations and debugging their input models. We use automated program-analysis techniques to analyze the transform code and compute constraints under which a transformation may fail or be incomplete. These code-level constraints are mapped to the input model elements to generate model-level rules. The rules can be used to validate whether an input model violates transform constraints, and to support general user queries about a transformation. We have implemented the analysis in a tool called XYLEM. We present empirical results, which indicate that (1) our approach can be effective in inferring useful rules, and (2) the rules let users efficiently diagnose a failing transformation without examining the transform source code.

[1]  Gabor Karsai,et al.  Towards Verifying Model Transformations , 2008, GT-VMT@ETAPS.

[2]  Jochen Malte Küster,et al.  Validation of model transformations: first experiences using a white box approach , 2006, MoDELS'06.

[3]  Mangala Gowri Nanda,et al.  Accurate Interprocedural Null-Dereference Analysis for Java , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[4]  Yves Le Traon,et al.  Model Transformation Testing Challenges , 2006 .

[5]  Mark Lillibridge,et al.  Extended static checking for Java , 2002, PLDI '02.

[6]  B. Baudry,et al.  Validation in model-driven engineering: testing model transformations , 2004, Proceedings. 2004 First International Workshop on Model, Design and Validation, 2004..

[7]  Jonathan Aldrich,et al.  Modular typestate checking of aliased objects , 2007, OOPSLA.

[8]  Kevin Lano,et al.  Model Transformation Specification and Verification , 2008, 2008 The Eighth International Conference on Quality Software.

[9]  K. Rustan M. Leino,et al.  Verification of Object-Oriented Programs with Invariants , 2003, J. Object Technol..

[10]  Westley Weimer,et al.  Automatic documentation inference for exceptions , 2008, ISSTA '08.

[11]  Douglas C. Schmidt,et al.  Model-Driven Engineering , 2006 .

[12]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[13]  Wilhelm Schäfer,et al.  Towards Verified Model Transformations , 2006 .

[14]  Brad A. Myers,et al.  Debugging reinvented , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.