Model-Driven Engineering Languages and Systems

The point of modeling languages is not just modeling, but modeling as a powerful means of making software development much more reliable, reusable, automated, and cost effective. For all these purposes, model transformations, as a disciplined technique to systematically relate models within a modeling language and across languages, play a crucial role. In particular, automatic code generation from models is one of its great advantages. As in the case of programming languages and compilers for such languages — which can be seen as a specific, special case of modeling languages and model transformations — there are two ways of going about all this: (i) the usual, engineering way of building and using practical tools, like parsers, compilers, and debuggers and, likewise, modeling tools and model transformations, where the semantics is implicit in the tools themselves and informal; and (ii) a formal semantics based approach, where the different languages involved are given a formal semantics and correctness issues, such as the correctness of programs and models, and of compilers and model transformers, can be addressed head-on with powerful methods. It seems fair to say that, both for programming and for modeling languages, the usual engineering approach is at present the prevailing one. But this should not blind us to the existence of intrinsically superior technological possibilities for the future. Furthermore, the reasons for taking formal semantics seriously are even more compelling for modeling languages than for programming languages. Specifically, the following crucial advantages can be gained: 1. Formal Analysis of Model-Based Designs to uncover costly design errors much earlier in the development cycle. 2. Correct-by-Construction Model Transformations based on formal patterns, that can be amortized across many instances. 3. Modeling-Language-Generic Formal Analysis tools that are semantics-based and can likewise be amortized across many languages. 4. Correct-by-Construction Code Generators, a burning issue for cyberphysical systems, and a must for high-quality, highly reliable implementations. Although the full potential for enjoying all these advantages has yet to be exploited and much work remains ahead, none of this is some pie-in-the-sky day dreaming. There is already a substantial body of research, tools, and case studies demonstrating that a formal semantics based approach to modeling languages is a real possibility. For example, formal approaches to modeling language semantics based on: (i) type theory, (ii) graph transformations, and (iii) rewriting logic, all converge