Exercice 1 : 2.a) self.comptes pour avoir accès aux comptes de la personne 2.b) self.comptes -> size() pour avoir le nombre de comptes de la personne 2.c) self.comptes -> select(solde>0) pour avoir tous les comptes de la personne ayant un solde positif 3.a) context Compte inv : solde > 0 3.b) context Compte :: debiter(somme : float) pre : solde-somme > 0 post : solde = solde@pre - somme 3.c) context Compte inv : self.proprietaire.age > 18 3.d) context Personne inv : self.compte -> size <= 3 Exercice 2 : 2. a) Parmi les employés il doit y avoir des employés ayant plus de 50 ans / Il existe un employé dont l'age > 50 b) Un département doit avoir plus de 6 employés c) Etre marié implique que le mari et la femme ont le même nom 3. a) context Entreprise inv : self.directeur -> size = 1 and self.employés - > includes(self.directeur) (La collection employés contient l'objet directeur) b) context Entreprise inv : self.employes -> forAll(p: Personne | p.age>=18 and p.age<=65) c) context Personne::anniversaire() pre : age >= 0 post : self.age = self.age@pre + 1 d) context Personne::marié derive: self.femme->notEmpty() or self.mari->notEmpty() e) context Personne inv : self.marié implies self.sexe=1 implies ( self.mari -> size() = 1 and self.mari.sexe = 0) and self.sexe=0 implies ( self.femme -> size()=1 and self.femme.sexe = 1) and self.age >= 18