Examen Principal du 1er Semestre - Analyse et Conception Orientées Objets

École Nationale des Sciences de l'Informatique (ENSI)
1/11
100%
Rendu du PDF...
Page 1 sur 11Lecteur de document UniversityLib

Examen Principal du 1er Semestre - Analyse et Conception Orientées Objets

École Nationale des Sciences de l'Informatique (ENSI) · Informatique, Programmation, Analyse de Système · exam

Voir tous les documents en programmation

UNIVERSITE DE LA MANOUBA -----¤¤¤¤----- ECOLE NATIONALE DES SCIENCES DE L'INFORMATIQUE

ANNEE UNIVERSITAIRE 2011-2012

Examen Principal du 1er Semestre

Matière : Analyse et Conception Orientées Objets Niveau : II2 Nombre de pages : 11 pages Enseignants : Y. JAMOUSSI, I. BEN HAMOUDA, I. FLISS, S. MTIBAA, G. ZIADA

Date : Mardi 3 Janvier 2012 Durée: 2H Documents : non autorisés

NB : Répondez directement sur les feuilles de réponses

Ne répondez pas à l’aveuglette La précision, la consistance et la clarté seront appréciées

Problème L’objectif de ce problème est d’analyser et de concevoir en partie, une version simplifiée du jeu de société Monopoly qui se joue de 2 à 6 joueurs. Dans ce jeu, les joueurs se déplacent sur un plateau contenant 40 cases organisées cycliquement (lorsqu’on atteint la dernière case, on continue sur la première) comme l’illustre la figure ci-dessous. Les 40 cases représentent : 22 terrains à bâtir, 4 gares, 2 compagnies, une case « prison », une case « allez en prison », une case « taxe de luxe », une case « impôt sur le revenu », une case « parc gratuit », une case « départ », des cases « chance » et des cases « caisse de communauté ». Monopoly est le jeu où l'on vend, achète ou loue des propriétés de manière profitable, afin que les joueurs puissent s'enrichir. Le joueur qui ne parvient pas à faire face aux dépenses qui lui incombent fait faillite, ses propriétés deviennent libres et il quitte ainsi le jeu. Le but du jeu est d'être le dernier joueur n’ayant pas fait faillite.

Ce jeu comporte 28 cases dites de ‘Propriété’ relativement aux terrains, aux gares et aux compagnies. Chaque propriété peut faire l’objet d’un achat (si elle n’est pas déjà acquise par un autre joueur), d’une vente ou d’un paiement / encaissement de loyer.

Les 28 propriétés sont divisées en 10 ‘groupes’ : • Les terrains d’une même couleur forment un groupe de propriétés. Il existe donc huit groupes différents de propriétés (puisqu’il y a huit couleurs).

• Les 4 gares forment le 9ème groupe. • Les 2 compagnies forment le 10ème groupe.

Examen ACOO – Session Principale-Page-1/11-

Dans ce jeu, chaque joueur est caractérisé par son nom et son capital d’argent. Il occupe une case parmi les 40 cases du plateau. Il possède un pion, portant son nom, qui marque sa position dans le plateau. Les différents joueurs démarrent le jeu à la position case de "départ", et le capital initial de chacun d’entre eux est de 20.000 euros.

Le système détient les Titres de Propriété et un nombre illimité de constructions (maisons et hôtels). Il paye les salaires et les primes, encaisse l'argent des impôts, des taxes et des achats de terrain et des constructions. Le système ne peut jamais "faire faillite" (on supposera qu'il détient une quantité infinie d'argent).

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. Chaque fois que le joueur passe lors de son avancement par la case "Départ", le système lui verse un salaire de 20.000 euros. 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, puis relance les dés et se déplace à nouveau. Il effectuera alors une nouvelle opération. Par ailleurs, s’il obtient un double trois fois de suite, il doit se rendre immédiatement en Prison. Son tour de jeu est alors terminé.

Plusieurs pions peuvent se trouver sur une même case au même moment. La case sur laquelle le joueur va s’arrêter indique ce que ce dernier doit ou peut faire. En fonction de la case de destination, il se produit l’une des actions suivantes : • Si la case de destination est un terrain qui n’a pas de propriétaire, le joueur peut l’acheter

s’il le souhaite et s’il dispose du capital nécessaire pour son achat.

• Si la case de destination est un terrain à la possession d’un autre propriétaire, il doit lui

payer un loyer.

