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



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

Bases de données cours 1

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

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

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

Visual Paradigm Contraintes inter-associations

M1 IFPRU Cahier des Charges du projet de TER. Vidéo Surveillance sur IP Le système Rapace. Membres du groupe : Encadrés par :

Une famille d'applications permettant à toute organisation d'optimiser le suivi et la gestion de ses ressources internes vous présente

Introduction : présentation de la Business Intelligence

SAP BusinessObjects Web Intelligence (WebI) BI 4

UE 8 Systèmes d information de gestion Le programme

Ingénieur Développement Nouvelles Technologies

SQL Server Installation Center et SQL Server Management Studio

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

Libérez votre intuition

DotNet. Plan. Les outils de développement

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

RAPPORT DE CONCEPTION UML :

Diplôme de Comptabilité et de Gestion. D é c r e t N d u 2 2 d é c e m b r e A r r ê t é d u 8 m a r s

Quel ENT pour Paris 5?

Créer et partager des fichiers

FileMaker Server 14. Aide FileMaker Server

Business Talk IP Centrex. guide. web utilisateur. pour. les services standards

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Catalogue des produits et services Tarif public Décembre 2014

Administration du site (Back Office)

COURS WINDEV NUMERO 3

Atelier Le gestionnaire de fichier

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Introduction à la conception de systèmes d information

Projet Active Object

CQP Développeur Nouvelles Technologies (DNT)

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS

Stockez et créez vos documents

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Expert technique J2EE

Système de Gestion de Ressources

Architectures web/bases de données

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

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

Mes documents Sauvegardés

IFT2255 : Génie logiciel

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

1. Installation du Module

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Modelio by Modeliosoft

Association UNIFORES 23, Rue du Cercler LIMOGES

Devenez un véritable développeur web en 3 mois!

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

ESPACE COLLABORATIF SHAREPOINT

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Un logiciel pour aller plus loin dans la gestion de vos espaces. Mémo technique

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

Mercredi 15 Janvier 2014

Optimiser pour les appareils mobiles

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le

Module BD et sites WEB

Disque Dur Internet «Découverte» Guide d utilisation du service

Chapitre 1 Windows Server

Bien architecturer une application REST

Vérifier la qualité de vos applications logicielle de manière continue

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Sybase PowerAMC 16. Guide des nouvelles fonctionnalités générales. DOCUMENTATION

: seul le dossier dossier sera cherché, tous les sousdomaines

TABLE DES MATIERES 1 INTRODUCTION OBJECTIF SOLUTION ETUDE COMPARATIVE GESTIÒIP PHPIPAM TEEMIP...

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Manuel d utilisation du site web de l ONRN

Comment accéder à d Internet Explorer

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Tableaux comparatifs entre éditions Standard, Professionnelle, Entreprise

DOSSIER SOLUTION CA ERwin Modeling. Comment gérer la complexité des données et améliorer l agilité métier?

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

Module Communication - Messagerie V6. Infostance. Messagerie

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

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

Bureautique Initiation Excel-Powerpoint

HTML. Notions générales

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Projet de développement

Messagerie sécurisée, fiable et économique

Refonte front-office / back-office - Architecture & Conception -

ADMINISTRATEUR WINTEL Dominique MAHIEU 35 ans WINDOWS 2008/2003, ACTIVE DIRECTORY, EXCHANGE, CITRIX, VMWARE

Présentation de la gamme des PGI/ERP modulaires Wavesoft

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Raja Bases de données distribuées A Lire - Tutoriel

Formation en Logiciels Libres. Fiche d inscription

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

Contenu de la version 3.4 C I V I L N E T A D M I N I S T R A T I O N

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

Descriptif des fonctionnalités de notre site professionnel. Page 1 sur 13

Programme ASI Développeur

Messagerie & Groupeware. augmentez l expertise de votre capital humain

