Skip to topic | Skip to bottom
Home
Linfo
Linfo.ProjetDevt2012r1.13 - 30 Apr 2012 - 12:34 - PhilippeCollettopic end

Start of topic | Skip to actions

Projet de développement (2011-2012)

Fiche signalétique

Volume : 6 * 2h de cours, 6 * 2h de TD par sujet.

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 : Philippe Collet, Pierre Crescenzo, Michel Gautero, Gilles Menez, Philippe Renevier.

Programme

Salles machine attribuées

Nous devrions disposer d'assez de salles dédiées pour attribuer une salle par encadrant le jeudi après-midi.

Horaires

  • Les salles sont réservées tout le jeudi après-midi à partir de 13 heures pour que vous puissiez travailler en équipe. La présence est obligatoire de 13h30 à 17h30.
  • Les encadrants effectuent le suivi des groupes de 13h30 à 15h30, sauf arrangement au cas par cas (Ph. Renevier devrait effectuer le suivi de ses groupes de 15h30 à 17h30).

Outils

Plus de détail sur la page dédiée : ProjetDev2012Outils

Evaluation

  • 100 % en projet (pas de 2ème session)
    • Evaluation du résultat du projet (fonctionnalités implémentées, qualité du code source, tests unitaires) : pas de tests unitaires => note globale < 10
    • Evaluation du déroulement du projet (décomposition des tâches, suivi par l'outil de gestion fourni) : pas d'utilisation de l'outil de gestion => note globale <10

Modalités de déroulement

Ce module fait réaliser en équipes un développement logiciel de taille non négligeable, en focalisant sur l'organisation du développement (découpage en tâches, jalons) et la qualité (tests unitaires).

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

  • Les équipes sont formées par consensus par les étudiants: elle comporte 5 étudiants dont un chef de projet. Le chef de projet est l'interlocuteur principal de l'équipe, il rend explicite le découpage des tâches dans le site de suivi qu'utilisent tous les membres de l'équipe. Le chef de projet ne se limite pas à l'organisation, il doit effectuer une partie de la programmation comme tout membre de l'équipe.
  • Il y a plusieurs sujets dans des langages différents (a priori C, Java, Python, PHP/MySQL).
  • Chaque sujet est encadré par un enseignant tuteur, pour environ 4 équipes.
  • 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, 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, le chef de projet en suit l'avancement pour l'équipe.
    • surveiller l'avancement à travers le site de gestion et par discussion avec le chef de projets et les membres de l'équipe.
    • aider les étudiants dans leur choix de conception.
    • aider les étudiants sur des points techniques particuliers.
  • Une soutenance du projet aura lieu après la fin des TD de suivi.

Calendrier

  • mercredi 15 février 2012 : 1er cours et publication des sujets
  • mardi 21 février 2012 : date limite de retour par mail des choix des étudiants, groupé par équipe de 5 dont 1 chef de projet. C'est au chef de projet d'envoyer le mail.
  • mardi 6 mars 2012 : publication des affectations
  • jeudi 15 mars 2012 : 1er TD de suivi
  • jeudi 22 mars 2012 : ronde des facs : merci à tous les groupes de s'assurer qu'au moins un étudiant sera présent pour le suivi
  • jeudi 19 avril 2012 : dernier TD de suivi
  • mardi 1er mai 2012 23h59 : arrêt du développement (site de gestion du projet et des sources)
  • jeudi 3 et vendredi 4 mai 2012 : soutenance (planning à venir)

Affectation

Les affectations sont résumées dans le fichier suivant (l'enseignant encadrant est aussi indiqué dans un tableau en bas de 2ème page) : Pdevt-Attribution2012.pdf

Sujets

TIP Des exemples de tests unitaires en PHP : http://deptinfo.unice.fr/~renevier/index.html#prodev2012

Sujet PH1 : Gestion des stages

Encadrement : Michel Gautero.

Il s'agit de réaliser un site web permettant la gestion des stages dans un département de l'université comportant plusieurs formations. De nombreuses personnes interviennent dans la gestion d'un stage : L'entreprise, qui propose un stage, affecte un tuteur et intervient lors de la soutenance des stages proposés. L'étudiant qui recherche un stage parmi les offres proposées ou propose son propre stage, puis après l'établissement de la convention, entre en contact avec son tuteur enseignant, pour préparer au mieux rapport et soutenance. L'enseignant tuteur qui peut vouloir consulter la liste des entreprises, des stages affectés ou des étudiants sans stage et qui doit aussi pouvoir correspondre avec les étudiants dont il est le tuteur. Le ou les responsables des stages doit avoir tous les droits sur les listes d'entreprises, les listes d'enseignants, les listes d'étudiants, la liste des documents qui circulent entre les différents acteurs ainsi que la possibilité d'éditer ces différents documents. Il doit pouvoir valider les offres de stage déposées par les étudiants ou les entreprises et les affecter à une ou plusieurs formations. Il doit pouvoir affecter à chaque étudiant son tuteur enseignant, ainsi que préparer les jurys (composition, jour, heure, salle...)

Spécificités techniques :

  • HTML, CSS, PHP, JavaScript? et base de données MySQL?

Sujet PH2 : Configuration de diffusion d’information via le web

Encadrement : Philippe Renevier.

L’objectif du projet est de fournir une page de configuration pour définir des informations à diffuser. L’utilisateur pourra définir des pages auxquelles il pourra ensuite accéder via un identifiant unique. Cet accès est double : pour des modifications ultérieures mais surtout pour une consultation (voir le résultat, afin de diffuser l’information). Cette consultation est publique (pour tout le monde). De telles pages remplissent exactement un écran. Elles sont destinées à être diffusées sur écrans publiques. L’utilisateur du configurateur doit indiquer quelles sont les informations contenues sur une page. Ceci se fait en associant des sources d’informations à des formes de rendu et en les positionnant dans la page. Pour ce placement, le découpage peut être spatiale (mise en page) et/ou temporel (alternance d’informations, animations, etc.). Les sources d’informations, les formes de rendu et les mises en pages (spatiales et/ou temporelles) seront des éléments à fournir à l’utilisateur du configurateur : celui-ci les choisira pour construire sa page.

Votre travail consiste à mettre en place un tel configurateur :

  • En développant une page permettant de voir les pages ainsi créées
  • En développant quelques sources d’informations respectant un modèle de classe fourni initialement (et qui pourra évoluer) : lecteur de flux rss, lecteur de page web, lecteur flickr, etc.
  • En développant quelques mises en page respectant un modèle de classe fourni initialement (et qui pourra évoluer) : découpage fixe en 4 zones, découpage avec des zones pouvant contenir plusieurs formes de rendu qui apparaitront alternativement, etc.
  • En développant quelques formes de rendus respectant un modèle de classe fourni initialement (et qui pourra évoluer) : affichage de texte par liste, par animation (à la marquee), affichage d’image une à une, en mozaique, etc.
  • En développant les différentes étapes du configurateur

Spécificités techniques :

  • Web, php côté serveur, interaction avec javascript / css 2 ou 3, html 4 ou 5, etc.

Sujet J1 : Gestion des stages

Encadrement : Michel Gautero.

Il s'agit de réaliser une application Java permettant la gestion des stages dans un département de l'université comportant plusieurs formations. De nombreuses personnes interviennent dans la gestion d'un stage : L'entreprise, qui propose un stage, affecte un tuteur et intervient lors de la soutenance des stages proposés. L'étudiant qui recherche un stage parmi les offres proposées ou propose son propre stage, puis après l'établissement de la convention, entre en contact avec son tuteur enseignant, pour préparer au mieux rapport et soutenance. L'enseignant tuteur qui peut vouloir consulter la liste des entreprises, des stages affectés ou des étudiants sans stage et qui doit aussi pouvoir correspondre avec les étudiants dont il est le tuteur. Le ou les responsables des stages doit avoir tous les droits sur les listes d'entreprises, les listes d'enseignants, les listes d'étudiants, la liste des documents qui circulent entre les différents acteurs ainsi que la possibilité d'éditer ces différents documents. Il doit pouvoir valider les offres de stage déposées par les étudiants ou les entreprises et les affecter à une ou plusieurs formations. Il doit pouvoir affecter à chaque étudiant son tuteur enseignant, ainsi que préparer les jurys (composition, jour, heure, salle...)

Spécificités techniques :

  • Java (optionnellement base de données MySQL?).

Sujet J2 : Jeu de dames en réseau

Le sujet de ce projet est http://www.crescenzo.nom.fr/Projets/dames.html. Il sera programmé en Java portable ou Python portable. Il permettra de jouer en temps réel à deux joueurs connectés par Internet.

Les objectifs sont les points suivants : 2, 3, 4, 5, 8, et 10.1. Il s'agit d'objectifs obligatoires. Les autres objectifs présentés dans la page web, ainsi que les variantes, sont interdits à moins d'avoir été préalablement et explicitement acceptés par l'encadrant.

Spécificités techniques :

  • Java de préférence, python.

Sujet J3 : Simulateur de foules

Encadrement : Philippe Collet.

Il s'agit de réaliser un logiciel pour simuler le comportement d'un ensemble de personnes dans des lieux pour simuler des évacuations.

Fonctionnalités attendues

  • Configuration de la simulation : formes des pièces (simples au départ), nombre de personnes, sorties, obstacles
  • Simulation d'un déplacement normal, plus ou moins aléatoire, de personnes selon différentes situations (bureaux, musée, spectacle)
  • Simulation d'évacuation d'urgence
  • Comptage minimum d'un certain nombre d'éléments (temps moyen de sortie, temps total)
  • Moteur de simulation graphique dont les paramètres sont automatiquement générés par la simulation (le moteur graphique s'adapte aux dimensions de la pièce, aux nombres de personnes, etC.) : configuration, lancement, affichage en temps réel des statistiques.

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

  • Calcul de la "santé" des personnes à la fin de la simulation (nombre de chocs, état de panique)
  • Prise en compte de différentes types de personnes (vitesse de déplacement, panique et/ou agressivité)
  • Editeur convivial pour la configuration du simulateur

Spécificités techniques :

  • Java
  • API Swing pour la partie graphique

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 (personne, pièces/murs, collision, etc.) : commencez pas concevoir et implémenter une personne avec un mur, placez (par programme) une sortie ou une direction voulue, faites le passer sans mur, puis contourner le mur, 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 personne, un mur, etc.).

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

Sujet Py1: Compression d'images

Encadrement : Gilles Menez.

Il s'agit de réaliser deux programmes de compression d'images selon deux grandes approches:

  • sans perte, selon l'algorithme de Huffman
  • avec pertes, par quantification vectorielle et compression d'image

La quantification vectorielle est une méthode de compression avec pertes. Pour résumer de facon simpliste, il s'agit de remplacer un groupement de pixels par le code d'un groupement (le plus proche possible) figurant dans un dictionnaire. On obtient ainsi une image constituée de vecteurs d'un dictionnaire.

Chaque compresseur sera utilisé et évalué sur des images et séquences d'images de test.

Spécificités techniques :

  • Python

Sujet Py2: Simulateur d'ascenceur

Encadrement : Gilles Menez.

Il s'agit de faire évoluer le simulateur d'ascenseur en 3D dont je dispose pour faire l'apprentissage "des masques et des machines à états appliqués au contrôle d'un procédé physique". Ce simulateur a tout un tas de défauts : assez pauvre, plutot laid, nécessité d'etre "linker" avec le code du controle de l'ascenceur...

Fonctionnalités possibles

  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 :

  • Python ou C

Sujet Py3: Simulateur ""physique" d'un robot/voiture

Encadrement : Gilles Menez.

Un système physique est généralement régi par des équations différentielles. Par exemple sur un char, si je veux aller à droite de 60 degrés, comment faut-il "agir" sur les vitesses des chenilles pour réaliser l'opération ?

L'objectif de ce sujet est de produire un logiciel permettant, pour un modèle de robot donné, d'obtenir un simulateur "physique" temps réel graphique du robot. Ce simulateur permettra de répondre à des questions telles que : je mets "3rad/s" sur la chenille 1 et "2rad/s" sur la chenille 2; ou va le robot ? Une seconde étape consiste à essayer de le "piloter".

Spécificités techniques :

  • Python, C ou C++ (exceptionnellement)

-- PhilippeCollet - 25 Mar 2012
to top

I Attachment sort Action Size Date Who Comment
ProjetDevt-1-1112-4p.pdf manage 475.1 K 15 Feb 2012 - 12:31 PhilippeCollet  
ProjetDevt-2-1112-4p.pdf manage 755.1 K 05 Mar 2012 - 12:30 PhilippeCollet  
ProjetDevt-3-1112-4p.pdf manage 954.1 K 05 Mar 2012 - 13:14 PhilippeCollet  
Pdevt-Attribution2012.pdf manage 32.6 K 06 Mar 2012 - 17:00 PhilippeCollet  
ProjetDevt-4-1112-4p.pdf manage 150.3 K 14 Mar 2012 - 11:42 PhilippeCollet  
exemple-simulateurGraphique.zip manage 8.5 K 15 Mar 2012 - 09:30 PhilippeCollet  
ProjetDevt-5-1112-4p.pdf manage 147.5 K 25 Mar 2012 - 17:04 PhilippeCollet  
ProjetDevt-6-1112-4p.pdf manage 113.4 K 25 Mar 2012 - 17:06 PhilippeCollet  

You are here: Linfo > ProjetDevt2012

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