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

Automne 2018
GPA777 : Introduction au génie logiciel (3 crédits)





Préalables
Programme(s) : 7485
             
  Profils(s) : Tous les profils sauf Informatique  
             
    GPA665    
             
Unités d'agrément
Total d'unités d'agrément : 64,8 33,3 % 66,7 %




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
Développer chez l'étudiant les habiletés nécessaires à la réalisation de logiciels d'envergure.

Acquérir les connaissances de base dans le domaine du génie logiciel : cycle de vie du logiciel, prototypage, évaluation de la productivité et de la qualité du logiciel, méthodes d'estimation COCOMO et de Putman. Apprentissage des principes d'analyse et de conception orientées. Diagrammes de flux de données (DFD) : spécification du logiciel, analyse des transformations et des transactions, définition de la structure du logiciel. Documentation des programmes. Techniques de tests de type white box et black box. Stratégies de tests (tests unitaires, tests d'intégration) et de validation de logiciel.

Travaux pratiques réalisés avec le langage C et axés sur un projet de session relié aux différents aspects pratiques du génie logiciel.

Précision sur le préalable : le préalable GPA665 Structures de données et algorithmes est spécifique aux profils E, M et P.



Objectifs du cours

Au terme de ce cours, l’étudiant doit être en mesure de connaître et d’utiliser les principes dans la conception orientée objet des applications de traitement d’information dans un contexte de génie logiciel. L’étudiant sera aussi en mesure de proposer des solutions orientées objet économiques et efficaces à des problèmes techniques. À la fin de cours, l’étudiant devrait être capable :

  • de comprendre le rôle du génie logiciel;
  • d'identifier les composants d'un modèle orienté objet;
  • d’exécuter le processus de développement par objets;
  • de mettre en œuvre un modèle orienté objet à l’aide du langage C++;
  • de concevoir des solutions informatiques selon le paradigme orienté objet.

 




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

Trois (3) heures de cours magistral par semaine afin de permettre aux étudiants 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.
Deux (2) 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 18:00 - 21:30 Activité de cours
Mercredi 18:00 - 22:00 Laboratoire (2 sous-groupes)



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Jean-Christophe Demers Activité de cours cc-jean-christophe.demers@etsmtl.ca A-3736



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

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é

7

Introduction au développement Agile:

  • Manifeste : valeurs fondamentales et principes généraux
  • Quelques méthodes en découlant :
    • développement rapide d'applications
    • scrum
    • programmation extrême
    • développement piloté par les tests

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
Séances Titre Objectif Heures (lab. / maison)

1 – 3

Laboratoire 1

Programmation orientée objet

12 / 12

5 – 7

Laboratoire 2

Interface graphique

9 / 9

8 – 12

Laboratoire 3

Projet

15 / 15




Utilisation d'outils d'ingénierie

 




Évaluation
Titre Pondération Date et durée

Final

40 %

Semaine des examens finaux

Laboratoire 1 - Programmation orientée objet

18 %

Semaine laboratoire 1 à 4

Laboratoire 2 - Interface graphique

12 %

Semaine 5 (3 semaines)

Laboratoire 3 - Projet

30 %

Semaine 8 (5 semaines)




Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://www.etsmtl.ca/programmes-et-formations/horaire-des-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 à une évaluation
• Pour les départements à l'exception du SEG :
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 du 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 zéro (0).

• Pour SEG :
Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant devra justifier son absence auprès de son enseignant. 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 zéro (0).



Infractions de nature académique
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

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 2017

https://etsmtl.ca/examens




Adresse internet du site de cours et autres liens utiles

Site Moodle du cours: https://ena.etsmtl.ca/

 




Autres informations

Date de l’examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://etsmtl.ca/examens.