@startuml left to right direction actor "U1:User" as U1 actor "U2:User" as U2 actor ":Admin" as A package chat { package "Gestion Utilisateur" { usecase connexion usecase changementPseudo usecase deconnexion usecase envoyerNotificationDeconnexion usecase envoyerNotificationConnexion usecase saisirPseudo usecase ValidationPseudo } package "Interaction" { usecase minimisationFenetre_iconTray usecase recevoirMessage usecase recevoirFichier usecase envoyerMessage usecase envoyerFichier } package "Affichage" { usecase voirMessage usecase lireHistorique usecase lireListeUtilisateurs usecase voirUtilisateurs } package "Configuration" { usecase mettreFichierSurMachine usecase creerRaccourci } usecase lireBaseDonneeUtilisateur usecase horodatage usecase remplirBaseDonneeUtilisateur } envoyerNotificationConnexion --- U2 envoyerNotificationDeconnexion --- U2 envoyerFichier ---- U2 envoyerMessage ---- U2 U2 -- recevoirFichier U2 -- recevoirMessage U1 --- envoyerMessage U1 -- envoyerFichier U1 --- recevoirMessage U1 -- recevoirFichier U1 -- connexion U1 -- deconnexion U1 -- voirMessage U1 -- voirUtilisateurs U1 -- minimisationFenetre_iconTray U1 -- changementPseudo A -- mettreFichierSurMachine A -- creerRaccourci recevoirMessage --> remplirBaseDonneeUtilisateur recevoirFichier --> remplirBaseDonneeUtilisateur lireHistorique <|-- lireBaseDonneeUtilisateur voirUtilisateurs <|-- lireListeUtilisateurs lireListeUtilisateurs <|-- lireBaseDonneeUtilisateur connexion <|-- saisirPseudo connexion --> envoyerNotificationConnexion changementPseudo <|-- saisirPseudo saisirPseudo --> ValidationPseudo deconnexion --> envoyerNotificationDeconnexion voirMessage <|-- lireHistorique voirMessage <|-- horodatage envoyerFichier --> horodatage envoyerMessage --> horodatage @enduml