Commit 72a4b8219b1413daccbc7897cee2b092c5bb1f4e

Authored by Remi
1 parent 48bf0ff8

merge

Showing 2 changed files with 57 additions and 32 deletions   Show diff stats
1 ----  
2 -title: "rapport_analyse_andjembe_taniel"  
3 -author: "ANDJEMBE_TANIEL"  
4 -date: "5 juin 2019"  
5 -output: html_document  
6 ----  
7 -> # ** RAPPORT ANALYSE ET CONCEPTION ** 1 +# RAPPORT ANALYSE ET CONCEPTION
8 2
9 > ANDJEMBE Maksoudath, TANIEL Rémi 3 > ANDJEMBE Maksoudath, TANIEL Rémi
10 4
11 -# SCHEMA UML 5 +Le but du projet est de réaliser un tableur "basique" mais facilement
  6 +extensible, l'application sera divisée en 2 parties :
  7 +* le noyau
  8 +* la partie graphique
12 9
  10 +Le noyau s'occupera de toutes les opérations de notre grille, les cases
  11 +ne pourront contenir que des réels ou des formules(opération binaire ou
  12 +des fonctions acceptant des plages de cases)
13 ![UML](uml.png) 13 ![UML](uml.png)
14 14
15 -# PSEUDO-JAVA CREATION GRILLE,CASES 15 +### SCHEMA UML
16 16
17 -Pour créer une grille avec des cases on fera : 17 +Voici le schéma UML de notre application, les classes et méthodes
  18 +abstraites sont en italique :
18 19
19 -```java 20 +### PSEUDO-JAVA CREATION GRILLE,CASES
  21 +
  22 +Voici un exemple de création d'une grille et de l'ajout / modification /
  23 +affichage de plusieurs types de case :
20 24
  25 +```java
21 Grille g= new Grille(); 26 Grille g= new Grille();
22 27
23 g.addCase("b",1); //Ajout case vide 28 g.addCase("b",1); //Ajout case vide
24 -  
25 g.addCase("a",1,100.0); //Ajout case avec valeur 29 g.addCase("a",1,100.0); //Ajout case avec valeur
26 g.addCase("a",2,50.0); //Ajout case avec valeur 30 g.addCase("a",2,50.0); //Ajout case avec valeur
27 g.addCase("a",3,new Addition(g.get("a2"),g.get("a1"))); //Ajout case avec operation binaire 31 g.addCase("a",3,new Addition(g.get("a2"),g.get("a1"))); //Ajout case avec operation binaire
28 32
29 -ArrayList<Case> plageCase1 = new ArrayList<Case>(); // Crée une liste de case 33 +List<Case> plageCase1 = new ArrayList<Case>(); // Crée une liste de case
30 plageCase1.add(g.get("a1")); 34 plageCase1.add(g.get("a1"));
31 plageCase1.add(g.get("a2")); 35 plageCase1.add(g.get("a2"));
32 plageCase1.add(g.get("a3")); 36 plageCase1.add(g.get("a3"));
@@ -35,7 +39,7 @@ g.addCase(&quot;a&quot;,4,new Somme(plageCase1)); //Ajout case avec fonctions @@ -35,7 +39,7 @@ g.addCase(&quot;a&quot;,4,new Somme(plageCase1)); //Ajout case avec fonctions
35 39
36 g.setValeur("b",1,100); //Met la valeur de b1 à 100 40 g.setValeur("b",1,100); //Met la valeur de b1 à 100
37 41
38 -ArrayList<Case> plageCase2 = new ArrayList<Case>(); // Crée une liste de case 42 +List<Case> plageCase2 = new ArrayList<Case>(); // Crée une liste de case
39 plageCase1.add(g.get("a4")); 43 plageCase1.add(g.get("a4"));
40 plageCase1.add(g.get("a2")); 44 plageCase1.add(g.get("a2"));
41 plageCase1.add(g.get("a3")); 45 plageCase1.add(g.get("a3"));
@@ -49,26 +53,47 @@ g.getFormuleDeveloppe(&quot;b&quot;,2) //Affichera MOYENNE(Somme(a1,a2,a3),a2,(a1+a2)) @@ -49,26 +53,47 @@ g.getFormuleDeveloppe(&quot;b&quot;,2) //Affichera MOYENNE(Somme(a1,a2,a3),a2,(a1+a2))
49 53
50 ``` 54 ```
51 55
  56 +### CHOIX STRUCTURE DE DONNÉES
