2018_2019:s2:td:td_final
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| 2018_2019:s2:td:td_final [2019/02/16 23:10] – [Pour vous aider] blay | 2018_2019:s2:td:td_final [2019/04/12 14:13] (current) – [Rendu pour ce devoir] blay | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== De la modélisation au code : FINALE ====== | ====== De la modélisation au code : FINALE ====== | ||
| - | FIXME | + | < |
| + | {{: | ||
| - | Dans ce TD nous avons pour objectif de partir de la modélisation et d' | + | {{: |
| - | + | </ | |
| - | comprendre la relation entre la modélisation et le code, et ceci en utilisant tous les éléments de modélisation. | + | |
| + | <box round rgb(255, | ||
| + | nous avons pour objectif de partir de la modélisation et d' | ||
| + | </ | ||
| /* | /* | ||
| ===== Reverse : La classe '' | ===== Reverse : La classe '' | ||
| Line 19: | Line 22: | ||
| ===== La classe " | ===== La classe " | ||
| - | * On définit un '' | + | * On définit un '' |
| * 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 25: | 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:// | * On veut connaitre la distance que représente un Trajet, c'est la somme des distances entre les points (cf. si besoin [[http:// | ||
| - | - 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 58: | 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 | + | - toutes les 10 secondes, |
| - 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' | * 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' | ||
| - | | + | |
| * 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 | + | * Un membre peut savoir où il était à une date particulière |
| * Un membre peut préciser qu'il veut enregistrer un parcours d' | * Un membre peut préciser qu'il veut enregistrer un parcours d' | ||
| * Un membre peut créer son propre mode d' | * Un membre peut créer son propre mode d' | ||
| Line 74: | Line 77: | ||
| Evidemment vous commencez par identifier les cas d' | Evidemment vous commencez par identifier les cas d' | ||
| * Définir le diagramme de cas d' | * Définir le diagramme de cas d' | ||
| - | * " | + | * **Partie 1** : " |
| - " | - " | ||
| - " | - " | ||
| - | - " | + | - " |
| - | - " | + | - " |
| + | -" | ||
| + | * **Partie 2** : " | ||
| + | - " | ||
| - " | - " | ||
| - | - " | + | - " |
| - " | - " | ||
| * Définir le diagramme de classes | * Définir le diagramme de classes | ||
| * Définir le diagramme de séquence correspondant à l' | * Définir le diagramme de séquence correspondant à l' | ||
| - | * Implémenter | + | * Implémenter |
| * 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 169: | Line 175: | ||
| </ | </ | ||
| + | |||
| + | |||
| + | Autres exemples | ||
| + | |||
| + | <code java> | ||
| + | //To improve taking into account the displacement | ||
| + | public Date whenWasYouHere(Point point) { | ||
| + | DatedPoint closestPoint = points[0]; | ||
| + | double distanceMin = point.distance(closestPoint); | ||
| + | for (int i =1; i< | ||
| + | double distance = point.distance(points[i]); | ||
| + | if (distance < distanceMin) { | ||
| + | distanceMin = distance; | ||
| + | closestPoint = points[i]; | ||
| + | } | ||
| + | } | ||
| + | return closestPoint.getDate(); | ||
| + | } | ||
| + | |||
| + | |||
| + | //To improve taking into account the displacement | ||
| + | public DatedPoint whereWereYou(Date date) { | ||
| + | long time = date.getTime(); | ||
| + | DatedPoint closestPoint = points[0]; | ||
| + | long durationMin = Math.abs(closestPoint.getDate().getTime()-time); | ||
| + | for (int i =1; i< | ||
| + | long duration = Math.abs(points[i].getDate().getTime()-time); | ||
| + | if (duration < durationMin) { | ||
| + | durationMin = duration; | ||
| + | closestPoint = points[i]; | ||
| + | } | ||
| + | } | ||
| + | return closestPoint; | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | Et des exemples de tests ... | ||
| + | |||
| + | <code java> | ||
| + | @Test | ||
| + | void testClosestPoint() throws InterruptedException { | ||
| + | Date currentDate1 = new Date(); | ||
| + | DatedPoint currentPoint1 = new DatedPoint(5, | ||
| + | Thread.sleep(1000); | ||
| + | Date currentDate2 = new Date(); | ||
| + | DatedPoint currentPoint2 = new DatedPoint(7, | ||
| + | Thread.sleep(1000); | ||
| + | DatedPoint currentPoint3 = new DatedPoint(10, | ||
| + | Thread.sleep(1000); | ||
| + | Date currentDate3 = new Date(); | ||
| + | Journey path = new Journey(currentPoint1); | ||
| + | path.addPoint(currentPoint2); | ||
| + | path.addPoint(currentPoint3); | ||
| + | assertEquals(currentPoint1.getDate(), | ||
| + | assertEquals(currentPoint2.getDate(), | ||
| + | assertEquals(currentPoint3.getDate(), | ||
| + | assertEquals(currentPoint3.getDate(), | ||
| + | assertEquals(currentPoint1.getDate(), | ||
| + | assertEquals(currentPoint2.getDate(), | ||
| + | |||
| + | } | ||
| + | |||
| + | |||
| + | @Test | ||
| + | void testWhereWereYou() throws InterruptedException { | ||
| + | Date currentDate1 = new Date(); | ||
| + | DatedPoint currentPoint1 = new DatedPoint(5, | ||
| + | Thread.sleep(1000); | ||
| + | Date currentDate2 = new Date(); | ||
| + | DatedPoint currentPoint2 = new DatedPoint(7, | ||
| + | Thread.sleep(1000); | ||
| + | DatedPoint currentPoint3 = new DatedPoint(10, | ||
| + | Thread.sleep(1000); | ||
| + | Date currentDate3 = new Date(); | ||
| + | Journey path = new Journey(currentPoint1); | ||
| + | path.addPoint(currentPoint2); | ||
| + | path.addPoint(currentPoint3); | ||
| + | assertEquals(currentPoint1, | ||
| + | assertEquals(currentPoint2, | ||
| + | assertEquals(currentPoint3, | ||
| + | assertEquals(currentPoint3, | ||
| + | assertEquals(currentPoint1, | ||
| + | } | ||
| + | </ | ||
| + | |||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ==== Rendu pour ce devoir ==== | ||
| + | |||
| + | - Les rendus se font sous [[http:// | ||
| + | - Le rendu respecte ce qui suit : | ||
| + | - il se fait à 2 maximum | ||
| + | - le titre est composé de FIN< | ||
| + | - Un document qui comprend : | ||
| + | - votre diagramme de cas d' | ||
| + | - votre diagramme de séquence | ||
| + | - votre diagramme de classes cohérent relativement à l' | ||
| + | - les codes sources (là où vous en êtes) | ||
| + | - 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.1550358601.txt.gz · Last modified: 2019/02/16 23:10 by blay