CentraleSupélec LMF, UMR CNRS 9021
Département informatique Laboratoire Méthodes Formelles
Bât Breguet, 3 rue Joliot-Curie Bât 650 Ada Lovelace, Université Paris Sud
91190 Gif-sur-Yvette, France Rue Noetzlin, 91190 Gif-sur-Yvette, France
Consignes pour les projets de développement logiciel

Langages et environnement de programmation

Vous pouvez utiliser Java ou Python pour votre projet.

Pour les projets qui comportent une interface graphique, je recommande l'utilisation de Java.

En règle générale, pour simplifier les problèmes d'interface graphique, je propose aux élèves d'utiliser l'environnement Greenfoot. Un kit contenant un projet Eclipse qui permet d'utiliser Greenfoot est fourni.

Pour les interfaces graphiques en Python, vous pouvez utiliser le module tkinter, comme vous l'avez fait en étude de laboratoire en première année. Vous pouvez également réaliser l'interface graphique dans une page web grâce à l'un des outils suivants :

Vous devrez créer un dépôt GIT sur https://gitlab.centralesupelec.fr et m'ajouter comme développeur (utilisateur boulange). Ce dépôt vous permettra de conserver l'historique du développement de votre projet, et de gérer efficacement les contributions des différents membres du binôme ou trinôme.

Déroulement du projet

Après la séance de choix des sujets, chaque binôme doit travailler individuellement.

Une première étape, entre deux et quatre semaines après le début du projet, consiste à me rendre un premier rapport détaillant ce qui sera fait précisément dans le projet (spécification), et comment cela sera fait (diagramme de classes, choix des algorithmes, éventuellement choix des bibliothèques utilisées). Il n'est pas indispensable d'utiliser un modeleur UML pour cela.

Pour le suivi de votre projet, en cas de problème, ou juste pour me tenir informé de l'avancement, il est recommandé de prendre rendez-vous par e-mail. Je ne suis pas nécessairement présent dans mon bureau pendant les créneaux de projet prévus à l'emploi du temps, mais je peux être disponible à d'autres moments.

Les projets se terminent avec la séquence. Ils doivent donc être rendus au plus tard la dernière semaine, qui est aussi celle des examens. Si vous êtes prêts avant, vous pouvez prendre rendez-vous pour votre soutenance la semaine d'avant pour éviter de trop charger votre semaine d'examens.

C'est à vous de prendre rendez-vous suffisamment tôt pour la soutenance, qui dure une vingtaine de minutes. Au cours de cette soutenance, je vous pose des questions sur votre code et sur votre rapport de façon à éclaircir les points qui n'auraient pas été suffisamment détaillés dans le rapport ou dans les commentaires. C'est aussi l'occasion pour vous de défendre votre projet, par exemple en montrant un comportement particulier sur un jeu de données choisi. C'est toutefois votre rapport qui doit constituer la meilleure défense de votre projet.

Le rapport doit contenir :

  • une description de ce que fait votre programme
  • un mode d'emploi (permettant notamment de lancer le programme)
  • une documentation de la conception du projet (choix de conception, algorithmes utilisés, rôles des différentes classes, éventuellement format des fichiers etc.)

La lecture de ce rapport doit permettre d'utiliser correctement le programme. Elle doit aussi permettre de déterminer dans quelle méthode de quelle classe il faut regarder pour comprendre en détail un aspect donné du comportement du programme. Ce n'est qu'à ce niveau de détail que les commentaires prennent le relai du rapport.

Le rapport (au format PDF) et le projet (archive Zip) doivent être fournis quelques jours avant la soutenance afin que je puisse les évaluer et préparer la soutenance.

Les dates limites et les modalités de livraison sont indiquées sur la page décrivant les sujets proposés.

Conduite du projet

C'est à vous de prendre en main votre projet. Les sujets sont suffisamment simples pour que la réalisation se fasse aisément en une séquence. Les projets qui se terminent mal sont généralement des projets pour lesquels aucun travail n'a été fourni (avec éventuellement plagiat), et des projets dont la conduite a été négligée. Si vous arrivez en fin de séquence avec un projet qui ne fonctionne pas, et que vous n'êtes jamais venu me voir auparavant, vous êtes dans un cas de mauvaise conduite de votre projet. Même si votre projet fonctionne, mais que je ne vous ai pas vu de la séquence, vous aurez du mal à me convaincre que vous avez bien conduit votre projet et que tout a été fait correctement.

Les éléments fondamentaux de la bonne conduite d'un projet sont :

  • respecter les consignes données par votre encadrant
  • travailler régulièrement
  • ne pas rester bloqué trop longtemps sur un problème (donc contacter son encadrant au-delà d'une demi-journée de travail sans résultat)
  • informer votre encadrant de façon à avoir un retour sur ce que vous faites
  • anticiper la fin de la séquence afin d'avoir le temps de rédiger un rapport correct (cela commence dès la rédaction du premier rapport)

D'autre part, beaucoup de choses peuvent être négociées si elles sont anticipées (absences, départ à l'étranger, aménagements pour la soutenance). Par contre, mettre l'encadrant au pied du mur au dernier moment risque de conduire à un blocage et à la non validation de votre projet (ce qui peut vous amener à refaire un projet dans une autre séquence ou à passer en jury).