% MGL7361 — Principes et applications de la conception de logiciels % UQAM — Département d'informatique % Plan de cours — Automne 2022 * Horaires, locaux et enseignants: * Site web du cours: Responsable(s) du cours ======================= Coordination ------------ Killijian, Marc-Olivier PK-4740 Enseignement ------------- Essadi, Naima Groupes: 030 Description du cours ==================== Rôle de la conception dans le cycle de vie du logiciel. Apprentissage des principales méthodes de conception. Évaluation de nouvelles méthodes de conception. Sélection et utilisation d'une méthode propre à un système logiciel donné. Évaluation de la conception: choix de la méthode, qualité de la conception, vérification formelle, respect des exigences, etc. Outils de conception. Objectif du cours ================= Le cours vise à rendre l'étudiant apte à participer de façon active à la conception de systèmes d'information contemporains dans une organisation. Il vise également à développer chez l'étudiant un esprit critique face aux pratiques courantes utilisées pour la conception de systèmes d'information. En particulier, le cours vise à : - Donner aux étudiants un aperçu théorique du cycle de vie du logiciel en en particulier de la conception. - Initier les étudiants aux principaux modèles contemporains concernant la conception architecturale. - Donner aux étudiants un aperçu théorique des principales propriétés d'une bonne conception. - Initier les étudiants aux architectures n-tiers. - Familiariser les étudiants à l'architecture par microservices. - Faire apprécier aux étudiants l'importance des enjeux reliés à la conception. - Familiariser les étudiants aux principaux patrons utilisés pour la conception orientée objet. - Rendre les étudiants aptes à réaliser un document de conception. - Initier les étudiants aux nouvelles approches dans le domaine. Contenu du cours ================ 1. Leçon introductive 2. Conception orientée objet (Rappel) 3. Principes SOLID & Approche GRASP 4. Patrons de conception 5. Travail en classe (Exercices, Questions & Réponses) 6. Architecture Logicielle 7. Styles d'Architectures logicielles 8. Persistances & Object-Relational Mapping 9. Examen Intra 10. Architecture de Services 11. Travail en classe (TPs, Questions & Réponses) 12. Architectures micro-services 13. Travail en classe (TPs, Questions & Réponses) 14. Présentations sujets 15. Présentations sujets Approche pédagogique ==================== Le cours fonctionne en apprentissage par projet pour sa dimension tehcnique, par équipe de 3 à 4 étudiants. Les séances de cours magistrales sont consolidées par des exercices et des travaux pratiques. Les étudiants auront à explorer d'autres sujets d'actualité et les discuter pour s'exercer à maintenir une culture dans le domaine et développer un esprit critique vis à vis des pratiques. Modalités d'évaluation ====================== Description sommaire Type Date Pondération ---------------------- -------- ----------- ------------- Projet - Partie 1 Équipe S42 10% Examen Intra Indiv. S44 40% Présentations sujets Binome S49 25% Projet - Partie 2 Équipe S49 & S50 25% Un travail remis en retard reçoit la note de zéro, sans exceptions. Le détail des conditions de réalisation de chaque travail est précisé avec la description du travail. La qualité du français fait partie intégrante des critères d'évaluation des travaux et des examens jusqu'à un maximum de 25%. La politique de tolérance zéro du Département d'informatique sera appliquée à l'égard des infractions de nature académique. La note de passage du cours est de 60%. Au sein d'un groupe, les notes peuvent être modulée pour reflêter l'implication des différents membres sur les base des informations du gestionnaire de versions et de la qualité des réponses aux questions de l'enseignant. Médiagraphie ============ EVANS, Eric\ DOMAIN-DRIVEN DESIGN\ Pearson Education, Inc. 2004 -- ISBN : 0-321-12521-5 FREEMAN, Eric & ROBSON, Elisabeth\ HEAD FIRST DESIGN PATTERNS\ O'Reilly 2014 -- ISBN : 978-0-5960-07126 NADAREISHVILI, Irakli, MITRA, Ronnie, McLARTY, Matt & AMUNDSEN, Mike\ MICROSERVICE ARCHITECTURE\ O'Reilly 2016 -- ISBN : 978-1-491-95979-4 NEWMAN, Sam\ BUILDING MICROSERVICES\ O'Reilly 2015 -- ISBN : 978-1-491-95035-7 RICHARDSON, Leonard & AMUNDSEN, Mike\ RESTFUL WEB APIS\ O'Reilly 2013 -- ISBN : 978-1-449-35806-8 ROZANSKI, Nick & WOODS, Eoin\ SOFTWARE SYSTEMS ARCHITECTURE -- SECOND EDITION\ Addison-Wesley 2012 -- ISBN : 978-0-321-71833-4