User Tools

Site Tools


2014_2015:s2:td:td_associations

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
2014_2015:s2:td:td_associations [2015/05/01 08:24] – [Association orientée : Multiplicité 1] blay2014_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>**La semaine du 1 juin, nous réviserons en corrigeant l'examen de l'an dernier! Mais pour cela vous devrez avoir fait vous-même l'examen, puisque vous ferez la correction! **</note>
  
 +<note warning>Un rendu sous la forme d'un cahier de bord est attendu pour le 12 juin. Ce rendu vous a été annoncé dès le premier cours. Ne l'oubliez-pas! Voir [[https://mbf-iut.i3s.unice.fr/doku.php?id=2014_2015:s2:start#notations|ici]] pour le détail. </note>
  
 +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'implémenter et le tester.
 +Vous pouvez choisir de commencer par implémenter, mais nous vous le déconseillons vivement... Le problème parait simple, mais l'est-il vraiment?
 +
 +
 +//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'**étape**s.
 +  * //Démarrer le processus// revient à //démarrer// la première étape.
 +  * //Avancer dans le processus// consiste à //arrêter// l'étape courante et à démarrer l'étape suivante.
 +  * //Arrêter le processus// consiste à arrêter l'étape courante et à considérer le processus comme terminé, i.e. il ne peut plus avancer, par contre on peut le redémarrer.
 +  * Le //temps pris par un processus// pour s'exécuter correspond à la somme des temps pris par chaque étape.
 +
 +
 +
 +Un **modèle de processus** se définit comme une suite de modèles d'étapes.
 +Un **modèle d'étape** est défini par un intitulé par exemple "Aller dans le jardin magique", un temps prévu par exemple "3s".
 +Le temps moyen prévu par un processus est la somme des temps prévus par chacun des modèles d'étapes. 
 +
 +A partir d'un modèle de processus on crée un processus. 
 +A partir d'un modèle d'étape on crée un étape.
 +
 +Afficher une étape revient à afficher l'intitulé du modèle d'étape qui lui est associé. 
 +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 "deviner" les méthodes non explicitées mais pourtant absolument nécessaires sur les étapes par exemple.</note>
 +
 +
 +**Organisez vous comme bon vous semble pour modéliser, implémenter et tester l'ensemble de cette application!**
 +
 +
 +Surtout pensez aux tests unitaires, ils sont essentiels ici.
 +
 +Voici un exemple de traces correspondant à un test de validation (pas à un test unitaire!)
 +<code>
 +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==> Taper quand fini
 +
 +4081.0/5000
 +Trouver le trésor du Dragon==> Taper quand fini
 +
 +478.0/5000
 +Tuer le dragon==> Taper quand fini
 +
 +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==> Taper quand fini
 +
 +1652.0/5000
 +Trouver le trésor du Dragon==> Taper quand fini
 +
 +580.0/5000
 +Tuer le dragon==> Taper quand fini
 +
 +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==> Taper quand fini
 +
 +698.0/5000
 +Trouver le trésor du Dragon==> Taper quand fini
 +
 +851.0/5000
 +Tuer le dragon==> Taper quand fini
 +
 +992.0/5000
 +Voici votre temps : 2541
 +-->5129
 +-->3679
 +-->2541
 +Meilleur temps :2541
 +Voulez-vous rejouer Y/N
 +
 +</code>
 +
 +===== 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>
 +
 +<code java>
 + public void testTempsProcessus() throws InterruptedException {
 +        long nbDeMilliSecondes = 100;
 +        ....
 +        // Attendre 
 +        Thread.sleep(nbDeMilliSecondes);
 +</code>
 +
 +Pour capturer une string au clavier
 +
 +<code java>
 + Scanner s = new Scanner(System.in);
 + String str = s.nextLine();
 +</code>
 +
 +
 +<html>
 +<!--
 ===== Code et associations "simples" ===== ===== Code et associations "simples" =====
  
Line 84: Line 211:
        * On veut connaitre quel est l'enseignant responsable d'un module en fonction d'une année.        * On veut connaitre quel est l'enseignant responsable d'un module en fonction d'une année.
  
-<html> +
-<!-- +
 ==== Fabriques et Propriétés statiques ==== ==== Fabriques et Propriétés statiques ====
  
Line 104: Line 230:
 <note tip>Hasmap et chaines de caractères et fonctions d'accès..</note> <note tip>Hasmap et chaines de caractères et fonctions d'accès..</note>
  
---!> 
-</html> 
  
- 
-<html> 
-<!--  
 ==== Compositions ==== ==== Compositions ====
  
Line 117: Line 238:
    - Implémentez?    - Implémentez?
  
---!> +
-</html>+
  
  
Line 134: Line 254:
  
 </box> </box>
 +--!>
 +</html>
2014_2015/s2/td/td_associations.1430468656.txt.gz · Last modified: 2015/05/01 08:24 by blay