2014_2015:s2:td:td_associations
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| 2014_2015:s2:td:td_associations [2015/05/01 08:11] – created blay | 2014_2015:s2:td:td_associations [2015/05/13 14:09] (current) – blay | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Des modèles aux classes : focus sur les associations ====== | ====== Des modèles aux classes : focus sur les associations ====== | ||
| + | **Deux séances pour ce TD ** | ||
| + | <note warning> | ||
| + | <note warning> | ||
| + | Nous allons dans ce TD nous intéresser à un exemple un peu plus complexe de classes fortement liées les unes aux autres. Attention, vous devez modéliser ce problème, l' | ||
| + | Vous pouvez choisir de commencer par implémenter, | ||
| + | |||
| + | |||
| + | //A la fin de cette feuille, vous avez quelques éléments utiles au niveau du code// | ||
| + | |||
| + | |||
| + | On désire gérer des **processus.**\\ | ||
| + | Un processus se définit par un suite d' | ||
| + | * //Démarrer le processus// revient à // | ||
| + | * //Avancer dans le processus// consiste à // | ||
| + | * //Arrêter le processus// consiste à arrêter l' | ||
| + | * Le //temps pris par un processus// pour s' | ||
| + | |||
| + | |||
| + | |||
| + | Un **modèle de processus** se définit comme une suite de modèles d' | ||
| + | Un **modèle d' | ||
| + | Le temps moyen prévu par un processus est la somme des temps prévus par chacun des modèles d' | ||
| + | |||
| + | A partir d'un modèle de processus on crée un processus. | ||
| + | A partir d'un modèle d' | ||
| + | |||
| + | Afficher une étape revient à afficher l' | ||
| + | On peut comparer le temps réalisé par une étape avec le temps prévu. | ||
| + | On peut comparer le temps réalisé par un processus avec le temps prévu par son modèle. | ||
| + | |||
| + | On peut savoir parmi les processus correspondant à un modèle celui qui a fait le meilleur temps, c'est pour cela que nous associons le nom d'une personne à un processus. | ||
| + | |||
| + | |||
| + | <note tip>Vous devez " | ||
| + | |||
| + | |||
| + | **Organisez vous comme bon vous semble pour modéliser, implémenter et tester l' | ||
| + | |||
| + | |||
| + | Surtout pensez aux tests unitaires, ils sont essentiels ici. | ||
| + | |||
| + | Voici un exemple de traces correspondant à un test de validation (pas à un test unitaire!) | ||
| + | < | ||
| + | Voici votre défi | ||
| + | Aller dans le jardin Magique en 5000s | ||
| + | Trouver le trésor du Dragon en 5000s | ||
| + | Tuer le dragon en 5000s | ||
| + | Ramener le tresor au chateau des Neiges en 5000s | ||
| + | A vous de jouer | ||
| + | Aller dans le jardin Magique==> | ||
| + | |||
| + | 4081.0/5000 | ||
| + | Trouver le trésor du Dragon==> | ||
| + | |||
| + | 478.0/5000 | ||
| + | Tuer le dragon==> | ||
| + | |||
| + | 570.0/5000 | ||
| + | Voici votre temps : 5129 | ||
| + | -->5129 | ||
| + | Meilleur temps :5129 | ||
| + | Voulez-vous rejouer Y/N | ||
| + | Y | ||
| + | A vous de jouer | ||
| + | Aller dans le jardin Magique==> | ||
| + | |||
| + | 1652.0/5000 | ||
| + | Trouver le trésor du Dragon==> | ||
| + | |||
| + | 580.0/5000 | ||
| + | Tuer le dragon==> | ||
| + | |||
| + | 1447.0/5000 | ||
| + | Voici votre temps : 3679 | ||
| + | -->5129 | ||
| + | -->3679 | ||
| + | Meilleur temps :3679 | ||
| + | Voulez-vous rejouer Y/N | ||
| + | Y | ||
| + | A vous de jouer | ||
| + | Aller dans le jardin Magique==> | ||
| + | |||
| + | 698.0/5000 | ||
| + | Trouver le trésor du Dragon==> | ||
| + | |||
| + | 851.0/5000 | ||
| + | Tuer le dragon==> | ||
| + | |||
| + | 992.0/5000 | ||
| + | Voici votre temps : 2541 | ||
| + | -->5129 | ||
| + | -->3679 | ||
| + | -->2541 | ||
| + | Meilleur temps :2541 | ||
| + | Voulez-vous rejouer Y/N | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Boîte à outils ===== | ||
| + | |||
| + | Pour obtenir le temps en java : | ||
| + | <code java> | ||
| + | //Pour avoir le temps courant | ||
| + | long endTime = System.currentTimeMillis(); | ||
| + | |||
| + | //Faire la différence entre deux temps! | ||
| + | long tempsCourant = (endTime - startTime); | ||
| + | </ | ||
| + | |||
| + | <code java> | ||
| + | | ||
| + | long nbDeMilliSecondes = 100; | ||
| + | .... | ||
| + | // Attendre | ||
| + | Thread.sleep(nbDeMilliSecondes); | ||
| + | </ | ||
| + | |||
| + | Pour capturer une string au clavier | ||
| + | |||
| + | <code java> | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | <!-- | ||
| ===== Code et associations " | ===== Code et associations " | ||
| Line 13: | Line 140: | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ==== Lire un diagramme de classes : l' | ||
| + | |||
| + | - Analyser le diagramme suivant : | ||
| + | |||
| + | |||
| + | |||
| + | , extrait du site http:// | ||
| + | {{ : | ||
| + | |||
| + | |||
| ==== Association orientée : Multiplicité 1 ==== | ==== Association orientée : Multiplicité 1 ==== | ||
| Line 24: | Line 163: | ||
| - Modifiez vos codes en conséquence. [[https:// | - Modifiez vos codes en conséquence. [[https:// | ||
| - Ecrivez des tests !! et Tester votre programme[[ https:// | - Ecrivez des tests !! et Tester votre programme[[ https:// | ||
| - | |||
| ==== Association orientée : Multiplicité 0..* ==== | ==== Association orientée : Multiplicité 0..* ==== | ||
| {{ : | {{ : | ||
| Line 73: | Line 211: | ||
| * On veut connaitre quel est l' | * On veut connaitre quel est l' | ||
| - | < | + | |
| - | < | + | |
| ==== Fabriques et Propriétés statiques ==== | ==== Fabriques et Propriétés statiques ==== | ||
| Line 93: | Line 230: | ||
| <note tip> | <note tip> | ||
| - | --!> | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | < | ||
| ==== Compositions ==== | ==== Compositions ==== | ||
| Line 106: | Line 238: | ||
| - Implémentez? | - Implémentez? | ||
| - | --!> | + | |
| - | </ | + | |
| Line 123: | Line 254: | ||
| </ | </ | ||
| + | --!> | ||
| + | </ | ||
2014_2015/s2/td/td_associations.1430467866.txt.gz · Last modified: 2015/05/01 08:11 by blay