d'enseignement
en ligne
Les thèmes abordés dans le cadre du projet seront principalement
- la spécification des besoins utilisateurs,
- la conception d'applications à 3 couches, y compris
- la conception des interfaces utilisateurs,
- la conception du modèle de l'application,
- la structuration et persistance des données;
- le contrôle qualité du système.
d'apprentissage
Les étudiants ayant suivi avec fruit ce cours seront capables de d'aborder la construction d'un système d'information non trivial en suivant quelques pratiques élémentaires de génie logiciel. Plus spécifiquement,
ils auront développé leur capacité à
- analyser les besoins utilisateurs d'un système d'information,
- spécifier systématiquement les besoins utilisateurs,
- concevoir l'architecture d'un système d'information vis-à-vis des besoins spécifiés,
- implémenter le système conçu dans un langage orienté objet, et
- contrôler la qualité du système d'information en incorporant des tests fonctionnels.
En plus, les étudiants auront développé des compétences méthodologiques et opérationnelles, telles que
- travailler en équipe : diviser et coordonner les tâches de développement du système, de manière à ce que chaque membre du groupe puisse défendre ce projet face à d'autres informaticiens qui souhaitent en évaluer la qualité;
- réaliser une démonstration convaincante du logiciel développé face à de futurs utilisateurs de cette application;
- réaliser un débriefing technique effectif face à des futurs développeurs de cette application.
La contribution de cette UE au développement et à la maîtrise des compétences et acquis du (des) programme(s) est accessible à la fin de cette fiche, dans la partie « Programmes/formations proposant cette unité d’enseignement (UE) ».
des acquis des étudiants
Le projet sera évalué sur base de la qualité de
- l'analyse et conception du système (30%), y compris la conformité aux besoins utilisateurs, l'architecture logicielle, la structure et persistance des données et l'interface utilisateur;
- l'implémetation du système (30%), y compris la maintenabilité (lisibilité, documentation, tests) et l'efficacité;
- le rapport final du projet (10%).
Le projet sera clôturé par une défense orale comprenant
- une première partie de démonstration de la fonctionnalité du système (10%),
- une deuxième partie de présentation technique du système (10%), et
- un temps de questions-réponses (10%).
Les étudiants se présentant en deuxième session devront ajouter au système des extensions de fonctionnalité commensurées au temps additionnel qu'ils auront par rapport à la première session. Les critères d'évaluation resteront inchangés.
Le projet se basera sur des concepts introduits lors des séances encadrées, aussi bien que des concepts vus dans les cours suivis en parallèle ou précédemment.
Le bon déroulement du projet sera suivi au moyen des séances encadrées en salle informatique, dont une première partie sera dédié à introduire les concepts de base sous forme d'exposé magistral, et une deuxième partie consistera à une séance pratique pendant laquelle les étudiants pourront poser leur questions et montrer les problèmes rencontrés.
Le projet sera réalisé par groupe de 2 ou 3 étudiants. Le choix des coéquipiers sera libre.
Les étudiants seront encouragés à rendre et présenter leurs résultats en anglais afin d'améliorer leurs compétences de communication en anglais sur une thématique technique.
Les étudiants réaliseront en petits groupes la conception, le développement, la démonstration et le débriefing technique de l'application.
Certains méthodologies et outils seront introduits selon les besoins du projet, notamment :
- programmation orientée objet et asynchrone en JavaScript,
- spécification vérifiable des besoins utilisateurs en Cucumber,
- conception des interfaces web dynamiques en HTML, CSS et JavaScript,
- programmation des services web en node.js,
- utilisation des bases de données non relationnelles en MongoDB,
- contrôle qualité du système au moyen des tests unitaires, et de l'analyse statique du code source.
Ces contenus visent à être complémentaires par rapport à des cours suivis en parallèle et précédemment, de sorte à élargir l'éventail conceptuel et technique auquel les étudiants pourront faire appel lors de leur parcours professionnel, particulièrement lorsqu'ils devront développer des applications basées sur les technologies web.
Préalables :
- LSINF1101 bases de la programmation orienté objet
- LSINF1103 bases de l'algorithmique
en charge