Logo ÉTS
Session
Cours
Responsable(s) Fabio Petrillo

Se connecter
 

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

Responsable(s) de cours : Fabio Petrillo


PLAN DE COURS

Hiver 2024
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'étudiant ou l'étudiante 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 à permettre aux personnes étudiantes d'approfondir leur compréhension du processus de qualité logicielle et d'acquérir des compétences pour améliorer la qualité tout en réduisant les coûts de développement et de gestion des systèmes logiciels. Il explore également l'état de l'art de la qualité logicielle.

Les objectifs du cours sont les suivants :

  1. Présenter les origines du concept de qualité en logiciel.
  2. Sensibiliser aux coûts associés à la qualité logicielle.
  3. Introduire les modèles d'évaluation de la qualité logicielle.
  4. Étudier les normes définissant la qualité en logiciel.
  5. Examiner les critères pour évaluer la qualité logicielle.
  6. Explorer différentes techniques de revue et d'audit liées à la qualité logicielle.

Les travaux pratiques permettront aux étudiants de :

  1. Comprendre les causes des erreurs, des défauts et des défaillances logicielles.
  2. Analyser de manière critique les données relatives à la qualité logicielle.
  3. Appréhender le rôle des normes dans le domaine logiciel.
  4. Appliquer des méthodes de revue pour améliorer la qualité du logiciel.
  5. Évaluer la qualité des logiciels.

À la fin de ce cours, les étudiants auront atteint les objectifs suivants :

  1. Avoir une connaissance approfondie des divers aspects de la qualité logicielle.
  2. Reconnaître l'importance et la nécessité du contrôle de la qualité dans le développement logiciel.
  3. Maîtriser les principales pratiques de l'assurance qualité en logiciel.
  4. Être en mesure d'évaluer la qualité d'un logiciel de manière critique et objective.



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 Lundi 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é

08/01/2023

Présentation du plan de cours

Évaluation pré-cours

15/01/2023

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

Assurance qualité classique

Qualité logicielle agile

Définition du TP1

22/01/2023

Les modelés et processus

Mesures de qualité

 

29/01/2023

DevOps Research and Assessment (DORA)

 

05/02/2023

Présentation de projects (TP1)

Remise Rapport TP1

12/02/2023

L'ingénierie de la fiabilité des sites

Définition du TP2

19/02/2023

L'ingénierie de la fiabilité des sites

Remise Rapport technique (brouillion)

26/02/2023

Qualité de code

 
04/03/2023 Relâche  
11/03/2023 Techniques avancées de test du logiciel  

18/03/2023

Techniques avancées de test du logiciel

Présentation de projets (TP2)/Rapports techniques (RT)

Remise Rapport technique (final)

25/03/2023

Présentation de projets (TP2)/Rapports techniques (RT)

 

04/04/20/23
(JEUDI)

Présentation de projets (TP2)/Rapports techniques (RT)

 

08/04/2023

Présentation de projets (TP2)/Rapports techniques (RT)

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] (en équipe)
RT Rapport technique/papier (individuel)



Évaluation
TP1  30%
TP2 40%
RT 30%



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 à une évaluation
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 de 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 (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/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

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=19870