2025-12-13 10:39:45 +01:00
|
|
|
|
# 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 |
|
|
|
|
|
|
|----------|---------|--------|-----|-------------|
|
2025-12-14 18:49:01 +01:00
|
|
|
|
| US-D1 | AD | TODO | 🟩 | Implémenter BitInputStream (lecture bit par bit) |
|
|
|
|
|
|
| US-D2 | AD | TODO | 🟩 | Implémenter BitOutputStream (écriture bit par bit) |
|
2025-12-17 22:26:49 +01:00
|
|
|
|
| US-D3 | AD | TODO | 🟨 | Générer les tables de fréquences RGB |
|
|
|
|
|
|
| US-D4 | AD | TODO | 🟨 | Construire l’arbre Huffman |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
| US-D5 | AA | TODO | 🟥 | Générer les codes Huffman |
|
|
|
|
|
|
| US-D6 | AA | TODO | 🟥 | Générer les codes canoniques |
|
|
|
|
|
|
| US-U5 | YB | TODO | 🟥 | Chargement d’image via ImageIO |
|
|
|
|
|
|
| US-D8 | YB | TODO | 🟥 | Structure RGBImage + Pixel |
|
|
|
|
|
|
| US-P1 | AA | TODO | 🟥 | Interface simple d’affichage des fréquences |
|
|
|
|
|
|
| US-P2 | AD | TODO | 🟥 | Interface simple d’affichage Huffman |
|
|
|
|
|
|
| US-P3 | AA | TODO | 🟥 | Interface simple d’affichage canoniques |
|
|
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
## Fichiers à créer – Sprint 1
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
|
|
|
|
|
### `src/mimage/`
|
2025-12-13 22:17:10 +01:00
|
|
|
|
| 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 |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
### `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 |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
### `src/util/`
|
|
|
|
|
|
| Nom du fichier | Rôle | US |
|
|
|
|
|
|
|----------------|-------|----|
|
|
|
|
|
|
| `BitInputStream.java` | Lecture bit par bit | US-D1 |
|
|
|
|
|
|
| `BitOutputStream.java` | Écriture bit par bit | US-D2 |
|
2025-12-15 00:51:18 +01:00
|
|
|
|
| `ByteUtils.java` | Conversion int octets | US-D3 et plus |
|
2025-12-13 22:17:10 +01:00
|
|
|
|
| `FileUtils.java` | Méthodes utilitaires fichiers | US-U5 (indirect) |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
### `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 |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
### `src/` (racine)
|
|
|
|
|
|
| Nom du fichier | Rôle | US |
|
|
|
|
|
|
|----------------|-------|----|
|
|
|
|
|
|
| `ConverterController.java` | Contrôleur du convertisseur | US-U5, US-D3..D6, US-P1..P3 |
|
2025-12-18 10:02:19 +01:00
|
|
|
|
| `Convertisseur.java` | Lancement du convertisseur | — |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 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 | AD | TODO | 🟥 | Vérifier BitOutputStream avec flux réel |
|
|
|
|
|
|
| US-C5 | AD | TODO | 🟥 | 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 | YB | TODO | 🟥 | Finaliser affichage codes Huffman |
|
|
|
|
|
|
| US-P3 | AA | TODO | 🟥 | Finaliser affichage codes canoniques |
|
|
|
|
|
|
| US-U7 | YB | TODO | 🟥 | Implémenter l’aperçu (PreviewPanel) |
|
|
|
|
|
|
| US-D3..D6 | YB | TODO | 🟥 | Lier interface convertisseur ↔ compression |
|
|
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
## Fichiers à créer – Sprint 2
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
### `src/mpif/`
|
|
|
|
|
|
| Nom du fichier | Rôle | US |
|
|
|
|
|
|
|----------------|-------|----|
|
|
|
|
|
|
| `PIFWriter.java` | Écriture du fichier `.pif` | US-C5, US-U6 |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
### `src/vconverter/` (complément)
|
|
|
|
|
|
| Nom du fichier | Rôle | US |
|
|
|
|
|
|
|----------------|-------|----|
|
|
|
|
|
|
| `SavePanel.java` *(optionnel)* | Interface de sauvegarde `.pif` | US-U6 |
|
|
|
|
|
|
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 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
|
|
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
## Fichiers à créer – Sprint 2
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
### `src/mpif/`
|
|
|
|
|
|
| Nom du fichier | Rôle | US |
|
|
|
|
|
|
|----------------|-------|----|
|
|
|
|
|
|
| `PIFWriter.java` | Écriture du fichier `.pif` | US-C5, US-U6 |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
2025-12-13 22:17:10 +01:00
|
|
|
|
### `src/vconverter/` (complément)
|
|
|
|
|
|
| Nom du fichier | Rôle | US |
|
|
|
|
|
|
|----------------|-------|----|
|
|
|
|
|
|
| `SavePanel.java` *(optionnel)* | Interface de sauvegarde `.pif` | US-U6 |
|
|
|
|
|
|
|
|
|
|
|
|
### `src/`
|
|
|
|
|
|
| Nom du fichier | Rôle | US |
|
|
|
|
|
|
|----------------|-------|----|
|
|
|
|
|
|
| *(aucun nouveau fichier obligatoire)* | — | — |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 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` |
|
|
|
|
|
|
|
2025-12-18 10:02:19 +01:00
|
|
|
|
### `/doc`
|
2025-12-13 10:39:45 +01:00
|
|
|
|
| Nom du fichier | Rôle |
|
|
|
|
|
|
|----------------|-------|
|
|
|
|
|
|
| `rapport.pdf` | Livrable final |
|
2025-12-18 10:02:19 +01:00
|
|
|
|
| `UML/___.plantuml` | Sources de diagrammes |
|
2025-12-13 10:39:45 +01:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### Résultat attendu Sprint 4
|
|
|
|
|
|
- Rapport PDF validé
|
|
|
|
|
|
- Diagrammes UML terminés
|
|
|
|
|
|
- Makefile opérationnel
|
|
|
|
|
|
- Projet soumis proprement sur Gitea
|