Logo ÉTS
Session
Cours
Responsable(s) Tony Wong

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Tony Wong


PLAN DE COURS

Hiver 2024
GPA434 : Ingénierie des systèmes orientés-objet (4 crédits)





Préalables
Programme(s) : 7485,7885
             
  Profils(s) : Tous les profils sauf Informatique  
             
    INF155    
             
Unités d'agrément
Total d'unités d'agrément : 64,8 50,0 % 50,0 %




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours

Au terme de ce cours, l’étudiant ou l'étudiante sera en mesure :

  • d'analyser des problématiques multidisciplinaires, concevoir des solutions d'ingénierie à l'aide de méthodologies industrielles;
  • de réaliser des systèmes orientés-objet évoluant dans un environnement automatisé.

Modélisation des systèmes d’automatisation. Modélisation Agile : valeurs, principes, pratique. Technologie orientée objet : analyse de problématiques industrielles et modélisation de systèmes physiques et abstraits, diagrammes structuraux et comportementaux. Conception de systèmes IHM orientés objet : widgets, schéma, formulaire, feuille de style et conteneur. Traitement des signaux synchrones et asynchrones émanant des objets. Structuration des systèmes par les diagrammes de classes. Comportement du système via les diagrammes de cas d'usage, d'activités, de séquences et de machine d'états.

Séances de laboratoire : participer, au sein d'une équipe, à la résolution de problèmes d’ingénierie; analyser, modéliser et concevoir des systèmes orientés objet par la notation UML; réaliser des solutions en langage C++ et Qt; implanter des solutions dans un environnement de développement intégré.

Note sur le préalable INF155 : il concerne les profils E, M et P.




Objectifs du cours

À l’ère de l’Internet des Objets (IoT) et de l’Industrie 4.0, les étudiants et étudiantes en génie de la production automatisée doivent maîtriser les concepts et techniques associés à la technologie orientée-objet – un savoir-faire incontournable en milieu industriel. Aussi, la technologie orientée-objet est une approche privilégiée pour analyser et concevoir des systèmes d’ingénierie complexes et évolutifs. L’acquisition des compétences en technologie orientée-objet permet la réalisation et l'implantation de solutions compatibles aux exigences de l'Industrie de l'automatisation et de production de demain. Ainsi, les objectifs finaux de ce cours obligatoire sont:

  • L'analyse des problèmes d'ingénierie selon l'approche orientée-objet;
  • La conception des solutions à l'aide de la technologie orientée-objet;
  • L'exécution d'un processus de développement objets;
  • La mise en oeuvre d'un modèle orienté-objet à l'aide du langage C++.



Stratégies pédagogiques
  • 39 heures de cours magistral;
  • 36 heures de laboratoire;
  • 36 heures de travail personnel.

Trois (3) heures de cours magistral par semaine afin de permettre aux étudiants et aux étudiantes de bien assimiler les concepts et les techniques présentées en cours. Des exemples de conception et de programmation illustreront les concepts plus abstraits et moins évidents.

Trois (3) heures de laboratoire par semaine pour évaluer les détails pratiques de conception et programmation orientée objet dans un contexte de génie logiciel.

Les heures de travail personnel permettront une meilleure compréhension des concepts vus en classe par l’approfondissement des concepts et leurs mises en pratique.




Utilisation d’appareils électroniques

Aucun enregistrement audio/vidéo sans autorisation explicite de l’enseignant.




Horaire
Groupe Jour Heure Activité
01 Lundi 13:30 - 17:00 Activité de cours
Mercredi 13:30 - 16:30 Laboratoire



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Jean-Christophe Demers Activité de cours cc-jean-christophe.demers@etsmtl.ca A-3736
01 François Côté-Raiche Laboratoire francois.cote-raiche.1@ens.etsmtl.ca
01 Émile Laforce Laboratoire emile.laforce.1@ens.etsmtl.ca



Cours
Séances Activités

1 à 2

Introduction au langage de programmation C++ (partie 1):

  • Présentation générale
  • Consolidation des techniques de programmation en langage C :
    • mots réservés
    • types fondamentaux
    • variables
    • opérateurs
    • contrôle de flux
    • fonctions
    • pointeurs
    • types composés
    • gestion de la mémoire

3

Introduction au langage de programmation C++ (partie 2):

  • Particularités générales du langage C++ :
    • mots réservés;
    • commentaires;
    • types et variables :
      • typage (fort vs faible)
      • nouveau type
      • initialisation
      • inférence de type
      • gestion de la mémoire
      • références
      • identification pendant l’exécution
    • fonctions :
      • surcharge
      • paramètres par défaut
      • inline
    • gestion d’exception;
    • espaces de nom

3-4

Introduction au langage de programmation C++ (partie 3):

  • Introduction à la programmation orienté objet :
    • concepts généraux de l’orientés objets :
      • encapsulation
      • héritage
      • polymorphisme
      • abstraction
      • surcharge d’opérateurs
    • réalisation avec le langage C++ :
      • mots réservés
      • classes, propriétés, méthodes et visibilité
      • constructeur et destructeur
      • héritage : simple, multiple, visibilité et virtuel
      • fonctions virtuelles et abstraites
      • surcharge d’opérateurs intra et extra classe

5

Introduction au langage de programmation C++ (partie 4):

  • Introduction aux templates :
    • fonctions
    • classes
  • Introduction à la librairie STL :
    • conteneurs
    • algorithmes
    • fonctions
    • itérateurs
    • utilitaires

