An OCL formulation of UML2 template binding
Résumé
After being considered only as documentation for a long time, models are gaining more and more importance in the software development lifecycle, as full software artefacts. The UML standard contributes a lot to this mutation, with the identification and the structuration of models space dimensions and constructs. Models can nowadays be explicitly manipulated through metamodeling techniques, dedicated tools or processes such as model transformation chains. This is Model Driven Engineering. Once it is clear that models are full software ingredients, we are faced with new problems (needs!) such as the possibility of their reusability and composability. As a consequence, specific constructs are introduced in order to facilitate this, such as the template notion initiated by UML1.3. Applications of this notion are growing more and more so that it was deeply revisited and strengthened in UML2. Though, its specification still lacks precision, particularly concerning the binding mechanism that allows to obtain models from templates. We propose a set of OCL constraints which strengthens the definition and helps in verifying the correctness of resulting models. These constraints apply to the UML2 metamodel and were implemented in an OCL verifier that we integrated in the Eclipse environment.