1.7 Le langage Check pour la vérification de
contraintes
La plate forme (OAW) Open Architecture Ware fournit aussi un
langage formel appelé Chek (Xpand) pour la spécification des
contraintes que le modèle doit respecter pour être correct est
basé sur OCL.
Les contraintes spécifiées avec ce langage
doivent être stockées dans des fichiers avec l'extension «
.Chk ». Ce fichier doit commencer par une importation du
méta-modèle selon le format « import metamodel; ».
Chaque contrainte est spécifiée dans un
contexte, soit une méta-classe du méta-modèle
importé, pour lequel la contrainte s'applique.
Les contraintes peuvent être de deux types :
~ Warning : dans ce cas, si la
contrainte n'est pas vérifiée un message sera affiché sans
que l'exécution s'arrête.
~ Error : dans ce cas, si la contrainte
n'est pas vérifiée un message sera affiché et
l'exécution sera arrêtée.
page 22
1.8 MWE (Modeling Workflow Engine)
Example:
context Entity WARNING
"Names have to be more than one character long" : name.length
> 1;
|
Cette contrainte avertit que l'attribut name des
instances de la méta-classe Entity doit normalement être plus long
qu'un caractère. Le langage Check est basé sur OCL (OCL).
1.8 MWE (Modeling Workflow Engine)
MWE, est une composante d'EMFT (EMF Technology), est un moteur
de génération déclaratif configurable qui s'exécute
sous Eclipse. Il fournit un langage de configuration simple, basé sur
les balises XML. Un générateur workflow est composé d'un
ensemble de composants qui sont exécutées séquentiellement
dans une JVM (Java Virtual Machine) unique.
~ Les propriétés
Ce sont des variables qui contiennent des valeurs utilisables
par d'autres éléments. Les propriétés peuvent
être déclarées n'importe où dans un fichier
workflow. Ils seront disponibles après leurs déclarations.
Il y a deux types de propriétés : les
propriétés fichiers et les propriétés simples.
L'utilisa-tion d'une propriété se fait selon le format.
La balise <property> possède plusieurs attributs
:
1. name : cet attribut définit le nom de la
propriété.
2. value : cet attribut définit la valeur de la
propriété .
3. file : cet attribut permet de préciser le nom d'un
fichier qui contient la définition d'un ensemble de
propriétés. Ce fichier sera lu et les propriétés
qu'il contient seront définies.
Example 1
<component
class="org.eclipse.emf.mwe.utils.DirectoryCleaner">
<directory="${runtimeProject}/src-gen"> </component>
|
page 23
1.9 Conclusion
~ Les composants
Les composants workflow représentent une partie du
processus générateur. Ils représentent
généralement les analyseurs modèles, validateurs de
modèles, les transformateurs de modèles et les
générateurs de codes.
Example 1
<component
class="org.eclipse.emf.mwe.utils.DirectoryCleaner">
<directory="${runtimeProject}/src-gen"> </component>
|
Le composant DirectoryCleaner contient, entre autre, la
propriété directory. Il permet de nettoyer le répertoire,
ici runtimeProject/src-gen, qui contient des artefacts
générés avant de (re-) produire ces artefacts.
Example 2
<bean class="org.eclipse.emf.mwe.utils.StandaloneSetup">
<platformUri="${runtimeProject}/..">
</bean>
|
La classe StandaloneSetup n'est pas un composant du workflow
au sens étroit. Toutefois, cette classe a besoin d'être
référencée dans le workflow afin de mettre en place le
méta-modèle EMF défini en mode autonome. Elle contient,
entre autre, la propriété platformUri.
|