Lorsque vous écrivez des instructions du langage OCL, le modèle cible définit à quelles fonctions de l'élément de contexte vos instructions OCL peuvent accéder. Le modèle cible peut être le modèle utilisateur ou le métamodèle.
Les modèle utilisateur
Lorsque vous définissez le modèle cible comme modèle utilisateur, vous limitez vos instructions OCL aux entités définies par l'utilisateur de l'élément de contexte. De même, lorsque vous définissez le modèle cible comme modèle utilisateur, vous ne pouvez pas évaluer les instructions OCL. Vous pouvez uniquement analyser les instructions OCL pour vérifier que leur syntaxe est correcte.
Par exemple, si vous définissez le modèle cible comme modèle utilisateur et que vous sélectionnez une classe ou une interface comme votre élément de contexte, vos instructions OCL sont limitées aux attributs et opérations suivants :
- attributs que la classe ou l'interface définit
- opérations particulières définies par le langage OCL, telles qu'oclIsType()
Métamodèle
Lorsque vous définissez le modèle cible comme métamodèle, vos instructions OCL ont accès aux fonctions de métamodèle de l'élément de contexte et à toutes les fonctions que des stéréotypes ont appliquées à l'élément de contexte. De même, lorsque le modèle cible est le métamodèle, vous pouvez analyser des instructions OCL pour voir si leur syntaxe est correcte, mais vous pouvez aussi en évaluer la sortie.
Par exemple, si vous définissez le modèle cible comme métamodèle, vos instructions OCL peuvent accéder aux fonctions suivantes :
- Tous les attributs qui sont définis dans la métaclasse qui représente l'élément de contexte
- Les attributs qui sont définis dans des stéréotypes appliqués à l'élément de contexte
- Toutes les méthodes définies par le langage OCL