Logo ÉTS
Session
Cours
Responsable(s) Ali Ouni

Se connecter
 

Sauvegarde réussie
La notification a été envoyée
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Ali Ouni


PLAN DE COURS

Hiver 2025
MGL804 : Réalisation et maintenance de logiciels (3 crédits)





Préalables
Aucun préalable requis




Descriptif du cours
Étudier le rôle de la réalisation et de la maintenance dans le cycle de vie du logiciel.

Évolution et maintenance du logiciel. Méthodes propres à augmenter la durée de vie. Sélection de la méthode appropriée de réalisation. Prototypage. Mise au point. Gestion de la maintenance. Réutilisation et rétro-ingénierie des logiciels. Interaction entre réalisation et maintenance traitée tout au long du cours.



Objectifs du cours

Ce cours vise l’acquisition des principes de la maintenance et l'évolution du logiciel. Différentes techniques à différents niveaux de maintenance, évolution et analyse du logiciel seront étudiées de manière théorique et/ou pratique. 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, avec un langage orienté objet (Java, C#, C++, etc.). Au terme de ce cours, l'étudiant sera en mesure de ;

  • Maîtriser les connaissances propres à la maintenance et à l'évolution de logiciels.
  • Comprendre la problématique de la maintenance du logiciel (point de vue des clients/utilisateurs, des ingénieurs en maintenance, et des gestionnaires).
  • Comprendre et d’appliquer de différentes pratiques de réusinage (refactoring) du logiciel.
  • Mesurer la qualité du logiciel et analyser son impact sur la maintenance et l'évolution du logiciel
  • Proposer des solutions concrètes pour la maintenance dans le milieu professionnel.
  • Expérimenter les problématiques et difficultés associées lors de la  maintenance d'un logiciel légataire existant qu'on ne connais pas.



Stratégies pédagogiques

L’enseignement de ce cours sera basé sur les récents développements de la théorie de l’amélioration des processus de la maintenance du logiciel. Cet enseignement, principalement magistral, sera couplé avec des citations d’exemples de cas réel ou basé sur la réalité en entreprise. Nous attendons des étudiants qu’ils fassent preuve de sens critique, apportent leur expérience et qu’ils interviennent de manière régulière en classe. À l’instar de la diversité des entreprises, de leurs milieux d’action et de leurs pratiques de gestion, le cours utilise une grande variété de moyen pédagogique pour atteindre son but.

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

  • Lectures individuelles et exposés magistraux permettant de traiter le contenu
  • Jeux-questionnaires en ligne pour valider des connaissances
  • Exercices en petits groupes durant les séances
  • Analyse critique d’article traitant un sujet pertinent

Vous assisterez à des exposés magistraux et ferez des travaux théoriques et pratiques pertinents. Le cours comporte aussi des discussions de pratiques exemplaires. La discussion et les présentations visent à favoriser l'apprentissage de concepts fondamentaux par leur découverte ou leur mise en application dans une situation donnée.

Le cours comporte également des travaux pratiques à réaliser portant sur des sujets pertinents sur la maintenance de logiciel.

Charge d’enseignement : 39 heures de séances; Charge de travail de la personne inscrite au cours : environ six heures de travail hors séances par semaine. Sur une base hebdomadaire, cela correspond à trois heures (séance) plus six heures de travail (hors séance).




Utilisation d’appareils électroniques

Utilisation de votre ordinateur personnel pour les travaux pratiques et les présentations.

Vous devez avoir un ordinateur portable (laptop) pour effectuer les examens en classe. Si vous n'avez pas d'ordinateur portable vous ne pouvez pas suivre ce cours.

Il est interdit de capter le cours ou des portions du cours (enregistrement vidéo, enregistrement audio, photographie) pendant les séances du cours à moins d’avoir obtenu au préalable la permission du professeur.




Horaire
Groupe Jour Heure Activité
01 Mercredi 18:00 - 21:30 Activité de cours



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Christopher Fuhrman Activité de cours Christopher.Fuhrman@etsmtl.ca A-4471 Agenda en ligne



Cours

Contenu

  • Introduction sur la maintenance du logiciel
  • Maintenance, évolution et réingénierie du logiciel
  • Systemes logiciels légataires
  • Études empiriques en génie logiciel
  • Mesure de la qualité du logiciel
  • Le réusinage (refactoring) du logiciel
  • Les changements et l'analyse de l’impact des changements
  • Migration de logiciels
  • La visualisation du logiciel
  • Reconstruction de l'architecture
  • Sujets avancés sur la maintenance et l'évolution du logiciel

