Logo ÉTS
Session
Cours
Responsable(s) Fabio Petrillo

Se connecter
 

Sauvegarde réussie
La notification a été envoyée
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Fabio Petrillo


PLAN DE COURS

Automne 2025
LOG430 : Architecture logicielle (4 crédits)





Préalables
Programme(s) : 7065,7070,7084,7365,7610
             
  Profils(s) : Tous profils  
             
    LOG210    
             
Unités d'agrément




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours
À la fin de ce cours, l'étudiante ou l'étudiant sera en mesure :
• de documenter une architecture logicielle;
• d’analyser une architecture logicielle;
• de concevoir une architecture logicielle dirigée par les attributs de qualité;

Caractéristiques du problème de conception, architecture et ingénierie, rôle et importance de l'architecte, scénarios d'attributs de qualité, tactiques architecturales, familles de structures architecturales, styles architecturaux, conception de l'architecture dirigée par les attributs de qualité, documentation de l'architecture, évaluation d'une architecture logicielle, normes liées à la conception et à l'architecture logicielles.

Séances de laboratoire comportant la mise en œuvre de projets permettant d’appliquer les notions discutées durant le cours, en particulier l'application de divers styles architecturaux et l'application de méthodes de conception et d'évaluation d'architecture logicielle.



Objectifs du cours
  • Comprendre les principes fondamentaux et les modèles de l’architecture logicielle moderne.
  • Concevoir des solutions architecturales répondant aux exigences fonctionnelles et de qualité.
  • Produire une documentation d'architecture claire et structurée, en utilisant des modèles, afin de communiquer efficacement les choix architecturaux aux parties prenantes techniques et non techniques.
  • Évaluer les compromis liés aux décisions architecturales.
  • Implémenter des prototypes illustrant des modèles et des principes architecturaux.
  • Appliquer les normes liées à la conception et à l'architecture logicielles.
  • Présenter des solutions architecturales.



Stratégies pédagogiques

Les objectifs seront atteints par un enseignement sous la forme de cours magistraux et de cours inversés, à raison de trois heures par semaine pendant treize semaines. La participation active des étudiants sera sollicitée à travers divers exercices en classe. De plus, les concepts vus en cours seront mis en application par l’intermédiaire de douze séances de laboratoire de trois heures chacune. Enfin, en plus des six heures passées en classe et au laboratoire, chaque étudiant ou étudiante doit fournir au moins dix heures de travail personnel.




Utilisation d’appareils électroniques

 

 




Horaire
Groupe Jour Heure Activité
01 Mardi 08:30 - 12:00 Activité de cours
Mercredi 08:30 - 11:30 Laboratoire
02 Mardi 18:00 - 21:30 Activité de cours
Mercredi 18:00 - 21:00 Laboratoire



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Fabio Petrillo Activité de cours fabio.petrillo@etsmtl.ca A-2422
01 Laboratoire
01 Laboratoire
02 Fabio Petrillo Activité de cours fabio.petrillo@etsmtl.ca A-2422
02 Laboratoire



Cours
  • Introduction à l'architecture logicielle
  • Attributs de qualité - scénarios et tactiques architecturales
  • Conception architecturale
  • Documentation architecturale
  • Patrons et styles architecturaux
  • Analyse et évaluation d’une architecture logicielle



Laboratoires et travaux pratiques

Il y aura douze laboratoires au cours du trimestre. Le travail à réaliser pour chacun d’eux sera précisé au fur et à mesure. Dans votre laboratoire, vous devrez concevoir, implémenter et évaluer l’architecture des exercices conformément aux exigences spécifiées. La présence est obligatoire à chacune des séances de laboratoire.




Utilisation d'outils d'ingénierie

Dans ce cours, l’étudiant apprend à utiliser des outils et méthodes d’ingénierie logicielle pour définir, concevoir et évaluer des solutions architecturales. L’enseignement couvre les tactiques associées aux attributs de qualité, les principaux patrons et styles architecturaux, ainsi que l’élaboration et la documentation d’architectures logicielles. Plus particulièrement, il ou elle se familiarise avec :

  • les principales tactiques architecturales associées aux attributs de qualité (performance, disponibilité, sécurité, etc.) ;

  • les patrons et styles architecturaux (monolithique, microservices, événementiel, CQRS, etc.) ;

  • les gabarits de documentation architecturale (UML, C4, Arc42) ;

  • une méthode d’élaboration d’architecture logicielle, appliquée de manière incrémentale dans une série de laboratoires thématiques.

Outils logiciels exploités

Afin de soutenir l’apprentissage, l’étudiant utilise un ensemble diversifié d’outils d’ingénierie logicielle. Le choix précis des outils est laissé à sa discrétion, mais les catégories couvertes dans ce cours incluent :

  • Outils de conception : Eclipse Papyrus, Visual Paradigm, PlantUML, etc.

  • Environnements de développement intégrés (IDE) : IntelliJ IDEA, Eclipse, NetBeans, Visual Studio, Visual Studio Code.

  • Plateformes d’observabilité et de déploiement : Prometheus, Grafana, Docker, Kubernetes.

  • Systèmes de bases de données relationnels et non relationnels : SQL (PostgreSQL, MySQL) et NoSQL (MongoDB, Cassandra, etc.).

  • Systèmes d’exploitation : Linux.

