Notes en préambule : 1 Sujet

Documents pareils
UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Règles du Jeu d Echecs de la FIDE

Nom de l application

I. Cas de l équiprobabilité

Utilisation de la plateforme VIA ecollaboration

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Conception des bases de données : Modèle Entité-Association

SVP ISO - Sécurité & Protection

Université de Bangui. Modélisons en UML

Matériel. . 9 cartes Personnage

Connectiques et Utilisation d un disque dur multimédia MMEMUP

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

DiffHF-TNT_RC - Diffusion Hautes Fréquences TNT pour Opérateurs techniques de diffusion TNT

Chapitre 2. Classes et objets

Ecran principal à l ouverture du logiciel

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Les diagrammes de modélisation

Module 1 : Tableau de bord Excel * 2010 incl.*

Table des matières Sources

Le bridge c'est quoi? Laval Du Breuil École de bridge Picatou, Québec

LES TYPES DE DONNÉES DU LANGAGE PASCAL

MEGA ITSM Accelerator. Guide de Démarrage

UML (Diagramme de classes) Unified Modeling Language

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Initiation à Excel. Frédéric Gava (MCF)

Le Guide Pratique des Processus Métiers

Igor Štohl - Les meilleures parties de Garry Kasparov / Volume 1 PARTIE 13

Créer sa première base de données Access Partie 4/4 - Création d un état

Notice d utilisation

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

PARTIE NUMERIQUE (18 points)

L athlétisme à l école primaire

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

M1 : Ingénierie du Logiciel

Utilisation de l éditeur.

Architecture des Systèmes d Information Architecture des Systèmes d Information

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Opérations de base sur ImageJ

Guide d utilisation OGGI. Gestionnaire d incidents à l usage des clients. Date de rédaction : 04/02/2013. Version : 1.0.

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Guide pour aider à l évaluation des actions de formation

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

Elfenland Règles du jeu

Votre Réseau est-il prêt?

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie

données en connaissance et en actions?

EXCEL TUTORIEL 2012/2013

Infolettre #18 : Les graphiques avec Excel 2010

SYNOLIA LE partenaire à valeur ajoutée de votre relation client

COMMENT AMÉLIORER LA VISIBILITÉ DE SON SITE WEB?

45. CONTRIBUTION MUTUALISEE DES CLUBS AU DEVELOPPEMENT REGIONAL (C.M.C.D.)

ÉLÉMENTS DE GESTION DE PROJET

COMMENT AMELIORER LA VISIBILITE DE SON SITE WEB?

- Livret de Règles -

SECTION 5 BANQUE DE PROJETS

FORMATION MULTIMÉDIA LVE

RTDS G3. Emmanuel Gaudin

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

UML est-il soluble dans les méthodes agiles?

Jean Dubuffet AUTOPORTRAIT II

COMMENT REDIGER UN RAPPORT TECHNIQUE?

Mode d Emploi. Résult Arc Logiciel de Gestion de Compétitions. Droits d utilisation Informations Générales. 1/. Présentation de Résult Arc

ANICOTTE Guillaume GUFFROY Matthieu LIMA Juliette SALLOUH Chamsseddine CAHIER DES CHARGES SI 28

Méthodes d évolution de modèle produit dans les systèmes du type PLM

LIVRET MASTER (Bac +4 / Bac +5) Epreuves de première année

Exercices sur le chapitre «Probabilités»

AIDE MEMOIRE. Forprev. De l habilitation à la gestion de sessions. Page 1 sur 55

Unité de formation No 1 : la description d un processus de travail accompli par l apprenti au sein de l entreprise d apprentissage

GESTION DES MENUS. Un menu est un ensemble de liens permettant la navigation dans le site.

MEGA ITSM Accelerator. Guide de démarrage

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Premiers Pas en Programmation Objet : les Classes et les Objets

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

Première expérience?

Solutions en ligne Guide de l utilisateur

Connexion à SQL server

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

1 Description générale de VISFIELD

Merci de suivre les indications suivantes afin de créer votre compte membre :

Technologie Comment fabriquer une voiture qui roule avec du matériel de récupération? Cycle 2

Complice Respectueuse Divertissante

Landesk Service Desk

MARQUE DE FABRIQUE, DE COMMERCE OU DE SERVICE DEMANDE D'ENREGISTREMENT

EXERCICES UML. Modéliser cette situation par un diagramme de cas d utilisation. Consulter planning

