Combining unit and specification-based testing for meta-model validation and verification. (December 2016) - López-Fernández, Jesús J.; Guerra, Esther; de Lara, Juan
Abstract: Meta-models play a cornerstone role in Model-Driven Engineering as they are used to define the abstract syntax of modelling languages, and so models and all sorts of model transformations depend on them. However, there are scarce tools and methods supporting their Validation and Verification (V&V), which are essential activities for the proper engineering of meta-models. In order to fill this gap, we propose two complementary meta-model V&V languages. The first one has similar philosophy to the xUnit framework, as it enables the definition of meta-model unit test suites comprising model fragments and assertions on their (in-)correctness. The second one is directed to express and verify expected properties of a meta-model, including domain and design properties, quality criteria and platform-specific requirements. As a proof of concept, we have developed tooling for both languages in the Eclipse platform, and illustrate its use within an example-driven approach for meta-model construction. The expressiveness of our languages is demonstrated by their application to build a library of meta-model quality issues, which has been evaluated over the ATL zoo of meta-models and some OMG specifications. The results show that integrated support for meta-model V&V (as the one we propose here) is urgently needed in meta-modelling environments. Abstract : Highlights: We propose two domain-specific languages for meta-model validation and verification. mmUnit enables meta-model unit test definitions with model fragments and assertions. mmSpec is directed to express and verify expected properties of a meta-model. We have developed tooling for both languages in the Eclipse platform. The languages have been evaluated over large real world meta-model repositories.