• Si la case de destination est un terrain dont il est le propriétaire, rien ne se passe. • Si la case de destination est une case de type "CHANCE" ou " CAISSE DE COMMUNAUTE", il doit tirer une carte de la pile correspondante et applique l’une des trois actions suivantes : - se rendre en prison ou se déplacer sur une autre case - faire un paiement (taxes, impôt) - percevoir une récompense sous forme d’une somme d’argent

• Si la case de destination est une case de type "IMPÔT" ou "TAXE", il doit payer le

Publicité

montant indiqué sur ces cases;

• Si la case de destination est une case de type "ALLEZ EN PRISON", il doit s’y rendre.

Lorsqu’un joueur possède tous les terrains d'un groupe de couleur, il a le droit d’acheter des maisons pour ce groupe (au plus 4 maisons par terrain), ce qui augmente la valeur du loyer. Le prix d'une Maison est indiqué sur le Titre de Propriété correspondant. A tout moment, durant son tour de jeu, le joueur peut acheter et construire autant de Maisons que sa fortune le lui permet (il n'y a aucune contrainte sur la façon de construire les maisons).

Pour pouvoir acheter un Hôtel, un joueur doit posséder 4 Maisons sur chaque terrain d'un même groupe. Si un joueur 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. Il ne peut construire qu'un seul Hôtel par terrain.

Examen ACOO – Session Principale-Page-2/11-

Lors de son tour de jeu, un joueur qu’il soit endetté (n’ayant pas un capital suffisant pour payer ses dépenses : impôts, ses taxes et ses loyers) ou non peut selon son choix revendre au prix d’achat, des constructions, des terrains nus, des Gares ou des Compagnies de Distribution au système.

Par ailleurs, l'arrivée d’un joueur en Prison met fin à son tour de jeu. Il ne franchit pas la case "Départ" et ne reçoit pas 20.000 euros jusqu’à ce qu’il quitte la prison. Le joueur 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.

- Après avoir lancé les dés au cours du troisième tour : il doit alors – s’il n'a pas fait de double - payer une amende de 5.000 euros. Puis, il se déplace du nombre de cases indiqué par les dés et il continue à jouer.

Pendant qu’un joueur est en Prison, il peut percevoir des loyers. S’il n'est pas "envoyé" en Prison mais qu’il parvient sur cette case dans le cours normal du jeu, 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.

Lors de l’analyse du jeu Monopoly, un développeur a proposé le diagramme de classes UML incomplet suivant :

Travail à faire

L’objectif de ce problème et d’analyser et concevoir en partie le jeu simplifié de ‘Monopoly’ grâce aux diagrammes UML vus en cours. Pour cela, répondez directement aux questions qui sont posées dans les feuilles de réponses.

Examen ACOO – Session Principale-Page-3/11-

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.

.

Joueur

Monopoly

Acheter

Jouer son tour

Publicité

Vendre

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.

Examen ACOO – Session Principale-Page-4/11-

3) Proposez un diagramme de séquence système pour décrire le scénario nominal du cas

d’utilisation « Jouer son tour ».

Examen ACOO – Session Principale-Page-5/11-

Question 1.2 4) Proposez un diagramme d’activités qui illustre la dynamique du jeu ‘Monopoly’.

Examen ACOO – Session Principale-Page-6/11-

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 Agrégation Justification:………………………………………………………………………. Plateau - Case: Association Composition Agrégation Justification:………………………………………………………………………… Case - Joueur: Association Composition Agrégation Justification:………………………………………………………………………… Jeu - Groupe: Association Composition Agrégation Justification:………………………………………………………………………… Jeu - Joueur: Association Composition Agrégation Justification:………………………………………………………………………… Joueur - Propriété: Association Composition Agrégation Justification:………………………………………………………………………… Propriété - Groupe: Association Composition Agrégation Justification:……………………………………………………………………… 3) L’analyste a oublié la modélisation de l’abstraction ‘Dé’. Rajoutez-la en indiquant les relations avec les autres classes.

Examen ACOO – Session Principale-Page-7/11-

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.

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.

Publicité

Question 2.3

Examen ACOO – Session Principale-Page-8/11-

Donnez un diagramme d’état transition qui illustre l’évolution de l’état d’un joueur

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 propose de décorer les associations par les contraintes {ordered},{addOnly},{frozen}, {notUnique}. 1) Rappelez la signification de chaque contrainte de gestion :

Ordered: ……………………………………………………………………………………

AddOnly :……………………………………………………………………………….....

Frozen :……………………………………………………………………………………..

NotUnique :…………………………………………………………………………………

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).

Examen ACOO – Session Principale-Page-9/11-

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 requê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.

Examen ACOO – Session Principale-Page-10/11-

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».

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).

Examen ACOO – Session Principale-Page-11/11-