Guide du/de la candidat/e pour l élaboration du dossier ciblé

Systèmes de communications Aastra Poste Aastra Guide de l utilisateur

PLATEFORME ANTI-CORRUPTION AU CAMEROUN

De Mes à Télépac

GYMNASTIQUE ACROBATIQUE

Savoir-faire. Décompte Champs Pâturages. -1 point 1 point 2. 2 points. 3 points. 4 points Céréales * Légumes *

Rappel sur les bases de données

Projet Matlab : un logiciel de cryptage

Utilisation avancée de SugarCRM Version Professional 6.5

CA 3000 CA 3000 PROGRAMMATION PAR MINITEL

1. Introduction Création d'une requête...2

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Transcription:

Corrigé Barème Institut Télécom, Télécom SudParis, 2 è année CSC4002 : Introduction à la conception et à la programmation orientées objet Contrôle de connaissances : Bureau d Études Date : 7 Décembre 2009 Coordonnateurs : Denis Conan et Christian Bac Durée : 1H30mn Notes en préambule : les seuls documents autorisés sont ceux distribués en cours et ceux mis à disposition sur le site Web ; le travail doit se faire individuellement ; n oubliez pas d indiquer votre nom sur chaque feuille rendue ; soyez concis et précis, et justifiez vos réponses par des commentaires appropriés ; soyez rigoureux dans la syntaxe UML ; veillez à rendre une copie propre et lisible. 1 Sujet «Le jeu d échecs se joue entre deux adversaires qui déplacent alternativement des pièces sur un plateau carré appelé échiquier. Le joueur ayant les pièces blanches commence la partie. L objectif de chaque joueur est de placer le roi adverse sous une attaque de telle manière que l adversaire n ait aucun coup légal. On dit que le joueur qui atteint ce but a maté le roi adverse et gagné la partie. Si la position est telle qu aucun des deux joueurs n a la possibilité de mater le roi adverse, la partie est nulle. «L échiquier se compose d une grille 8x8 de 64 cases identiques alternativement claires (les cases blanches ) et foncées (les cases noires ). Au début d une partie, un joueur dispose de 16 pièces claires (les pièces blanches ) et l autre de 16 pièces foncées (les pièces noires ). Ces pièces sont les suivantes : un roi blanc, une dame blanche, deux tours blanches, deux fous blancs, deux cavaliers blancs, huit pions blancs, un roi noir, une dame noire, deux tours noires, deux fous noirs, deux cavaliers noirs, huit pions noirs. «Il y a deux façons différentes de déplacer le roi, soit par un mouvement sur l une des cases adjacentes qui n est pas attaquée par une ou plusieurs pièces adverses soit par le roque. Le roque est un mouvement du roi et de l une ou l autre des tours de la même couleur, sur la première rangée du joueur. Le droit de roquer est perdu (a) si le roi a déjà bougé, ou (b) avec une tour qui a déjà bougé. Le roi est dit en échec, s il est attaqué par une ou plusieurs pièces adverses. «Les huit lignes de cases verticales sont appelées colonnes. Les huit lignes de cases horizontales sont appelées rangées. La position initiale des pièces sur l échiquier est présentée dans la figure qui suit.»[extraits de «Fédération Française des Échecs, Direction nationale de l arbitrage, Règles du jeu et nouveauté FIDE en vigueur au 1er Juillet 2009, Bulletin des Arbitres Fédéraux, numéro 122, Juin 2009.»]

