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
Next revision Both sides next revision
2018_2019:s2:td:td_final [2019/02/17 14:24]
blay [Pour vous aider]
2018_2019:s2:td:td_final [2019/02/28 22:15]
blay [De la modélisation au code : FINALE]
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 256: Line 264:
 </​panel> ​ </​panel> ​
 </​accordion>​ </​accordion>​
 +
 +
 +==== Rendu pour ce devoir ====
 +
 +    - 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>​
 +    - Le rendu respecte ce qui suit : 
 +          - il se fait à 2 maximum
 +          - le titre est composé de  FIN<​NumeroDuGroupe>​_NomEtudiant__NomEtudiant //(e.g. DS1_Doe_Smith ou UC2_Harry)//​
 +          - Un document qui comprend : 
 +                 - votre diagramme de cas d'​utilisation ​
 +                 - votre diagramme de séquence
 +                 - votre diagramme de classes cohérent relativement à l'​ensemble de l'​étude de cas et donc complété relativement au diagramme de séquence
 +                 - les codes sources (là où vous en êtes)
 +                 - les tests si vous en avez, sinon le main de test
 +
  
2018_2019/s2/td/td_final.txt · Last modified: 2019/04/12 16:13 by blay