urbanisation-si.com

urbanisation-si.com

Modélisation de système : comment utiliser OCL avec Eclipse, c'est bien la question que tout le monde se pose

 

ingenierie-dirigee-par-les-modeles-IDM-tutoriel-eclipse-ecore.png

Lors des articles précédents nous avons vu "le kit de survie" d'OCL c'est à dire les bases fondamentales du langage de règles de l'OMG.

Mais cela reste très théorique et on aimerait bien mettre tout ça en pratique et bien regardons quelques fonctionnalités que propose Eclipse EMF (Eclipse Modeling Framework).

Concevez le métamodèle Family (voir l'article "Ingénierie Dirigée par les Modèles (IDM) : tutoriel Eclipse Ecore, le corps à corps avec les méta modèles"  https://www.urbanisation-si.com/ingenierie-dirigee-par-les-modeles-idm-tutoriel-eclipse-ecore-le-corps-a-corps-avec-les-meta-modeles).

Créez un objet de type Family :

  • Double cliquez sur sur le fichier Families.ecore
  • Dans l'arborescence, clic droit sur Family - Create Dynamic Instance ...
  • Le fichier Family.xmi est créé.
  • Remarque : attention a bien renseigné les propriétés Name, Ns Prefix et Ns URI du EPackage Families de Families.ecore sinon vous un message d'erreur dans le fichier XMI stipulant que l'URL est nulle !
  • Double cliquez sur Family.xmi, le fichier s'ouvre en mode texte.
  • Clic droit sur le fichier - Open With -  Sample Reflective Ecore Model Editor
  • En dessous de Platform - cliquez sur Family - Properties Last Name=Dupond
  • Clic droit sur Family - New Child - Daughters Member - une instance de Member est créée, sélectionnez et renseignez First Name=Elsa
  • Créez une 2ème fille Emma.

Pour tester des expressions OCL, utilisons la console OCL :

  • Sélectionnez Family - clic droit - OCL - Show OCL Console. C'est la où les Athéniens atteignirent.
  • Un objet sélectionné dans l'éditeur graphique Family.xmi représente l'objet courant donc self. 
    Sélectionnez Family Dupond

La console est divisée en 2 partie : la partie supérieure est réservée aux résultats et la partie inférieurs aux expressions OCL

Exemple :

  • Saisissez daughters et faites Entrée, la partie résultats affichent Elsa et Emma
  • La touche Page précédente rappelle les dernières expressions saisies.
  • Saisissez daughters->s la completion automatique s'affiche, double cliquez sur size() et Entrée
  • Results=2
  • La completion s'obtient avec CTRL espace
  • Saisissez : daughters->size()<2
  • Results=false

Une fois les expressions OCL testées dans le console, nous pouvons les ajouter en Java :

  • Clic droit sur Families.ecore - Open With - OCLinEcore Editor - l'éditeur Ecore Java s'ouvre avec les classeEcore : Family et Member :
  • Ajouter dans la classe Family la contrainnte :
invariant maxFilles:
   Family.daughters->size()<2;

 

tutoriel-ocl-eclipse-1.png

 

Cliquez dans l'éditeur graphique Family.ecore

 

tutoriel-ocl-eclipse-2.png

 

On constate que la contrainte a été ajoutée. On pourrait la créer et la modifier directement dans l'éditeur :

  • Sélectionnez Families.ecore - Family - New Child - EAnnotation - Properties - Key=maxFilles - Value=Family.daughters->size()<2

N'oubliez pas Save All régulièrement.

Pour finir, vérifions la validation :

  • Family.xmi -  clic droit sur Family Dupond - Validate - une popup "Validation Problems" s'affiche avec le message concernant la contriante maxfilles qui n'est pas respectée.

Voilà fin de cette petite mise en jambe pour la mise en pratique d'OCL, nous aurons l'occasion de pratiquer OCL plus intensivement dans nos prochains articles consacrés à la transformation de modèles et à ATL (ATLAS Transformation Language).

 
"Chacun rêve de changer l'humanité, mais personne ne pense à se changer lui-même."
Léon Tolstoï

 

Voir aussi :  

 

http://urbanisation-si.wix.com/blog

http://urbanisme-si.wix.com/blog

http://urbanisation-si.wix.com/urbanisation-si

http://urbanisation-si.over-blog.com/

http://rhonamaxwel.over-blog.com/

http://urbanisation-des-si.blogspot.fr/

http://bonnes-pratiques-si.eklablog.com/

http://urbanisation-si.eklablog.com/



23/08/2015
0 Poster un commentaire

A découvrir aussi


Inscrivez-vous au site

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 705 autres membres