User Tools

Site Tools


2018_2019:s2:td:td_final

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2018_2019:s2:td:td_final [2019/02/17 14:30]
blay [Rendu pour ce devoir]
2018_2019:s2:td:td_final [2019/04/12 16:13]
blay [Rendu pour ce devoir]
Line 1: Line 1:
 ====== De la modélisation au code : FINALE ====== ====== De la modélisation au code : FINALE ======
  
-Dans ce TD nous avons pour objectif de partir de la modélisation et d'​arriver au codage en 4h !+<​panel ​ title="​Attention ​pour la semaine prochaine!">​ 
 +{{:​2018_2019:​s2:​td:​exams2-mars2018.pdf| Examen 2018}}
  
-comprendre la relation entre la modélisation et le code, et ceci en utilisant tous les éléments de modélisation.+{{:​2018_2019:​s2:​td:​exams2-avril2017.pdf|Examen 2017}} 
 +</​panel>​
  
 +<box round rgb(255,​204,​153) rgb(255,​255,​204) 97%|Dans ce TD :  >
 +nous avons pour objectif de partir de la modélisation et d'​arriver au codage en 4h !
 +</​box>​
 /* /*
 ===== Reverse : La classe ''​Point''​ (10 mn) ===== ===== Reverse : La classe ''​Point''​ (10 mn) =====
Line 17: Line 22:
 ===== La classe "​Journey"​ (30mn) ===== ===== La classe "​Journey"​ (30mn) =====
  
-   * On définit un ''​Trajet''​ comme une suite ordonnée de points.+   * On définit un ''​Trajet/Journey''​ comme une suite ordonnée de points.
    * Un point a un intitulé (par exemple, "IUT, Fabron"​).    * Un point a un intitulé (par exemple, "IUT, Fabron"​).
    * Un point peut appartenir à plusieurs Trajets.    * Un point peut appartenir à plusieurs Trajets.
Line 23: Line 28:
    * On veut connaitre la distance que représente un Trajet, c'est la somme des distances entre les points (cf. si besoin [[http://​fr.wikipedia.org/​wiki/​Distance_entre_deux_points_sur_le_plan_cart%C3%A9sien|Calcul de distance]])    * On veut connaitre la distance que représente un Trajet, c'est la somme des distances entre les points (cf. si besoin [[http://​fr.wikipedia.org/​wiki/​Distance_entre_deux_points_sur_le_plan_cart%C3%A9sien|Calcul de distance]])
  
-   - Modéliser le concept de Trajet. ​+   - Modéliser le concept de Trajet, y compris les autres concepts dont vous pouvez avoir besoin
    - Codez-les.    - Codez-les.
  
Line 56: Line 61:
        * Un membre peut enregistrer son parcours :         * Un membre peut enregistrer son parcours : 
                 - il déclare sur son téléphone qu'il commence à enregistrer un parcours;                 - il déclare sur son téléphone qu'il commence à enregistrer un parcours;
-                - toutes les 10 secondes, un nouveau point est automatiquement ​créé ​en demandant au GPS du téléphone sa position et l'​heure actuelle; le point est ajouté au parcours en cours; Les coordonnées GPS sont des coordonnées sur une sphère et pas des coordonnées cartésiennes,​ cependant dans le cadre de ce TD, travaillez "​simplement"​ avec des coordonnées cartésiennes;​+                - toutes les 10 secondes, ​le système crée un nouveau point automatiquement en demandant au GPS du téléphone sa position et l'​heure actuelle; le point est ajouté au parcours en cours; Les coordonnées GPS sont des coordonnées sur une sphère et pas des coordonnées cartésiennes,​ cependant dans le cadre de ce TD, travaillez "​simplement"​ avec des coordonnées cartésiennes;​
                 - le membre signale la fin du parcours qui est automatiquement enregistré dans sa base de parcours.                 - le membre signale la fin du parcours qui est automatiquement enregistré dans sa base de parcours.
        * Un membre peut visualiser les parcours passés : par la distance parcourue, la durée, la vitesse moyenne, la date (jour et heure), le type d'​entrainement,​ ...         * Un membre peut visualiser les parcours passés : par la distance parcourue, la durée, la vitesse moyenne, la date (jour et heure), le type d'​entrainement,​ ... 
-       ​* ​En sélectionnant un parcours, un membre peut visualiser un parcours en utilisant googleMAP.+       ​* ​Un membre peut demander à visualiser un parcours en utilisant googleMAP.
        * Un membre peut savoir quand il était le plus proche d'un point donné lors d'un parcours.        * Un membre peut savoir quand il était le plus proche d'un point donné lors d'un parcours.
-       * Un membre peut savoir où il était à une date particulière, en donnant ​la position ​occupée ​la plus proche ​de la date.+       * Un membre peut savoir où il était à une date particulière ​: le système renvoie ​la position ​enregistrée à la date la plus proche.
        * Un membre peut préciser qu'il veut enregistrer un parcours d'​entrainement;​ dans ce cas, avant le départ, il précise le mode d'​entrainement. Pour chaque mode, un temps de relevé des points différent est prévu : marche rapide (2mn), course à pied (10s), vélos (5s), foot (10s), ...        * Un membre peut préciser qu'il veut enregistrer un parcours d'​entrainement;​ dans ce cas, avant le départ, il précise le mode d'​entrainement. Pour chaque mode, un temps de relevé des points différent est prévu : marche rapide (2mn), course à pied (10s), vélos (5s), foot (10s), ...
        * Un membre peut créer son propre mode d'​entrainement en précisant les temps de consultation etc.        * Un membre peut créer son propre mode d'​entrainement en précisant les temps de consultation etc.
Line 72: Line 77:
 Evidemment vous commencez par identifier les cas d'​utilisation de haut niveau. Mais ensuite vous pouvez travailler comme bon vous semble. Evidemment vous commencez par identifier les cas d'​utilisation de haut niveau. Mais ensuite vous pouvez travailler comme bon vous semble.
   * Définir le diagramme de cas d'​utilisation   * Définir le diagramme de cas d'​utilisation
-  * "​Prévoyez"​ les tests correspondant aux scénarii suivants ​(soit dans l'​outil,​ soit sur papier) ​+  * **Partie 1** : "​Prévoyez"​ les tests correspondant aux scénarii suivants : 
       -  "​Bipbip"​ s'​inscrit en utilisant son compte "​Facebook";​       -  "​Bipbip"​ s'​inscrit en utilisant son compte "​Facebook";​
       -  "​Xavier-Bertrand"​ s'​inscrit en saisissant son nom  et déclare son compte twitter;       -  "​Xavier-Bertrand"​ s'​inscrit en saisissant son nom  et déclare son compte twitter;
-      -  "​Bipbip"​ demande l'​enregistrement de son parcours lundi.  +      -  "​Bipbip"​ demande l'​enregistrement de son parcours ​"lundi": par exemple :  Journey [points=[ [date=Thu Feb 28 21:39:15 CET 2019, Point [x=5, y=5, label=domicile]], ​ [date=Thu Feb 28 21:39:16 CET 2019, Point [x=7, y=7, label=p1]], ​ [date=Thu Feb 28 21:39:17 CET 2019, Point [x=10, y=10, label=p2]],..</​code>​ 
-      -  "​Bipbip"​ demande également l'​enregistrement de son parcours et précise qu'il s'agit d'un entrainement à la course.+      -   "​Bipbip"​ demande quand il était près d'un point d'un parcours donné : (1) point enregistré pendant le parcours e.g. ( (7,7) -> ''​date=Thu Feb 28 21:39:16 CET 2019''​) ​ ; (2)  point le plus proche quand il était le plus proche d'un point donné lors d'un parcours (e.g. (12,12) -> ''​date=Thu Feb 28 21:39:17 CET 2019''​) 
 +      -"​Bipbip" ​ demande où il était à  ''​Thu Feb 28 21:39:17 CET 2019''​ : le système renvoie (12,12) etc. 
 +   * **Partie 2** : "​Prévoyez"​ les tests correspondant aux scénarii suivants, mais, à moins d'​être très avancés n'​allez pas au code. 
 +      - "​Bipbip"​ demande également l'​enregistrement de son parcours et précise qu'il s'agit d'un entrainement à la course.
       - "​Bipbip"​ demande à voir ses parcours triés par la durée : il a couru lundi pendant 20mn et mercredi 30mn.        - "​Bipbip"​ demande à voir ses parcours triés par la durée : il a couru lundi pendant 20mn et mercredi 30mn. 
-      - "​Bipbip"​ demande à voir ses parcours triés par la vitesse moyenne: il a courru ​lundi à 11km/h et mercredi 10km/​h. ​+      - "​Bipbip"​ demande à voir ses parcours triés par la vitesse moyenne: il a couru lundi à 11km/h et mercredi 10km/​h. ​
       -  "​Xavier-Bertrand"​ déclare un nouveau mode d'​entrainement :  le Marathon, les relevés ne se font que toutes les minutes.       -  "​Xavier-Bertrand"​ déclare un nouveau mode d'​entrainement :  le Marathon, les relevés ne se font que toutes les minutes.
   * Définir le diagramme de classes   * Définir le diagramme de classes
   * Définir le diagramme de séquence correspondant à l'​enregistrement d'un parcours par un membre, vous pouvez vous aider du diagramme ci-après. ​       ​   * Définir le diagramme de séquence correspondant à l'​enregistrement d'un parcours par un membre, vous pouvez vous aider du diagramme ci-après. ​       ​
-  * Implémenter ​ce scénario en vous aidant des codes ci-après. En particulier,​ comme nous ne disposons pas du GPS dans l'​exemple donné ci-après c'est l'​utilisateur qui saisit sa position. De même comme vous ne connaissez pas encore la parallèlisation des tâches on demande à chaque relevé de position, s'il faut ou non continuer à enregistrer le parcours.+  * Implémenter ​les  ​scénario ​de la partie 1 en vous aidant des codes ci-après. En particulier,​ comme nous ne disposons pas du GPS dans l'​exemple donné ci-après c'est l'​utilisateur qui saisit sa position. De même comme vous ne connaissez pas encore la parallèlisation des tâches on demande à chaque relevé de position, s'il faut ou non continuer à enregistrer le parcours.
   * Pouvez-vous étendre votre application pour donner la vitesse moyenne entre deux points donnés d'un parcours? ​   * Pouvez-vous étendre votre application pour donner la vitesse moyenne entre deux points donnés d'un parcours? ​
  
Line 260: Line 268:
 ==== Rendu pour ce devoir ==== ==== Rendu pour ce devoir ====
  
-FIXME +    ​- Les rendus se font sous [[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20160226085155/​BoiteDepot-blay-20190217142915655329?​mode_etudiant=true&​tab=deposit|jalon]] avant <color red>11 mars 9h/color>
- +
-    ​- Les rendus se font sous [[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20160226085155/​BoiteDepot-blay-20190217142915655329?​mode_etudiant=true&​tab=deposit|jalon]] avant <color red>A déterminer<​/color>+
     - Le rendu respecte ce qui suit :      - Le rendu respecte ce qui suit : 
           - il se fait à 2 maximum           - il se fait à 2 maximum
Line 272: Line 278:
                  - les codes sources (là où vous en êtes)                  - les codes sources (là où vous en êtes)
                  - les tests si vous en avez, sinon le main de test                  - les tests si vous en avez, sinon le main de test
 +
 +**Erreurs**
 +  * Livrer les binaires
 +  * ne pas livrer un document mais des images
 +  * Livrer les codes dans un .txt !
  
  
2018_2019/s2/td/td_final.txt · Last modified: 2019/04/12 16:13 by blay