Problème :
Partie 1 : Expression des besoins (7pts)
Question 1.1
1) Nous nous proposons de décrire le jeu simplifié de ‘Monopoly’ par uniquement l’acteur
« joueur » et les trois cas d’utilisation « Jouer son tour», « Vendre » « Acheter ». Complétez les
relations pouvant exister entre ces trois cas et entre le joueur et les cas.
.
2) Imaginez les différentes variantes possibles de scénarios relatifs aux différents cas d’utilisation. Donnez,
en langage naturel, une description sommaire pour chaque scénario. N’oubliez pas de prendre en
considération l’entrée et la sortie de prison.as d’utilisation : « Jouer son tour »
• A son tour, chaque joueur lance 2 dés puis avance son pion sur le plateau de jeu, d'autant de
cases que l'indique le total des dés et ce dans le sens des aiguilles d’une montre. Si le joueur
obtient un double avec les dés, il se déplace normalement. Il effectue l'opération de sa case
d'arrivée (payer loyer, tirer carte de chance, payer impôt,…), puis relance les dés et se déplace à
nouveau. Il effectuera alors une nouvelle opération. S’il obtient un double trois fois de suite ou
sa case de destination est « allez en prison », il doit se rendre immédiatement en Prison. Son
tour de jeu est alors terminé. Il ne franchit pas la case "Départ" et ne reçoit pas 20.000 euros
jusqu’à ce qu’il quitte la prison.
Formulaire de réponses – Examen ACOO – Session Principale-Page-1/8-
•
• A son tour, un joueur lance les 2 dés puis avance son pion sur le plateau de jeu, la case de
destination est « prison ». Son séjour est considéré comme une "simple visite". Le joueur
n'encourra alors aucune pénalité et il peut se déplacer normalement au tour suivant.
A son tour, un joueur emprisonné (envoyé en prison), pourra sortir de Prison, s’il fait un
double avec les dés durant l'un des trois tours qui suit son arrivée en Prison ; il se déplace alors
du nombre de cases indiqué par les dés, puis relance les dés comme tout joueur ayant obtenu un
double et il rejoue encore une fois.
• A son tour, un joueur emprisonné qui n’a pas fait un double avec les dés durant l'un des trois
tours qui suit son arrivée en Prison, lance les dés au cours du troisième tour et paye une
amende de 5.000 euros. Puis, il se déplace du nombre de cases indiqué par les dés et il continue
à jouer.
• Lors de son tour de jeu, le joueur s’arrête sur une case terrain qui n’a pas de propriétaire et il
dispose du capital nécessaire pour son achat, il l’achète s’il le souhaite.
• Lorsqu’un joueur possède tous les terrains d'un groupe de couleur, il a le droit d’acheter des
Publicité
maisons pour ce groupe (au plus 4 maisons par terrain). A tout moment, durant son tour de jeu,
le joueur peut acheter et construire autant de Maisons que sa fortune le lui permet.
• Si le joueur possède 4 Maisons sur chaque terrain d'un même groupe et il désire construire un
Hôtel, il demande au système de lui échanger les 4 Maisons du terrain de son choix contre un
Hôtel, et il s’acquitte du prix indiqué pour un Hôtel sur le Titre de Propriété, puis il place son
Hôtel sur ce terrain.
• Lors de son tour de jeu, le joueur peut selon son choix revendre au prix d’achat, des c
•
tions, des terrains nus, des Gares ou des Compagnies de Distribution au syst
3) Proposez un diagramme de séquence système pour décrire le scénario nominal du cas
d’utilisation « Jouer son tour ».
Question 1.2
Formulaire de réponses – Examen ACOO – Session Principale-Page-2/8-
4) Proposez un diagramme d’activités qui illustre la dynamique du jeu ‘Monopoly’.
Formulaire de réponses – Examen ACOO – Session Principale-Page-3/8-
Partie 2 : Analyse (7 pts)
Question 2.1
Le diagramme de classes proposé par le développeur est incomplet.
1) Ajouter les cardinalités manquantes ;
2) On se propose de promouvoir dans la mesure du possible les associations en compositions
ou en des agrégations. Cochez LA bonne réponse pour chaque proposition en justifiant
brièvement votre réponse. N’oubliez pas d’encercler éventuellement la classe qui a la
responsabilité de subordination:
Jeu - Plateau: Association Composition X Agrégation
Justification: Appartenance totale+ cycles de vies dépendants
Plateau - Case: Association Composition Agrégation X
Justification: Les cases appartiennent au plateau et peuvent aussi appartenir aux
Case - Joueur: Association Composition Agrégation X
Justification: Le joueur appartient à la case et au jeu : appartenance faible
Jeu - Groupe: Association Composition X Agrégation
Justification: Appartenance totale+ cycles de vies dépendants
Jeu - Joueur: Association Composition Agrégation X
Justification: Le joueur appartient à la case et au jeu : appartenance faible
Joueur - Propriété: Association X Composition Agrégation
Publicité
Justification: Il n’y a pas la notion d’appartenance.
Propriété - Groupe: Association Composition Agrégation X
Justification: Les cases propriétés appartiennent au plateau et appartiennent aussi aux gro
3) L’analyste a oublié la modélisation de l’abstraction ‘Dé’. Rajoutez-la en indiquant les
relations avec les autres classes.
Formulaire de réponses – Examen ACOO – Session Principale-Page-4/8-
4) Dites si le diagramme de classes proposé par l’analyste permet-il de représenter chacun de
ces trois énoncés :
(a)- un joueur est en simple visite de la prison ou emprisonné
(b)- partant d’une ‘Propriété’ donnée, il est possible de connaître que les Propriétés
complétant ce groupe appartiennent à un même joueur
(c)- le nombre de construction dans un terrain.
Si oui justifiez sinon proposez une solution.
(a)Non : ajouter un attribut à la classe joueur qui précise l’état du joueur (simple visite,
emprisonner, normal)
(b)
Question 2.2
On suppose qu’on a deux joueurs. Le premier joueur s’appelle ‘Ali’. Il possède la gare du
Nord, la gare de Lyon et la propriété Belleville. Il est actuellement à la compagnie des eaux. Le
deuxième joueur s’appelle ‘Zied’. Il possède les compagnies d’électricité et des eaux. Il est
actuellement à la case départ. Conformément au diagramme de classes proposé par le
développeur, représentez le diagramme d’objets qui illustre cette situation du jeu ‘Monopoly’.
Remarque concernant les instances des classes ‘Case’(ou dérivées) et les instances de la
classe ‘Groupe’ : Représentez que celles qui sont concernées par cette question.
Question 2.3
Donnez un diagramme d’état transition qui illustre l’évolution de l’état d’un joueur
Formulaire de réponses – Examen ACOO – Session Principale-Page-5/8-
Partie 3 : Conception (6pts)
Question 3.1
Afin de faciliter l’implémentation des associations, on se propose de limiter au maximum
possible la navigation. Précisez le sens de navigation sur le diagramme de classes en bas de
page (Q3.2).
Question 3.2
Pour comprendre les règles de gestion gouvernant l’évolution des liens entre les objets, on se
Publicité
propose de décorer les associations par les contraintes {ordered},{addOnly},{frozen}, {notUnique}.
1) Rappelez la signification de chaque contrainte de gestion :
Ordered: les éléments de la collection représentant le tissage des liens sont ordonnés
AddOnly : il est possible de tisser de nouveaux liens mais impossible d’en supprimer
Frozen : le tissage des liens est fixé lors de la création et ne peut pas changer
NotUnique : il est possible d’avoir plus qu’un lien entre deux objets avec la même association
2) Décorez, directement sur le diagramme de classes ci-dessous, chacune des associations par les
contraintes de gestion appropriées. Vous pouvez tout simplement annoter le bout navigable de
chaque association par les symboles O, A, F, N (respectivement pour (O)rdered, (A)ddOnly,
(F)rozen et (N)otUnique).
Question 3.3
1) Rappelez le contexte et la solution d’usage du patron de conception : ‘Singleton’
Problème à résoudre : comment garantir l’existence d’une seule instance d’une classe donnée et
fournir un point d’accès global à cette instance ?
Solution : sauvegarder l’objet singleton dans une variable de classe (statique) et fournir une
méthode de classe retournant l’instance unique, en la créant à la première r
Formulaire de réponses – Examen ACOO – Session Principale-Page-6/8-
equête. Le constructeur est alors déclaré privé (ou mieux : protégé).
2) Proposez un diagramme de classes de conception de l‘application en question en utilisant le
maximum possible le patron de conception ‘Singleton’. N’oubliez pas de préciser le rôle de
chaque méthode que vous comptez ajouter au diagramme de classes proposé par l’analyste.
Le patron de conception singleton ne peut être appliqué que pour le cas de la classe jeu et la
classe plateau. Dans ca cas, il faut ajouter à ces deux classes les méthodes statiques getinstance
et rendre les constructeurs privés
3) En vous basant sur le diagramme de classes que vous avez proposé dans la question précédente
(n°2), précisez les objets nécessaires au déroulement normal de« jouer son tour».
1 instance de jeu, 1 instance de plateau, 1 instance de dé, des instances de case (ou on pourrait aussi
préciser les types de cases à utiliser)
4) Donnez le digramme de séquence de « jouer son tour » avec les différents objets que vous avez
identifiés dans la question précédente (n°3).
Formulaire de réponses – Examen ACOO – Session Principale-Page-7/8-
Formulaire de réponses – Examen ACOO – Session Principale-Page-8/8-