Transcription:

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors 2011-2012 I. Objectifs Mettre en œuvre les compétences acquises ou en cours d acquisition en: o Modélisation UML, Réseau, Base de données, Programmation Orientée Objet, Web, Architecture répartie, Programmation concurrentielle. Travailler en groupe (3 ou 4 personnes) sur un projet de grande taille Faire évoluer un programme développer par d autres personnes (avec ses bugs, ses manques de commentaires, ses erreurs de conception et de développement). II. Contexte technique Modélisation UML, outils disponibles : Fujaba, Umbrello, Objecteering, Rational Rose Langage Orienté Objet : Java (dont API Swing, Net, Thread, ) Base de données : SQL, SGBD (Postgres), JDBC Web : HTML, Javascript, php Rédaction de la documentation en anglais III. Conseils de développement Utilisez Eclipse et Java 1.5 ou 1.6 Commentaires : entête des classes et des méthodes en javadoc, commentaires pertinents dans le code Respect des règles Java et UML pour la nomination des attributs et des méthodes (exemple : unemethode(unparamètre), unattribut) Regroupement des méthodes par type (constructeur, modifieur, accesseur) Noter ses interventions dans le code en encadrant les ajouts/modifications/suppression par des /* GroupeX 2011 : debut */ /* GroupeX 2011 : fin */. Pour les suppressions mettre les lignes en commentaire sans les supprimer des fichiers. IV. Les grandes étapes du projet 1. 16/02/2012 o Découverte du projet o Description générale du code o Identification de quelques bugs o Récupération de la version précédente du projet et de l éditeur de niveau 2. 16/02/2012 23/02/2012 o Création des groupes o Choix d une correction à effectuer sur le code. 3. 23/02/2012 16/03/2012 o Découverte et compréhension du code. Production du diagramme de classe complet du projet et du diagramme de séquence principal.

o Correction du code o Réflexion sur une proposition d amélioration du jeu 4. 16/03/2012 o Restitution et test des corrections effectuées o Proposition d amélioration et validation des propositions 5. 16/03/201205/04/2012 o Répartition précise des tâches au sein de chaque groupe. Planning. Plan de validation. Plan d intégration individuel et global o Document de conception et planning à remettre (en anglais) o Début du développement des nouvelles fonctionnalités 6. 05/04/201210/05/2012 o Développement 7. 10/05/2012 o Test et validation 8. 01/06/2012 o Remise du rapport final (en anglais) : avancement du code par rapport à la conception, difficultés rencontrées. o Remise des codes sources V. Description de la version précédente Principe général du jeu Les joueurs : ils sont répartis en n équipes, chaque équipe étant composée de plusieurs joueurs (4 pour le moment) : le maître des clés, l explorateur, le sorcier, le piégeur Chaque joueur doit découvrir à l aide d indices un des éléments nécessaire pour l ouverture du trésor. L explorateur doit découvrir l emplacement du trésor. Le sorcier doit découvrir l incantation permettant au trésor de sortir. Le maître des clés doit découvrir la clé permettant l ouverture du coffre. Chaque élément ou indice (sauf le premier) est invisible sur la carte, pour le révéler, il faut se placer sur la case où il se situe et taper la combinaison de touches appropriée : Pour révéler un indice : «ctrl + numéro de l indice» Pour révéler un élément : «ctrl + e». Sur la carte, il n y a qu une seule incantation et qu un seul trésor, mais deux clés permettant de l ouvrir. Lorsque l incantation ou le trésor sont révélés, leur emplacement est visible par tout le monde mais seul le sorcier peut lire l incantation et le maître des clés récupérer la clé. Pour ouvrir le coffre, les trois joueurs doivent se trouver à l emplacement du trésor, le maître des clés doit y déposer la clé et le sorcier réciter son incantation. La carte La carte aux trésors est un damier pouvant avoir n importe quelle taille. La taille de la carte peut éventuellement dépasser la taille de l écran. Sur chacune des cases se trouvent, soit le fond de carte, soit un élément particulier, franchissable ou non. Les éléments peuvent être des éléments décoratifs ou liés aux indices (exemples : un volcan, une rivière, un pont, une plage, un village, des rochers,.).

