Énoncé du travail pratique I
Pondération : 15 points.
Date de remise : le 12 novembre 2012.
- Débutez avec le projet tp1a12.zip.
- Vous allez ajouter au projet un fichier Dresden OCL nommé nom_prenom_code.ocl où nom est votre nom, prenom votre prénom et code votre code permanent. Pour un coéquipier, il suffit d'allonger le nom du fichier ! Ce fichier doit contenir les choses suivantes.
- Un commentaire au début contenant vos noms, prénoms et codes permanents (équipe de deux au maximum),
- Dans le contexte de la classe Cours.
- Un invariant que vérifie qu'un
Cours
a toujours au moins une Reservation
.
- Un invariant qui vérifie qu'un
Cours
ne peut pas avoir deux Reservation
s qui débutent au même moment.
- Un invariant qui vérifie qu'un
Cours
n'a pas plus de locaux (classe Local
!) (par l'association aLieuDans
) que de Reservation
s.
- Un invariant qui vérifie qu'un
Cours
qui a une Reservation
pour un Local
c
a lieu aussi (par l'association aLieuDans
) dans c
.
- Une définition
aUneReservationPour(l:Local) : Boolean =
qui est satisfaite si un Cours
a justement une Reservation
pour le local l
.
- Un invariant qui vérifie que si un
Cours
a lieu dans un Local
, alors ce Cours
a une Reservation
pour ce Local
.
- Une définition
reservationPourLeLocal(l:Local) : Set(Reservation) =
qui s'évalue à l'ensemble des Reservation
s du Cours
courant qui sont pour le Local
l
.
- Un invariant qui vérifie qu'un
Cours
n'a jamais plus de 3 Reservation
s pour le même Local
.
- Dans le contexte de la classe Reservation.
- Un invariant qui vérifie qu'un
Local
d'une Reservation
est un Local
dans lequel le Cours
a lieu.
- Un invariant qui vérifie que si
r
est une Reservation
pour le Cours
c
, on a que c
a lieu pendant (association du même nom !) r
.
- Dans le contexte de la classe Local.
- Un invariant qui vérifie que toute les
Reservation
s pour un Local
sont pour des Cours
qui ont lieu dans ce Local
.
- Un invariant qui vérifie que tous les
Cours
qui ont lieu dans un Local
ont une Reservation
pour ce Local
.
- Un invariant qui vérifie que toutes les
Reservation
s d'un Local
débutent à des Moments
différents.
- Un invariant qui vérifie qu'il n'y a jamais plus de 5
Cours
à 3 Reservation
s qui ont lieu dans un même Local
.
- Une définition
sigles() : Bag(String) =
qui s'évalue au sac (Bag
) des sigles de Cours
qui utilisent le Local
courant.
- Ce que vous devez remettre :
- Le contenu imprimé de votre fichier .ocl bien indentifié à vos noms, prénoms et codes permanents. Vous pouvez me le remettre au cours ou encore le glisser dans la chute du département d'informatique (PK quatrième étage).
- Me transmettre aussi votre fichier .ocl par Oto. Vous devez suivre les étapes suivantes :
- Choisir Rendre TP
- Entrer mon code MS : villemaire_r
- Sélectionner l'identifiant de la boîte : INF3143-TP1
- Remettre votre fichier .ocl.
- Pour les étapes détaillées de la remise consultez le manuel-remise.pdf.
- Votre fichier doit pouvoir être chargé SANS MODIFICATION dans Dresden OCL.
- Les deux éléments de cette remise doivent me parvenir avant 23h59 le 12 novembre 2012.
- Une pénalité de 10% par jour de retard sera appliquée.
Si vous avez des difficultés, n'hésitez pas à communiquer avec moi .