You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web/Documents/Diagramme/README_DIAGRAMMES.md

6.4 KiB

retour au README.md
Retour aux Documents

Diagrammes nécéssaires à notre projet

Diagrammes de classes

class User {
    + name : string
}

User "1" --> "*" User: friends
User "1" --> "*" Notification: notifications
User "1" --> "*" Ask: friendRequests
class Notification {
    - text : string
}

interface INotifier {
 + notify() : void
}

INotifier --|> Observer

abstract class UserManager {
    - currentUser : User
    + deleteFriend(userId : int) : void
    + addFriend(userId : int) : void
    + respondToFriendRequest(requestId : int, choice : bool) : void
    + getFriends(userId : int) : User[]
}

class Ask {
    - fromUser : int
    - toUser : int
}

Ask --|> Subject

abstract class Subject {
    + attach(o : Observer) : void
    + detach(o : Observer) : void
    + notify() : void
}

Subject "1" --> "*" Observer
interface Observer {
    + update() : void
}

UserManager ..> User
UserManager o-- IUserRepository
UserManager o-- INotifier

interface IUserRepository {
    + findByUsername(username : string) : User
    + addUser(user : User) : bool
}

IUserRepository ..> User

Diagrammes de séquence

  • Envoi de demande d'ami :
actor User as u
boundary View as v
control Controller as c
entity Model as m

u->v:/Friend
v->c:Get : /Friends
c->m:getFriends(userId)
m-->c::friends : User[]
c-->v:renderView(Friends)
v-->u:
u->v:input : name
v->c:Get : searchFriends? pseudo=name
c->m:searchUser(name:string)
m->m:notify(from : user, to : user, action : action)
m-->c:OK
c-->v:OK
v-->u:OK
  • Accepter une demande d'ami :
actor User as u
boundary View as v
control Controller as c
entity Model as m

m->c:RecevoirDemandeAmi(idUser)
c->v:AfficherDemandeAmi(idUser)
v->u:PageDemandeAmi(idUser)
u-->v:RepondreDemandeAmi(bool)
v-->c:EnregistrerReponse(bool)
c-->m:EnvoyerReponse(bool)
  • Supprimer un ami :
actor User as u
boundary View as v
control Controller as c
entity Model as m

u->v: Request Friends Page
v->c: Get /Friends
c->m: getFriends(userId)
alt successful retrieval
    m-->c: friendsList: User[]
else retrieval failed
    m-->c: error
end
c-->v: renderView(friendsList)
v-->u: Display Friends

u->v: clickDeleteFriend(idUser)
v->c: Post: deleteFriend(idUser)
c->m: deleteFriend(idUser)
alt successful deletion
    m-->c: updatedFriendsList: User[]
else deletion failed
    m-->c: error
end
c-->v: renderView(updatedFriendsList)
v-->u: Display Updated Friends

Diagrammes de cas d'utilisation

  • Cas d'utilisation pour la gestion du compte et des amitiés
left to right direction
:Athlete: as a

a --> (Ajouter un ami)
a --> (Supprimer un ami)
a --> (Voir mes amis)
a --> (Modifier mes informations)
(Ajouter un ami)->(Saisir le nom de l'ami)
(Supprimer un ami)..>(S'authentifier) : <<include>>
(Ajouter un ami)..>(S'authentifier) : <<include>>
(Voir mes amis)..>(S'authentifier) : <<include>>
(Voir mes amis)..>(Lister les amis) : <<include>>
(Modifier mes informations)..>(Informations personnelles) : <<extends>>
(Modifier mes informations)..>(Informations de connexion) : <<extends>>
(Lister les amis)..>(Voir son profil) : <<include>>
(Voir son profil)..>(Voir ses activités) : <<extends>>
(Voir son profil)..>(Voir ses statistiques) : <<extends>>
(S'authentifier)..>(S'inscrire) : <<extends>>
(S'authentifier)..>(Se connecter) : <<include>>
(S'inscrire)..>(Inscription Athlète) : <<include>>
  • Cas d'utilisation pour la gestion des activités et données
left to right direction
:Athlete: as a

a --> (Importer des données) 
(Importer des données) .> (Saisir la source) : <<include>>
a --> (Exporter mes données)
(Exporter mes données) .>(Exporter toutes les activités): <<extends>>
(Exporter mes données) ..>(Exporter une activité): <<include>>
a --> (Ajouter une activité) 
(Ajouter une activité) ..>(Saisir un titre et une description): <<include>>
(Ajouter une activité) ..>(Saisir le type d'activité): <<include>>
(Ajouter une activité) .>(Saisir la source): <<include>>
(Saisir la source) ..>(Saisir le matériel utilisé): <<include>>
(Ajouter une activité) ..>(Saisir la visibilité): <<include>>
a --> (Voir une activité)
(Voir une activité) ..>(Exporter l'analyse): <<extends>>
(Voir une activité) ..>(Saisir la visibilité): <<extends>>
a --> (Supprimer une activité) 
(Importer des données) ...>(S'authentifier): <<include>>
(Exporter mes données) ...>(S'authentifier): <<include>>
(Ajouter une activité) ...>(S'authentifier): <<include>>
(Voir une activité) ...>(S'authentifier): <<include>>
  • Cas d'utilisation pour la suivi d'une équipe sportive
left to right direction
:Coach: as a

a --> (Ajouter un athlète)
a --> (Supprimer un athlète)
a --> (Afficher ses athlètes )
a --> (Afficher les activités de tous les athlètes)
(Ajouter un athlète).>(Validation par l'athlète) : <<include>>
(Ajouter un athlète)..>(S'authentifier) : <<include>>
(Supprimer un athlète)..>(S'authentifier) : <<include>>
(Afficher ses athlètes )..>(S'authentifier) : <<include>>
(Afficher les activités de tous les athlètes)..>(S'authentifier) : <<include>>
(S'authentifier)..>(S'inscrire) : <<extends>>
(S'inscrire).>(Inscription Coach) : <<include>>
(S'authentifier)..>(Se connecter) : <<include>>
(Afficher ses athlètes )..>(Voir les activités d'un athlète) : <<extends>>
(Afficher ses athlètes )..>(Voir les stats d'un athlète) : <<extends>>
(Afficher les activités de tous les athlètes)..>(Sélectionner une activité) : <<include>>
(Sélectionner une activité)..>(Voir l'analyse) : <<extends>>
(Sélectionner une activité)..>(Exporter l'analyse) : <<extends>>
(Voir les activités d'un athlète)..>(Voir l'analyse) : <<extends>>
(Voir les activités d'un athlète)..>(Exporter l'analyse) : <<extends>>

Base de Données

  • [BDD]