Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 32825e99 rédigé par ArKeid0s's avatar ArKeid0s
Parcourir les fichiers

Updated conception

parent e3970445
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #56350 réussi
...@@ -99,21 +99,14 @@ include::../partials/interfaces-diagrams/client-interfaces.puml[] ...@@ -99,21 +99,14 @@ include::../partials/interfaces-diagrams/client-interfaces.puml[]
include::../partials/interfaces-diagrams/cards-interfaces.puml[] include::../partials/interfaces-diagrams/cards-interfaces.puml[]
.... ....
=== Correction === Interface ou protocoles de communication
NOTE: TODO! * WebSocket
== Patrons logiciels utilisés
NOTE: Décrivez dans cette partie les patrons logiciels utilisés pour mettre en œuvre l'application.
=== Patron de conception "A" === Patron de conception "A"
NOTE: TODO! * DTO (Data Transfer Protocol)
* Injection de dépendances
=== Patron architectural "B"
NOTE: TODO!
== Choix techniques - Distribution des processus == Choix techniques - Distribution des processus
...@@ -122,19 +115,19 @@ NOTE: TODO! ...@@ -122,19 +115,19 @@ NOTE: TODO!
Explicitez les différents choix techniques et les réponses technologiques aux différentes contraintes que le système implique. Explicitez les différents choix techniques et les réponses technologiques aux différentes contraintes que le système implique.
==== ====
Pour cela nous allons donc vous présenter l'environnement général de développement puis énoncer les 4 contraintes que nous avons déterminées de notre logiciel. === Server
Pour la partie serveur, nous avons diviser le projet en 3 packages.
* `core` qui contient toutes les classes generiques. Il sert a orchestrer tout el projet. Que ce soit techniquement mais aussi en terme de gameplay puisqu'il va contenir toutes les méthodes de jeu. Ce package contient aussi l'interface de `game_server` et de `middleware` afin de ne pas créer de dépendances cycliques
* `game_server` qui contient toutes les méthodes relatives au serveur de jeu. Il a une dépendance au package `middleware`
* `middleware` contient toutes les méthodes pour communiquer avec les `ClientMiddleware`. Le package `middleware` a une dépendance au package `game_server`.
Afin de partager des informations entre le serveur et les clients, nous avons utilisé des DTO. Nous avons choisi d'utiliser les DTO car ils nous permettent de choisir quels variables exposer et partager. En parallèle, nous utilisons un objet java qui contient ce DTO. Exemple :
Nous avons fais le choix d'utiliser comme environnement de travail l'IDE eclipse. Notre `Player` possède une liste de cartes qui sont sa main. Cette liste ne doit pas etre révélée aux autres joueurs, mais on veut tout de monde dire aux clients quel est le userName de notre joueur. Pour cela nous allons mettre le userName dans le DTO et dans notre objet java nous aurons un objet DTO correspondant a notre joueur, mais aussi sa liste de cartes. Ainsi lorsque nous devrons mettre à jour les clients par exemple, nous n'enverrons que les `PlayerDTO`.
Pour la raison que nous connaissons tous très bien cette environnement, ce qui nous permet d'avoir tous le même environnement de développement.
Également, cette IDE permet la gestion d'un projet maven ce qui nous sera parfaitement adapté.
Voici les 4 contraintes que nous avons déterminées :
. L'interface graphique.
. La communication vers la base de données.
. La communication entre les machines.
. La sécurité.
== Autres choix de conception == Autres choix de conception
=== Client === Client
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter