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 2026
LOG530 : Réingénierie du logiciel (3 crédits)


Préalables
Pour tous profils : LOG210



Description du cours
Ce cours vise l’acquisition des principes de la réingénierie du logiciel. Différentes techniques à différents niveaux d’un logiciel seront étudiées de manière théorique ou pratique.

Au terme de ce cours, l'étudiante ou l'étudiant sera en mesure de proposer des solutions concrètes pour la réingénierie dans le milieu professionnel. Nous y verrons les concepts suivants :
• maintenance du logiciel;
• exigences des systèmes modernes et les techniques de transformations des systèmes patrimoniaux;
• définition des systèmes patrimoniaux;
• stratégies de transformation des systèmes patrimoniaux;
• approches centrées sur les règles d’affaires;
• réusinage de code;
• patrons en réingénierie;
• réingénierie de bases de données;
• rétro-ingénierie et ses outils.



Stratégies pédagogiques
  • Un cours magistral de trois (3) heures par semaine portant sur les principes et les pratiques de la réingénierie logicielle. Ces principes seront accompagnés d’exemples concrets, de quiz et d’exercices pratiques.
  • Deux (2) heures de laboratoire par semaine qui permettront à l’étudiant d’appliquer les concepts théoriques vus en classe et d’utiliser les outils de réingénierie.



Informations concernant l’agrément du BCAPG
Ce cours compte 58,8 unités d'agrément réparties comme suit :

Catégories de UA Nombre Proportion Matière(s) traitée(s)
Science du génie 44,1 UA 75,00 %
Conception Ingénierie 14,7 UA 25,00 %






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 ou des laboratoires à moins d’avoir obtenu au préalable la permission de l'enseignant.




Horaire
Groupe Jour Heure Activité
01 Lundi 08:30 - 12:00 Activité de cours
Mardi 08:30 - 10:30 Laboratoire (Groupe A)
Mardi 10:30 - 12:30 Laboratoire (Groupe B)



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Ali Ouni Activité de cours ali.ouni@etsmtl.ca A-4483
01 Bilal Alchalabi Laboratoire (Groupe A) CC-bilal.alchalabi@etsmtl.ca
01 Laboratoire (Groupe B)



Cours

Contenu[1]

  • Introduction (3 heures)
  • Maintenance, évolution et réingénierie de logiciels (3 heures)
  • Les systèmes légataires (1.5 heures)
  • Réusinage (Refactoring) de logiciels (4.5 heures)
  • Métriques de qualité pour la réingénierie de logiciels (3 heures)
  • Patrons de réingénierie (6 heures)
  • Compréhension de logiciel (1.5 heures)
  • Retro-ingénierie: visualisation du logiciel (3 heures)
  • Les changements et analyse de l’impact (3 heures)
  • Architecture et reconstruction d’architecture (3 heures)
  • Études empiriques pour la réingénierie (3 heures)
  • Présentation et discussion des projets (3 heures)
  • Révision (1 heure)

[1]   La matière ne sera pas nécessairement présentée dans cet ordre. Tous les sujets proposés seront traités, mais la durée individuelle d’enseignement est approximative et peut varier pour chaque sujet.




Laboratoires et travaux pratiques

Il y a 5 travaux prévus pour les laboratoires et un projet: 

Laboratoires :

  • Laboratoire #1 : Duplication de code
  • Laboratoire #2 : Assistants de refactoring
  • Laboratoire #3 : Exploration des répértoires de code
  • Laboratoire #4 : Analyse dynamique et tests

Projet :

Le but du projet est d'explorer les différentes techniques de réingénierie et analyser leurs impact sur la qualité et l'évolution d'un systéme existant. Le projet sera réalisé en équipes de 3 étudiants.

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.




Utilisation d'outils d'ingénierie

L’étudiant se familiarise avec des outils et environnements de développement supportant la rétro-ingénierie, la détection des défauts de conception/implémentation, la visualisation logicielle, et la transformation et le réusinage de code, etc.




Évaluation


Informations additionnelles :
Examen intra : 20%
Laboratoires : 20%
Projet de réingénierie : 20%
Mini-tests (moodle) : 5%
Examen final : 35%

L'étudiant(e) doit avoir une moyenne d'au moins 50% aux examens à évaluation individuelle (Intra, Final et mini-tests) afin de réussir le cours.  Cette condition est nécessaire mais non suffisante pour réussir le cours.

L'examen intra et l'examen final se tiendront en présentiel




Seuil de passage pour les éléments à caractère individuel

Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 23 février 2026



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 20 % par jour 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 la personne enseignante du cours ou la personne coordonnatrice dans le cas des stages.



Documentation obligatoire

Disponibles gratuitement pendant cette période d'enseignement à distance (sur Moodle):

S. Demeyer, S. Ducasse, O. Nierstrasz, Object-oriented reengineering patterns. Amsterdam, Boston: Morgan Kaufmann Publishers, 2003.




Ouvrages de références

Fowler, Martin, Refactoring: improving the design of existing code. Boston: Addison-Wesley, 2eme édition, 2019.

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

Steven C. McConnell, Code complete, 2e édition. Redmond, Wash., Microsoft Press.

Robert C. Martin, Clean code: a handbook of agile software craftsmanship. Pearson Education, 2009.

April, Alain et Abran, Alain, Améliorer la maintenance du logiciel. Loze-Dion, 337 pp., 2006.

Mens, Tom, & Demeyer, Serge, Software Evolution. Springer Berlin Heidelberg, XVIII, 347 pp., 2008. 




Adresse internet du site de cours et autres liens utiles

Moodle: https://ena.etsmtl.ca




Autres informations

Le matériel du cours (Powerpoint de présentation, laboratoires, excerices, projets, etc.) sont pour votre propre usage dans le cadre du cours LOG530, et il est strictement interdit de les partager sur internet.