Software engineering project

linfo2255  2026-2027  Louvain-la-Neuve

Software engineering project
La version que vous consultez n'est pas définitive. Cette fiche d’activité peut encore faire l'objet de modifications. La version finale sera disponible le 1er juin.
6.00 crédits
30.0 h + 30.0 h
Q1
Préalables
Requis : expérience initiale en projets informatiques, telle que visée par le cours LINFO1001 
Requis : compétences en programmation dans le langage C telles qu'enseignées dans le cours LEPL1503 
Thèmes abordés
Ce cours traite d'un sujet avancé spécifique ou d'une sélection des sujets d'intérêt actuellement au niveau de la recherche dans le domaine du génie logiciel.
Le sujet (s) peut (peuvent) varier d'année en année, et sera choisi parmi une variété de domaines d'ingénierie logicielle tels que l'informatique de données à forte intensité, l'analyse de logiciels, le développement et l'analyse de grands systèmes évolutifs de logiciels, les techniques liées aux grandes quantités de données, la fouille du code des logiciels , les systèmes de recommandation de logiciels, la visualisation de logiciels, les nouvelles technologies de programmation, les exigences de logiciels et l'analyse logicielle, l'ingénierie logicielle basée sur des modèles, la gestion de la configuration de logiciel, les processus d'ingénierie logicielle, les outils et méthodes de génie logiciel, les tests et la qualité des logiciels, etc.
Acquis
d'apprentissage

A la fin de cette unité d’enseignement, l’étudiant est capable de :

Eu égard au référentiel AA du programme « Master ingénieur civil en informatique », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • INFO2.1-5
  • INFO4.1-4
  • INFO5.1-6
  • INFO6.1, INFO6.5
Eu égard au référentiel AA du programme « Master [120] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • SINF1.M3
  • SINF2.1-4
  • SINF4.1-4
  • SINF5.1-3
  • SINF6.2-4
Eu égard au référentiel AA du programme « Master [60] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :
  • 1SINF1.M3
  • 1SINF2.1-4
  • 1SINF3.1-4
  • 1SINF4.1-3
  • 1SINF5.2-4
A l'issue de ce cours, les étudiants auront appris à développer un produit logiciel de grande taille dans des conditions semi-professionnelles.  Les étudiants ayant suivi ce cours avec fruit seront capables de :
  • décrire les différences entre plusieurs modèles de développement majeurs (par exemple, cascade, itératif et agile);
  • distinguer entre les phases de développement de logiciels (spécifications, architecture, conception, implémentation, validation, documentation);
  • réaliser, d'une manière rigoureuse et systématique, les artefacts produits dans ces différentes phases du cycle de vie du logiciel;
  • appliquer une méthodologie de développement logiciel actuellement pratiquée dans l'industrie;
  • travailler efficacement dans une équipe pour développer un système logiciel de taille moyenne à grande;
  • gérer la coordination et la communication entre les différents membres de l'équipe;
  • interagir avec un client pour identifier ses besoins, pour clarifier les spécifications imprécises, et de prendre en compte la demande des modifications tout au long du processus de développement;
  • décrire les exigences fonctionnelles d'un système logiciel en utilisant, par exemple, les cas d'utilisation ou utilisateurs des histoires;
  • estimer le temps et les ressources nécessaires pour compléter un tel projet de développement de logiciels, planifier les tâches à exécuter et les délivrables à produire, et assurer le respect de cette planification;
  • utilisez un outil de gestion de projet pour affecter le suivi les tâches de développement logiciel;
  • mettre en pratique différentes méthodes et techniques pour assurer la qualité du logiciel produit;
  • comprendre les problèmes inhérents au développement de grands systèmes logiciels impliquant différentes parties prenantes et qui se composent de plusieurs composants.
 
