Skip to content

oussa92/TD_UML

Repository files navigation

TD UML / Reverse Engineering — Ride Sharing (type Uber)

Contexte

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.


Objectifs du TD

  1. Prendre en main un projet existant (clonage, environnement, exécution).
  2. Comprendre l’architecture et les concepts de conception.
  3. Produire un diagramme de classes UML Ă  partir du code (reverse engineering).

Pré-requis

  • Git
  • Python 3.x
  • VS Code
  • draw.io (desktop ou extension VS Code)

Partie 1 — Mise en place et exécution du code

1) Cloner le dépôt

  • 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

2) Créer et activer un environnement virtuel (venv)

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

3) Lancer la démo

Exécuter le script :

  • ride_sharing_demo.py

4) Résultat attendu

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)

---

Partie 2 — Production du diagramme UML (reverse engineering)

Outil

Installez et utilisez draw.io (ou StarUML / PlantUML, au choix).

Travail demandé

Ă€ partir du code Python fourni , produire un diagramme de classes UML qui contient :

  1. Classes

    • Inclure les classes principales du domaine et les classes “techniques”.
    • Indiquer les attributs pertinents.
    • Indiquer au minimum les mĂ©thodes publiques mĂ©tier.
  2. Héritage / Interfaces / Abstractions

    • Identifier les abstractions (ex. ABC, Protocol, classes de base).
    • ReprĂ©senter les relations de gĂ©nĂ©ralisation / rĂ©alisation.
  3. Enumérations

    • Lister et relier les enums utilisĂ©es (statuts, types, etc.).
  4. Patterns de conception Sur le diagramme, ajouter des stéréotypes ou notes indiquant où se trouvent :

    • Singleton
    • Strategy
    • Builder
    • State
    • Observer

Livrables

  1. 1 diagramme de classes UML (format draw.io).
  2. 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages