Logo ÉTS
Session
Cours
Responsable(s) Fabio Petrillo

Se connecter
 

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

Responsable(s) de cours : Fabio Petrillo


PLAN DE COURS

Hiver 2025
MGL842 : L'ingénierie de la qualité du logiciel (3 crédits)





Préalables
Aucun préalable requis




Descriptif du cours
Au terme de ce cours, l’étudiante ou l’étudiant sera en mesure : d’analyser les exigences de haut niveau (d’affaires); d’en extraire les exigences qualité; de les transformer en cibles quantitatives de qualité et de les intégrer à l’intérieur d’un processus d’implantation de la qualité du logiciel.

Concepts et méthodes d’ingénierie de la qualité du logiciel. Modèles et processus permettant d’identifier, définir et formaliser les exigences qualité, les processus de transposition des exigences haut niveau (d’affaires) aux mesures de qualité, de même que les méthodes de contrôle de traçabilité et la documentation. Méthode, modèle et processus d’implantation de la qualité avec une analyse comparative en utilisant les modèles de développement du logiciel reconnus dans l’industrie. Approche consolidée, utilisant la méthode de formalisation des exigences qualité et le modèle d’implantation de la qualité pour effectuer un processus complet d’ingénierie de la qualité du logiciel.



Objectifs du cours

Ce cours vise à développer une compréhension approfondie des principes et pratiques de la qualité logicielle, ainsi qu'à doter les étudiants des compétences nécessaires pour améliorer la qualité des systèmes logiciels tout en optimisant les coûts de développement et de maintenance. Il aborde également les derniers développements en matière de qualité logicielle, en mettant l’accent sur les normes, les techniques et les outils d’évaluation.

 

Objectifs du cours :

1.  Comprendre les fondements de la qualité logicielle :

  • Explorer les origines et les évolutions du concept de qualité dans le domaine des logiciels.
  • Identifier les dimensions et les facteurs clés qui influencent la qualité des systèmes logiciels.

