Vous êtes sur la page 1sur 6

École de technologie supérieure  Responsable(s) de cours : Christopher Fuhrman

Département de génie logiciel et des TI 

PLAN DE COURS
Hiver 2018
MGL843 : Sujets avancés en conception logicielle (3 crédits)

Préalables
Aucun préalable requis

Descriptif du cours
Sujets avancés en conception de logiciels. Pratiques à l’avant‐garde de la conception de logiciels, la
visualisation des éléments de la conception, les design patterns (motifs ou patrons de conception), la
stabilité, la traçabilité des exigences non fonctionnelles, la fiabilité, l’agilité, la refactorisation, tout avec
une perspective orientée‐objet.

Objectifs du cours
Afin de bien comprendre et d'appliquer la matière des sujets avancés présentés dans ce cours, les
étudiants doivent avoir une bonne expérience en programmation dans un environnement moderne,
de préférence avec un langage orienté objet (Java, C#, C++, etc.). Par exemple, il y a des travaux à
réaliser individuellement où les étudiants doivent appliquer des principes dans un code source de
langage orienté objet.
À la suite de ce cours, l'étudiant sera en mesure :

de comprendre et de distinguer entre les différentes sources de complexité dans un logiciel;
d’appliquer une méthode d’analyse et de conception orientée objet;
de comprendre et de distinguer entre les différentes qualités de conception, telles que le
couplage, la cohésion et la stabilité;
de comprendre l’impact de ces qualités sur la conception de logiciels;
de connaître les différentes heuristiques de conception, surtout sur le plan de leurs forces et
faiblesses;
de concrétiser la traçabilité entre les exigences (fonctionnalités, convivialité, fiabilité,
performance, extensibilité, etc.) et les éléments d’une conception de logiciel orienté objet;
d’utiliser une notation telle que le langage UML pour modéliser, décrire et communiquer les
éléments d’une conception;
de connaître les notions de fiabilité essentielles pour concevoir un logiciel tolérant aux fautes;
d’identifier, de critiquer, d’appliquer et de programmer quelques design patterns orientés objet;
de connaître et de reconnaître des problèmes résolus par des design patterns;
de comprendre et d’appliquer de différentes pratiques de refactorisation de logiciel orienté objet.

Page 1 de 6       
Stratégies pédagogiques
La pédagogie du cours est basée sur les méthodes suivantes :

Travaux d’écriture réflexive sur les lectures individuelles
Jeux‐questionnaires en ligne pour valider des connaissances
Lectures individuelles et exposés magistraux permettant de traiter le contenu du cours
Exercices en petits groupes durant les cours
Analyse critique d’article traitant un sujet pertinent
Travaux pratiques réalisés individuellement
Rencontres avec l’enseignant durant les séances de cours

Charge d’enseignement : 39 heures de cours; Charge de travail de l’étudiant : environ six heures de
travail hors classe par semaine.
Sur une base hebdomadaire, ceci correspond à trois heures de cours et six heures de travail hors
classe.

Utilisation d’appareils électroniques
La politique est documentée à la page web suivante
: https://sites.google.com/a/etsmtl.net/cfuhrman/se‐preparer‐pour‐reussir/politique‐electronique

Horaire
Groupe Jour Heure Activité
01 Lundi 18:00 ‐ 21:30 Activité de cours

Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
Christopher Activité de
01 Christopher.Fuhrman@etsmtl.ca A‐4471
Fuhrman cours

Page 2 de 6       
Cours
Semaine Contenu des cours

1 Introduction à la conception orientée objet, le Processus unifié, les cas d'utilisation
2 Modèle du domaine, Concept d'écart des représentations, Diagramme de séquence
système (DSS)
3 Contrats d'opération, UML: diagrammes d'interaction et de classes.
4 Principes GRASP 1‐5, Heuristiques de conception.
5 GRASP 6‐9, Design patterns appliqués.
6 Analyse de design patterns, traçabilité aux exigences non‐fonctionnelles (qualités)
7 Développement piloté par les tests et refactorisation, Outils UML
8 Analyse architecturale, Heuristiques de conception (masquage d’information, stabilité,
etc.)
9 Introduction à la fiabilité, redondance, design patterns pour la fiabilité.
10 Architecture logique, modèle en couche, masquage d'information et stabilité.
11 Débats en classe (articles de recherche)
12 Présentations TP3, Révision pour l'examen final.
13 Examen final
La planification est indiquée à titre d'information selon la planification initiale et est sujette à
changement selon la cadence réelle du cours.

Laboratoires et travaux pratiques
Il n'y a pas de séances de laboratoire, mais les travaux pratiques sont expliqués dans les sections
Contenu et Évaluation.

Page 3 de 6       
Évaluation
Activité Description %
Travaux
d'écriture
réflexive Compréhension de la
(TER) et/ou matière dans les lectures à 10
mini‐tests en faire avant la séance
ligne
(individuel)
TP 1 Découverte et étude de
15
(individuel)* design pattern
TP 2 Analyse historique de
15
(individuel)* design pattern
Analyse Analyse d’article de revue
d’article scientifique portant sur un 10
(équipe)*  sujet pertinant au cours
Extension favorisée par
design pattern
TP 3 (ou Visualization des
25
(individuel)* classes impliquées dans
les design patterns pour 5
% points boni)
Examen final Examen récapitulatif du
25
(individuel) cours
* Le français écrit sera évalué avec Antidote. Une correction négative de jusqu'à 20 % peut s'appliquer
à chaque travail écrit (sauf les TER) pour les fautes d'orthographe.  

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.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres
dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à
remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

Toutes les remises doivent être faites électroniquement et doivent être reçues par l’enseignant avant
le délai de la remise indiqué sur le calendrier électronique du cours. Certains travaux ne peuvent pas
être remis en retard (le système ne le permet pas et donc la note sera zéro). Pour les autres travaux
où une remise en retard est possible, la date (comprenant l’heure et un fuseau horaire) de la remise
est donc celle du système électronique. Tout travail remis en retard par rapport au délai se verra
automatiquement attribuer une pénalité de 20% par jour, selon le tableau suivant :
Retard Pénalité
0h01 et 24h00 20%
24h01 et
40%
48h00
Ainsi de
 
suite…

Page 4 de 6       
Absence à un examen
Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant devra justifier son
absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui
en référera au directeur de département. Pour un examen final, l’étudiant devra justifier son absence
auprès du Bureau du registraire. Toute absence non justifiée par un motif majeur (maladie certifiée
par un billet de médecin, décès d’un parent immédiat ou autre) à un examen entraînera l’attribution
de la note (0).

Plagiat et fraude
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 étudiants doivent consulter le Règlement sur
les infractions de nature académique (https://www.etsmtl.ca/A‐propos/Direction/Politiques‐
reglements/Infractions_nature_academique.pdf ) 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 les étudiants sont
invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants‐
actuels/Baccalaureat/Citer‐pas‐plagier).

