🎓 Projet Fil Rouge : Architecture & Qualité Logicielle
1. Le Concept
L’objectif de ce projet est de transformer une idĂ©e fonctionnelle en une application robuste, maintenable et Ă©volutive. Contrairement aux projets scolaires classiques oĂą seul le rĂ©sultat compte, ici, c’est la structure interne qui prime.
Vous partirez de votre prototype initial (le “brouillon” fonctionnel) pour construire une architecture logicielle professionnelle respectant les standards de l’industrie : MVC, SOLID et Design Patterns.
2. Le Sujet (Rappel)
Vous continuez le développement sur le thème choisi en début de formation (RPG, Gestion Sportive, E-Commerce, Utilitaire, etc.).
Votre application doit rĂ©pondre Ă des cas d’usage complexes nĂ©cessitant de la Logique MĂ©tier (calculs, règles de gestion, changements d’Ă©tats) et ne pas se contenter d’afficher des donnĂ©es statiques.
3. La Roadmap de Développement
Voici les étapes obligatoires pour valider le module.
📅 Étape 1 : Structuration (Architecture MVC)
Objectif : Sortir du “Tout dans le Main” et organiser le code.
-
Mise en place du DĂ©pĂ´t : Initialisation d’un projet Git propre.
-
SĂ©paration des Couches : Application du pattern MVC (Modèle – Vue – ContrĂ´leur).
-
model: Contient les données et la logique métier pure (AucunSystem.out.printlnici !). -
view: Gère les interactions avec l’utilisateur (Console ou Interface Graphique simple). -
controller: Orchestre les appels entre la vue et le modèle.
-
📅 Étape 2 : Flexibilité (Principes SOLID)
Objectif : Rendre le code modulaire pour faciliter les évolutions futures.
-
SRP (Single Responsibility) : Chaque classe doit avoir une responsabilité unique. Exemple : Une classe
Playerne doit pas gérer sa propre sauvegarde en base de données. -
OCP (Open/Closed) : L’ajout d’une nouvelle fonctionnalitĂ© (ex: un nouveau type d’ennemi, une nouvelle taxe) doit se faire par extension (nouvelle classe) et non par modification du code existant (pas de multiplication des
if/else). -
DIP (Dependency Inversion) : Les modules de haut niveau ne doivent pas dépendre des implémentations concrètes. Utilisez des Interfaces pour découpler vos services.
📅 Étape 3 : Robustesse (Design Patterns)
Objectif : Résoudre des problèmes récurrents avec des solutions élégantes.
Vous devez implémenter et justifier au moins 2 Design Patterns parmi les catégories suivantes :
-
CrĂ©ationnels : Factory Method, Builder, Singleton. (Utiles pour la crĂ©ation d’objets complexes).
-
Comportementaux : Strategy, Observer, Command. (Utiles pour gérer des algorithmes interchangeables ou des événements).
-
Structurels : Adapter, Decorator, Composite.
4. Les Livrables Attendus (Mise Ă jour)
À la fin du délai imparti (J+7 après la fin de la formation), vous devrez fournir :
-
đź“‚ Le Code Source (
/src) :-
Propre, commenté et indenté.
-
Respectant les conventions de nommage Java.
-
-
đź“‚ L’Historique (
/legacy) :- Votre Notebook original (le prototype) pour permettre la comparaison “Avant/Après”.
-
đź“„ Le Rapport Technique (
ARCHITECTURE.md) :-
Architecture : Diagramme de Classes UML final (généré via PlantUML).
-
Design Patterns : Justification des choix (Pourquoi ce pattern ici ?).
-
Méthodologie & Transparence IA : Une section obligatoire détaillant votre démarche.
-
Logique de travail : Comment avez-vous procĂ©dĂ© pour passer du Notebook au code propre ? (Ex: “J’ai d’abord isolĂ© le Modèle, puis créé les Interfaces…”).
-
Outils IA utilisés : Quels outils avez-vous sollicités ? (ChatGPT, GitHub Copilot, Claude, etc.).
-
Usage et Critique : Comment l’IA vous a-t-elle aidĂ© ? (GĂ©nĂ©ration de code rĂ©pĂ©titif ? DĂ©bogage ? Suggestion de structure ?). Donnez un exemple concret oĂą l’IA vous a proposĂ© une solution que vous avez dĂ» refuser ou modifier car elle violait les principes SOLID ou MVC.
-
-
5. Grille d’Évaluation (Mise Ă jour)
La notation valorise autant le résultat technique que le recul critique sur vos outils et votre méthode.
| Critère | Poids | Ce qui est évalué |
|---|---|---|
| Architecture MVC | 20% | Séparation stricte des responsabilités. Le modèle est-il indépendant de la vue ? |
| Respect de SOLID | 25% | Usage pertinent des interfaces (DIP), découpage des classes (SRP), extensibilité (OCP). |
| Design Patterns | 20% | Implémentation correcte de 2 patterns majeurs. Sont-ils utiles ou forcés ? |
| Qualité du Code | 15% | Nommage, absence de code mort, convention Java, propreté du Git. |
| MĂ©thodologie & Critique IA | 20% | Transparence et dĂ©marche. L’Ă©tudiant est-il capable d’expliquer comment il a construit sa solution et de critiquer le code fourni par l’IA ? A-t-il utilisĂ© l’IA comme un assistant (copilote) ou comme une bĂ©quille (copier-coller aveugle) ? |
Bon courage ! N’oubliez pas : un bon dĂ©veloppeur n’est pas celui qui Ă©crit le plus de code, mais celui qui en Ă©crit le moins pour faire le plus de choses. 🚀