2. Analyser les coûts et les impacts de la qualité logicielle

  • Sensibiliser aux implications et opérationnelles liées à la qualité (et à l'absence de qualité) dans les projets logiciels.

3. Maîtriser les modèles et normes de qualité logicielle

  • Introduire les principaux modèles d’évaluation de la qualité, tels que ceux basés sur les normes ISO.
  • Étudier les normes et standards qui définissent et encadrent la qualité logicielle.

4. Évaluer et améliorer la qualité logicielle

  • Examiner les critères et méthodologies utilisés pour évaluer la qualité d’un logiciel.
  • Explorer les techniques de revue, d’audit et de test permettant d’identifier et de corriger les défauts.

5. Mettre en pratique les concepts de qualité logicielle

  • Appliquer des méthodes et outils concrets pour analyser, évaluer et améliorer la qualité des logiciels dans des contextes réels ou simulés.

 

Les activités pratiques du cours permettront aux étudiants de :

  1. Identifier les causes profondes des erreurs, défauts et défaillances dans les logiciels.
  2. Analyser et interpréter des données relatives à la qualité logicielle pour en tirer des recommandations.
  3. Comprendre et appliquer les normes et standards liés à la qualité logicielle.
  4. Utiliser des techniques de revue (code review) pour améliorer la qualité des logiciels.
  5. Évaluer objectivement la qualité d’un logiciel en utilisant des métriques et des outils appropriés.

À la fin de ce cours, les étudiants seront capables de :

  1. Démontrer une compréhension approfondie des concepts, pratiques et enjeux liés à la qualité logicielle.
  2. Reconnaître l'importance de l'assurance qualité tout au long du cycle de vie d’un logiciel.
  3. Maîtriser les principales approches et techniques d’amélioration de la qualité logicielle.
  4. Évaluer et améliorer de manière critique et méthodique la qualité des logiciels, en tenant compte des normes et des bonnes pratiques de l’industrie.



Stratégies pédagogiques

Le cours est basé sur l’application de l’ingénierie de la qualité du logiciel dans divers contextes. Des présentations magistrales permettent à l’étudiant d’acquérir les concepts de base. Des exercices en classe permettent aux étudiants d’approfondir les concepts présentés. L'objectif des exercices est de favoriser les auto-apprentissages en prévision des travaux pratiques. Finalement, le rapport/séminaire technique  développe la capacité de synthèse et présentation orale des sujets attirants pour les apprenants reliés à la qualité du logiciel.

Les cours seront administrés de façon hybride pour accommoder les personnes étudiantes qui ont des enjeux pour participer en personne. Les personnes étudiants seront invitées à participer d'un serveur Discord du cours, et les séances seront disponible par Zoom de façon synchronisée avec le cours présentiel. Des outils pédagogiques comme Moodle and Wooclap seront utilisés pour le soutien aux activités en classe.




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



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Fabio Petrillo Activité de cours fabio.petrillo@etsmtl.ca A-2422



Cours
Date Sujet Activité

10/01/2025

Présentation du plan de cours

Évaluation pré-cours

17/01/2025

Introduction à l'ingénierie de la qualité du logiciel

Assurance qualité classique

Qualité logicielle agile

Définition du TP1

24/01/2025

Les modelés et processus

Mesures de qualité

 

31/01/2025

DevOps Research and Assessment (DORA)

 

07/02/2025

Présentation de projects (TP1)

Remise Rapport TP1

14/02/2025

Présentation de projects (TP1)

Définition du TP2

21/02/2025

Qualité de code

 

28/02/2025

L'ingénierie de la fiabilité des sites

 
07/03/2025 Relâche (PAS DE COURS)  

14/03/2025

L'ingénierie de la fiabilité des sites

 

21/03/2025

Techniques avancées de test du logiciel

 

28/03/2025

Présentation de projets (TP2)

 

04/04/20/25

Présentation de projets (TP2)

 

11/04/2025

Présentation de projets (TP2)

Conclusion du cours

Remise Rapport TP2

Les activités en classe peuvent être sujettes à des variations en fonction de la dynamique de travail et du nombre de groupes définis au cours de la session.




Laboratoires et travaux pratiques

L'objectif du travail pratique consiste à permettre aux étudiants de mettre en œuvre concrètement les principes et les étapes du processus de qualité logicielle étudiés en classe. Les étudiants auront l'opportunité de travailler sur des projets réels ou des scénarios simulés, où ils devront appliquer les méthodes d'évaluation de la qualité, les normes de qualité en logiciel, et les techniques d'assurance qualité. Ils seront également amenés à utiliser des outils pertinents pour mesurer, analyser et améliorer la qualité des logiciels, en mettant l'accent sur la détection et la résolution des défauts et des erreurs.
Aussi, l'objectif du travail pratique est de permettre aux étudiants de concevoir et de mettre en œuvre un processus de qualité efficace dans le contexte du développement logiciel. Les étudiants auront l'opportunité de appliquer les concepts et les compétences acquises dans le cours pour créer un processus de qualité adapté à des projets logiciels réels, en mettant l'accent sur la planification, l'exécution, la surveillance et l'amélioration continue des activités liées à la qualité.

Pendant le cours, vous aurez l'occasion de compléter trois travaux notés. Les spécifications détaillées de chaque travail seront fournies au cours du trimestre. Concernant au les travail pratique 2 (TP2), vous serez organisés en équipes de trois personnes au maximum. Ces équipes resteront les mêmes tout au long de la session.


Travaux à remettre

TP Description
TP1 Évaluation du processus de qualité (individuel)
TP2 Conception et implementation du processus de qualité [DevOps] (individuel)



Évaluation
Travail Pratique 1  (individuel)  40%
Travail Pratique 2 (individuel) 60%



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.



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 systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation est explicitement autorisée par l’enseignant l’enseignant du cours




Documentation obligatoire

Forsgren, Nicole., Kim, Gene., Humble, Jez. Accelerate: The Science Behind DevOps : Building and Scaling High Performing Technology Organizations. United States: IT Revolution, 2018.

Suryn, Witold. Software Quality Engineering: A Practitioner's Approach. Germany: Wiley, 2014.

Wagner, Stefan. Software Product Quality Control. Germany: Springer Berlin Heidelberg, 2015.

Galin, Daniel. Software Quality: Concepts and Practice. United Kingdom: Wiley, 2018.
Humble, Jez., Farley, David. Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation. United Kingdom: Pearson Education, 2010.

Site Reliability Engineering: How Google Runs Production Systems. United States: O'Reilly Media, Incorporated, 2016.

Miranda, George., Majors, Charity., Fong-Jones, Liz. Observability Engineering: Achieving Production Excellence. Japan: O'Reilly Media, Incorporated, 2022.

Aniche, Maurizio. Effective Software Testing: A Developer's Guide. United States: Manning, 2022.

Leek, Rob van der., Visser, Joost., Rigal, Sylvan. Building Maintainable Software: Ten Guidelines for Future-proof Code. Japan: O'Reilly, 2016.

Thomas, David., Hunt, Andrew. The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition. United Kingdom: Pearson Education, 2019.




Ouvrages de références

Miroslaw Staron, Wilhelm Meding: Software Development Measurement Programs - Development, Management and Evolution. Springer 2018, ISBN 978-3-319-91835-8, pp. 1-258

Butcher, Paul. Debug It! Find, Repair, and Prevent Bugs in Your Code. United Kingdom: Pragmatic Bookshelf, 2009.

Zeller, Andreas. Why Programs Fail: A Guide to Systematic Debugging. Germany: Elsevier Science, 2009.

Leek, Rob van der., Rigal, Sylvan., Visser, Joost. Building Maintainable Software: Ten Guidelines for Future-proof Code. Japan: O'Reilly, 2016.

Chacon, Scott., Straub, Ben. Pro Git. United States: Apress, 2014.

Site Reliability Engineering: How Google Runs Production Systems. United States: O'Reilly Media, Incorporated, 2016.

Mastnak, Christian., Tanczos, Siegfried., Baumgartner, Manfred., Seidl, Richard., Pichler, Helmut., Klonk, Martin. Agile Testing: The Agile Way to Quality. N.p.: Springer International Publishing, 2021.

Sandler, Corey., Badgett, Tom., Myers, Glenford J.. The Art of Software Testing. Germany: Wiley, 2011.

ISO 25010 SQuaRE -Software and System Engineering – Software Product Quality Requirements and Evaluation – Quality model

ISO 25030 - Software engineering — Software product Quality Requirements and Evaluation (SQuaRE) — Quality requirements 

ISO 25040 - Software engineering — Software product Quality Requirements and Evaluation (SQuaRE) — Evaluation process




Adresse internet du site de cours et autres liens utiles



Autres informations

Moodle du cours
https://ena.etsmtl.ca/course/view.php?id=25010