Application progressive dans les laboratoires

Chaque laboratoire introduit des problématiques architecturales concrètes et mobilise des outils adaptés :

  • Infrastructure – Docker, contrôle de version, CI/CD

  • Architecture client/serveur et persistance (DAO, RDBMS, NoSQL)

  • Architecture monolithique, ORM, DDD

  • Interfaces REST et GraphQL

  • Optimisation, mise en cache, tests de charge (lecture), observabilité (logs, métriques)

  • Répartition de charge, tests de charge (lecture/écriture), observabilité avancée

  • Microservices, API Gateway, gestion des limites et délais, Kubernetes

  • Saga (orchestration), traçage distribué, gRPC

  • Event Sourcing, architectures pilotées par événements, Pub/Sub

  • Saga (chorégraphie), CQRS avec event broker

  • Bases de données distribuées (Cassandra, etc.), tests de charge avancés

  • Service Mesh, découverte de services, configuration, sécurité

  • Circuit Breaker, Machine Learning (MCP, agents), Chaos Engineering




Évaluation
  • Projet : 40%
    • Phase 1 :  5%
    • Phase 2 : 10%
    • Phase 3 : 15%
  • Laboratoires : 40%
  • Examen final : 20%

À noter qu’une moyenne inférieure à 50% dans les évaluations entraîne un échec au cours. Ceci est une condition nécessaire mais non suffisante pour réussir ce cours.




Double seuil
Note minimale : 50



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://www.etsmtl.ca/programmes-et-formations/horaire-des-examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

Tout travail remis en retard entraînera automatiquement l’attribution de la note zéro. Les présentations orales sont obligatoires et, en cas d’absence non justifiée, une note de zéro sera également attribuée pour cette activité.




Absence à une évaluation

Afin de faire valider une absence à une évaluation en vue d’obtenir un examen de compensation, l’étudiante ou l’étudiant doit utiliser le formulaire prévu à cet effet dans son portail MonÉTS pour un examen final qui se déroule durant la période des examens finaux ou pour tout autre élément d’évaluation surveillé de 15% et plus durant la session. Si l’absence concerne un élément d’évaluation de moins de 15% durant la session, l’étudiant ou l’étudiante doit soumettre une demande par écrit à son enseignante ou enseignant.

Toute demande de validation d’absence doit se faire dans les cinq (5) jours ouvrables suivant la tenue de l’évaluation, sauf dans les cas d’une absence pour participation à une activité prévue aux règlements des études où la demande doit être soumise dans les cinq (5) jours ouvrables avant le jour de départ de l’ÉTS pour se rendre à l’activité.

Toute absence non justifiée par un motif majeur (voir articles 7.2.6.1 du RÉPC et 6.5.2 du RÉCS) entraînera l’attribution de la note zéro (0).




Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-nature-academique) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet. À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignante ou l’enseignant du cours.

Dispositions additionnelles

L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation (à l’exception de l’examen final) est explicitement autorisée par les enseignants du cours. Toutefois, tout contenu produit et remis dans le cadre de ces activités peut faire l’objet d’une évaluation supplémentaire, que ce soit à l’oral ou par écrit. Si l’étudiant(e) n’est pas en mesure d’expliquer son travail ou de justifier ses choix, cela sera considéré comme du plagiat.




Documentation obligatoire
  • BASS, L., P. CLEMENTS et R. KAZMAN, Software Architecture in Practice, 4th edition, Reading (Mass.), Addison Wesley Longman, Inc., 2021, ISBN 9780136885979.



Ouvrages de références
  • Clements, P., F. Bachmann, L. Bass, D. Garlan, J. Ivers, R. Little, P. Merson, R. Nord, J. Stafford, Documenting Software Architectures: Views and Beyond, 2nd edition, Addison Wesley, 592 pages, 2010, ISBN 0-321-55268-7.
  • Richards, M., Software Architecture Pattern, 2nd edition, O'Reilly Media, Inc., 2022, ISBN 9781098134273.
  • Davis, A., Bootstrapping Microservices with Docker, Kubernetes, GitHub Actions, and Terraform, Second Edition, Manning Publications, 2024, ISBN 9781633438569
  • SHAW, M. et D. GARLAN, Software Architecture - Perspectives on an Emerging Discipline, Upper Saddle River (N.J.), Prentice-Hall, Inc., 1996.
  • MAIER, M.W. et E. RECHTIN, The Art of Systems Architecting, 3rd edition, CRC Press, 2009.
  • DIKEL, D.M., D. KANE et J.R. WILSON, Software Architecture – Organizational Principles and Patterns, Upper Saddle River (N.J.), Prentice Hall PTR, 2001.
  • BUSCHMANN, F., MEUNIER, R., ROHNERT, H., SOMMERLAND, P. et M. STAL, Pattern-oriented Software Architecture – A System of Patterns, vol. 1, West Sussex, John Wiley and Sons Ltd, 1996.
  • ISO/IEC/IEEE 42010:2011 - Systems and software engineering -- Architecture description.
  • IEEE Standard for Information Technology - Systems Design - Software Design Descriptions, IEEE Standard 1016-2009, New York, 2009.



Adresse internet du site de cours et autres liens utiles

Lien Moodle du cours https://ena.etsmtl.ca/course/view.php?id=27670