Volumes horaires
- CM -
- Projet 48.0
- TD -
- Stage -
- TP -
- DS -
Crédits ECTS
Crédits ECTS 4.0
Objectif(s)
Le projet a deux orientations : réseau ou systèmes embarqués. Le choix des sujets est réalisé lors de la première séance commune à tous les étudiants.
Pour la partie systèmes embarqués : en général, concevoir et valider complètement un système embarqué intégré matériel/logiciel, de la spécification d'architecture jusqu'au prototype, par exemple sur réseau programmable ou sur carte à base de microcontrôleur. Certains sujets peuvent être davantage sur des réalisations faisant surtout intervenir du logiciel, embarqué ou d'aide à la conception (par exemple, portage de systèmes d'exploitation ou outils CAO).
Pour la partie réseau : développement d'une application réseau Java de zéro ou à partir de librairies existantes afin de sensibiliser les étudiants à l'implémentation et l'intégration de protocoles réseaux au sein d'un prototype abouti. Il faudra spécifier l'architecture logicielle, l'implémenter, vérifier la conformité du prototype implémenté en interagissant avec des applications existantes et mettre en évidence les performances. L'application à réaliser est un client bittorrent.
Regis LEVEUGLE
Contenu(s)
Pour la partie systèmes embarqués :
Chaque groupe d'étudiants a un sujet différent, avec des domaines d'application variés (traitement d'images, musique, avionique, spatial, sécurité et chiffrement, etc.). Les sujets changent chaque année. Les outils et techniques employés dépendent bien sûr du sujet mais la trame générale reste la même :
- Spécification de l'architecture du système (matériel et/ou logiciel), définition du planning de réalisation
- Développement des fonctions (matériel décrit au niveau RTL ou en C pour de la synthèse haut niveau HLS, logiciel en langage de haut niveau et parfois assembleur pour les fonctions critiques, …)
- Intégration des différentes parties du système et selon les sujets placement/routage sur un réseau programmable
- Démonstration au niveau applicatif
Pour la partie réseau :
L'intérêt de ce projet est que les étudiants doivent organiser leur travail eux-même, chercher la documentation ou du code existant en ligne et mettre en place progressivement un prototype opérationnel couvrant les différents scénarios qu'ils définiront au fur et à mesure. Le langage de programmation est Java. Outre la gestion d'équipe, ce projet sera l'occasion de concevoir une architecture logicielle orientée objet, d'aborder des concepts avancés de programmation réseau (socket non bloquante, paradigme pair à pair (client/serveur), parseur ...) et de programmation tout court (thread, clean code, design pattern : machine à état, observeur, réacteur, ...).
Vous utiliserez un environnement de développement intégré (Eclipse/Netbeans), un système de contrôle de version (Git) et vous testerez la compatibilité de votre trafic réseau au fur et à mesure par l'intermédiaire d'outils réseaux (Wireshark, ...) ou en interagissant directement avec des applications existantes.
Enfin vous analyserez les performances de votre application (Jprofiler, débit réseau, ...) au sein d'un scénario facilement reproductible (automatisé) impliquant le téléchargement d'un fichier volumineux entre votre client et plusieurs clients bittorrent existants disséminés sur plusieurs machines du réseau Ensimag. Un comparatif des performances des clients des différents groupes pourra alimenter une discussion sur l'efficacité des stratégies de téléchargement implémentées.
PrérequisPour la partie systèmes embarqués :
Cours architecture et systèmes intégrés 2A, et selon les sujets langage VHDL, programmation C, bases de conception de circuit (conception logique, outils CAO), bases de systèmes d'exploitation
Pour la partie réseau :
Cours Réseaux 2A (TP inclus), programmation orientée objet Java, Wireshark
Pour la partie systèmes embarqués :
2 soutenances intermédiaires comptant globalement pour 30% de la note
Rapport et soutenance finale de 30 minutes par groupe (présentation, questions, démonstration)
Pour la partie réseau :
revues de sprint intermédiaires + code + rapport + démonstration prototype à la fin du projet
N1 = P1 (projet)
Pas de rattrapage
Le cours est programmé dans ces filières :
- Cursus ingénieur - Filière SEOC - Semestre 9
Code de l'enseignement : 5MMPSEOC
Langue(s) d'enseignement :
Le cours est rattaché aux structures d'enseignement suivantes :
Vous pouvez retrouver ce cours dans la liste de tous les cours.