Le système que nous modélisons dans ce sujet est un système d enregistrement et d affichage d une partie de Jeu d Échecs. Par conséquent, nous ne nous intéressons pas aux règles de déplacement des pièces, ni au calcul des meilleurs coups à jouer. Les utilisateurs du système sont les joueurs (1) qui enregistrent leurs coups pendant leurs parties et (2) qui déroulent les coups d une partie pour l étudier (du premier coup au dernier coup, en avançant et en revenant en arrière). Un coup est constitué de un ou deux déplacements de pièces. En effet, un joueur déplace une ou deux pièces 1 d une case de départ vers une case d arrivée. Si la pièce déplacée arrive sur une pièce adverse, c est-à-dire de l autre couleur, alors la pièce adverse est capturée et retirée de l échiquier pour le reste de la partie. Pour afficher la partie, les différents types de pièces possèdent chacun un de représentation sur l échiquier. À tout moment de la partie, il est possible de déterminer le joueur le mieux engagé dans la partie (que nous appelons le «joueur gagnant courant») en attribuant une (un nombre de points) à chaque type de pièce autres que le roi : par exemple, une dame vaut 9 points, une tour vaut 5 points, un fou vaut 4 points, un cavalier vaut 3 points et un pion vaut 1 point. À la fin de la partie, les utilisateurs désirent aussi connaître le gagnant. Simplification 1 : nous considérons qu une seule partie est jouée, donc le modèle ne modélise que deux joueurs possédant chacun 16 pièces et un échiquier de 64 cases. Simplification 2 : nous pouvons dans un premier temps ignorer le roque : un coup est alors constitué d un seul déplacement de pièce. Nous vous laissons choisir d inclure ou non le roque dans votre solution et vous demandons donc d indiquer explicitement votre choix. Conseil : la formulation du cahier des charges ci-dessus suggère que, pour positionner les pièces sur l échiquier après un coup donné, il est nécessaire de jouer tous les coups depuis le début de la partie. 2 Questions Question 1 : 2pt Après avoir réalisé une analyse du texte au brouillon, ce qui vous a permis de trouver les noms (substantifs) et les verbes correspondant à ce problème, choisir les classes qui vous semblent devoir faire partie de la modélisation de ce problème. Décrire textuellement ces classes et les attributs associés à chaque classe (donner le nom des classes, le nom de leurs attributs et des explications textuelles uniquement quand cela vous semble nécessaire). Les classes et attributs obtenus après analyse du texte sont les suivants : JeuÉchecs : classe «interface» du système, patron de conception Façade Joueur : nom, prénom, gagnant ; chaque joueur possède 16 pièces ; la couleur est promue en classe ; Pièce : capturée ou non ; la couleur est promue en classe ; Tour : en point,, a déjà été déplacée ou non (pour roquer) ; Pion : en point, ; Fou : en point, ; Cavalier : en point, ; Dame : en point, ; Roi :, a déjà été déplacée ou non (pour roquer), en échec ou non, maté ou non ; Échiquier : ; Case : indice de la rangée, indice de la colonne ; Partie : partie jouée à deux joueurs ; Coup : numéro de séquence ; un coup comprend un ou deux déplacements de pièces ; une pièce peut être capturée ; DéplacementPièce : ; un déplacement de pièce concerne une pièce et deux cases (départ et arrivée), il y en a deux maximum dans un coup ; ne pas faire apparaître une généralisation/spécialisation pour les pièces, association comme attribut, attribut dérivé (p.ex. Gagnant) comme classe. ne pas faire apparaître de classe Échiquier, ne pas faire apparaître la classe DéplacementPièce mais fusionner Coup et DéplacementPièce dans le cas sans roque, 1. Deux pièces dans le cas particulier du roque. Télécom SudParis Denis Conan et Christian Bac 7 Décembre 2009 CSC4002 2

faire apparaître une classe Rangée et une classe Colonne, faire apparaître une classe Couleur, un Coup possède comme attribut CaseArrivée, CaseDépart et PièceBougée. Barème de correction sur 2 points : 0,5 classe Joueur 0,5 classe Partie 0,5 classe Coup 0,5 classe Case 0,5 les attributs de en point,, et capturée ou non des classes Pièce et des classes enfants de la classe Pièce; ne pas pénaliser si tous ces attributs sont dans la classe correspondant à la classe Pièce 0.5 bonus pour le numéro de coup (pour les ordonner) Question 2 : 3pt d utilisation. Décrire les acteurs et les opérations significatives du système par un diagramme de cas La figure suivante présente l acteur et les cas d utilisation du système. Enregistrer un joueur Commencer une partie Enregistrer un coup Commencer l affichage d une partie Afficher un coup Avancer d un coup Joueur Reculer d un coup Afficher le gagnant courant (à un coup donné) Afficher le résultat de la partie Terminer l affichage d une partie les cas d utilisation uniquement pour jouer ou uniquement pour afficher, des cas d utilisation supplémentaires pour gérer plusieurs parties dans le système, plusieurs acteurs mis de manière artificiels. d autres cas d utilisation de gestion du système tel que des statistiques, ne pas considérer les deux derniers cas d utilisation qui ne sont pas cités explicitement dans l énoncé. Barème de correction sur 3 points : 0,5 respect de la notation UML (délimitation du système, de l acteur, lien de communication, phrase verbale, cadre ovale autour des cas d utilisation) 0,5 un acteur 0,5 des cas d utilisation pour jouer un coup Télécom SudParis Denis Conan et Christian Bac 7 Décembre 2009 CSC4002 3

