MGL870-A26 - Architecture logicielle avancée : études de cas et preuves de concept
Ce cours examine des sujets avancés et émergents en architecture logicielle au moyen de séminaires appuyés sur la recherche, d’études de cas industrielles et de preuves de concept (PoC) réalisées en atelier. Les étudiants apprennent à raisonner sur des décisions architecturales en contexte d’incertitude, à expliciter et valider des compromis entre attributs de qualité, et à formuler des hypothèses architecturales testables. L’approche est résolument pratique et fondée sur l’évidence : chaque équipe conçoit, documente et évalue itérativement une architecture à l’aide d’artefacts structurés (vues, ADR, scénarios d’attributs de qualité, registre de risques) et d’expériences reproductibles (mesures, instrumentation, comparaison à une baseline). Les séances hebdomadaires alternent discussion critique de cas (recherche/industrie) et mise en œuvre de prototypes permettant de comparer des alternatives telles que monolithe vs microservices, flux synchrones vs orientés événements, coordination transactionnelle vs sagas, choix de plateforme (API gateway/mesh), observabilité dès la conception (SLO, traces, métriques, journaux), tactiques de performance et de passage à l’échelle (caching, batching, backpressure), résilience via injection de pannes, et contrôles de sécurité avec quantification de la surcharge. Le cours se conclut par une démonstration et une soutenance où les décisions architecturales sont justifiées par des résultats mesurés, un protocole clair et des artefacts reproductibles.