52 57
53 -  
54 -# CHOIX STRUCTURE DE DONNÉES  
55 -  
56 -Une collection peut etre:  
57 - * des tableaux,  
58 - * des listes,  
59 - * des maps  
60 - * ou des Sets. 58 +Nous devons choisir une structure de donnée pour stocker les cases dans
  59 +notre grille, nous savons déjà que nous allons utiliser ne collection
  60 +pour les stocker,voici celles que nous connaissons:
  61 +* des tableaux
  62 +* des listes
  63 +* des maps
  64 +* des sets
61 65
62 -D'après le schéma UML ci-dessus:  
63 -  
64 -* Une grille peut contenir plusieurs cases,nous avons effectuer le choix des Maps car, pour rechercher une case et, effectuer des opérations dessus ce sera plus facile (son nom c'est-à-dire concaténation du nom de ligne et colonne sera la clé de notre map).  
65 -  
66 -* Une case peut etre utilisée dans plusieurs cases, on ne sait pas le nombre d'autres cases où il sera utilisé, il n'y a pas necessité d'avoir un indice, on le stockera dans une liste.  
67 -  
68 -* Une fonction est utilisé à partir de plusieurs cases aussi, en utilisant la meme raison ci-dessus, on stockera dans une liste de cases.  
69 -  
70 -  
71 -# METHODES ESSENTIELLES EN PSEUDO-JAVA 66 +D'après le schéma UML ci-dessus, nous allons donc utiliser une `HashMap`
  67 +pour stocker les cases de notre grille :
  68 +* Pour rechercher une case et, effectuer des opérations dessus ce sera
  69 +plus facile, la clé de la Map sera une chaine de caractère (String) qui
  70 +représente la coordonnée de cette case (c'est-à-dire la concaténation
  71 +du nom de ligne et de l'indice de la colonne, exemple "A1", "B9", etc...)
  72 +
  73 +Une case peut etre utilisée dans plusieurs autres cases, on ne sait
  74 +pas le nombre d'autres cases où elle sera utilisée, on stockera donc
  75 +cette donée dans une `ArrayList` de `Case`.
  76 +
  77 +Certaines fonctions (`Moyenne`, `Somme`) utilise également une plage de case, pour stocker ces cases,
  78 +nous allons également une `ArrayList` de `Case`.
  79 +
  80 +### METHODES ESSENTIELLES EN PSEUDO-JAVA
  81 +
  82 +### LISTE DE TESTS
  83 +
  84 +Afin de s'assurer de la maintenabilité de notre code et de la qualité de
  85 +celui-ci, nous allons réaliser plusieurs tests sur les différentes méthodes
  86 +que nous allons programmé dans notre application, voici quelques
  87 +exemples :
  88 +* Création d'une case avec une valeur fixe
  89 +* Création d'une case avec une formule d' `Opération binaire` et une
  90 +fonction comme `Moyenne`
  91 +* Modification d'une case avec une valeur sans qu'elle soit utilisée dans
  92 +une autre case
  93 +* Modification d'une case avec une valeur utilisée dans une autre case
  94 +* Vérification qu'une erreur se lève lors de la création des 2 types
  95 +de cycles (direct et indirect)
  96 +* Renvoie de la formule dévéloppée d'une case avec une formule assez compliqué
72 97
73 98
74 #### 1. Methode getValeur 99 #### 1. Methode getValeur

117 KB | W: | H:

142 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin