MGL7361 - Principes et applications de la conception de logiciels
Hiver 2018 - Version (22/01/18 16:50)
Groupe 91
Jeudi, de 15h00 à 18h00 (cours)
Responsable(s) du cours
Nom du coordonnateur : MARTIN, LouisNom de l'enseignant :
Local :
Téléphone :
Disponibilité :
Courriel :
Site Web :
Description du cours
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.
- Sensibiliser les étudiants à l'importance des normes en génie logiciel et leur faire connaître les principales références dans le domaine concernant la conception.
- Familiariser les étudiants avec les activités antérieures à 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.
- Rendre les étudiants aptes à réaliser un document de conception.
- Sensibiliser les étudiants aux activités postérieures à la conception.
- Initier les étudiants aux nouvelles approches dans le domaine.
Contenu du cours
Thèmes
La conception dans le cycle de vie du logiciel
Niveaux de conception
- Architectures
- Composants
- Idiomes
La conception est un problème complexe
Gestion de la complexité
Créativité
Granularité
Normes de conception
- IEEE Std 1471-2000
- UML
- Documentation
- Points de vue
- Perspectives
Dettes technologiques
Utilisation/réutilisation de services et de composants existants à l’interne et à
l’externe
- API
Contexte
- Cohabitation avec des systèmes existants
- Nouveaux système
Approche n-tiers
- Niveau présentation
- Niveau métier
- Niveau persistance
Services transversaux
- Authentification, autorisation
- Journalisation
- Messagerie inter-service
- Annuaire
- Pilotage/monitoring
Environnements d’exploitation
- Machine virtuelle
- Conteneur
Patrons et antipatrons de conception
- SOLID
- GRASP
- Loi de Conway
- Granularité
- Stateless et statefull
- ACID
- DRY
Appel synchrone et asynchrone
Métaphores de conception
- Approche orientée objet
- Approche fonctionnelle
- Approche centrée sur les données
- Approche monolithique
- Approche REST
- Appproche microservice (réactif)
- Approche SOA
- Système pour faire des systèmes
- Système apprenant
- Moteur de règles
- Blockchain
- RFID
Preuves de concept
Application sans serveur (Serverless Architectures)
Internet des objets
SQL, NoSQL, Entrepôts de données et Big Data
Effets pervers de certaines approches de développement
- Développement Agile
- Développement orienté test
- DevOps
Approche pédagogique
Le cours se base sur une approche par projet. L'approche par projet s'inscrit dans l'esprit de la formation par compétence. Il permet la mobilisation des ressources de l'étudiant dans la réalisation d'une tâche authentique. Les étudiants devront travailler en équipe (taille: de 3 à 4 étudiants maximum). Il est fortement conseillé de ne pas effectuer les projets seul. Les critères de correction et les attentes ne seont pas modifiées en fonction du nombre d'étudiants dans l'équipe.
Modalités d'évaluation
Type | Pondération | Date |
---|---|---|
Remise du choix de lecture - individuel | ||
Choix du travail d'équipe, plan et bibliographie | 5% | |
Résumé de lecture - individuel | 15% | |
Présentations des équipes | 15% | |
Rapport final du travail d'équipe | 25% | |
Examen final - individuel | 40% |
Un travail remis en retard reçoit la note de zéro à moins d'avoir fait l'objet d'une entente préalable avec le professeur. 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% pour l'ensemble de l'évaluation et de 50% pour les examens.
Pour le résumé de lecture, voici deux liens pouvant être utiles:
- http://www.enseignementdufrancais.fse.ulaval.ca/fichiers/site_ens_francais/modules/document_section_fichier/fichier_c192ac44c0b5_Produire_des_resumes_2011.pdf
- http://aix1.uottawa.ca/~fgingras/cybermetho/modules/resume.html
Calendrier
Période | Date | Contenu |
---|---|---|
1 | Introduction | |
2 | Place de la conception dans le cycle de vie | |
3 | Normes de conception | |
4 | Contexte de conception | |
5 | Gestion de la complexité et problème complexe | |
6 | Approche n-tiers | |
7 | Patrons et anitpatrons de conception I | |
8 | Patrons et antipatrons de conception II | |
9 | Services transversaux | |
10 | Tendances actuelles | |
11 | Effets pervers de certaines approches de développement | |
12 | Présentations des équipes - Partie I | |
13 | Présentations des équipes - Partie II | |
14 | Révision | |
15 | Examen final |
Lectures :
Il n'y a pas de livre obligatoire. Des lectures seront spécifiées au fur et à mesure du déroulement du cours. Ces lectures feront l'objet de discussions en classe et pourront faire l'objet de questions d'examen. Les lectures indiquées dans le tableau suivant doivent avoir été réalisées avant la date indiquée.
Période | Date | Lectures |
---|---|---|
2 | Code as Design : Three essays by Jack W. Reeves | |
4 | Software Architecture Patterns by Mark Richards | |
5 | Architects Dont Code | |
6 | à venir | |
7 | à venir | |
8 | à venir | |
9 | à venir | |
10 | à venir | |
11 | à venir | |
12 | à venir | |
13 | à venir |
Renseignements Utiles
Les étudiants qui ont une lettre signée de leur conseillère ou conseiller de l'Accueil et de soutien aux étudiants en situation de handicap, dans laquelle il est fait était de leur inscription au ASESH à titre d'étudiant en situation de handicap, sont invités à remettre ce document à leurs professeurs et chargés de cours dès le début de la session afin que les aménagements dans le respect des exigences académiques soient déterminées de concert avec chacun des professeurs et chargés de cours. Les étudiants qui ont une déficience et qui ne seraient pas inscrits au ASESH sont priés de se présenter au AB-2300.
Étudiants ayant une déficience de type visuelle, auditive, motrice, trouble d'apprentissage, trouble envahissant du développement et trouble de santé mentale:
Les étudiants qui ont une lettre d'Attestation des mesures d'aménagements académiques obtenue auprès d'un conseiller de l'Accueil et soutien aux étudiants en situation de handicap (ASESH) doivent rencontrer leur professeur au début de la session afin que des mesures d'aménagement en classe ou lors des évaluations puissent être mises en place. Ceux qui ont une déficience ou une incapacité mais qui n'ont pas cette lettre doivent contacter l'ASESH au (514) 987-3148 ou se présenter au local AB-2300 le plus tôt possible.
Engagements et Responsabilités
Politique d'absence aux examens
L'autorisation de reprendre un examen en cas d'absence est de caractère exceptionnel. Pour obtenir un tel privilège, l'étudiant-e doit avoir des motifs sérieux et bien justifiés.
Il est de la responsabilité de l'étudiant-e de ne pas s'inscrire à des cours qui sont en conflit d'horaire, tant en ce qui concerne les séances de cours ou d'exercices que les examens. De tels conflits d'horaire ne constituent pas un motif justifiant une demande d'examen de reprise.
Dans le cas d'une absence pour raison médicale, l'étudiant-e doit joindre un certificat médical original et signé par le médecin décrivant la raison de l'absence à l'examen. Les dates d'invalidité doivent être clairement indiquées sur le certificat. Une vérification de la validité du certificat pourrait être faite. Dans le cas d'une absence pour une raison non médicale, l'étudiant-e doit fournir les documents originaux expliquant et justifiant l'absence à l'examen – par exemple, lettre de la Cour en cas de participation à un jury, copie du certificat de décès en cas de décès d'un proche, etc. Toute demande incomplète sera refusée. Si la direction du programme d'études de l'étudiant-e constate qu'un étudiant a un comportement récurrent d'absence aux examens, l'étudiant-e peut se voir refuser une reprise d'examen.
L'étudiant-e absent-e lors d'un examen doit, dans les cinq (5) jours ouvrables suivant la date de l'examen, présenter une demande de reprise en utilisant le formulaire prévu, disponible sur le site Web du département à l'adresse suivante : http://info.uqam.ca/politiques/
L'étudiant-e doit déposer le formulaire dûment complété au secrétariat de la direction de son programme d'études : PK-3150 pour les programmes de premier cycle, PK-4150 pour les programmes de cycles supérieurs. Pour plus de détails sur la politique d'absence aux examens du Département d'informatique, consultez le site web suivant : http://info.uqam.ca/politiques
Intégrité académique
PLAGIAT Règlement no 18 sur les infractions de nature académique. (extraits)
Tout acte de plagiat, fraude, copiage, tricherie ou falsification de document commis par une étudiante, un étudiant, de même que toute participation à ces actes ou tentative de les commettre, à l'occasion d'un examen ou d'un travail faisant l'objet d'une évaluation ou dans toute autre circonstance, constituent une infraction au sens de ce règlement.
La liste non limitative des infractions est définie comme suit :
- la substitution de personnes;
- l'utilisation totale ou partielle du texte d'autrui en la faisant passer pour sien ou sans indication de référence;
- la transmission d'un travail pour fins d'évaluatiion alors qu'il constitue essentiellement un travail qui a déjà été transmis pour fins d'évaluation académique à l'Université ou dans une autre institution d'enseignement, sauf avec l'accord préalable de l'enseignante, l'enseignant;
- l'obtention par vol, manoeuvre ou corruption de questions ou de réponses d'examen ou de tout autre document ou matériel non autorisés, ou encore d'une évaluation non méritée;
- la possession ou l'utilisation, avant ou pendant un examen, de tout document non autorisé;
- l'utilisation pendant un examen de la copie d'examen d'une autre personne;
- l'obtention de toute aide non autorisée, qu'elle soit collective ou individuelle;
- la falsification d'un document, notamment d'un document transmis par l'Université ou d'un document de l'Université transmis ou non à une tierce persone, quelles que aoient les circonstances;
- la falsification de données de recherche dans un travail, notamment une thèse, un mémoire, un mémoire-création, un rapport de stage ou un rapport de recherche;
- Les sanctions reliées à ces infrations sont précisées à l'article 3 du Règlement no 18.
Les règlements concernant le plagiat seront strictement appliqués. Pour plus de renseignements, veuillez consulter les sites suivants : http://www.sciences.uqam.ca/etudiants/integrite-academique.html et http://www.bibliotheques.uqam.ca/recherche/plagiat/index.html
Médiagraphie
ABBOTT, Martin L. & FISHER, Michael T.
The Art of Scalability – Second Edition
Pearson Education, Inc. 2015 – ISBN : 978-0-13-403280-1
BASS, Len & WEBER, Ingo & ZHU, Liming
DevOps – A Software Architect’s Perspective
Pearson Education 2015 – ISBN : 978-0-13-404984-7
BECK, Kent Beck
Implementation Patterns
Pearson Education, Inc. 2008 – ISBN : 978-0-321-41309-3
CERVANTES, Humberto & KAZMAN, Rick
Designing Software Architectures: A Practical Approach
Addison-Wesley Professional 2016 – ISBN : 978-013-439078-9
ESTES, Philip & DAVIS, Doug
Open by Design
O’Reilly 2015 – ISBN : 978-1-491-94109-6
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
LARMAN, Craig
Applying UML and Patterns – Third Edition
Prentice Hall 2004 – ISBN : 007-6092037224
MITRA, Tilak
Practical Software Architecture: Moving from System Context to Deployment
IBM Press 2015 – ISBN : 978-0-13-376303-4
MONSON-HAEFEL, Richard – éditeur
97 Things Every Software Architect Should Know
O’Reilly 2009 – ISBN : 978-0-596-52269-8
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
O’GRADY, Stephen
The Software Paradox
The Rise and Fall of the Commercial Software Market
O’Reilly 2015 – ISBN : 978-1-491-90093-2
RICHARDS, Mark
Software Architecture Patterns
O’Reilly 2015 – ISBN : 978-1-491-92424-2
RICHARDSON, Leonard & AMUNDSEN, Mike
RESTful Web APIs
O’Reilly 2013 – ISBN : 978-1-449-35806-8
RODGER, Richard
The Tao of Microservices
Manning 2016 – MEAP
ROZANSKI, Nick & WOODS, Eoin
Software Systems Architecture – Second Edition
Addison-Wesley 2012 – ISBN : 978-0-321-71833-4
VIDELA, Alvaro & WILLIAMS, Jason J.W.
RabbitMQ in Action
Manning 2012 – ISBN : 9781935182979
Sites Web:
Architecture sans serveur: https:// martinfowler.com/articles/serverless.html
UQAM Moodle:
https:// www.moodle.uqam.ca
S: Standard - U : uri - V : volume