# Sprint Planning – Projet PIF ## Légende AD → Algassimou AA → Ayoub YB → Youness 🟥 TODO = À faire 🟨 DOING = En cours 🟩 DONE = Terminé # --------------------------------------- # SPRINT 1 (13–20 décembre 2025) # --------------------------------------- Objectif : Mise en place des fondations techniques (image, binaire, Huffman, canoniques) | US | Assigné | Statut | | Description | |-------|---------|--------|----|----------------------------------------------------| | US-D1 | AD | DONE | 🟩 | Implémenter BitInputStream (lecture bit par bit) | | US-D2 | AD | DONE | 🟩 | Implémenter BitOutputStream (écriture bit par bit) | | US-D3 | AD | DONE | 🟩 | Générer les tables de fréquences RGB | | US-D4 | AD | DONE | 🟩 | Construire l’arbre Huffman | | US-D5 | AA | DONE | 🟩 | Générer les codes Huffman | | US-D6 | AA | DONE | 🟩 | Générer les codes canoniques | | US-U5 | YB | DONE | 🟩 | Chargement d’image via ImageIO | | US-D8 | YB | DONE | 🟩 | Structure RGBImage + Pixel | | US-P1 | AA | DONE | 🟩 | Interface simple d’affichage des fréquences | | US-P2 | AD | DONE | 🟩 | Interface simple d’affichage codes Huffman | | US-P3 | AA | DONE | 🟩 | Interface simple d’affichage codes canoniques | ## Fichiers à créer – Sprint 1 ### `src/mimage/` | Nom du fichier | Rôle | US | |----------------|-------|----| | `Pixel.java` | Représente un pixel (r, g, b) | US-D8 | | `RGBImage.java` | Matrice de pixels + utilitaires | US-D8, US-U5 | ### `src/mhuffman/` | Nom du fichier | Rôle | US | |----------------|-------|----| | `FrequencyTable.java` | Stocke les fréquences R/G/B | US-D3 | | `HuffmanNode.java` | Nœud d’arbre Huffman | US-D4 | | `HuffmanTree.java` | Construction arbre + génération des codes | US-D4, US-D5 | | `CanonicalCode.java` | Génération des codes canoniques | US-D6 | ### `src/util/` | Nom du fichier | Rôle | US | |----------------|-------|----| | `BitInputStream.java` | Lecture bit par bit | US-D1 | | `BitOutputStream.java` | Écriture bit par bit | US-D2 | | `ByteUtils.java` | Conversion int octets | US-D3 et plus | | `FileUtils.java` | Méthodes utilitaires fichiers | US-U5 (indirect) | ### `src/vconverter/` | Nom du fichier | Rôle | US | |----------------|-------|----| | `ConverterWindow.java` | Fenêtre du convertisseur | US-P1, US-P2, US-P3 | | `PreviewPanel.java` | Aperçu de l’image chargée | US-U5 | | `FrequencyTablePanel.java` | Affichage fréquences RGB | US-P1 | | `CodeTablePanel.java` | Affichage Huffman + canoniques | US-P2, US-P3 | ### `src/` (racine) | Nom du fichier | Rôle | US | |----------------|-------|----| | `ConverterController.java` | Contrôleur du convertisseur | US-U5, US-D3..D6, US-P1..P3 | | `Convertisseur.java` | Lancement du convertisseur | — | --- ### Résultat attendu Sprint 1 - Compression entièrement fonctionnelle - Import d’image opérationnel - GUI minimaliste affichant fréquences / Huffman / canoniques - Aucun fichier `.pif` encore écrit # --------------------------------------- # SPRINT 2 (20–27 décembre 2025) # --------------------------------------- Objectif : Écriture du format `.pif` + finalisation convertisseur | US | Assigné | Statut | | Description | |------------|---------|--------|-----|-------------| | US-D2 | AA | TODO | 🟥 | Vérifier BitOutputStream avec flux réel | | US-C5 | AD | DOING | 🟨 | Implémenter PIFWriter (header + tables + pixels compressés) | | US-U6 | AD | TODO | 🟥 | Exporter une image en `.pif` | | US-P1 | AA | TODO | 🟥 | Finaliser affichage des fréquences | | US-P2 | AA | TODO | 🟥 | Finaliser affichage codes Huffman | | US-P3 | AA | TODO | 🟥 | Finaliser affichage codes canoniques | | US-U7 | AD | DOING | 🟨 | Implémenter l’aperçu (PreviewPanel) | | US-D3..D6 | YB | TODO | 🟥 | Lier interface convertisseur -> compression | ## Fichiers à créer – Sprint 2 ### `src/mpif/` | Nom du fichier | Rôle | US | |----------------|-------|----| | `PIFWriter.java` | Écriture du fichier `.pif` | US-C5, US-U6 | ### `src/vconverter/` (complément) | Nom du fichier | Rôle | US | |----------------|-------|----| | `SavePanel.java` en option a voir | Interface de sauvegarde `.pif` | US-U6 | --- ### Résultat attendu Sprint 2 - `.pif` généré correctement - Convertisseur fonctionnel à 80 % - UI complète pour la consultation des tables - Aperçu image fonctionnel # --------------------------------------- # SPRINT 3 (27 décembre 2025 – 3 janvier 2026) # --------------------------------------- Objectif : Lecture du fichier `.pif` + visualisateur opérationnel | US | Assigné | Statut | | Description | |----------|---------|--------|-----|-------------| | US-D7 | AD | TODO | 🟥 | Reconstruire les codes canoniques depuis fichier | | US-D8 | AD | TODO | 🟥 | Décoder pixels (implémenter PIFReader) | | US-U1 | YB | TODO | 🟥 | Ouvrir `.pif` via argument ou JFileChooser | | US-U2 | AA | TODO | 🟥 | Afficher l’image dans une fenêtre | | US-U3 | AA | TODO | 🟥 | Centrer l’image si elle est petite | | US-U4 | AD | TODO | 🟥 | Déplacement de l’image à la souris | | US-P6 | AA | TODO | 🟥 | Préparer diagrammes UML | ## Fichiers à créer – Sprint 3 ## Fichiers à créer – Sprint 2 ### `src/mpif/` | Nom du fichier | Rôle | US | |----------------|-------|----| | `PIFWriter.java` | Écriture du fichier `.pif` | US-C5, US-U6 | ### `src/vconverter/` (complément) | Nom du fichier | Rôle | US | |----------------|-------|----| | `SavePanel.java` *(optionnel)* | Interface de sauvegarde `.pif` | US-U6 | --- ### Résultat attendu Sprint 3 - Visualisateur 100 % fonctionnel - Lecture complète du format `.pif` - Image affichée, centrée, déplaçable - UML structurel prêt pour rapport # --------------------------------------- # SPRINT 4 (3–10 janvier 2026) # --------------------------------------- Objectif : Finalisation complète + livrable final | US | Assigné | Statut | | Description | |------------|---------|--------|-----|-------------| | US-P5 | AD | TODO | 🟥 | Javadoc complète | | US-P7 | AD | TODO | 🟥 | Makefile (compilation + jar + exécution) | | US-P6 | AA | TODO | 🟥 | Finalisation des diagrammes UML | | Tests | YB | TODO | 🟥 | Tests convertisseur + visualisateur | | Rapport | AD/AA/YB| TODO | 🟥 | Rédaction rapport complet | | Livraison | AD/AA/YB| TODO | 🟥 | Vérification dépôt Gitea + JAR exécutables | ## Fichiers à créer – Sprint 4 ### Racine creee tout au long | Nom du fichier | Rôle | |----------------|-------| | `Makefile` | Compilation + génération `.jar` | ### `/doc` | Nom du fichier | Rôle | |----------------|-------| | `rapport.pdf` | Livrable final | | `UML/___.plantuml` | Sources de diagrammes | --- ### Résultat attendu Sprint 4 - Rapport PDF validé - Diagrammes UML terminés - Makefile opérationnel - Projet soumis proprement sur Gitea