Commit 72a4b8219b1413daccbc7897cee2b092c5bb1f4e
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("a",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("b",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 | ... | ... |
uml.png