Professeur responsable
Christian Jauvin
Préalable
INF 1220
Objectifs
Situer le génie logiciel dans son contexte historique et expliquer les problèmes fondamentaux qu'il cherche à résoudre.
Utiliser les outils essentiels du développeur moderne : tests automatisés, contrôle de version, gestion des dépendances et intégration continue ainsi que le développement assisté par l'IA.
Réaliser un système logiciel modulaire en appliquant les grands principes de l'architecture logicielle.
S'initier sur un projet logiciel en équipe à l'aide des méthodes agiles et des outils de collaboration actuels.
Déployer, opérer et surveiller une application en production.
Identifier les dimensions éthiques, économiques et sociales de la production d'un logiciel.
Contenu
Le cours est divisé en six modules, qui couvrent les grands domaines du génie logiciel :
Le génie logiciel : une introduction à la discipline, à sa problématique centrale et à l'histoire des idées qui l'ont façonné.
Réalisation d'un logiciel correct : les outils et les pratiques du programmeur individuel : les tests, la gestion de versions avec Git, la gestion des dépendances et l'intégration continue.
Passer du programme au système : le passage du programme individuel au système logiciel, avec ses multiples composantes en interaction. On y aborde l'architecture, les API, les interfaces utilisateur et les données.
Construire un logiciel en équipe : la collaboration à l'aide de GitHub, les méthodes agiles et la gestion de projet.
Faire vivre un logiciel : l'opération d'un logiciel en production, le déploiement, l'infonuagique, l'observabilité et la sécurité.
Le logiciel dans le monde : la culture du code source libre, l'économie du logiciel et l'impact de l'IA sur le développement logiciel.
Matériel didactique
Site Web du cours
Renseignements technologiques
Consultez l'information sur le matériel informatique recommandé.
Encadrement
L'encadrement est individualisé et assuré par un professeur, une professeure ou une personne tutrice. Les communications se font par courriel ou, sur demande, par vidéoconférence ou téléphone.
Évaluation
L'évaluation repose sur un projet d'application Web transactionnelle en quatre étapes (10 %, 15 %, 15 % et 25 %) et deux examens oraux (10 % et 25 %).
Échelle de conversion
| Notation | Valeur numérique | Valeur en pourcentage |
|---|---|---|
| A+ | 4,3 | 96 à 100 % |
| A | 4 | 92 à 95 % |
| A- | 3,7 | 88 à 91 % |
| B+ | 3,3 | 84 à 87 % |
| B | 3 | 80 à 83 % |
| B- | 2,7 | 76 à 79 % |
| C+ | 2,3 | 72 à 75 % |
| C | 2 | 68 à 71 % |
| C- | 1,7 | 64 à 67 % |
| D+ | 1,3 | 60 à 63 % |
| D | 1 | 50 à 59 % |
| E | 0 | 0 à 49 % |
* Échelle de conversion actuellement en vigueur pour ce cours.