Skip to topic | Skip to bottom
Home
Linfo
Linfo.ProjetDevt2010r1.15 - 29 Apr 2010 - 06:49 - PhilippeCollettopic end

Start of topic | Skip to actions

Projet de développement (2009-2010)

Fiche signalétique

Volume : 6 * 2h de cours, 6 * 2h de TD par sujet (5 sujets).

Parcours : Informatique (obligatoire), MIAGE (obligatoire)

Semestre : 6

Objectif : Réalisation, en équipe, d'un développement logiciel de taille conséquente à partir d'un cahier des charges et d'une architecture préétablis.

Intervenants

Cours : Philippe Collet (coordonnateur du module).

TD/suivi des projets : Carine Fédèle, Philippe Collet, Pierre Crescenzo, Michel Gautero, Gilles Menez, Philippe Renevier.

Programme

Salles machine attribuées

TIP A partir du second TD de suivi, nous disposons d'assez de salles dédiées pour attribuer une salle par encadrant :

  • PV 310 : Gilles Menez : C/Python
  • PV 302 : Carine Fédèle : PHP 1
  • PV 314 : Philippe Renevier : PHP 3
  • PV 315 : Philippe Collet : Java 2
  • PV 316 : Pierre Crescenzo : Java 1
  • PV 317 : Michel Gautero : Java 1

Horaires

  • Les salles sont réservées tout le jeudi après-midi à partir de 13 heures pour que vous puissiez travailler en équipe.
  • Les encadrants effectuent le suivi des groupes de 13h30 à 15h30, sauf arrangement au cas par cas.

Outils

Eclipse pour Java, C, Python, PHP, plus de détails sur la page ProjetDev2010Outils

Evaluation

Modalités de déroulement

Ce module fait réaliser en équipes (idéalement 4 personnes et 4 personnes maximum) un développement logiciel de taille non négligeable, en focalisant sur l'organisation du développement (découpage en taches) et la qualité (tests unitaires)

Les modalités de déroulement sont les suivantes :

  • Les équipes sont formées par consensus par les étudiants.
  • Il y a 6 sujets dans 4 langages différents (C, Java, Python, PHP/MySQL).
  • Chaque sujet est encadré par un enseignant tuteur, pour environ 4 équipes (ALERT! sauf pour les 2 sujets proposés par G. Menez, avec 4 à 5 équipes en tout).
  • Après publication des sujets (cf. calendrier) chaque équipe, préalablement formée, emet une liste de 3 choix ordonnés au coordonnateur (ALERT! les étudiants MIAGE doivent a priori choisir uniquement des sujets en Java ou PHP/MySQL).
  • Le coordonnateur répartit les sujets entre les équipes, en essayant de satisfaire leur choix, mais un sujet parmi les 3 choix n'est pas assuré pour chaque équipe. Les étudiants n'ayant pas répondu sont automatiquement placés pour compléter des équipes ou en former de nouvelles.
  • Des cours sont dispensés au préalable sur les principes et les outils à utiliser.
  • Une fois le sujet attribué à leur équipe, les étudiants doivent s'autoformer (un minimum) sur les outils de développement présentés en cours.
  • 6 séances de suivi sont effectués par les enseignants tuteurs. Elles durent 2h avec le tuteur, suivi de 2h en autonomie pour avancer dans le projet, mais un travail personnel important, en dehors de ces 4h hebdomadaires, est attendu. Les séances de suvi permettent notamment de :
    • décomposer le travail entre les membres de l'équipe
    • surveiller l'avancement
    • aider les étudiants dans leur choix de conception
    • aider les étudiants sur des points techniques particuliers
  • Une soutenance du projet aura lieu une semaine environ après la fin des TD de suivi.

Calendrier

  • vendredi 5 mars 2010 : publication des sujets
  • mardi 9 mars 2010 : 1er cours
  • vendredi 12 mars 2010 : date limite de retour par mail des choix des étudiants, groupé par équipe
  • jeudi 18 mars 2010 : publication des affectations
  • jeudi 25 mars 2010 : 1er TD de suivi ALERT! Merci aux étudiants participants à la ronde des facs de s'assurer qu'au moins un membre de leur équipe sera présent lors de ce premier TD de suivi
  • jeudi 29 avril 2010 : dernier TD de suivi
  • dimanche 9 mai 2010 minuit : arrêt du développement (site redmine et svn)
  • 11 et 12 mai 2010 : soutenance (planning à venir)

ALERT! Pour les étudiants de L3 MIAGE participant aux JNM, la soutenance sera avancée au 10 mai 2010 au matin, avec un arrêt du développement le vendredi 7 mai.

ALERT! Pour les étudiants de L3 MIAGE partant en stage avant le 10 mai 2010, la soutenance sera avancée de quelques jours, les modalités seront convenues au cas par cas.

