From cfe614bcd47c63435e0ca9ba539637b55df680a3 Mon Sep 17 00:00:00 2001
From: HEYD CLOE <cloe.heyd@etu.unistra.fr>
Date: Thu, 18 Mar 2021 14:30:37 +0000
Subject: [PATCH] Update README.md

---
 README.md | 41 +++++++++++++++++++++++++++++------------
 1 file changed, 29 insertions(+), 12 deletions(-)

diff --git a/README.md b/README.md
index 6e06052..43ac675 100644
--- a/README.md
+++ b/README.md
@@ -10,36 +10,51 @@ Nous avons choisi d'utiliser le langage Java car il est plus adapté à notre or
 
 **Description du problème**
 
-Analyse de performance de deux structures, faisant la même chose, mais fonctionnant différemment.
+Analyse de performance de quatre structures identiques contenant des nombres mais fonctionnant différemment.
 
-Deux paramètres au démarrage :
-- Valeur que l'on veut trouver dans chaque tableau
-- Nombre de valeurs dans chaque tableau :
-    - Chaque tableau génère x nombres aléatoires. De plus, nous indiquons le nombre que l'on veut trouver, qui doit être trouvé dans chaque tableau. Ainsi, le code nous renverra l’indice qui correspond à l’endroit où la valeur voulue se trouve dans le tableau et nous aurons un résultat correspondant à l'indice de la valeur trouvée dans chaque tableau
+Nous aurons plusieurs paramètres au démarrage :
+- Nombre de valeurs dans chaque tableau : chaque structure a une taille fixe de un million d'éléments générés aléatoirement. 
+- Nombre d'opérations : à chaque test, on augmente le nombre d'opérations de 100. Le nombre d'opérations varie de 100 à 5000.
+- Type de l'opération : AddTete, AddQueue, RemoveTete, RemoveMiddle ou Get.
+- Type de structure : nous utilisons des structures déjà existante (ArrayList, LinkedList, Table) et que nous avons créées nous-même (ChainedList composée de Link et d'un Cursor).
 
 Contrainte : il faut de l’abstraction, et au moins un tableau ET une liste chaînée (Maillons)
 
 
 **Description des paramètres exploratoires du problème**
 
-- Analyser la différence de performance sur des opérations simples dans chaque structure (Inserer, Supprimer)
+- Analyser la différence de temps d'éxécution CPU et de consommation de mémoire sur des opérations simples dans chaque structure (insérer, supprimer, sélectionner).
 
 **Organisation du projet**
 
-![](/UML_P4a.png)
 
 ## Dispositif expérimental
 
 ### Organisation objet
 
-Description de l'organisation des classes et interfaces, ou diagramme de classes.
+**Description de l'organisation des classes et interfaces**
+
+Nous avons utilisé trois packages différents : 
+- Un pour les structures déjà existantes, StandardStructure : ArrayList, LinkedList et Table.
+- Un pour celle que nous avons créée, PersonalStructure : ChainedList et ses composants, Link et Cursor.
+- Un pour ce qui est commun aux deux packages précédents, defaultpackage : Main et Structure.
+
+Pour les structures déjà existantes, nous avons préféré recréer une classe wrapper pour chacune d'entre elles afin de personnaliser les fonctions que nous voulions tester et adapter leur fonctionnement à chaque structure.
+
+**Diagramme de classes**
+
+![](/UML_P4a.png)
 
 ### Application
 
-[code source de l'application](chemin)
-```
-Description de l'application et des arguments
-```
+[code source de l'application](/Main.jar)
+
+**Description de l'application et des arguments**
+
+Pour utiliser notre application, il faut lui passer plusieurs paramètres dans l'ordre suivant : le type de structure que l'on souhaite évaluer, le nombre de valeurs (un million), la méthode que l'on va évaluer et le nombre d'opérations. 
+
+Le Main va ensuite créer une structure en fonction des paramètres qu'on lui a passé et la remplir de nombres aléatoires. Il va ensuite appeler la fonction choisie en utilisant un switch.
+
 
 ### Environnement de test
 
@@ -85,6 +100,8 @@ Expression précise et succincte d'une hypothèse.
 
 ### Protocole expérimental de vérification de l'hypothèse
 
+Ainsi, le code nous renverra l’indice qui correspond à l’endroit où la valeur voulue se trouve dans le tableau et nous aurons un résultat correspondant à l'indice de la valeur trouvée dans chaque tableau
+
 - Temps d'exécution des deux programmes (et leur différence)
 - Types de recherche de chaque programme (une standard et une recherche dichotomique)
 - Comment le “Random” influe sur la performance des structures
-- 
GitLab