Documentation obligatoire
Il y a un livre obligatoire, mais les étudiants peuvent choisir la version française ou anglaise:
LARMAN, C., UML 2 et les design patterns. 3e édition, Pearson Éducation, 2005.
LARMAN, C., Applying UML and patterns: an introduction to object­oriented analysis and design and the unified process. 3rd edition, Upper Saddle River (NJ), Prentice­Hall
PTR, 2005.

Ouvrages de références
McConnell, S. (2004). Code complete, 2e édition. Redmond, Wash., Microsoft Press.
Freeman, E., E. Freeman, et al. (2004). Head First design patterns. Sebastopol, CA, O'Reilly.
Horstmann, C. (2006). Object‐Oriented Design and Patterns, 2e édition. Wiley.
Hanmer, R. S. (2007). Patterns for fault tolerant software. Chichester, England ; Hoboken, NJ, John
Wiley.
Fowler, M. and K. Beck (1999). Refactoring : improving the design of existing code. Reading, MA,
Addison‐Wesley.
Schmidt, D. C., F. Buschmann, et al. (2007). Pattern‐oriented software architecture, On Patterns and
Pattern Languages (Vol. 5). Chichester England ; New York, Wiley.
Fitzpatrick, B. W. et B. Collins‐Sussman (2013). Team Geek: A Software Developer's Guide to Working
Well with Others. O'Reilly Media, 2013.

Adresse internet du site de cours et autres liens utiles
Site Google: https://sites.google.com/a/etsmtl.net/mgl843/
Site Moodle: (visible dans MonETS)

Autres informations
Il est essentiel que chaque étudiant apporte un ordinateur portatif moderne en classe pour participer
aux activités en ligne pendant le cours et pour travailler sur les projets.

Page 5 de 6       
Page 6 de 6       

Vous aimerez peut-être aussi