ALERT! Les sujets présentés ci-après n'ont pas tous le même niveau de détail, mais chaque description comportera des indications supplémentaires pour aider au démarrage du projet, et ce, dès l'affectation des sujets aux équipes.

TIP Suite aux voeux exprimés par les équipes, le sujet Php sur la gestion de salles est remplacé par un encadrement de 4 équipes de plus sur le sujet Java du jeu "Trois pour dix".

Sujet C/Python : Simulateur d'ascenseur

Encadrement : Gilles Menez.

Contrainte : 4 à 5 équipes max encadrées avec le sujet suivant

Il s'agit de faire évoluer le simulateur d'ascenseur que vous avez utilisé et développé en L2 (Prog Impérative) pour faire l'apprentissage "des masques et des machines à états appliqués au contrôle d'un procédé physique".

Fonctionnalités attendues

  1. Re-écriture/Amélioration de l'interface graphique sur différents points :
    • Choisir une API "moderne" et multiplateformes,
    • Amélioration du graphisme et notamment de l'animation,
    • Animer "plus de choses" : la lumière de la cabine, les portes ...
  2. Amélioration de l'API de contrôle de l'ascenseur
    • Proposer une solution pour le contrôle de l'ascenceur avec plus de capteurs/actionneurs et éventuellement plus d'un d'ascenseur
    • Permettre une connexion "socket" au simulateur qui éviterait de devoir "re-compiler" le contrôle avec l'interface graphique.
    • Proposer une évolution pour gérer des appels "simultanés".

Spécificités techniques

  • C sous Eclipse, ou
  • Python sous Eclipse au choix de l'équipe

Equipes

  • (ascea) : kutner alexandre, chaker fezai, michaudon françois, bah abdoulaye binta
  • (asceb) : CHAMLY Marc, DI PAOLO Ghislain, FRITZ Romain, HEBERT Josselin

Sujet Python : Gestion domotique d'une maison

Encadrement : Gilles Menez.

Contrainte : 4 à 5 équipes max encadrées avec le sujet précédent

Il s'agit de concevoir l'interface graphique de gestion domotique d'une maison ou d'un local quelconque.

Fonctionnalités attendues

  1. Saisie de plans du local
  2. Positionnement et typage des capteurs/actionneurs
  3. Spécification d'une interface graphique adaptée permettant la gestion du système.
  4. Ecriture de scenarios pour tester le fonctionnement du système.

Spécificités techniques

  • Python sous Eclipse

Equipes

  • (domoa) : FRANOT Raphaël, LLUDICE Daniel, PARROCCHIALE Alexandre, GONZALEZ Jérémie

Sujet PHP 1 : Gestion des étudiants partant en stage à l'étranger

Encadrement : Carine Fédèle.

Les étudiants partant en stage à l'étranger doivent fournir un certain nombre de renseignements et de documents avant le départ, différents selon la destination. Le nombre d'étudiants allant croissant, il est difficile au responsable de ces stages de suivre l'avancement de chacun.

Fonctionnalités attendues

Il s'agit donc de construire un site web permettant :

  • aux étudiants de consulter les stages et maquettes d'études offerts, et de postuler s'ils sont intéressés.
  • aux étudiants de voir ou ils en sont et de fournir les renseignements demandés.
  • au responsable de suivre l'avancement de tous les candidats et de les relancer si nécessaire.
  • aux autres enseignants de donner leur avis sur les étudiants candidats au départ.

Spécificités techniques :

  • PHP/MySQL

Equipes

  • (php1a) : Franck Rouanet, Julien Scoffier, Amélie Sereno-Martini, Thibaut Vaubourzeix
  • (php1b) : ANTOINE Maeva, BARRY Lamou, CISSE Rouguiatou, MOPOLO Rosa
  • (php1c) : Thomas CASTELLY, Yoann VIVERO, Stéphane MADALENO, Laurent CANESTRIER
  • (php1d) : RANDRIANAIVO Toky, RABARIJAONA Patrick, SECK Maimouna

Sujet PHP 2 : supprimé

Sujet PHP 3 : Système de lecture de flux RSS en PHP

Encadrement : Philippe Renevier.

