Sujet du projet de Génie Logiciel



Documents pareils
Manuel d'utilisation du site Deptinfo (Mise en route)

Deux exemples de paragraphes, donnés en contre-point l un de l autre :

SELENE : Guide d utilisation de l outil de remontée des fichiers de promouvables

BONNE NOUVELLE, À PARTIR DE DEMAIN 15 AOÛT 2014, l inscription en ligne sera disponible à partir du site de l ARO.

Premier cours d informatique

Adobe Photoshop. Bonnes pratiques pour une utilisation professionelle CHAPITRE 7

Utilisation du client de messagerie Thunderbird

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Génie Logiciel ESIEA

Troisième projet Scribus

Consignes pour les travaux d actualité Premier quadrimestre

4. Personnalisation du site web de la conférence

Les problèmes de la finale du 21éme RMT

EXCEL TUTORIEL 2012/2013

Manuel de mise en page de l intérieur de votre ouvrage

PRISE EN MAIN D ILLUSTRATOR

BIRT (Business Intelligence and Reporting Tools)

Support de formation Notebook

Guide de démarrage rapide. (pour la version 5.0.)

Journée COMPIL «Agilité et recherche»

TUTORIEL Qualit Eval. Introduction :

LA RUBRIQUE ARCHIVES EN LIGNE DU SITE INTERNET - MODE D EMPLOI

L alternative, c est malin 1. Comment faire plein de choses pour pas cher sur MacIntosh

Petit memo rapide pour vous guider dans la gestion des engagements de vos compétitions FFM

Comment réaliser une capture d écran dans Word. Alors comment ouvrir une page Word?

Europresse.com. Pour les bibliothèques publiques et de l enseignement. Votre meilleur outil de recherche en ligne. Guide version 1.

Table des Matières. Pages 3-4. A propos d emblue. Page 5. L environnement emblue. Création d une campagne d marketing. Pages 6-15.

Guide d utilisation du système rapport en ligne de la famille de la CMS


Guide d utilisation des fichiers bonus accompagnant le guide «L Argent est une science exacte»

Eclipse atelier Java

LES RÉSEAUX SOCIAUX ET L ENTREPRISE

EDUMOBILE APPRENTISSAGE MOBILE ET USAGES PÉDAGOGIQUES DES TABLETTES

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

Baccalauréat professionnel Gestion-Administration. Passeport professionnel. Documentation téléchargeable depuis :

Voici un extrait du guide de rédaction. Le guide complet est téléchargeable sur le lien suivant

REUNION INFORMATIQUE 15/09/12 Utilisation Messagerie «Webmail 2» I ) Préambule : Pourquoi l utilisation d une messagerie commune?

GUIDE ÉLÈVE. Mes identifiants : J'inscris mes identifiant et mot de passe personnels transmis par mon professeur :

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

Etape 1 : Identification avec un compte personnel sur la plateforme (cf. notice «Création et gestion de votre compte utilisateur»)

Modèle de changement d organisation. Leanpizza.net présente. Petit Guide Rapide du jeu de cartes Modèle de Changement d Organisation

Guide de démarrage Tradedoubler. Manuel éditeur / affilié

Cours Excel : les bases (bases, texte)

GUIDE PRATIQUE DE L INDEXEUR : LES PRINCIPES DE L INDEXATION COLLABORATIVE

Dossier de suivi de stage d observation en entreprise en classe de 3 ème

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

Accompagnement personnalisé 6e

Unité 4 : En forme? Comment est ton visage?

Dans la série. présentés par le site FRAMASOFT

BMW Wallonie Moto Club ASBL

Initiation au dessin Bitmap

Sur cette nouvelle page, cliquez sur commencer l inscription.

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Cartographie avec R. Baptiste Coulmont. 16 septembre 2010

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

Consignes générales :

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007

Le cas «BOURSE» annexe

Organisation de la fin d année du Master 2 de stratégie de communication globale

Indications pédagogiques D2 / 21

Étape 1 : Création d une adresse courriel GMAIL

Compréhension de l oral

Méthode de préparation du fichier texte d import depuis Excel, via Access jusqu à Drupal.

Pop-Art façon Roy Liechtenstein

Utilisation de Zimbra 1 / 103

IUT de Laval Année Universitaire 2008/2009. Fiche 1. - Logique -

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Areca Backup Première Sauvegarde - Configurez votre premier groupe et votre première cible.

Service intervenant. Version 6.3

Europresse.com. Pour bibliothèque d enseignement Pour bibliothèque publique. Consulter facilement la presse. Guide version 1.

