OCL : ASSURANCE AUTOMOBILE

OCL (Object Constraint Language) est un langage formel utilisé pour définir et spécifier des contraintes sur les modèles de données orientés objet. Il fournit des expressions de contraintes pour spécifier des conditions qui doivent être satisfaites par les instances d'une classe, ainsi que des opérations et des fonctions pour effectuer des calculs sur les objets. OCL est utilisé dans l'ingénierie logicielle pour valider et vérifier la conformité des modèles de données avec les exigences fonctionnelles et non fonctionnelles.

EXERCICE  OCL  ASSURANCE AUTOMOBILE

Vous disposez d'un diagramme de classes qui modélise un système d'assurance automobile. Le diagramme de classes comprend les classes suivantes : Assuré, Permis, Assurance, et Vehicule.

Assurance automobile pandacodeur

Sur le diagramme de classes,

  1.  Ajoutez la contrainte suivante : "Un assuré doit avoir une assurance active pour avoir des points de permis supérieurs à zéro."
  2. Ajoutez la contrainte OCL nécessaire pour définir que la classe Permis a un attribut points initialisé à 6.
  3. Ajoutez la contrainte OCL permettant de définir la méthode retirerPoints(p: Integer) de la classe Permis. Cette méthode doit vérifier que le nombre de points ne devient jamais négatif après le retrait.
  4. Sur le diagramme de classes, ajoutez la contrainte suivante : "La valeur du véhicule est calculée comme suit : si l'assuré a une assurance, alors la valeur du véhicule est égale à la valeur du véhicule assuré, sinon, la valeur du véhicule est de 0."
  5. Ajoutez la contrainte qui garantit que la catégorie d'assurance est soit "auto" soit "moto" dans la classe Assurance.
  6. Enrichissez le diagramme de classes en ajoutant la contrainte suivante : "La catégorie du véhicule doit correspondre à la catégorie de l'assurance, et la valeur du véhicule ne peut pas dépasser la valeur de l'assurance."

Puis Exprimez ses contraintes en OCL .

CORRECTION : OCL

A) Diagramme  :

Corretion assurance automobile pandacodeurB) Expressions :

  1. context Assuré inv: assurance <> null implies permis.points > 0
  2. context Permis::points: Integer init: 6
  3. context Permis::retirerPoints(p: Integer) pre: p > 0 post: points = points@pre - p
  4. context Assuré::valeurVehicule(): Integer body: if assurance <> null then assurance.vehicule.valeur     else 0 endif
  5. context Assurance inv: categorie = ‘auto’ or categorie = ‘moto’
  6. context Vehicule inv: categorie = assurance.categorie and valeur <= assurance.valeur

Si vous avez trouvé les exercices corrigés en OCL de Mr JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !

Contact WhatsApp : +237 658395978 | Réaliser Par Joël_Yk

Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam