“…In this respect, Model-Driven Engineering (MDE) has been proposed to facilitate the system development by creating, maintaining, and manipulating models, i.e., abstractions of a real phenomenon. These abstractions reduce the complexity of the problem by allowing developers to focus on the aspects that most matter in the design of the system, and permitting to reason about the scenario in terms of domain-specific concepts [Bez05]. As the model is an abstraction of the system in the reality, rules and constraints for building the model have to be properly stated through a corresponding language definition: a metamodel describes the set of available concepts and well-formedness rules a model must conform to 1 .…”