This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
2019_2020:s2:td:td8 [2020/03/04 15:38] blay [La classe Journey (30mn)] |
2019_2020:s2:td:td8 [2020/03/04 17:16] blay [Questions] |
||
---|---|---|---|
Line 63: | Line 63: | ||
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 | ||
- | * **Partie 1** : "Prévoyez" les tests correspondant aux scénarii suivants : | + | * 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. | ||
+ | * Implémenter les scénario de la partie 1 ci-après en vous aidant des codes donné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? | ||
+ | |||
+ | |||
+ | * **Partie 1** : Voici des exemples très simples de tests de "validation", c'est à dire des tests qui mettent en exergue certaines des exigences client décrites ci-dessus. | ||
- "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": 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 l'enregistrement de son parcours "lundi": par exemple : <code> 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 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 //quand// il était près d'un point d'un parcours donné : |
+ | - (1) si le point a été enregistré pendant le parcours e.g. ( (7,7) -> ''date=Thu Feb 28 21:39:16 CET 2019'') ; | ||
+ | - (2) si le point n'a pas été enregistré, il cherche le point le plus proche 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. | -"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. | * **Partie 2** : "Prévoyez" les tests correspondant aux scénarii suivants, mais, à moins d'être très avancés n'allez pas au code. | ||
Line 74: | Line 82: | ||
- "Bipbip" demande à voir ses parcours triés par la vitesse moyenne: il a couru 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 séquence correspondant à l'enregistrement d'un parcours par un membre, vous pouvez vous aider du diagramme ci-après. | ||
- | * 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? | ||
- | |||
==== Pour vous aider ==== | ==== Pour vous aider ==== | ||
Line 247: | Line 250: | ||
</code> | </code> | ||
+ | {{:2019_2020:s2:td:journey.jpg|}} | ||
</panel> | </panel> | ||
</accordion> | </accordion> |