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