2. occupants est une collection qui contient la liste des personnes résidant dans une chambre. Pas de doublons possibles : cela peut être un Set ou un OrderedSet chambre dans le contexte Hotel sont toutes les chambres de l’hotel. Donc, c’est un Set ou OrederedSet dans ce contexte dans le contexte SalleDeBains, il s’agit de la chambre qui possède la salle de bains ou pas : 0 ou 1 dans le contexte Personne, il s’agit de la chambre occupée par cette personne 3. a) Pas d'étage 13 pour une chambre et pour une salle de bain b) Il peut y avoir une personne de plus si c'est un enfant de moins de 4 ans c) Toutes les chambres sont entre les étages min et max d) Pour repeindre une chambre avec la couleur c il faut qu'elle soit vide et que le prix soit augmenté de 10% après 4. a) context SalleDeBains :: privative derive : self.chambre -> notEmpty() b) context SalleDeBains :: utiliser(p:Personne) pre : if privative then chambre.occupants -> include(p) else p.chambre.etage = self.etage endif post : nbUtilisateurs = nbUtilisateurs@pre+1 5. a) context Personne inv self.hotel = self.chambre.hotel b) context Chambre inv: occupants ->exists(age>=18) c) context SalleDeBain inv: if privative then nbreOccupants <=1 else nbreOccupants <=5 endif d) context Chambre inv : if occupants -> exists(age > 85) then self.etage <=2 endif e) context Chambre inv : if occupants -> size() = 1 then prix=prix+40 endif