Commit 72a4b8219b1413daccbc7897cee2b092c5bb1f4e

Authored by Remi
1 parent 48bf0ff8

merge

Showing 2 changed files with 57 additions and 32 deletions   Show diff stats
rapport.md
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 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 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 26 Grille g= new Grille();
22 27  
23 28 g.addCase("b",1); //Ajout case vide
24   -
25 29 g.addCase("a",1,100.0); //Ajout case avec valeur
26 30 g.addCase("a",2,50.0); //Ajout case avec valeur
27 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 34 plageCase1.add(g.get("a1"));
31 35 plageCase1.add(g.get("a2"));
32 36 plageCase1.add(g.get("a3"));
... ... @@ -35,7 +39,7 @@ g.addCase(&quot;a&quot;,4,new Somme(plageCase1)); //Ajout case avec fonctions
35 39  
36 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 43 plageCase1.add(g.get("a4"));
40 44 plageCase1.add(g.get("a2"));
41 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 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 99 #### 1. Methode getValeur
... ...

117 KB | W: | H:

142 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin