From b8470f6e91937e5e541f76588fad3cd068828615 Mon Sep 17 00:00:00 2001
From: Mathis Emeriau <mathis.emeriau@etu.univ-nantes.fr>
Date: Sun, 18 Dec 2022 20:55:20 +0100
Subject: [PATCH] Added some architecture documentation again and maybe the
 last time.

---
 README.adoc                                   |  2 +-
 .../pages/a-player-disconnets.plantuml        | 14 +++++
 .../architecture/pages/architecture.adoc      | 61 +++++++++++++------
 .../architecture/pages/game-ended.plantuml    | 17 ++++++
 .../architecture/pages/system-stop.plantuml   |  7 +++
 5 files changed, 83 insertions(+), 18 deletions(-)
 create mode 100644 catan-doc/modules/architecture/pages/a-player-disconnets.plantuml
 create mode 100644 catan-doc/modules/architecture/pages/game-ended.plantuml
 create mode 100644 catan-doc/modules/architecture/pages/system-stop.plantuml

diff --git a/README.adoc b/README.adoc
index 300f68e..ee7849b 100644
--- a/README.adoc
+++ b/README.adoc
@@ -33,7 +33,7 @@ Mathis Emeriau et Tristan Ramé
 
 == Livrables attendus
 
-** Analyse du domaine{nbsp}: mise à jour du livrable précédent
+** Analyse du domaine
 ** Spécification des exigences{nbsp}: Spécification de *tous* les cas d'utilisation du projet.
 ** Spécification des composants{nbsp}: Spécification de *tous* les composants du projet.
 ** Conception détaillée{nbsp}: Conception détaillée de tous les composants.
diff --git a/catan-doc/modules/architecture/pages/a-player-disconnets.plantuml b/catan-doc/modules/architecture/pages/a-player-disconnets.plantuml
new file mode 100644
index 0000000..b16675c
--- /dev/null
+++ b/catan-doc/modules/architecture/pages/a-player-disconnets.plantuml
@@ -0,0 +1,14 @@
+@startuml
+start
+:User1 disconnected;
+fork
+:Disconnect User2;
+fork again
+:Disconnect User3;
+fork again
+:Disconnect User4;
+end fork
+:Closed the game;
+:Initialize the system;
+end
+@enduml
\ No newline at end of file
diff --git a/catan-doc/modules/architecture/pages/architecture.adoc b/catan-doc/modules/architecture/pages/architecture.adoc
index 7387bd7..acc4655 100644
--- a/catan-doc/modules/architecture/pages/architecture.adoc
+++ b/catan-doc/modules/architecture/pages/architecture.adoc
@@ -57,20 +57,20 @@ include::deployment-diagram-instance.adoc[]
 
 == Vue de la fiabilité
 
-[NOTE]
-====
-Dans cette partie, vous allez présenter les différents choix architecturaux pour assurer la fiabilité du système.
+//[NOTE]
+//====
+//Dans cette partie, vous allez présenter les différents choix architecturaux pour assurer la fiabilité du système.
 
-Vous devez aussi présenter les prévisions de fonctionnement dans des conditions limite{nbsp}:
-* Comment le système est initialisé{nbsp}?
-* Comment le système est arrêté{nbsp}?
-* Comment sont gérés les failles et le redémarrage du système{nbsp}?
-====
+//Vous devez aussi présenter les prévisions de fonctionnement dans des conditions limite{nbsp}:
+//* Comment le système est initialisé{nbsp}?
+//* Comment le système est arrêté{nbsp}?
+//* Comment sont gérés les failles et le redémarrage du système{nbsp}?
+//====
 
-[TIP]
-====
-Utilisez des diagrammes d'activité UML pour décrire l'initialisation et l'arrêt du système.
-====
+//[TIP]
+//====
+//Utilisez des diagrammes d'activité UML pour décrire l'initialisation et l'arrêt du système.
+//====
 
 .Initialisation du système
 [plantuml]
@@ -78,6 +78,24 @@ Utilisez des diagrammes d'activité UML pour décrire l'initialisation et l'arr
 include::example$ad-initialization.plantuml[]
 ----
 
+.Arrêt du système
+[plantuml]
+----
+include::system-stop.plantuml[]
+----
+
+.Le joueur 1 se déconnecte
+[plantuml]
+----
+include::a-player-disconnets.plantuml[]
+----
+
+.La partie est finie
+[plantuml]
+----
+include::game-ended.plantuml[]
+----
+
 == Vue du développement
 
 //[NOTE]
@@ -103,11 +121,20 @@ Phase de développement non commencée.
 
 == Vue logique
 
-[NOTE]
-====
-L'objectif de la vue logique est de décrire les différents composants qui jouent un rôle commun
-dans les différents projets qui respectent une même architecture.
-====
+//[NOTE]
+//====
+//L'objectif de la vue logique est de décrire les différents composants qui jouent un rôle commun
+//dans les différents projets qui respectent une même architecture.
+//====
+
+Cette configuration de composants pourrait tout à fait marcher dans un autre projet. On a une database, qui est utilisé
+par un serveur, et le serveur et les utilisateurs communiquent. Notre façon de communiquer, en mettant plusieurs étapes,
+permettra une adaptabilité plus facile à chaque type de projet.
+
+Le composant Middleware permet ainsi de prendre l'information des clients, en TypeScript, de le traduire en WebSocket,
+de le transmettre à la partie serveur Middleware qui lui fera la transcription inverse mais en Java cette fois-ci.
+Pourquoi en Java ? Le logiciel est prévu comme cela, mais les langages TypeScript et Java ne sont pas obligatoires. Un
+projet peut reprendre cette structure avec des langages différents.
 
 //== Vue des processus
 
diff --git a/catan-doc/modules/architecture/pages/game-ended.plantuml b/catan-doc/modules/architecture/pages/game-ended.plantuml
new file mode 100644
index 0000000..c0e5774
--- /dev/null
+++ b/catan-doc/modules/architecture/pages/game-ended.plantuml
@@ -0,0 +1,17 @@
+@startuml
+(*) --> if "Game ended" then
+        -->[true] ======B1======
+        --> "Disconnect User1"
+        --> ===B2===
+        ===B1=== --> "Disconnect User2"
+        --> ===B2===
+        ===B1=== --> "Disconnect User3"
+        --> ===B2===
+        ===B1=== --> "Disconnect User4"
+        --> ===B2===
+        --> "Closed the game"
+        --> "Initialize the system"
+        --> (*)
+        else
+        ->[false] error
+@enduml
\ No newline at end of file
diff --git a/catan-doc/modules/architecture/pages/system-stop.plantuml b/catan-doc/modules/architecture/pages/system-stop.plantuml
new file mode 100644
index 0000000..ae6f339
--- /dev/null
+++ b/catan-doc/modules/architecture/pages/system-stop.plantuml
@@ -0,0 +1,7 @@
+@startuml
+(*) --> if "Game not ended" then
+        ->[true] "error"
+        else
+        -->[false] "System shutdown"
+        --> (*)
+@enduml
\ No newline at end of file
-- 
GitLab