Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

Quels sont les outils et méthodes informatiques pour améliorer le retour sur investissement de vos projets ?

Quels sont les outils et méthodes informatiques pour améliorer le retour sur investissement de vos projets ?

Les projets informatiques nécessitent une méthode spécifique intégrant un ensemble de bonnes pratiques que l'on peut à loisir enrichir et adapter. Sans la mise en place d'une telle méthode, on s'expose à un gaspillage important de ressources voire faire couler le projet.


Modélisation de système : UML n'est rien sans OCL

Publié par Rhona Maxwel sur 14 Octobre 2015, 17:03pm

Catégories : #UML, #OCL, #Modélisation de système, #Modélisation métier, #Modélisation des besoins, #MDE, #MDA, #IDM, #Ingénierie Dirigée par les Modèles IDM

Modélisation de système : UML n'est rien sans OCL

L'Object Constraint Language (OCL) est un langage normalisé par l'OMG (Object Management Group) qui permet d'ajouter des containtes aux objets d'un modèle UML (Unified Modeling Language) en évitant les ambiguités du langage naturel.

C'est un langage de pure spécification sans effets de bord.

Quand une expression OCL est évaluée, elle retourne une valeur sans rien changer dans le modèle.

L'état du système n'est jamais modifié à cause de l'évaluation d'une expression OCL même si l'expression est utilisée pour spécifier le changement d'état dans une post condition.

OCL n'est pas un langage de programmation. Il est impossible d'invoquer des process ou d'activer des opérations qui ne seraient pas des requêtes.

OCL n'est pas directement exécutable. Nous verrons qu'avec le plugin OCL d'Eclipse et son framework EMF (Eclipse Modeling Framework), il est possible de lancer la validation d'un modèle comportant des contraintes OCL. Le framework permet du reste d'intégrer des contraintes OCL dans du code Java manipulant le modèle.

OCL est typé.

OCL peut être utilisé :

  • Comme un langage de requêtes
  • Pour spécifier des invariants
  • Pour décrire des pré et post conditions
  • Pour décrire des conditions
  • Pour spécifier des messages et des actions
  • Pour spécifier des contraintes sur des opérations
  • Pour spéciifer les règles de déduction sur les attributs (attributs dérivés ou déduits)

Le mot clé self (même sémantique que le this du C++, Java ou C#) fait référence à une instance du contexte.

Le mot clé context : permet de définir le contexte (classe, attribut, opération).

Une expression OCL est un « invariant », si elle est vraie pour toutes les instances du type auquel elle est associée.

Exemple : comment spécifier en UML que les sociétés de notre modèle doivent avoir un nombre d'employés strictement supérieur à 50 ?

context Societe inv: self.nombreEmploye>50

Dans le contexte Societe :

  • le nombre d'employés doit toujours être > à 50,
  • self est une instance de Societe
  • inv: est une étiquette déclarant la contrainte comme un invariant.

Les pré et post condition d'une opération :

context Typename::operationName(param1 : Type1, ... ): ReturnType
pre : param1 > ...
post: result = ...

Exemple :

context Person::income(d : Date) : Integer
post: result = 5000

Dernier exemple pour la route, écrivons une opération qui renvoie la liste des employés mariés :

context Societe::getEmployesMaries():Set
pre: self.employes.notEmpty()
body: self.employes->select(e | e.estMarie=true)

Dans un prochain article nous verrons des concepts avancés d'OCL qui sont très utiles pour les transformations de modèles.

"Fais preuve de gentillesse envers tous ceux que tu rencontres, leur combat est peut-être plus dur que le tien."
Platon

Voir aussi :

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

http://urbanisation-si.blog4ever.net

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/

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article

Archives

Nous sommes sociaux !

Articles récents