Static Analysis of Model Transformations
- 2 December 2016
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 43 (9), 868-897
- https://doi.org/10.1109/tse.2016.2635137
Abstract
Model transformations are central to Model-Driven Engineering (MDE), where they are used to transform models between different languages; to refactor and simulate models; or to generate code from models. Thus, given their prominent role in MDE, practical methods helping in detecting errors in transformations and automate their verification are needed. In this paper, we present a method for the static analysis of ATL model transformations. The method aims at discovering typing and rule errors, like unresolved bindings, uninitialized features or rule conflicts. It relies on static analysis and type inference, and uses constraint solving to assert whether a source model triggering the execution of a given problematic statement can possibly exist. Our method is supported by a tool that integrates seamlessly with the ATL development environment. To evaluate the usefulness of our method, we have used it to analyse a public repository of ATL transformations. The high number of errors discovered shows that static analysis of ATL transformations is needed in practice. Moreover, we have measured the precision and recall of the method by considering a synthetic set of transformations obtained by mutation techniques, and comparing with random testing. The experiment shows good overall results in terms of false positives and negatives.Keywords
Funding Information
- Spanish MINECO (TIN2014-52129-R, TIN2015-73968-JIN (AEI/FEDER/UE))
- R&D programme of the Madrid Region (S2013/ICE-3006)
This publication has 46 references indexed in Scilit:
- Specification-driven model transformation testingSoftware and Systems Modeling, 2013
- Nested refinementsACM SIGPLAN Notices, 2012
- Verification and validation of declarative model-to-model transformations through invariantsJournal of Systems and Software, 2010
- Module superimposition: a composition technique for rule-based model transformation languagesSoftware and Systems Modeling, 2009
- ATL: A model transformation toolScience of Computer Programming, 2008
- Qualifying input test data for model transformationsSoftware and Systems Modeling, 2007
- Efficient path conditions in dependence graphs for software safety analysisACM Transactions on Software Engineering and Methodology, 2006
- Model transformation: the heart and soul of model-driven software developmentIEEE Software, 2003
- Elements of style: analyzing a software design feature with a counterexample detectorIEEE Transactions on Software Engineering, 1996
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987