Architecture de l application Le jeu fonctionne en local ou en réseau (un poste par joueur). L inscription des joueurs à une partie ainsi que la visualisation des scores se faire par le Web via un site Internet (version non mise à jour, à faire évoluer) o L accès est sécurisé. o Après authentification, un joueur peut télécharger l application, consulter la liste des autres joueurs, s inscrire à une partie et visualiser les résultats. L ensemble des informations concernant les joueurs et les parties sont stockées dans une base de données. La modélisation obtenue est la suivante Architecture : client serveur C S J1 E1 Serveur Web J1 E2 Ji E1 Serveur Ji E2 J n E1 SGBD J n E2 Fonctionnement en mode connecté Communication entre le serveur Web et le serveur : socket le serveur Web et le SGBD : JDBC le serveur et le SGBD : JDBC Fonctionnement du serveur : un processus (thread) créé par partie, les 2n joueurs sont gérés par un seul thread, fonctionnement synchrone des joueurs par rapport au serveur. On envoie régulièrement des données des joueurs vers le serveur, même si aucune action n a été effectuée. Si plusieurs actions ont été effectuées entre deux envois, il faut envoyer la liste de ces actions (Si on réalise plusieurs envois par secondes, une seule action au plus a pu être effectuée pendant ce lapse de temps). Une autre solution aurait été un fonctionnement asynchrone avec un ou plusieurs (un par joueur par exemple) threads par partie côté serveur. Dans ce cas, les joueurs n envoient des informations au serveur qu après une action. Le serveur, ainsi que les joueurs, doivent donc pouvoir recevoir et traiter des informations à n importe quel moment. Les envois peuvent également être fais à la demande du serveur. Ce n est pas cette dernière solution qui a été retenue. La première solution (celle envisagée) a l avantage de faciliter le développement et la synchronisation des parties de l application répartie (synchronisation automatique). Par contre, si un joueur ne fait pas d actions entre deux envois, on enverra plusieurs fois la même information. Il faudra donc veiller à ne pas envoyer de données trop volumineuses. Rôle de chaque partie de l application et données circulant sur le réseau Plusieurs solutions sont possibles

1. Le serveur sert à centraliser les traitements : chaque joueur envoie la combinaison de touches qu il a effectuées depuis le dernier envoi (déplacement, activation de cases, ). Le serveur interprète les actions et calcule la nouvelle carte (nouvelle position des joueurs et cases modifiées) puis renvoie la carte à chaque joueur qui ne fait qu afficher la nouvelle carte. Avec ce protocole, le client n a pas grand-chose à faire, le serveur est surchargé et le réseau aussi. 2. Le serveur sert de relai : chaque joueur envoie sa position courante ainsi que la liste des cases qu il a activées depuis le dernier envoi. Le serveur retransmet à tous les joueurs ces informations et chaque joueur réinterprète les touches pour recalculer sa nouvelle carte. Dans ce cas, le serveur est allégé, le réseau également mais le client a plus de calculs à effectuer et chaque calcul est effectué six fois. Nous avons adopté la deuxième solution avec en plus côté serveur la gestion des monstres qui est commune à tous les joueurs. Le serveur est le seul à connaître les affectations des joueurs dans les équipes ainsi que la carte de la chasse au trésor. C est lui qui charge la carte à partir de la base de donnée et qui la transmet aux six joueurs. Les images ne seront donc transférées qu une seule fois. Le jeu se termine lorsqu une équipe a révélé et pris le trésor (les trois joueurs sont sur la même case et les combinaisons ont été tapées). Seul le serveur peut faire cette vérification et terminer le jeu en l indiquant à chaque joueur. Modélisation des éléments (diagramme de classe) Une carte est modélisée par un damier de n lignes et m colonnes. Un joueur a une position dans ce damier. Le damier est composé de cases et chaque case a des fonctionnalités différentes (objet actif ou inactif, franchissable ou infranchissable, visible ou non visible). L affichage de la carte peut se faire soit en un bloc soit en découpant la carte en n fois m cases. La différence principale est la manipulation des fonctions d affichage (découpage d une image,..). Nous choisirons d afficher la carte en un bloc et d afficher par-dessus les éléments éventuellement actifs (personnages, indices, ). Le diagramme de classe est présenté ci-dessous.

