Logo ÉTS
Session
Cours
Responsable(s) Ali Ouni

Se connecter
 

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

Responsable(s) de cours : Ali Ouni


PLAN DE COURS

Hiver 2021
LOG530 : Réingénierie du logiciel (3 crédits)


Modalités de la session d’hiver 2021


Pour assurer la tenue de la session d’hiver 2021, les modalités suivantes seront appliquées :


La plupart des cours de la session d'hiver seront donnés à distance. Les autres seront donnés en présence si la situation socio-sanitaire le permet. Cette information est disponible sur l’horaire de la session d’hiver diffusé sur le site de l’ÉTS ainsi que sur Cheminot.

L’étudiant inscrit à un cours à distance doit avoir accès à un ordinateur, un micro, une caméra et un accès à internet, idéalement de 10Mb/s ou plus. L’étudiant doit ouvrir sa caméra et/ou son micro lorsque requis, notamment pour des fins d’identification ou d’évaluation.


Les cours à distance pourraient être enregistrés, à la discrétion de l’ÉTS, afin de les rendre disponibles aux étudiants inscrits aux cours.


La notation des cours sera la notation régulière prévue aux règlements des études de l'ÉTS.


Les examens intra se feront normalement à distance. Les examens finaux se feront normalement en présence si la situation socio-sanitaire le permet.


Pour les examens (intra, finaux) qui devaient se faire à distance, leur surveillance se fera à l’aide de la caméra et du micro de l’ordinateur et pourrait être enregistrée. Ceci est nécessaire pour se conformer aux exigences du Bureau canadien d’agrément des programmes de génie (BCAPG) afin d’assurer la validité des évaluations.

Le contexte actuel oblige bien sûr l’ÉTS à suivre de près l’évolution de la pandémie de COVID-19, laquelle pourrait entraîner, avant ou après le début de la session d’hiver 2021, un resserrement des directives et recommandations gouvernementales. Nous vous assurons que l’ÉTS se conformera aux règles en vigueur afin de préserver la santé publique et que, si requis, elle pourrait aller jusqu’à interdire l’accès physique au campus universitaire et ordonner que toutes les activités d’enseignement et d’évaluation soient exclusivement données à distance pour tout ou partie de la session d’hiver 2021.

Des exigences additionnelles pourraient être spécifiées par l’ÉTS ou votre département, suivant les particularités propres à votre programme.

En vous inscrivant ou en demeurant inscrit, vous acceptez les modalités particulières de la session d’hiver 2021.


Nous vous rappelons que vous avez jusqu’au 17 janvier 2021 pour vous désinscrire de vos cours et être remboursé.


Pour les nouveaux étudiants inscrits au programme de baccalauréat uniquement, vous avez jusqu’au 31 janvier 2021 pour vous désinscrire de vos cours et être remboursé.




Préalables
Programme(s) : 7065,7070,7365,7610
             
  Profils(s) : Tous profils  
             
    LOG210    
             
Unités d'agrément
Total d'unités d'agrément : 58,8 25,0 % 75,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

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'étudiant sera en mesure de proposer des solutions concrètes pour la réingénierie dans le milieu professionnel. Les concepts suivants seront abordés :

  • 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.



Objectifs du cours

À la fin de ce cours, l’étudiant(e) sera en mesure de:

  • Proposer et appliquer des solutions concrètes pour la réingénierie d’un logiciel existant,
  • Effectuer une analyse de qualité de logiciel pour identifier des opportunités de réusinage,
  • Appliquer des techniques de réusinage et de rétro-ingénierie,
  • Comprendre et distinguer les bonnes et mauvaises pratiques d’implémentation/conception.



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.
  • Trois (3) 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.



Utilisation d’appareils électroniques

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 Jeudi 13:30 - 17:00 Activité de cours
Vendredi 08:30 - 11:30 Laboratoire



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Ali Ouni Activité de cours Ali.Ouni@etsmtl.ca A-4483
01 Mélanie Langevin Laboratoire melanie.langevin.1@ens.etsmtl.ca



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.5 heures)

[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 : Métriques de qualité et visualisation
  • Laboratoire #4 : Exploration des répértoires de code
  • Laboratoire #5 : 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 2-3 étudiants.




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
Examen intra : 10%
Laboratoires : 25%
Projet de réingénierie : 20%
Présence et participation pendant les séances du cours : 5%
Examen final : 40%

Une moyenne pondérée inférieure à 50% aux examens à évaluation individuelle (Intra et Final) entraine automatiquement un échec au cours.




Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 18 février 2021



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.



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).



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/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-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 les étudiants sont invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).



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.