Un flux RSS est un ensemble de messages formatés en XML. Cet ensemble est mis à jour régulièrement (selon la source d'information), l'ensemble évoluant par suppression d'anciens messages (périmés) et par l'ajout de nouveaux messages. Un flux RSS est disponible via une URI (URL). Un lecteur ou agrégateur de flux RSS permet de lire des flux RSS.

Fonctionnalités attendues

  • Pour permettre le démarrage du projet, le code de lecture d'un flux RSS devrait vous être fourni. Ce code vous aiguillera vers une architecture logicielle. Cependant, vous pouvez décider de faire votre propre "lecteur" de flux RSS.
  • Le lecteur devra accepter plusieurs vues (organisations "html", exemple utilisation de ul ou pas, de table ou pas, etc.) possibles.
  • Le système doit permettre de gérer l'historique d'un flux, tout en mettant en valeur les nouveaux messages.
  • Le système doit permettre de définir (et de redéfinir) la mise en forme, la mise en page de l'affichage d'un flux. Dans l'idéal, la définition des styles se fait en ligne, avec aperçu du rendu (après envoie du CSS entré).
  • Le système proposera un système d'indexation (manuel et/ou automatique) par mots clefs des messages. Cet indexation doit perdurer avec l'historique.
  • Le système doit permettre un système de filtrage, selon le type de message (ou par mots clefs).
  • Le système doit permettre la fusion de plusieurs flux
  • e système doit permettre la fusion de plusieurs flux RSS avec leur style associé, soit en harmonisant le style soit en conservant le style d'origine, soit par harmonisation partielle (selon le type de messages, ou selon les mots clefs).
  • Le système doit permettre de générer de nouveaux flux à partir des flux sources (si possible en conservant le style).
Pour exploiter pleinement l'historique, Le système doit permet une recherche dans l'historique et de lier les messages actuels avec les messages de l'historique selon des mots clefs (d'abord du même flux, puis dans l'historique d'autres flux). Le système doit aussi proposer des vues différentes de l'historique (calendrier, arborescence, etc.).

Spécificités techniques :

Equipes

  • (php3a) : JOUANNY Hugo, SANCHO Steven, DUPONT Sébastien, DRAGONI Laurent
  • (php3b) : Delalande cedric, Bonin Anthony, Lespagnard julien, Dossantos matthieu
  • (php3c) : Jean Jardillier, Bastien Rizza, Alexia Ribeiro, Antoine Sahaghian
  • (php3d) : REZGUI Aymen, ABIDI Moez, GRASSA Karim, AMARA Wiem

Sujet Java 1 : Jeu du "Trois pour dix"

Encadrement : Pierre Crescenzo, Michel Gautero

Finalement 8 équipes sur ce sujet

Ce projet consiste à programmer un jeu nommé Trois pour dix. Ce jeu est difficile. Non pas qu'il soit très difficile de jouer ou de gagner des points, mais il est complexe de compter les points et de se souvenir de toutes les combinaisons qui ont déjà marqué un point. L'ordinateur est donc ici bienvenu.

Règles du jeu :

  1. Le plateau de jeu est constitué d'un damier carré de n (3 ≤ n ≤ 20) cases de côté, la taille est choisie par les joueurs en début de partie.
  2. Il y a deux joueurs. Le premier choisit un chiffre c (1 ≤ c ≤ 8) et le place dans une des cases vides. Le second fait de même et ainsi de suite…
  3. Le but est pour chaque joueur, à la fin du jeu, quand le plateau est plein, d'avoir fait le maximum de lignes de trois cases consécutives dont le total fait 10.
  4. À chaque fois qu'un joueur joue, il faut déterminer le nombre de groupes de trois cases consécutives, comprenant celle qui vient d'être jouée, dont le total fait 10 et compter un point pour ce joueur par groupe ainsi détecté. Il est évidemment possible de placer un chiffre qui permet de gagner plus d'un point (s'il permet, en même temps, de faire plusieurs groupes de trois cases consécutives totalisant 10).
  5. Mais attention : au cours d'une partie, chaque case peut être utilisée quatre fois au plus pour faire un point : horizontalement, verticalement, en diagonale montante et en diagonale descendante. Elle ne peut pas être utilisée deux fois dans la même direction !

Fonctionnalités attendues

  1. Réalisez une interface graphique permettant de jouer.
  2. Programmez la détection de fin de partie.
  3. Programmez les tests permettant de vérifier la validité du placement d'un chiffre sur le plateau.
  4. Programmez le comptage des points et la désignation du gagnant.
  5. Programmez un joueur automatique stupide : il place un chiffre au hasard dans une case vide au hasard.
  6. Programmez un joueur automatique peu habile : dès qu'il détecte la possibilité de faire au moins un point, il place le chiffre adéquat sans chercher plus loin. S'il ne trouve rien d'évident, il agit comme le joueur stupide.
  7. Programmez la sauvegarde d'une partie pour pouvoir la reprendre plus tard.

Spécificités techniques :

Ce projet doit être développé en Java sous la forme d'une application autonome (exécutable au moins sous Linux et Windows) ou d'une application web (exécutable au moins sous Firefox et Internet Explorer).

