Logo ÉTS
Session
Cours
Responsable(s) Christopher Fuhrman

Se connecter
 

École de technologie supérieure
Département de génie logiciel et des TI
Responsable(s) de cours : Christopher Fuhrman


PLAN DE COURS

Hiver 2019
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;
  • Comprendre et distinguer les bonnes et mauvaises pratiques de conception.
  • de comprendre et d’appliquer de différentes pratiques de réusinage (refactoring) de logiciel orienté objet.
  • d'identifier, de crtitiquer, et corriger quelqules antipatrons de conception orienté objet;
  • de concevoir et appliquer une étude empirique sur la conception orienté objet;
  • d’appliquer une méthode d’analyse et de conception orientée objet;
  • de comprendre et de distinguer entre les différentes métriques de qualité de conception, telles que le couplage, la cohésion et la stabilité;
  • de comprendre l’impact de ces métriques de qualité sur la conception de logiciels;
  • d’utiliser une notation telle que le langage UML pour modéliser, décrire et communiquer les éléments d’une conception.



Stratégies pédagogiques

La pédagogie du cours est basée sur les méthodes suivantes :

  • 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
  • Réalisation d'un projet pertinent au contenu du cours
  • 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 Jeudi 18:00 - 21:30 Activité de cours



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Ali Ouni Activité de cours Ali.Ouni@etsmtl.ca A-4483



Cours

Contenu

  • Introduction à la conception orientée objet
  • Études empiriques sur la conception logicielle
  • Maintenance et évolution de la conception de logiciels
  • Métriques de qualité de la conception oerienté objet
  • Identification et réusinage (refactoring) des antipatrons de conception
  • Les changements de conception et analyse de l’impact
  • Visualisation du logiciel
  • Compréhension de la conception de logiciels
  • Reconstruction de la conception architecturale
  • Sujets avancés sur l'évolution de la conception de logiciels

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 sur le projet du cours sont expliqués dans les sections Contenu et Évaluation.




Évaluation
  • Examen final : 20%
  • Projet individuel : 60%, composé de :
    • Proposition de projet : 10%
    • Revue de littérature : 5%
    • Rapport intermédiaire : 5%
    • Implémentation d'un prototype/outils : 10%
    • Rapport final et implémentation : 20%
    • Présentation en classe : 10%
  • Analyse, présentation et discussion d’articles scientifiques portant sur un sujet pertinant au cours : 20%
     

 




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 de retard, selon le tableau suivant :

Retard

Pénalité

0h01 et 24h00

20%

24h01 et 48h00

40%

Ainsi de suite…

 




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

LARMAN, C., (2005) 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.

Fowler, M. and K. Beck (2018). Refactoring : improving the design of existing code.  2e édition, Reading, MA, Addison-Wesley.




Ouvrages de références

McConnell, S. (2004). Code complete, 2e édition. Redmond, Wash., Microsoft Press.

Juristo, N. and M. Moreno A. (2010). Basics of Software Engineering Experimentation, Springer

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.

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 Moodle: http://ena.etsmtl.ca/ (visible dans MonETS)




Autres informations

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