Cette liste est fournie à titre d'information comme planification initiale et est sujette à changement selon la cadence réelle du cours.




Laboratoires et travaux pratiques

Il y aura trois laboratoires à réaliser en équipe. Les travaux à réaliser visent à maîtriser les concepts de base sur la maintenance de logiciel en relation avec le contenu du cours, et à approfondir les connaissances théoriques et pratiques par rapport au sujet du projet.

  • Laboratoire #1 : Duplication du code et refactoring
  • Laboratoire #2 : Métriques de qualité et assistants de refactoring
  • Laboratoire #3 : Exploration des répertoires du code

Les activités des laboratoires seront réalisées en équipes de 3 étudiants. Chaque membre d'équipe est responsable de la totalité du travail réalisé et remis par son équipe. Un membre de l'équipe qui ne participe pas avec une contribution significative avec ses co-équipiers dans un travail reçoit une note de "0" pour le travail.




Évaluation
Item d'évaluation Pointage
Laboratoires (équipe)
  • Laboratoire #1
  • Laboratoire #2
  • Laboratoire #3

35%
10%
10%
15%

Mini tests de lecture (individuel) 10%
Lecture, présentation et discussion d’articles (équipe) 15%
Examen final (individuel) 40%
TOTAL 100%

 




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

Dispositions additionnelles

Les dates de remises doivent impérativement être respectées. Une pénalité de retard sera appliquée pour tous les travaux remis après la date limite selon le tableau suivant :

Retard Pénalité
0h01 et 24h00 -25%
24h01 et 48h00 -50%
>48h  -100%

 




Absence à une évaluation

Afin de faire valider une absence à une évaluation en vue d’obtenir un examen de compensation, l’étudiante ou l’étudiant doit utiliser le formulaire prévu à cet effet dans son portail MonÉTS pour un examen final qui se déroule durant la période des examens finaux ou pour tout autre élément d’évaluation surveillé de 15% et plus durant la session. Si l’absence concerne un élément d’évaluation de moins de 15% durant la session, l’étudiant ou l’étudiante doit soumettre une demande par écrit à son enseignante ou enseignant.

Toute demande de validation d’absence doit se faire dans les cinq (5) jours ouvrables suivant la tenue de l’évaluation, sauf dans les cas d’une absence pour participation à une activité prévue aux règlements des études où la demande doit être soumise dans les cinq (5) jours ouvrables avant le jour de départ de l’ÉTS pour se rendre à l’activité.

Toute absence non justifiée par un motif majeur (voir articles 7.2.6.1 du RÉPC et 6.5.2 du RÉCS) 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 étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-nature-academique) 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 tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

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’enseignante ou l’enseignant du cours.

Dispositions additionnelles

L'utilisation des SIAG est permise dans le cours seulement si vous respectez les conditions suivantes:

  • Indiquer la requête (prompt) utilisée ainsi que la réponse du SIAG dans :
    • le rapport, et
    • le formulaire Google Forms disponible sur Moodle.
  • Indiquer précisément la tâche réalisée (exemple : Exercice 3 du TP1, refactoring de la classe xyz.java dans l’exercice 2).
  • Ajouter, si possible, le lien public (URL) de l’interaction avec le SIAG (optionnel)

Le non-respect de ces conditions constitue une infraction de nature académique (tel que mentionné ci-haut).

Les SIAG peuvent produire des informations erronées. Si vous utilisez un SIAG pour un travail et vous avez respecté les conditions d'utilisation, vous demeurez tout de même responsable des erreurs qu’il pourrait générer.




Documentation obligatoire

Matériel du cours MGL804 (disponible sur Moodle)




Ouvrages de références

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

- Steve McConnell, Code complete, 2e édition. Redmond, Wash., Microsoft Press ,(2011).

- Fitzpatrick, B. W. et B. Collins-Sussman . Team Geek: A Software Developer's Guide to Working Well with Others. O'Reilly Media, (2013).

- Feathers, Michael. Working effectively with legacy code. Prentice Hall Professional, (2004).

- April A., Abran A., Améliorer la maintenance du logiciel. 2ième édition, Loze-Dion éditeur, (2016).

- Basics of Software Engineering Experimentation, SpringerFreeman, E., E. Freeman, et al. (2004).




Adresse internet du site de cours et autres liens utiles

Le site de cours se situe sur l'environnement numérique d'apprentissage de l'ÉTS (Moodle) : https://ena.etsmtl.ca/




Autres informations

Le matériel du cours (Powerpoint de présentation, notes de cours, laboratoires, excercices, etc.) ne doivent pas être distribués sur internet.