Contenu
Ce projet de génie logiciel consiste en le développement (analyse, conception, implémentation, validation, documentation, intégration et déploiement) d'une application logicielle réaliste et non-triviale, si possible proposée par et avec la participation d'un client réel, dans des conditions de travail semi-professionnelles.
Le sujet de l'application à construire est proposé par un partenaire industriel ou une organisation à but non lucratif qui participe à l'organisation de ce cours.
Des équipes de 6 à 8 étudiants (nécessaires pour réaliser un grand projet), collaboreront, supervisées par un chef de projet.
Des réunions hebdomadaires auront lieu avec le chef de projet (un assistant ou tuteur) pour présenter le progrès et les difficultés rencontrées, pour évaluer les alternatives, et discuter de la distribution et de la planification du travail au sein de l'équipe.
L'application à développer sera très probablement une application web, mais le choix du langage de programmation, de l'environnement, le cadre d'application et des outils de développement dépendront des exigences du client du projet.
Méthodes d'enseignement
Le cours repose sur le développement complet (analyse, conception, implémentation, validation, documentation, intégration et déploiement) d’un logiciel de grande envergure pour un client potentiel, en équipe de 6 à 8 étudiants, supervisée par un chef de projet.
Des réunions hebdomadaires auront lieu avec le chef de projet afin d’assurer le suivi du travail, la planification des tâches et la progression du projet. Différents prototypes et rapports techniques devront être produits au fil du semestre.
Une attention particulière sera portée à l’utilisation responsable des outils d’intelligence artificielle générative :
  • Ils peuvent seulement être mobilisés comme outils de soutien à la réflexion dans la phase initiale d’analyse, par exemple pour stimuler le brainstorming et amorcer les discussions sur l’identification des besoins et des exigences.
  • Par contre, leur emploi n’est pas autorisé pour la production de code (implémentation et tests), ni pour la génération des artefacts de conception (design).
  • Cette règle, qui sera appliquée de façon stricte, vise à préserver l’authenticité du travail d’ingénierie logicielle des étudiants, tout en leur permettant d’explorer de manière critique le rôle des technologies émergentes dans le processus de développement logiciel.
Modes d'évaluation
des acquis des étudiants
L’évaluation du cours sera basée sur :
  • La participation individuelle, continue, active et équilibrée aux travaux de groupe et aux réunions hebdomadaires avec les assistants/tuteurs du cours.
  • La réalisation de deux à trois prototypes intermédiaires, accompagnés de leurs rapports techniques correspondants.
  • Le rapport final, le système livré et sa documentation, ainsi que la présentation et la démonstration du produit final devant le client ou un intermédiaire.
  • L’intégration des solutions des différents groupes dans un produit complet.
Attention ! Étant donné que ce cours repose sur la participation à un projet d’équipe tout au long de l’année, les notes de projet seront automatiquement conservées en seconde session. Il ne sera donc pas possible de refaire le projet ou d’améliorer sa note en seconde session.
Précision importante : La participation active et équilibrée de chaque étudiant est attendue dans l’ensemble des volets du projet :
  • l’analyse et la conception,
  • le développement (implémentation et tests),
  • l’intégration,
  • la documentation (rapports et démonstration).
Cette répartition vise à garantir une expérience d’apprentissage complète et équitable pour tous. Ainsi, pour chaque prototype, un étudiant doit démontrer une contribution tangible dans chacun de ces volets. En cas d’absence de participation dans un ou plusieurs de ces volets, l’étudiant concerné pourra se voir attribuer une note individuelle de 0 pour le prototype correspondant.
Rappel : Le non-respect des règles concernant l’utilisation de l’IA générative (cf. Méthodes d’enseignement) pourra entraîner des pénalités pouvant aller jusqu’à l’attribution d’une note de 0 pour l’étudiant ou le groupe d’étudiants concernés pour l’activité en question.
Autres infos
Préalables:
  • Avoir une bonne connaissance et expérience avec les concepts de la programmation orientée objet, les algorithmes et les structures de données.
  • Avoir participé à l'élaboration d'un système logiciel de petite à moyenne échelle.
Bibliographie
French
Des lectures supplémentaires seront suggérées dans le plan de cours qui décrit les produits livrables et l'organisation du projet. Les supports de cours pertinents, des slides et des informations pratiques seront accessibles sur Moodle, qui sera également le principal moyen de communication entre l'enseignant et les étudiants.
English Additional reading material will be suggested in the course plan which describes the deliverables and organisation of the project. All relevant course material, slides and practical information will be available on Moodle, which will also be the main means of communication between the teacher and the students.
Faculté ou entité
en charge


Programmes / formations proposant cette unité d'enseignement (UE)

Intitulé du programme
Sigle
Crédits
Prérequis
Acquis
d'apprentissage
Master [120] : ingénieur civil en informatique

Master [120] en sciences informatiques

Master [60] en sciences informatiques