À la fin de ce cours, l'étudiant sera en mesure de:
Les objectifs du cours seront atteints par la prestation hebdomadaire de cours magistral, par des exercices en classe, par la réalisation de travaux pratiques en équipe, par la réalisation d’une analyse critique d’articles de recherche dans le domaine, par des rencontres avec le professeur, et par un examen de synthèse « take home ».
Il est interdit de capter le cours ou des portions du cours (enregistrement vidéo, enregistrement audio, photographie) en salle de classe ou en laboratoire à moins d'avoir obtenu au préalable la permission de l'enseignant.
Contenu du cours[1]
[1] La matière ne sera pas nécessairement présentée dans cet ordre. Toutefois, l’ensemble des sujets sera présenté dans le cadre de ce cours.
Les étudiants(es) doivent réaliser deux projets pratiques en équipe. Les projets visent à mettre en oeuvre les concepts vus en classe.
Pour les travaux réalisés en équipes, chaque étudiant ou étudiante est responsable de la totalité du travail réalisé et remis par son équipe. Toutefois, les membres de l'équipe ayant réalisé un travail peuvent décider de ne pas mettre sur le rapport le nom d’un ou de plusieurs autres membres qui n'ont pas fait une contribution significative au travail. Avant la remise du travail, un courriel doit être envoyé en copie conforme à tous les membres de l’équipe, ainsi qu’à l’enseignant pour indiquer les raisons du retrait du nom. Un étudiant ou une étudiante dont le nom n'est pas sur un travail d'équipe reçoit une note de "0" pour le travail.
Une note de zéro est automatiquement attribuée à tout travail remis en retard.
BASS, L., P. CLEMENTS et R. KAZMAN, Software Architecture in Practice, 3e edition, Reading (Mass.), Addison Wesley Longman, Inc., 2013.
https://ena.etsmtl.ca/
Il est attendu que les étudiant(e)s sachent programmer dans un langage moderne. Certains des travaux consisteront à analyser l'architecture de système existants à partir du code source, et les projets devront pouvoir être compilés et exécutés. Il est également attendu des étudiant(e)s qu'ils/elles sachent chercher, trouver et installer des outils logiciels sur leur ordinateur personnel pour réaliser certains travaux.