6 à 7

Introduction au cadre de travail Qt:

  • Présentation générale :
    • abstraction du système d’exploitation
    • licence
    • compilateur de méta objet
    • signaux et slots
    • propriétés
    • modules principaux
    • classes utilitaires générales
    • widgets et gestion de la mémoire
    • compatibilité avec STL
  • Développement d’interface graphique :
    • utilisation de widget
    • création de widget par assemblage
    • création de widget personnalisé

8 à 9

Introduction au langage de modélisation UML:

  • Généralités et stratégies
  • Vues
  • Notations
    • modules, paquet, nœuds
    • acteurs, cas d’usage
    • classes, objets
    • activités, états, transitions
    • relations
    • stéréotypes, abstractions, commentaires et autres
  • Diagrammes
    • structuraux
    • comportementaux
    • d’interaction

10 à 11

Intégration des techniques de l’analyse orientée objet:

  • Méthode d’analyse par cas d’utilisation
  • Création d’un modèle conceptuel :
    • Identification des « concepts » dans la problématique
    • Identification des associations du modèle
    • Identification des attributs du modèle
  • Comportement du système
    • Diagramme de séquence
  • Contrats
  • Généralisation
    • Définition des sur-types et des sous-types
    • Définition des types abstraits
    • Hiérarchie des classes et héritage
  • Raffinement du modèle conceptuel
  • Modélisation du comportement par diagramme d’états

11 à 13

Intégration des techniques pour la conception orientée objet:

  • Assignation des responsabilités
  • Patrons de conception
  • Détermination de la visibilité
  • Conception des classes
  • Conception du système
  • Correspondance entre la conception et le codage

Analyse et conception : exemple d’application




Laboratoires et travaux pratiques
TITRE OBJECTIFS PÉDAGOGIQUES TECHNOLOGIES UTILISÉES DURÉE
Laboratoire 1 Introduction à la programmation orienté objet en C++ et encapsulation C++ et UML 3 semaines
Laboratoire 2 Consolidation de la programmation C++, encapsulation et héritage

C++ et UML

4 semaines
Laboratoire 3 Conception, programmation C++, encapsulation, héritage, polymorphisme et utilisation de la librairie Qt. UML / C++ / Qt 5 semaines

 




Utilisation d'outils d'ingénierie

 




Évaluation

 Une moyenne de 50% est exigée pour l'examen final et pour les travaux individuels afin de réussir le cours (double seuil).

Activité

Pondération

Date et durée

Final

30 %

Semaine des examens finaux

Quiz 1

2.5 %

Semaine 4

Quiz 2

2.5 %

Semaine 7

Quiz 3

2.5 %

Semaine 10

Quiz 4

2.5 %

Semaine 12

Laboratoire 1 

15 %

Débute à la semaine 2

Laboratoire 2

20 %

Débute à la semaine 4

Laboratoire 3

25 %

Débute à la semaine 8




Double seuil
Note minimale : 50



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/Examens-finaux


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

Une pénalité de 10 % par jour sera imposée à tous travaux en retard. Une pondération de 10 % du total des notes des divers travaux sera attribuée à la présentation et à la qualité du français. L’utilisation des outils informatiques pour la rédaction (traitement de textes) ainsi que pour la présentation des données (tabulateurs, graphiques, dessins) est requise.




Absence à un examen
Dans les cinq (5) jours ouvrables suivants, 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 du département ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. 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, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen entraînera l’attribution de la note zéro (0).



Infractions de nature académique
À 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/Etudes/citer-pas-plagier). Les clauses du règlement sur les infractions de nature académique de l’ÉTS (« Règlement ») 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/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-nature-academique) pour identifier les actes qui constituent des infractions de nature académique au sens du Règlement ainsi que prendre connaissance des sanctions prévues à cet effet.

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignant(e) du cours.



Documentation obligatoire

Notes de cours préparées par le professeur (disponible sur le site Moodle du cours).




Ouvrages de références

UML

  • Seidl, Scholz, Huemer et Kappel (2015). UML @ Classroom - An Introduction to Object-Oriented Modeling. Springer, ISBN-13: 978-3319127415 .
  • Ambler (2014), The Elements of UML 2.0 Style. Cambridge University Press, ISBN-13: 978-0521616782.
  • Pilone et Pitman (2005). UML 2.0 in a Nutshell, O'Reilly Media, ISBN-13: 978-0596007959.
  • Larman (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition. Prentice Hall, ISBN-13: 978-0131489066.
  • Fowler (2003). UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition), Addison-Wesley Professional, ISBN-13: 978-0321193681.
  • Samek (2008). Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems (Second Edition). CRC Press, ISBN-13: 978-0750687065.
  • http://www.uml.org/
  • https://www.uml-diagrams.org/

Langage C++

Qt

  • Sherriff (2018). Learn Qt 5: Build modern, responsive cross-platform desktop applications with Qt, C++, and QML. Packt Publishing, ASIN: B076X3LXKH
  • Eng (2016). Qt5 C++ GUI Programming Cookbook. Packt Publishing, ASIN: B01FSO1D1M.
  • http://doc.qt.io/qt-5/

Microsoft Visual Studio 2019




Adresse internet du site de cours et autres liens utiles

Site Moodle de l’École : https://ens.etsmtl.ca




Autres informations

Ne s'applique pas.