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.
Sur le diagramme de classes,
- Ajoutez la contrainte suivante : "Un assuré doit avoir une assurance active pour avoir des points de permis supérieurs à zéro."
- Ajoutez la contrainte OCL nécessaire pour définir que la classe Permis a un attribut points initialisé à 6.
- 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.
- 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."
- Ajoutez la contrainte qui garantit que la catégorie d'assurance est soit "auto" soit "moto" dans la classe Assurance.
- 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 .