Aller au contenu

Proposition de solution pour le TP Vols

Diagramme de Classes

vols-diag-classe

Correction des Diagrammes de séquences

Réserver un vol

@startuml
title Cas d'utilisation : Réserver un vol (Sequence)

actor Client
participant "Interface Réservation" as IHM
participant "Système de Réservation" as System
participant "Vol" as Vol
participant "Réservation" as Reservation
participant "Passager" as Passager

== Démarrage  avec recherche ==
Client -> IHM : rechercherVols(critères)
IHM -> System : rechercherVols(critères)
System -> Vol : getVolDisponible()
Vol --> System : listeVols
System --> IHM : afficherVols(listeVols)

== Sélection du vol ==
Client -> IHM : sélectionnerVol(vol)
IHM -> System : créerRéservation(client, vol)
System -> Passager : saisirInfos(passager)
Passager --> System : infosValides

== Création de la réservation ==
System -> Reservation : new Réservation(vol, passager)
activate Reservation
Reservation -> Vol : vérifierDisponibilité()
Vol --> Reservation : disponible = true
Reservation -> Reservation : état = "en attente"
deactivate Reservation

System --> IHM : afficherConfirmation("Réservation créée !")
IHM --> Client : message("Réservation effectuée avec succès !")

@enduml

Annuler une réservation

@startuml
title Cas d'utilisation : Annuler une réservation (Sequence)

actor Client
participant "Interface Réservation" as IHM
participant "Système de Réservation" as System
participant "Réservation" as Reservation
participant "Vol" as Vol

Client -> IHM : sélectionnerRéservation(id)
IHM -> System : annulerRéservation(id)
System -> Reservation : getEtat()
Reservation --> System : état = "confirmée"

alt [Réservation confirmée ou en attente]
  System -> Reservation : annuler()
  activate Reservation
  Reservation -> Vol : libérerPlace()
  Vol --> Reservation : OK
  Reservation -> Reservation : état = "annulée"
  deactivate Reservation
  System --> IHM : message("Réservation annulée avec succès")
else [Réservation déjà annulée ou vol fermé]
  System --> IHM : message("Annulation impossible")
end

@enduml

Diagramme Etats d’un Vol

@startuml
title Diagramme d'Etat : Les états d'un Vol

[*] --> Fermé : création
Fermé --> Ouvert : ouvrirRéservation()
Ouvert --> Fermé : fermerRéservation()
Fermé --> En_cours : décoller()
En_cours --> Terminé : atterrir()
Terminé --> [*]
@enduml