IEEE Transactions on Software Engineering · 2016 · 67 citations · 36 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesSoftware EngineeringModel CheckingModel TransformationModel-driven DevelopmentModel-driven Software EngineeringType CheckingType SystemsModel Transformation ExecutionModel Transformation LanguagesModel Transformation VerificationModel VerificationModel-driven EngineeringMutationTransformation LanguagesType Inference
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.
36
Introduction to information retrieval
Choice Reviews Online · 2009 · 12.6K citations
Mark Weiser · IEEE Transactions on Software Engineering · 1984 · 3.2K citations
Software abstractions: logic, language and analysis
Choice Reviews Online · 2007 · 1.5K citations