Model Transformations Should Be More Than Just Model Generators

Model transformations are an increasingly important tool in model-driven development (MDD). However, model transformations are currently only viewed as a technique for generating models (and, in many cases, only code). Little is said about guaranteeing the correctness of the generated models. Transformations are software artifacts and, as such, can contain bugs that testing will not find. This paper proposes that, in fact, model transformations should do more than just generate models. In addition, they should generate evidence that the generated models are actually correct. This evidence can take the form of precise documentation, detailed test cases, invariants that should hold true of the generated models, and, in the extreme case, proofs that those invariants do actually hold. The hypothesis is that there is enough information in the definition of a transformation to provide evidence that certain properties of the generated model are true. Such information is usually left implicit. By making that information explicit and annotating the generated model, a consumer of the model increases his/her confidence that the model does what it is supposed to do.