Guide d usage pour Word 2007

Le cas «BOURSE» annexe

METHODOLOGIE LE CAHIER EST UN OUTIL DE TRAVAIL, MIEUX IL SERA TENU, PLUS TU AURAS DE PLAISIR A L OUVRIR POUR RETRAVAILLER LE COURS

Traitement de texte : Quelques rappels de quelques notions de base

QUELQUES MOTS SUR L AUTEURE DANIELLE MALENFANT

POUR ALLER UN PEU PLUS LOIN SUR UN TABLEUR. Version EXCEL

Un coupon cadeau pour votre campagne sur Google Adwords

Création de maquette web

Comment créer un nouveau compte? 1/2- Pour le consommateur

Guide des autorisations d urbanisme

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva

Sommaire. 1/ Grille. 2/ Specs globales. 3/ Specs HP. 4/ Specs Questions. 5/ Specs Offre. 6/ Specs Faq. 7/ Comportements interactifs

Consultant MOE/Référent technique JAVA/J2EE JSF, RICH FACES

SPECIALITE : RESTAURATION À LIRE ATTENTIVEMENT AVANT DE TRAITER LE SUJET

Etape 1 : Identification avec un compte personnel sur la plateforme (cf. notice «Création et gestion de votre compte utilisateur»)

Les Tutoriaux Utilisez Foxmail comme client de messagerie

Tutoriel. Votre site web en 30 minutes

Loïc Rossignol Ingénieur Consultant

Activité 11 : Nuage de points ou diagramme de dispersion

Manuel d utilisation du module GiftList Pro par Alize Web

EXTRAITS DE COMPTE. Manuel utilisation B-Web. Sommaire

Guide plateforme FOAD ESJ Lille

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

Vos outils CNED COPIES EN LIGNE GUIDE DE PRISE EN MAIN DU CORRECTEUR. 8 CODA GA WB 01 13

ÉCOLE : cycle 3 (CM2) Sciences de la vie et de la Terre S INFORMER : organiser l information Classer, trier, assembler, grouper, distinguer

SERVICE CERTIFICATION DES ÉTABLISSEMENTS DE SANTÉ. Guide utilisateur Compte Qualité dans SARA

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

J ai peur des souris mais je me soigne Petit manuel à l attention des profs de langues vivantes désireux d affronter le Monstre Informatique

Mon aide mémoire traitement de texte (Microsoft Word)

Transcription:

Sujet du projet de Génie Logiciel LAB3416 ESIEA 2013-2014 Le jeu des lapins

Sommaire Objectifs... 3 Règles du jeu... 4 Jardin... 4 Lapins... 6 Travail à faire... 8 Consignes... 9 Lectures conseillées... 10

Objectifs Le sujet qui vous est proposé cette année n est pas une fin en soi. C est un prétexte pour mettre en application les compétences que vous avez acquis à l école, notamment dans les cours de Programmation Orientée Objet, de Java et de Génie Logiciel. Par équipe de six à huit membres, vous devez programmer un logiciel et rédiger un rapport. Le logiciel et le rapport compteront chacun pour la moitié des points. Il n y a aucune fonctionnalité d imposée dans le logiciel. Il est toutefois conseillé de mettre en application, au minimum, ce que vous avez déjà réalisé durant les TD. Vous être libres de programmer tout ce qui vous passe par la tête. Essayez d inventer des choses originales. Le rapport, quant à lui, doit faire apparaitre votre démarche de travail, les éléments importants du logiciel, des captures d écran, les outils utilisés, votre méthodologie, etc. Idéalement il devrait suffire pour que le correcteur n ait pas besoin de lancer le logiciel pour comprendre son fonctionnement 1. Pour rappel, voici les éléments essentiels qu on a vus en cours et en TD : UML ; Java ; Tests (TDD, 3T) ; Design pattern ; DAO (JDBC / CSV / ) ; Swing (table model) ; Story board ; Maven ; Subversion ; Scrum ; 1 Dans tous les cas, le code source du logiciel sera analysé. À vous de mettre en avant ce qui vous rapportera des bons points.

Règles du jeu Le sujet de cette année parle de lapins qui mangent des carottes dans un jardin. Les informations sur les lapins, les carottes et le jardin sont indiquées dans un fichier texte. Jardin Les jardins sont rectangulaires et découpés en case de même taille, formant ainsi un quadrillage. Par convention, les lignes sont numérotées de haut en bas et les colonnes de gauche à droite. Il peut y avoir des grands comme des petits jardins. Voici un exemple de représentation pour un jardin de six colonnes et cinq lignes. À titre d illustration, j ai colorié en vert les cases couvertes de pelouse. 1 2 3 4 5 6 1 2 3 4 5 Dans le fichier texte, ce jardin 6x5 sera indiqué comme suit : # jardin(j) largeur hauteur J 6 5

