← Retour aux projets



Étude de cas
Débogage & refactoring Java (Heme Biotech)
Débogage et correction d'une application Java de prédiction des besoins médicaux chez Hemebiotech.
Contexte
Heme Biotech ("Des remèdes pour ceux qu'on aime"), entreprise pharmaceutique spécialisée dans les troubles sanguins, avait confié à Alex, chercheur en chimie, le développement d'un petit outil Java d'analyse de tendances : lire un fichier de symptômes et produire le décompte de chacun, trié alphabétiquement. Alex s'est retrouvé bloqué avec un compteur qui retournait toujours 0. Caroline, directrice technique et cofondatrice, a confié la suite à un stagiaire dev : diagnostiquer le bug, refactoriser vers des standards Java OOP, et documenter le tout en Javadoc pour la reprise en équipe.
Problèmes & Périmètre
- Compteur de symptômes retournant systématiquement 0, quel que soit le nombre réel d'occurrences dans le fichier (ex. 3 occurrences de "maux de tête" → 0 en sortie)
- Code monolithique sans séparation des responsabilités entre lecture, comptage et écriture
- Absence d'interfaces et de patterns OOP
- Nommage non conforme aux conventions Java (camelCase)
- Aucune documentation Javadoc disponible pour la reprise par l'équipe
Solution & Livrables
- Bug résolu par agrégation via TreeMap.merge() : une seule structure de données gère à la fois le comptage exact et l'ordre alphabétique natif — plus besoin d'étape de tri séparée
- Lecture déléguée à ReadSymptomDataFromFile, qui implémente l'interface ISymptomReader (getSymptoms())
- Écriture encapsulée dans WriteSymptomDataToFile, qui implémente ISymptomWriter
- AnalyticsCounter recentrée sur 2 responsabilités : countSymptoms() (agrégation TreeMap) et writeSymptoms() (génération du fichier de sortie)
- Point d'entrée isolé dans une classe Main dédiée qui orchestre lecture → comptage → écriture
- Nommage camelCase appliqué sur l'ensemble du code
- Javadoc complète sur toutes les méthodes publiques
- Fichier result.out généré avec les symptômes triés alphabétiquement et leur décompte exact
Stack & Technologies
- Java 8+ — langage principal
- TreeMap — structure de données pour tri naturel et comptage exact
- Interfaces Java — ISymptomReader, ISymptomWriter
- Javadoc — documentation automatique du code
- Git — workflow dev → main, commits atomiques par étape
- IntelliJ IDEA — environnement de développement
Étapes du projet
- 1Analyse & diagnosticLecture du code existant, identification du bug TreeMap et cartographie des violations OOP
- 2Correction du bugRemplacement de la logique de comptage défaillante par une TreeMap pour un tri et un comptage corrects
- 3Refactorisation OOPCréation des interfaces, classes séparées, nommage camelCase sur l ensemble du code
- 4DocumentationRédaction de la Javadoc complète sur toutes les méthodes publiques
- 5Validation & livraisonTests manuels, génération du fichier result.out, soutenance validée avec 2/2 compétences
Résultats de la soutenance
2/2
Compétences validées
1 critique
Bugs corrigés
4
Classes créées
2
Interfaces
Captures d'écran
