The Community for Technology Leaders
Green Image
Issue No. 09 - Sept. (2017 vol. 43)
ISSN: 0098-5589
pp: 868-897
Jesus Sanchez Cuadrado , Department of Languages and Systems, Universidad de Murcia, Murcia, Spain
Esther Guerra , Department of Computer Science, Universidad Autónoma de Madrid, Madrid, Spain
Juan de Lara , Department of Computer Science, Universidad Autónoma de Madrid, Madrid, Spain
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.
Unified modeling language, Analytical models, Testing, Model driven engineering, Transforms, Manuals, Computational modeling

J. S. Cuadrado, E. Guerra and J. de Lara, "Static Analysis of Model Transformations," in IEEE Transactions on Software Engineering, vol. 43, no. 9, pp. 868-897, 2017.
236 ms
(Ver 3.3 (11022016))