Les cases peuvent contenir des carottes. Certaines cases sont vides. Certaines cases contiennent plusieurs carottes. Voici un exemple de représentation pour un jardin qui aurait une carotte dans la case 4-2 et trois carottes dans la case 1-4. À titre d illustration, j ai colorié les cases possédant des carottes en orange et j ai indiqué le nombre de carottes en gras dans la case. 1 2 3 4 5 6 1 2 1 3 4 3 5 Dans le fichier texte, les carottes seront indiquées comme suit : # carotte(c) position(colonne-ligne) nombre C 4-2 1 C 1-4 3 Le jardin est chaotique, il contient aussi des rochers. Voici un exemple de représentation pour un jardin qui aurait un rocher dans la case 5-3. À titre d illustration, j ai colorié les cases possédant des rochers en noir. 1 2 3 4 5 6 1 2 3 X 4 5

Dans le fichier texte, les rochers seront indiqués comme suit : # rocher(r) position(colonne-ligne) R 5-3 Voici une représentation avec l ensemble des éléments : le jardin, les carottes et les rochers. 1 2 3 4 5 6 1 2 1 3 X 4 3 5 Dans le fichier texte, l ensemble du jardin sera donc indiqué comme suit : J 6 5 C 4-2 1 C 1-4 3 R 5-3 Lapins Le jardin est envahi de lapins. Il peut y avoir plusieurs lapins en même temps dans le jardin. Un lapin ne peut se déplacer qu en avançant. Il peut néanmoins tourner sur lui-même, à gauche ou à droite, de 90. Les déplacements sont codifiés. Par exemple, la séquence «AADADAGA» signifie que le lapin avance, puis avance, puis fait une rotation à droite, puis avance, puis fait une rotation à droite, puis avance, puis fait une rotation à gauche, puis avance. Chaque mouvement prend une seconde, y compris les rotations. Ainsi, un tour complet (360 ) prend quatre secondes. Au début du jeu, les lapins ont également une position et une orientation initiales. L orientation correspond aux points cardinaux.

Voici un exemple de représentation, pour un lapin initialement dans la case en haut à gauche, regardant vers l est et exécutant la séquence «AADADAGA». À titre d illustration, j ai colorié en bleu le chemin du lapin, en indiquant par une flèche la dernière orientation connue. 1 2 3 4 5 6 1 2 3 4 5 Dans le fichier texte, les lapins seront indiqués comme suit : # lapin(l) position initiale(colonne-ligne) orientation initiale(n E S W) deplacements(a G D) nom L 1-1 E AADADAGA Bunny Note : Pour des raisons de flexibilité, les lapins et leurs déplacements sont indiqués dans un fichier texte différent de celui du jardin. Il est ainsi possible de mixer un lot de lapins avec un jardin spécifique. Lorsqu un lapin arrive sur une case contenant des carottes, il en prélève une et la mange. Son repas prend une seconde. Il passe donc une seconde pour aller sur la case et une autre seconde pour manger la carotte, soit deux secondes. Un lapin ne peut pas aller sur une case où se trouve un rocher. Les instructions d avancer (A) vers une case contenant un rocher sont ignorées. En toute logique, la séquence reprend donc à l instruction de rotation (G D) suivante. Une case ne peut contenir qu un seul lapin à la fois. Un lapin désirant aller vers une case déjà occupée par un autre lapin doit se mettre en pause tant que la case n est pas vide. Chaque seconde, un lapin est donc en mouvement vers l avant, en rotation ou en pause. Tous les lapins commencent leurs séquences respectives en même temps. Lorsque la séquence d un lapin est terminée, celui-ci se met en pause.

