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 revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
2014_2015:s2:td:td_associations [2015/05/01 16:54]
blay
2014_2015:s2:td:td_associations [2015/05/13 14:23]
blay [Des modèles aux classes : focus sur les associations]
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 **
  
-Nous allons dans ce TD nous intéresser à un exemple un peu plus complexe ​de classes fortement liées les unes aux autres.+**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! **
  
-On désire gérer des processus.+Nous allons dans ce TD nous intéresser à un exemple un peu plus complexe de classes fortement liées les unes aux autresAttention, 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?
  
-Un processus se définit par un suite d'​étapes. 
-  * //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 termine, 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. 
  
-<note tip>Vous devez "​deviner"​ les méthodes non explicitées mais pourtant absolument nécessaires sur les étapes par exemple.<​/note>+//A la fin de cette feuille, vous avez quelques éléments utiles au niveau du code//
  
-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"​.+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. ​ Le temps moyen prévu par un processus est la somme des temps prévus par chacun des modèles d'​étapes. ​
  
Line 26: Line 33:
 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. ​ 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. ​
  
-Organisez vous comme bon vous semble pour modéliser l'​ensemble de cette application!+ 
 +<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 
 +
 +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 
 +
 +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>​ <​html>​
2014_2015/s2/td/td_associations.txt · Last modified: 2015/05/13 16:09 by blay