Spécification des composants

1. Vue globale des composants

diagram
Figure 1. Diagramme de composants décrivant la solution proposée
Info

Etant donner que l’on va utiliser SpringBoot, les composants des packages Controller et Service vont avoir besoin des interfaces Controller, Service, RequestMapping…​ proposé par SpringBoot via les annotations.
Aussi la partie connexion/inscription sera deleguée au service API OAuth2

2. Composants Controller

Les controllers sont la façade du serveur, ils sont le point d’entrée/sortie du serveur.
Voici nos différents controller :

  • UserController

  • GameController

2.1. Responsabilités du Composant UserController

  • Redirige les requêtes HTTP de base du serveur

  • Redirige vers les services adéquat les requêtes pour créer, explorer et rejoindre les parties

  • Renvoie la réponse des requêtes aux Client

2.2. Responsabilités du Composant GameController

  • Gère les requêtes WebSocket concernant les actions d’une partie en cours

2.3. Interfaces fournies

diagram
diagram

3. Composants Service

Les services sont la logique du serveur, ils font le lien entre la persistence des données et les objets du modèle.
Voici nos différents services :

  • UserService

  • GameService

3.1. Responsabilités du Composant UserService

  • Fait le lien avec la persistance des données des utilisateurs et des parties

  • Crée les parties, renvoie la liste des parties disponibles

3.2. Responsabilités du Composant GameService

  • Récupère les données d’une partie via les DAO

  • Modifie l’état de la partie grâce (via l’interface du modèle)

  • Enregistre (via les dao) et renvoie (au gameController) le nouvel état de la partie

3.3. Interfaces fournies

diagram
diagram

4. Composants DAO

Les composants Data Access Object sont le lien entre les services et la base de données ils sont responsable d’implémenter les opérations CRUD pour modifier les données de la base de donnée.
Voici nos composants DAO :

  • UserDAO

  • GameDAO

4.1. Interfaces fournies

diagram
diagram

5. Composants du modèle

Les composants du modèle sont la logique du métier pour implémenter un jeu de plateau.
Voici nos composants :

  • Game : assemble toutes interfaces du jeu

  • Deck : gère un paquet de carte

  • Card : implémente la logique d’une carte

  • Dice : gère les lancer de dés

  • Board : responsable du plateau de jeu (cases)

  • Player : responsable des informations des joueurs

  • Pawn : gère les informations des pions

5.1. Interfaces fournies

diagram
diagram
diagram
diagram
diagram
diagram
diagram

6. Interactions

diagram
Figure 2. Connection au site et exploration des parties disponibles
diagram
Figure 3. Creation d’une nouvelle partie
diagram
Figure 4. Envoi d’une requete attendant une réponse
diagram
Figure 5. Envoi de l’état de la partie
diagram
Figure 6. Tour nominal