Diplômes intégrant cet élément pédagogique :
Descriptif
Le projet met en jeu les compétences théoriques et pratiques acquises durant l'année 3. Il s'agit de développer un logiciel sur 3 semaines à plein temps par groupe de 5 ou 6 élèves.
Cet enseignement a pour but
- de renforcer les acquis
- illustrer les notions de gestion de projet et de génie logiciel.
Le cadre imposé est la réalisation d'un simulateur avec multiples objets en interaction. Les applications finales peuvent être très diverses selon ce qu'on simule : jeux, monde physique, protocoles, ...
Les sujets ont en commun les concepts suivants :
- le comportement de chaque objet actif est défini par un automate.
- l'analyse lexicale : lecture et interprétation d'un fichier de configuration (décor, comportement, équipe)
- la programmation par événement : couplage de l'interface graphique et des calculs (affichage, interaction, mise à jour)
- l'ordonnancement (scheduling) : simulation fluide de plusieurs éléments actifs simultanément sans utiliser de threads
Le projet est l'occasion d'une introduction au génie logiciel à travers :
- l'utilisation d'un système de gestion de version (git)
- l'importance de l'architecture d'un logiciel
- le rôle des tests d'intégration
- la réalisation de documentations développeur / utilisateur
- la préparation d'une démo.
Le projet comporte 2 phases :
- 1ère semaine : reflexion, réalisation d'un prototype, présentation d'un projet, établissement d'un contrat
- 2 et 3ème semaines : développement, soutenance et démonstration, évaluation du respect du contrat
This project involves the theoretical and practical skills acquired during year 3. It involves developing a software program for 3 weeks full-time in groups of 5 or 6 students.
This course aims at
- strengthening the abilities
- illustrating the notions of project management and software engineering.
The imposed framework is the realization of a simulator with multiple interacting objects. The final applications can be very different depending on what is simulated: games, physical world, protocols, ...
The topics have in common the following concepts:
- the behavior of each active object is defined by an automaton
- lexical analysis: reading and interpreting a configuration file (scenery, behavior, team)
- Event programming: coupling of the graphical interface and calculations (display, interaction, update)
- scheduling: fluid simulation of several active elements simultaneously without using threads
The project is an opportunity for an introduction to software engineering through
- the use of a version management system (git)
- the importance of software architecture
- the role of integration tests
- the realization of developer / user documentation
- the preparation of a demo.
The project has 2 phases:
- 1st week: brainstorming, realization of a prototype, presentation of a project, establishment of a contract
- 2nd and 3rd weeks: development, defense and demonstration, evaluation with respect to the contract
Pré-requis recommandés
Avoir suivi les cours de l'année 3 en programmation impérative et objets, automates, analyse syntaxique.
Having taken the courses of year 3 in imperative and object-oriented programming, automata and syntactic analysis is required.
Compétences visées
Upon completion of this project the student has a first draft of experience.
He faced some difficulties:
- leading a project team
- defending a proposal and leading it to its realization
He became aware of the importance:
- to plan, delegate and communicate
- to organize a code of average size
- to reuse existing libraries
Bibliographie
Exemples de sujet des années passées :
- jeu éducatif qui illustre les concepts de programmation (inspiré du serious game LigthBot)
- jeu de plateau o๠chaque élément réagit aux même évènements par des actions différentes
- simulation de compétition de robot dont le comportement est défini par un automate
- jeu classique avec nombre de joueurs arbitraires
site web du projet : http://www-verimag.imag.fr/~perin/enseignement/RICM3/infpl2/
Informations complémentaires
Lieu(x) : GrenobleLangue(s) : Français