• Aucun résultat trouvé

Td corrigé TD ? Compagnie aérienne - Exercices corriges pdf

N/A
N/A
Protected

Academic year: 2022

Partager "Td corrigé TD ? Compagnie aérienne - Exercices corriges pdf"

Copied!
1
0
0

Texte intégral

(1)

TD UML – Maîtrise d’IUP MIAGE – Université d’Evry 2003-2004

TD 4 - OCL

Exercice 1

Pour les différents problèmes suivants construire le diagramme de classes correspondant et donner les différentes contraintes des opérations en OCL.

 Soit une classe d’école composée d’un ensemble d’élèves. Chaque élève a un nom et un prénom. Pour chaque classe on connaît le nombre d’élèves, on peut ajuter ou retirer un élèves. On peut aussi connaître l’effectif de la classe.

SOLUTION

context Classe d’école::ajouter(unEleve : Personne) pre : nb_eleves <= 25

post : eleves->exists(unEleve)

context Classe d’école::retirer(unEleve : Personne) pre : eleves->exists(unEleve)

post : not(eleves->exists(unEleve)) context Classe d’école::effectif() :entier

post : result = nb_eleves

 Soit une montgolfière composée d’un ballon et de lest. Le ballon a une température, que l’on peut récupérer et un volume. Le lest a une masse. La montgolfière a une masse. On peut lâcher du lest ou faire monter la montgolfière

SOLUTION

context Montgolfiere::lacherLest(quantite : Poids) post : self.poids = self.poids@pre - quantite context Montgolfiere::monter()

post : self.lest() <= self.lest@pre()

or self.ballon.Temperature() >= [email protected]()

 Soit une cave composée de types de bouteilles de vin. Un type de bouteilles de vin se caractérise par son cépage, sa date de mise en bouteille, du nombre de bouteilles en réserve et du producteur. Pour chaque cave on a une réserve et on connaît les bouteilles consommées.

Pour chaque cave on peut boire un type de bouteille, noter un type de bouteille et connaître la dernière bouteille bue.

SOLUTION

context Cave::note(T : TypeDeBouteille):entier pre : self.bouteillesConsommes->exists(T) post : result = t.notation.note

context Cave::boire(T :TypeDeBouteille) pre : self.reserve->exists(T)

post : self.bouteillesConsommes.notation->notEmpty and t.notation->exists

- 1 -

(2)

TD UML – Maîtrise d’IUP MIAGE – Université d’Evry 2003-2004 and

bouteillesConsommees.nb_bouteilles=bouteillesConsommees.nb_bouteilles@pre+1

Exercice 2

Soit la classe Personne. Une personne peut être l’enfant de quelqu’un ou être parent.

Représenter cette notion sous forme de diagramme de classes.

Pour chaque parent, on peut connaître le nombre de filles et de garçons. Exprimer les propriétés de ces deux méthodes en OCL (utiliser la fonction select).

SOLUTION

context Personne::NbFilles():entier

post :result=self.enfants->select(fille | fille.sexe=#feminin)->size ou result = self.enfants- >select(fille | fille.sexe=#feminin)->size

ou result = self.enfants->select(fille : Personne|fille.sexe=#feminin)->size Exprimer le fait qu’une personne a au plus deux parents.

SOLUTION

context Personne inv :

self.parents->size <=2

Exprimer le fait que les parents d’une personne paye des impôts si la somme de leurs revenus est supérieure au seuil d’imposition.

SOLUTION

context Personne inv :

if self.parents-.collect(revenus)->sum> plafondDImposition then self.parents.payeDesImpots = vrai

else self.parents.payeDesImpots = faux

On peut calculer pour chaque personne les revenus des parents. Exprimer les propriétés de cette méthode en OCL (utiliser la fonction iterate).

SOLUTION

context Personne::revenusDesParents():entier

post : result = self.parents->iterate(p :Personne ;val :entier=0 | val=p.revenus->sum)

Exercice 3

Une personne peut être mari ou femme. Elle peut donc être mariée, avoir un emploi, avoir une date d’anniversaire, un age, un nom de famille, un prénom, un sexe et un revenu. Si elle a un emploi elle peut être employée par une compagnie. Une compagnie a des employés et un patron. Une personne a un compte en banque avec un numéro de compte.

Représenter le diagramme de classes correspondant.

- 2 -

(3)

TD UML – Maîtrise d’IUP MIAGE – Université d’Evry 2003-2004 Exprimer en OCL les propriétés suivantes :

- une compagnie a au moins 50 employés

- une personne est considérée comme sans emploi si son salaire est inférieur à 100

- une compagnie n’a qu’un seul patron

- le patron d’une compagnie a forcément plus de 50 ans

- si une personne a un époux alors il est du sexe opposé au sien

- une personne de moins de 16 ans et de plus de 60 ans est sans emploi

- 3 -

Références

Documents relatifs

2-5 exprimer la valeur efficace U de u(t). Calculer sa valeur numérique. Quel doit être l'appareil utilisé pour mesurer U et sur quel mode ?. 2-6 calculer la fréquence de rotation

Le seul composé de cette formule ayant deux carbones asymétriques comporte un carbone proteur au moins d'un hydrogène, d'un méthyle, et d'un éthyle soit en tout 4 C il ne reste que

b) Après centrifugation en gradient de CsCl, l’acide nucléique natif conduit à l’obtention d’une seule bande correspondant à une densité de 1,77g/cm 3 alors que

2°) Une mole de ce gaz subit une détente de JOULE-THOMSON qui fait passer sa pression de p 1 à p 2. Les parois du récipient et le piston sont athermanes. En régime permanent, dans

h) Déterminer une prévision de la consommation de cigares pour les douze mois de 1976 en multipliant la prévision de la tendance obtenue en g) par les

Calculer l’intensité du champ électrique pour que le fil s’incline d’un angle  vers la droite par rapport à la verticale On prendra g = 10 m.s

La chute d'Alésia joue donc un rôle essentiel dans l'histoire de France, par ses conséquences de longue durée, la romanisation, mais aussi par sa place dans l'enseignement

Il a été aussi procédé au payement de diverses dépenses de réparation et d’entretien (justifiées par des factures) pour un montant de 8.500,000 DT..