0,5 des cas d utilisation pour afficher un coup max 1 : - 0,5 ce qu il faut pour commencer le suivi et l affichage d une partie - 0,5 ce qu il faut pour avancer et reculer d un coup - 0,5 ce qu il faut pour afficher le gagnant - 0,5 ce qu il faut pour commencer une partie - 0,5 ce qu il faut pour jouer un coup Question 3 : 5pt Construire un diagramme de classes qui représente le système. Dans ce diagramme, prenez soin de préciser les noms des associations, les rôles, les multiplicités et les sens de navigation des associations lorsque cela s avère nécessaire. La figure suivante présente le diagramme de classes proposé en guise de corrigé-type. JeuÉchecs coupcourant nom prénom /gagnant Joueur joueur pièces noires joueur pièces blanches Partie * Coup numérodeséquence 0..1 pièce capturée 0..1 16 DéplacementPièce capturée 1..2 * Piece * * case début 0..1 partie case arrivée Échiquier case départ rangée colonne 64 Case Tour Roi Dame Cavalier aétédéplacée aétédéplacée maté enéchec Fou Pion oublier d avoir une classe d accès aux éléments du système : c est la classe «Façade» JeuÉchecs, oublier la classe DéplacementPièce, oublier la généralisation spécialisation entre la classe Pièce et les différents types de pièces, oublier les associations entre les classes Pièce, DéplacementPièce et Case, oublier l association entre les classes Coup et Pièce pour la pièce capturée dans le coup, erreur dans les multiplicités, par exemple dans le nombre de pièces possédées par un joueur ou encore le nombre de pièces jouées lors un coup. toute autre solution par exemple n ayant pas suivi le conseil et considérant qu un échiquier différent est dessiné pour chaque coup, ou ayant décrit un coup comme l adjonction d une case de départ, d une case de d arrivée, d une pièce jouée et d une pièce capturée, Télécom SudParis Denis Conan et Christian Bac 7 Décembre 2009 CSC4002 4

complexifier le diagramme pour gérer plusieurs parties, faire apparaître une classe Couleur, dans le cas de la simplication sans roque, ne pas distinguer les classes Coup et DéplacementPièce, ne pas faire apparaître de classe Échiquier, ne pas faire apparaître l association pour le coupcourant (elle sert dans la dernière question), préférer mettre 5 associations entre la classe Joueur et les classes enfants de la classe Pièce, utiliser des classes d association DéplacementPièce entre les classes Pièces et Case, ne considérer qu un seul déplacement par coup, c est-à-dire ignorer le roque, une association entre les classes Coup et Joueur (dans le corrigé type, le joueur qui joue est connu en analysant les déplacements de pièces), ne pas faire apparaître la classe Couleur mais utiliser des attributs dans les classes Joueur et Pièce, Barème de correction sur 5 points : Au maximum 5 points 1 pas d erreur de notation UML (classe, nom association, généralisation spécialisation, agrégation, etc.) 1 la plupart des multiplicités sont correctes (1 erreur tolérée) 0,5 la classe du patron Façade JeuÉchecs 0,5 la classe Pièce, si possible avec ses classes enfants 0,5 les classes Partie et/ou Coup 0,5 les classes Échiquier et/ou Case 0,5 l association pour la capture 0,5 la ou les associations représentant le déplacement (selon cas avec ou sans roque) 0,5 l association pour le coup courant (bonus) 0,5 l association pour le placement des pièces en début de partie (bonus) Question 4 : 3pt Construire le diagramme de machines à états de la classe qui permet de décrire les pièces du jeu d échecs. La figure suivante présente le diagramme de machine à états de la classe Pièce. EnConstruction NonCapturée entrée : constructeur() destruction de la partie capture par un un joueur adverse EnDestruction entrée : detruire() destruction de la partie Capturée mettre toute la logique de la classe Roi alors que l on ne demande que la machine à états de la classe générique Pièce, état qui ne permet pas d aller vers l état final. pas d états de transition «EnConstruction» et «EnDestruction». Barème de correction sur 3 points : 1 respect de la notation UML (boîte, flèches, événement[condition]/action) + respect de la présence état initial et état final, et absence d état ne permettant pas d aller vers l état final Télécom SudParis Denis Conan et Christian Bac 7 Décembre 2009 CSC4002 5