Equipes (encadrement : Pierre Crescenzo)

  • (java1a) : Christian Anfossi, Aymeric Buis, Nicolas Cywier, Olivier Giammetta
  • (java1b) : Bories Paul, Enrici Cyril, Gharoual Bouzidi, Royere Kevin
  • (java1c) : Sylvain Picory, Imane Bouassria, Zakaria Zoubaidi, Mohamed Hamza Bourkia
  • (java1d) : Amadou Djigo, Maria Da Luz Rodrigues Pereira, Ahamada Amir, Jeremy Borsenberger, Abdoul Mazid Sandaly Diallo, , VERMEIL Anne-Laure

Equipes (encadrement : Michel Gautero)

  • (java1e) : Doyet Céline, Benmansour Amine, Ben Mohamed Aroi, Bendjabeur Foudil
  • (java1f) : Guilbert Jean-Paul, Nshimiyimana Pierre Claver, Wazne Céline, Carboni Dominique
  • (java1g) : Vincent DEGRANGE, Amine ALAOUI ISMAILI, Andy GARCIA, Aymen RAHMENI
  • (java1h) : Derbel Nouha, Tedjani Sarah, Mannai Heykel, Autran Sylvain

Sujet Java 2 : Simulateur de caisses de supermarché

Encadrement : Philippe Collet.

Il s'agit de réaliser un logiciel pour simuler le comportement d'un ensemble de caisses de supermarché, pour aider au comptage du temps d'attente moyen des clients, à l'optimisation du nombre de caisses ouvertes, du nombre de caissières affectées, etc.

Fonctionnalités attendues

  • Configuration de la simulation : nombre de caisses, capacité, nombre de personnes
  • Simulation du passage en caisse des personnes avec leur chariot (nombre d'articles variables)
  • Simulation des pauses des caissières, changement de caissières
  • Comptage minimum d'un certain nombre d'éléments (temps d'attente, temps de travail, temps moyen de passage)
  • Simulation du choix autonome de la caisse par chaque personne
  • Moteur de simulation graphique dont les paramètres sont automatiquement générés par la simulation (qu'il y ait 10 ou 50 caisses, le moteur graphique s'adapte) : configuration, lancement, affichage en temps réel des statistiques

Fonctionnalités plus évoluées (sans ordre de préférence)

  • Prise en compte de différentes types de personnes et de caisses
  • Editeur convivial pour la configuration des caisses, caissières, personnes, moment de la journée...

Spécificités techniques :

  • Java
  • API Swing pour la partie graphique

Equipes

  • (java2a) : MUHADER Sara, PHAN Gilles, VULLIET Jonathan, ROMANO Jeremy
  • (java2b) : Laurent DUBLING, Pierre MALLET, ELodie MONTALTO, Florian WROBEL
  • (java2c) : Alexia DE MEDEIROS, Martial TOGBEDJI, Morgan MONCHO, Elodie MAZUEL
  • (java2d) : Anissa Furia, Michel Cartier, Kateryna Vella Nefedova, Aymeric Poude

Des informations pour démarrer:

  • ne pas mettre tout l'effort sur la réalisation d'un moteur graphique (surtout si vous n'avez aucune expérience en Java sur cet aspect)
  • développer TRES incrémentalement le noyau de la simulation (caisse, article, client) : commencez pas concevoir et implémenter une caisse avec un client, placez (par programme) des articles pour ce client, faites les passez par la caisse, etc. Allez y très progressivement et conserver tous vos tests (normalement, vous ne savez pas encore comment les structurer avec Junit, l'essentiel est que vous conserviez le code de vos tests successifs, n'écrasez pas le main ou les méthodes à chaque fois que vous progressez !)
  • Testez votre simulation par des sorties texte (vive System.out.println, pour l'instant...) et créer vos petits espaces de simulation par programme (créez une caisse, un client, un article).

Un exemple de simulateur avec séparation du moteur de simulation et du moteur graphique d'affichage:

-- PhilippeCollet - 08 Apr 2010


to top

I Attachment sort Action Size Date Who down Comment
ProjetDevt-1-0910-4p.pdf manage 466.5 K 16 Mar 2010 - 08:25 PhilippeCollet  
ProjetDevt-2-0910-4p.pdf manage 625.1 K 16 Mar 2010 - 08:25 PhilippeCollet  
ProjetDevt-3-0910-4p.pdf manage 850.1 K 23 Mar 2010 - 18:36 PhilippeCollet  
exemple-simulateurGraphique.zip manage 8.5 K 25 Mar 2010 - 10:06 PhilippeCollet  
ProjetDevt-4-0910-4p.pdf manage 149.0 K 08 Apr 2010 - 14:33 PhilippeCollet  
ProjetDevt-5-0910-4p.pdf manage 171.7 K 08 Apr 2010 - 15:14 PhilippeCollet  
ProjetDevt-6-0910-4p.pdf manage 109.4 K 08 Apr 2010 - 15:14 PhilippeCollet  

You are here: Linfo > ProjetDevt2010

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback