Université Mohamed Premier Oujda Filières : IA, GINF, ROC, IRSI
École Nationale de l'Intelligence Artificielle et du Digital Berkane Prof : Mohamed Khalifa BOUTAHIR
Année universitaire : 2024 / 2025
GESTION AGILE DE PROJET INFORMATIQUE – TD, TP
Série d’Activité n°7
OBJECTIF PRINCIPAL:
L'objectif de cette activité est d'intégrer les principes de qualité du code dans vos projets en
utilisant des outils adaptés. Vous allez apprendre à analyser, détecter et corriger les erreurs ou
les mauvaises pratiques dans votre code grâce à des outils comme ESLint (pour
JavaScript/[Link]), les plugins de qualité intégrés aux IDE (comme IntelliJ, VSCode), et
SonarQube pour une analyse approfondie. Cette étape est cruciale pour assurer la
maintenabilité, la lisibilité et la performance de vos applications.
I. Exercice 1 : Introduction au Linting et Analyse Statique du Code
Le linting est une technique d’analyse statique du code permettant de détecter des erreurs, des
incohérences, et des mauvaises pratiques avant l’exécution. Utiliser un linter garantit un code
propre, lisible et conforme aux standards de qualité.
Exemples de Linters par Langage :
JavaScript/[Link] : ESLint
Python : Pylint
Java : Checkstyle
C/C++ : cppcheck
Instructions Générales :
A) Installez le Linter Adapté :
Utilisez le gestionnaire de paquets de votre langage pour installer le linter.
B) Configurez le Linter :
Initialisez et configurez le linter selon les recommandations du projet.
C) Analysez le Code :
Lancez l’analyse statique sur vos fichiers.
D) Corrigez les Erreurs :
Appliquez les corrections suggérées par le linter pour améliorer le code.
II. Exercice 2 : Utilisation de SonarQube pour l’Analyse de Qualité du Code
L’analyse de qualité du code permet d’identifier les problèmes potentiels dans un projet en
examinant des aspects tels que les bugs, les vulnérabilités, et les duplications de code.
Contrairement au linting, qui vérifie principalement le style et la syntaxe, cette analyse
approfondie assure une meilleure fiabilité et maintenabilité du code. SonarQube est un outil
performant pour réaliser cette tâche : il fournit des métriques détaillées, détecte les failles de
sécurité, et aide à suivre l’évolution de la qualité tout au long du développement. En intégrant
SonarQube à vos projets, vous garantissez un code de haute qualité et réduisez les risques en
production.
Instructions Générales :
A) Installation de SonarQube :
Téléchargez et installez SonarQube sur votre machine depuis le site officiel :
[Link]
B) Analyse de votre Projet :
Lancez le serveur SonarQube et analysez votre code en utilisant SonarScanner.
Exemple de commande pour un projet JavaScript ou Java :
C) Interprétation des Résultats :
Identifiez les bugs, vulnérabilités et duplications de code signalés par SonarQube.
Corrigez les problèmes critiques identifiés par SonarQube.
III. Exercice 3 : Application des Bonnes Pratiques de Qualité du Code (Tous
Langages)
L’application des bonnes pratiques de qualité du code vise à rendre le code plus lisible,
maintenable et performant. Cela inclut des principes comme l’utilisation de noms explicites
pour les variables et fonctions, la création de fonctions courtes avec une seule responsabilité, et
l’élimination des duplications de code. En appliquant ces pratiques, les développeurs facilitent
le travail en équipe et réduisent les risques d’erreurs.
Instructions Générales :
A) Refactorisation :
Refactorisez une partie du code de votre projet en appliquant les bonnes pratiques de Clean
Code :
Noms de variables et de fonctions explicites.
Fonctions courtes et avec une seule responsabilité.
Élimination des duplications de code.
B) Écriture de Tests Unitaires
Les tests unitaires permettent de vérifier que chaque fonction de votre code fonctionne
correctement. Ils assurent que les modifications futures n'introduisent pas d'erreurs. Voici un
exemple simple de test unitaire en Python et en Java.
Supposons que vous ayez une fonction qui additionne deux nombres :
Pour tester cette fonction, vous pouvez écrire le test suivant :
C) Documentez vos Changements :
Décrivez brièvement les améliorations apportées et pourquoi elles améliorent la qualité du
code.