Le cours comprend 13 séances de cours théorique et 12 séances de laboratoire. Il est donné en format accéléré à raison de deux séances de cours et deux séances de laboratoire par semaine.
Durant les séances de cours, du contenu théorique sera présenté durant les deux premières séances portant sur les généralités de la conduite de projet informatique. D'autres séances de cours théoriques pourraient s'ajouter selon les besoin des projets à réaliser. Le reste des séances théoriques ainsi que les séances de laboratoire sont consacrées entièrement à la réalisation du projet en équipe assistée par la personne enseignante.
Dans le cadre de ce cours, les compétences acquises dans le cadre du programme de cheminement universitaire en technologie (option informatique) sont mises en application dans le cadre d'un projet d'envergure. La réalisation se fait de façon autonome par les étudiant.e.s qui sont encouragés à combler leurs lacunes pas eux-mêmes. L'enseignante ou l'enseignant est toutefois disponible pour guider les personnes étudiantes, au besoin.
Les étudiantes et les étudiants doivent proposer un projet de session de leur choix qui respecte les exigences énoncées ci-dessous. Les sujets proposés doivent être approuvés par la personne enseignante afin de s'assurer du respect des objectifs et de l'équité entre les groupes.
Séance 1: Méthodologies et Analyse des besoins logiciels
Séance de laboratoire:
Séance 2 : Modélisation
Séance de laboratoire:
-
Modélisation des principaux cas d'utilisation
-
Diagramme des séquences système des principaux cas d'utilisation
-
Identification des principaux concepts du domaine et leurs relations (diagramme de concepts)
-
Diagramme architectural
Séances 3 à 13: Conception et développement du projet
-
Mise en place de l'architecture
-
Développement des composants métiers de l'application
-
Développement des interfaces
-
Revues régulières avec l'enseignant.e qui agit en soutien et comme expert produit
-
Présentation de matière et d'outils techniques selon les besoins et les choix technologiques des étudiants, selon le jugement de la personne enseignante.
Séances de laboratoire:
Exigences du projet
Le projet à réaliser est laissé au choix des membres d'une équipe. La personne enseignante agira comme guide pour aider les étudiantes et les étudiants à choisir et délimiter le périmètre de leur projet. Des exemples d'énoncés de projets sont proposés sur le site du cours à titre de référence. Chaque projet doit répondre aux exigences suivantes:
-
Comporter une partie backend accessible via une API REST qui implémente la logique métier de l'application et contrôle l'accès aux données.
-
Comporter au moins deux interfaces usager qui doivent être soit une interface Web, une interface mobile ou une interface Desktop (en Java Swing ou FX). Les deux interfaces doivent utiliser des technologies différentes (ex.: pas deux interfaces Web).
-
Comporter une base de données relationnelle avec minimalement cinq (5) tables qui nécessitent des jointures (présence de clés étrangères) pour acquérir les données.
-
Être multi-usager avec authentification des usagers. L'application doit fournir des informations personnalisées et/ou des fonctionnalités personnalisées selon le profil de l'usager authentifié.
-
N'utilise pas des cadriciels et librairies autres que celle qui ont été approuvées collectivement par les enseignantes et enseignant du cours. La liste des cadriciels et librairies approuvées est publiée sur le site général du cours (voir section Références). Toutefois, la liste fournie n'est pas exhaustive et toute personne étudiante peut proposer d'y ajouter une nouvelle entrée.
En tout état de cause, l'enseignant ou l'enseignante peut émettre des exigences supplémentaires pour un projet proposé, si il ou elle le juge opportun, et ce pour respecter les exigences d'envergure et d'équité entre les groupes.
Réalisation du projet
Le projet doit être réalisé selon la méthodologie agile SCRUM. Les étudiantes et étudiants utiliseront l'outil de leur choix pour effectuer le suivi du projet (Google Docs, Jira, Trello, etc.). Ce dernier peut-être imposé par la personne enseignante.
Le projet doit être réalisé en utilisant l'outil de travail collaboratif Git et publié sur un dépôt privé sur GitHub. De plus, un contrat d'équipe doit être accepté et signé par tous les membres de l'équipe et déposé sur Moodle. Un gabarit de contrat d'équipe est publié sur le site général du cours (Voir section Références).
Le projet doit être réalisé en trois sprints dont les exigences (backlog) seront déterminées par l'équipe et discutées/validées par l'enseignante ou l'enseignant.
Conformément à la méthodologie SCRUM, tous les membres du projet doivent être solidaires et compétents sur tous les aspects du projet. Tous les membres du projet doivent contribuer de façon équitable aux projet. Les logs de GitHub ainsi que les revues par les pairs seront utilisées pour évaluer la contribution de chaque membre de l'équipe à chacune des évaluations du projet.