Skip to topic
|
Skip to bottom
Jump:
Linfo
Linfo Web
Linfo Web Home
Changes
Index
Search
Webs
Accueil
Docs
Enseignants
Linfo
MIPS
Main
Minfo
Minfo03
Minfo04
Minfo05
Minfo06
Minfo07
Private
Projets
Sandbox
TWiki
Create
personal sidebar
Edit
Attach
Printable
Linfo.ProjetDevt2012
r1.13 - 30 Apr 2012 - 12:34 -
PhilippeCollet
topic end
Start of topic |
Skip to actions
---+ Projet de développement (2011-2012) %TOC% ---++ 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 * Cours 1 : principes généraux - gestion de configuration : [[%ATTACHURL%/ProjetDevt-1-1112-4p.pdf][ProjetDevt-1-1112-4p.pdf]] * Cours 2 : Gestion de projet et outillage de suivi : [[%ATTACHURL%/ProjetDevt-2-1112-4p.pdf][ProjetDevt-2-1112-4p.pdf]] * Cours 3 : Environnement de développement intégré (Eclipse) : [[%ATTACHURL%/ProjetDevt-3-1112-4p.pdf][ProjetDevt-3-1112-4p.pdf]] * Cours 4 : V&V et tests unitaires, en Java : [[%ATTACHURL%/ProjetDevt-4-1112-4p.pdf][ProjetDevt-4-1112-4p.pdf]] * Cours 5 : Suite des tests en Java, Tests PHP : [[%ATTACHURL%/ProjetDevt-5-1112-4p.pdf][ProjetDevt-5-1112-4p.pdf]] * Cours 6 : Compléments sur les tests, documentation, modalités de soutenance : [[%ATTACHURL%/ProjetDevt-6-1112-4p.pdf][ProjetDevt-6-1112-4p.pdf]] ---++ 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 et planning de soutenance des projets* : ProjetDevt2010Soutenance --> * *Modalités de soutenance des projets* : ProjetDevt2012Soutenance ---++ 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 (%X% *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) : [[%ATTACHURL%/Pdevt-Attribution2012.pdf][Pdevt-Attribution2012.pdf]] ---+ Sujets %T% 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*: * [[%ATTACHURL%/exemple-simulateurGraphique.zip][exemple-simulateurGraphique.zip]] ---++ 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 ... 1. 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) -- Main.PhilippeCollet - 25 Mar 2012
to top
End of topic
Skip to action links
|
Back to top
Edit
|
Attach image or document
|
Printable version
|
Raw text
|
More topic actions
Revisions: | r1.13 |
>
|
r1.12
|
>
|
r1.11
|
Total page history
|
Backlinks
You are here:
Linfo
>
ProjetDevt2012
to top
Copyright © 1999-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo?
Send feedback