Travail à faire Au minimum, vous devez donc lire un fichier de jardin et un fichier de lapin. Le kit du projet contient des fichiers d exemple que vous pouvez utiliser en première approche. Vous devrez ensuite créer vos propres jeux de données, avec des jardins de tailles et d organisations différentes. Vous pouvez aussi faire varier le nombre de lapins et leurs séquences de déplacement. À la fin du jeu, vous devez restituer les nombres de carottes mangées par chaque lapin, sous forme de tableau. Vous pouvez également restituer les informations lues dans les fichiers. Et puis vous devez imaginer d autres fonctionnalités sympas. Voici quelques propositions : faites des graphiques ; développez un éditeur de jardins et de lapins ; faites des animations montrant les lapins en déplacement, en temps réel, dans le jardin. Vous avez le droit de reprendre les mêmes codes couleur que dans l énoncé. Pour cela, vous pouvez par exemple utiliser une JTable que vous mettrez à jour toutes les secondes. Vous pouvez aussi dessiner un graphique AWT ; utilisez des durées d action différentes. Par exemple une seconde pour une rotation, deux secondes pour un déplacement et cinq secondes pour manger une carotte ; Ajoutez des renards, qui mangent les lapins ; Ajoutez des fermiers qui chassent les renards ; Ajoutez des carottes magiques aux effets spéciaux. Il peut y en avoir plusieurs couleurs ; Ajoutez des lapins crétins ; Ajoutez des lapins autonomes (sans séquence prédéfinie). La classe Java «Thread» devrait vous aider ; Accolez plusieurs jardins, avec des trous dans les barrières de séparations, pour permettre aux lapins de passer d un jardin à l autre ; Associez-vous avec un autre groupe pour faire des concours de lapin ; Etc. Bien entendu, le projet doit être développé en Java. N oubliez pas d utiliser Maven, de faire des tests, de vérifier la qualité de votre code, etc. Dans le rapport, n oubliez pas de mettre des captures d écran, des extraits de code ou de fichier, des maquettes, des «story boards», des diagrammes UML, des CR de réunion, etc. Vous avez le droit d écrire un gros rapport.

Consignes Le non-respect des consignes suivantes entrainera des pertes de points : le projet doit être envoyé par email à l adresse «thierryler@gmail.com», avant la date indiquée en cours, en mettant en copie tous les membres de votre groupe ; le titre de l email doit être «Projet GL ESIEA 2013-2014 groupe N», où vous devez remplacer «N» par votre numéro de groupe ; l email doit contenir un fichier ZIP nommé «Projet_GL_ESIEA_2013-2014_groupe-N.zip». Cette archive doit contenir : o votre rapport au format PDF, nommé «rapport.pdf», o les sources zippées de votre programme, sous forme d un second fichier ZIP, nommé «programme.zip», vous ne devez pas m envoyer la version compilée du projet : faites un «mvn clean» avant de zipper le projet ; vous ne devez pas m envoyer les fichiers Eclipse : faites un «mvn eclipse:clean» avant de zipper le projet ; si vous avez des questions, elles doivent être posées par email à l adresse «thierryler@gmail.com» ; merci de passer le correcteur orthographique sur votre rapport ; relisez ou faites relire votre rapport, pour éviter les phrases qui ne veulent rien dire ; rédigez votre rapport dans un style simple. On ne vous demande pas de faire du Hugo ou du Shakespeare ; éviter de me faire un copié-collé du cours, pour m expliquer ce qu est UML ou Scrum par exemple. C est la façon dont vous vous en êtes servi qui est intéressante. Dites-vous que le professeur sait déjà ce qu est UML ; n attendez pas le dernier moment pour envoyer votre projet

Lectures conseillées Tutoriel de Michel Douez, nommé «Programmez un Snake avec Java2D» : http://michel-douez.developpez.com/articles/java/snake/ Tutoriel de Thierry Leriche, nommé «Charger des données depuis un fichier CSV simple en 5 minutes» : http://thierry-leriche-dessirier.developpez.com/tutoriels/java/charger-donnees-fichier-csv-5- min/ Tutoriels de Batiste Witch, à propos de Swing : http://baptiste-wicht.developpez.com/tutoriels/swing/ Tutoriel de Nicolas Zozol, nommé «JTables - Un autre regard» : http://nicolas-zozol.developpez.com/tutoriel/java/jtable/ Tutoriel de Thierry Leriche, nommé «Afficher un tableau avec un Table Model Swing en 5 minutes» : Mémento Scrum à destination de l'équipe v1.1 : http://thierry-leriche-dessirier.developpez.com/tutoriels/java/afficher-tableau-avectablemodel-5-min/ http://thierry-leriche-dessirier.developpez.com/tutoriels/general/memento-scrumdestination-equipe/ Mémento des raccourcis d Eclipse : http://thierry-leriche-dessirier.developpez.com/tutoriels/eclipse/raccourcis/ Mémento des mots-clés de Java : http://thierry-leriche-dessirier.developpez.com/tutoriels/java/mots-cles-java/