Sécurité : l accès au jeu est sécurisé. Lorsque les joueurs veulent participer à une chasse au trésor, ils doivent connecter leur client au serveur et lui communiquer leur pseudo et mot de passe. Le serveur vérifie (via le SGBD) les identifiants et intègre les joueurs dans les différentes parties (informations récupérées via le SGBD). La partie interface Web : cette partie a pour but de permettre aux joueurs de jouer ensemble et de consulter les résultats. Deux grandes parties sont présentes 1. Une partie publique où l on trouve les informations sur le jeu (principe, téléchargement du client) et l inscription (définition d un pseudo, d un mot de passe, ). 2. Une partie privée dans laquelle on trouve, après inscription et authentification, la liste des chasses aux trésors à venir et passées avec la possibilité de s inscrire pour une chasse ou de consulter les résultats (d une chasse, les scores des joueurs,.). On peut s inscrire selon deux modes : par joueur ou individuel. Le jeu individuel : un joueur demande à participer à une partie en tant que sorcier, maitre des clés ou explorateur, ou alors laisse le choix au système (dépend de la chasse proposée). Le jeu par équipe : les joueurs forment des équipes et inscrivent leur équipe complète pour une chasse aux trésors. Dans cette partie, les joueurs peuvent aussi déposer des chasses aux trésors éditées grâce à l éditeur de niveau téléchargeable également. Les diagrammes d échange L éditeur de niveaux Il permet d éditer les cartes utilisées dans le jeu. La notice d utilisation de l éditeur est fournie en annexe.

VI. Corrections et améliorations (quelques propositions) Gestion de la base de données : récupération des parties, stockage des résultats. Gestion des envois des listes de cases modifiées. Amélioration de la gestion de la fin de la partie Problème de duplication des transports Gestion des monstres : vers quel personnage le monstre se dirige t il? Ajout de personnages Ajout de pièges (tourbillon, ) Ajout d objets (téléporteurs, ) Ajout de nouvelles cases Revoir la gestion des points d attaque et de défense, notamment lorsque le joueur utilise un moyen de transport Gestion du magasin (revoir la collecte des rubis et l achat d objets). Réactivation de la zone de visibilité o Autour du joueur o Sur tout le parcours du joueur o En fonction de divers paramètres (potions, ) o On peut voir la carte mais pas les éléments actifs Réactivation du marcher/courir Concernant l éditeur : Ajout des interfaces permettant de configurer un personnage (ou un monstre), une case, un élément, un transport Concernant le site web : il faut revoir la base de données et les scripts php pour avoir un fonctionnement cohérent par rapport à la classe Partie. La notion d équipe privée doit être formalisée avec notamment la gestion d un mot de passe. Revoir le tchat. VII. Notation Travail par groupe de 3 (4) personnes Chaque groupe se verra attribuer un nombre de points entre 0 et 60 (80) en fonction du travail réalisé. La répartition des points sera effectuée par les membres du groupe eux même et devra être cohérente avec le travail de chacun (note comprise entre 0 et 20 bien entendu). Deux rapports seront à remettre en anglais : o rapport de conception présentant le projet, la conception, le planning et les propositions d amélioration et correction. o rapport de remise de projet indiquant le fonctionnement de l application et les différentes extensions développées. Récupération des fichiers http://calamar.univ-ag.fr/uag/ufrsen/coursenligne/egrandch/projet/