1 présence états Capturée 1 transitions avec événement de capture et événement de fin de partie Question 5 : 2pt On s intéresse à la classe qui permet de décrire une pièce. Donner tous les attributs de cette classe (vous ferez figurer le nom des attributs, le type de ces attributs ainsi que la visibilité de ces attributs). couleur : @Couleur capturédanscoup : @Coup jouédanscoups : Collection de @DéplacementPièce capturée : booléen non conforme au diagramme de classes, notamment par rapport aux navigations, attributs non privés, oubli de la collection pour traduire la multiplicité «*», oubli de l attribut «capturée» selon le diagramme de classe. Barème de correction sur 2 points : 0,5 visibilité privée 0,5 conformité avec le bon nombre d association du diagramme de classes 0,5 conformité avec les multiplicités du diagramme de classes 0,25 conformité avec les navigabilités du diagramme de classes 0,25 attribut capturé ou autres du diagramme de classes Question 6 : 5pt Donner le diagramme de communications ou de séquence qui correspond au cas d utilisation : «enregistrer un coup». Le prototype de l opération correspondant est le suivant : enregistrer- Coup(@Pièce p, @Case départ, @Case arrivée, @Pièce capturée), avec capturée qui peut être null. Pour ceux qui n ont pas choisi d utiliser la simplification 2, c est-à-dire d ignorer le roque, le prototype de l opération enregistrercoup() comprend une seconde référence sur une Pièce ainsi que deux références supplémentaires pour les Cases de départ et d arrivée de la seconde pièce déplacée dans le coup, ces trois références étant null dans les coups standards sans roque. Pour simplifier la question, nous ignorons le fait d indiquer si le roi est en échec ou maté suite au déplacement des pièces. Vous pouvez détailler les actions correspondant à ce cas d utilisation sous forme textuelle avant de réaliser le diagramme. La figure suivante présente le diagramme de séquence associé au cas d utilisation «enregistrer un coup». La description informelle du cas d utilisation est la suivante : appel de l opération enregistrercoup() sur l objet de la classe JeuÉchecs, création de l objet Coup, si @Pièce capturée non null, création de l instance d association vers la pièce capturée création du premier déplacement création de l instance d association vers la pièce déplacée création des deux instances d association vers les cases de départ et d arrivée si roque, création du second déplacement création de l instance d association vers la pièce déplacée création des deux instances d association vers les cases de départ et d arrivée Télécom SudParis Denis Conan et Christian Bac 7 Décembre 2009 CSC4002 6

:JeuÉchecs <<new>> :Partie cc:coup cap:pièce <<new>> :DéplacementPièce enregistrercoup(p,cd,da,cap,p2,cd2,ca2) nouveaucoup(p,cd,ca,cap,p2,cd2,ca2) <<create(p,cd,ca,cap,p2,cd2,ca2)>> opt [cap!=null] capturer() <<create(p,cd,ca)>> déplacer() déplacerdépart() déplacerarrivée() opt [p2!=null && cd2!=null && ca2!=null && cap!=roi] <<create(p2,cd2,ca2)>> <<new>> :DéplacementPièce déplacer() déplacerdépart() déplacerarrivée() p:pièce p2:pièce cd:case ca:case cd2:case ca2:case Télécom SudParis Denis Conan et Christian Bac 7 Décembre 2009 CSC4002 7

non-respect du séquencement ou des numérotations, non-respect de la notation UML : objet, etc., pas de test de s retournées ou pas d utilisation des s retournées, pas de fragment avec condition ou pas de condition sur les messages, non respect des liens du diagramme de classes. diagramme de communications, autre expression selon le diagramme de classes. Barème de correction sur 5 points : 1,5 logique correcte, même si seulement exprimée dans l explication textuelle; 1 respect de la notation UML (objet, classe, condition, fragment, etc.) 1 conformité au diagramme de classes (parcours d associations existantes et navigabilité possible) 0.5 création de l objet Coup 0.5 condition sur la capture 0.5 appels au déplacement sur la pièce 0.5 appels aux déplacements sur la case (cas sans roque) ou les deux cases Télécom SudParis Denis Conan et Christian Bac 7 Décembre 2009 CSC4002 8