Vous êtes développeur et vous rejoignez une équipe qui maintient un code existant.
Le développeur qui a écrit ce code a quitté l’entreprise et la documentation est insuffisante.
Votre Tech Lead vous demande de comprendre le projet et de l’expliquer à l’équipe.
La seule information métier disponible : il s’agit d’un système de ride-sharing similaire à Uber.
- Prendre en main un projet existant (clonage, environnement, exécution).
- Comprendre l’architecture et les concepts de conception.
- Produire un diagramme de classes UML Ă partir du code (reverse engineering).
- Git
- Python 3.x
- VS Code
- draw.io (desktop ou extension VS Code)
- Ouvrir VS Code
- Ouvrir un terminal intégré
- Cloner le dépôt du projet
Pour plus de détails : Guide GitHub – Cloner un dépôt
- Se placer dans le dossier :
TD_UML
Créer un environnement env, l’activer, puis vérifier la version Python.
Pour plus de détails sur la création d’un environnement virtuel Python :
Guide GeeksforGeeks – Create virtual environment using venv
Exécuter le script :
ride_sharing_demo.py
Après avoir lancé ride_sharing_demo.py, on obtient par exemple la sortie suivante :
Trip 1ee5a334-3c82-4f8f-a6f2-4a7236e53600 status: IN_PROGRESS.
--------------------------------
--- Trip 1ee5a334-3c82-4f8f-a6f2-4a7236e53600 is ending ---
--- Notification for Driver Charlie ---
Trip 1ee5a334-3c82-4f8f-a6f2-4a7236e53600 status: COMPLETED.
--------------------------------
Driver Charlie is now ONLINE
Driver Charlie is now back online at Location(8.0, 8.0)
---
Installez et utilisez draw.io (ou StarUML / PlantUML, au choix).
Ă€ partir du code Python fourni , produire un diagramme de classes UML qui contient :
-
Classes
- Inclure les classes principales du domaine et les classes “techniques”.
- Indiquer les attributs pertinents.
- Indiquer au minimum les méthodes publiques métier.
-
Héritage / Interfaces / Abstractions
- Identifier les abstractions (ex.
ABC,Protocol, classes de base). - Représenter les relations de généralisation / réalisation.
- Identifier les abstractions (ex.
-
Enumérations
- Lister et relier les enums utilisées (statuts, types, etc.).
-
Patterns de conception Sur le diagramme, ajouter des stéréotypes ou notes indiquant où se trouvent :
- Singleton
- Strategy
- Builder
- State
- Observer
- 1 diagramme de classes UML (format draw.io).
- Une présentation courte (3 à 5 minutes) comprenant :
- le rôle global du système,
- les classes principales et leurs responsabilités,
- les relations importantes (multiplicités, composition vs association),
- au moins 2 pistes d’amélioration.