User Tools

Site Tools


2014_2015:s3:concprogobjet:td:td6

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:s3:concprogobjet:td:td6 [2014/11/02 21:14]
blay [Pièce équipée]
2014_2015:s3:concprogobjet:td:td6 [2015/01/19 08:47]
blay [Refactoring et Pattern Composite]
Line 40: Line 40:
 ===== Capteurs Passifs ===== ===== Capteurs Passifs =====
  
-Les capteurs "​passifs"​ sont des capteurs qu'il faut interroger pour obtenir la valeur correspondant par exemple à une température ou un éclairage. ​ A un capteur passif nous associons un capteur physique qui vous est donné. Il s'agit d'un composant très simple qui lit et écrit une valeur dans un fichier. Il vous sert de "​bouchon"​ puisque nous ne disposons pas d'un vrai capteur physique auquel nous connecter.+Les capteurs "​passifs"​ sont des capteurs qu'il faut interroger pour obtenir la valeur correspondant par exemple à une température ou un éclairage. ​ A un capteur passif nous associons un {{:​2014_2015:​s3:​concprogobjet:​td:​capteurphysique.zip|capteur physique}} qui vous est donné. Il s'agit d'un composant très simple qui lit et écrit une valeur dans un fichier. Il vous sert de "​bouchon"​ puisque nous ne disposons pas d'un vrai capteur physique auquel nous connecter.
  
  
Line 47: Line 47:
    - Définir la classe CapteurPassif en lui associant un capteurPhysique. ​    - Définir la classe CapteurPassif en lui associant un capteurPhysique. ​
  
 +Voici les codes dont vous avez besoin : 
 +   ​*{{:​2014_2015:​s3:​concprogobjet:​td:​capteurphysique.zip|}}
 +   ​*{{:​2014_2015:​s3:​concprogobjet:​td:​fichiero.zip|}}
 ===== Pièce équipée ===== ===== Pièce équipée =====
  
Line 71: Line 74:
 Il permet de visualiser tous les capteurs présents dans toutes les pièces de la maison. Il permet de visualiser tous les capteurs présents dans toutes les pièces de la maison.
  
-QUESTION (20 mn): Implémenter et tester la classe MaisonNumerique et tout ce qui est nécessaire pour répondre aux exigences.+QUESTION (20 mn):  
 +  * Implémenter et tester la classe ​''​MaisonNumerique'' ​et tout ce qui est nécessaire pour répondre aux exigences.
  
  
Line 90: Line 94:
  
  
-QUESTION :  +QUESTION ​(30mn) ​:  
-  * Définir la classe CapteurPassifReactif comme une extension de la classe CapteurPassif.+  * Définir la classe ​''​CapteurPassifReactif'' ​comme une extension de la classe ​''​CapteurPassif''​.
   * Vous rendez ses instances observables en respectant le pattern ci-après :    * Vous rendez ses instances observables en respectant le pattern ci-après : 
-        * Un observeur d'un CapteurPassifReactif doit pouvoir recevoir des messages update(String message) : Nous aurons des "ObserveurDeCapteur" +        * Un observeur d'​un ​''​CapteurPassifReactif'' ​doit pouvoir recevoir des messages ​''​update(String message)'' ​: Nous aurons des ''​ObserveurDeCapteur''​ 
-        * On peut enregistrer des ObserveurDeCapteur dans un CapteurPassifReactif et en enlever +        * On peut enregistrer des ''​ObserveurDeCapteur'' ​dans un ''​CapteurPassifReactif'' ​et en enlever; 
-        * A chaque appel au setValeur d'un CapteurPassifReactif tous les oberveurs ​sont notifiés par un "update" ​et la nouvelle valeur du capteur en paramètre+        * A chaque appel au ''​setValeur'' ​d'​un ​''​CapteurPassifReactif'' ​tous les observeurs ​sont notifiés par un ''​update'' ​et la nouvelle valeur du capteur en paramètre.
  
 Nous n'​avons pas encore défini d'​observeur d'un capteur. Cependant nous voulons vérifier que les notifications sont bien prévues. ​ Nous n'​avons pas encore défini d'​observeur d'un capteur. Cependant nous voulons vérifier que les notifications sont bien prévues. ​
Line 169: Line 173:
  
  
-Vous pouvez faire le choix de continuer à tester avec EasyMock ou de faire les tests en créant les bouchons etc.+QUESTION (30mn) :  
 +   ​* ​Vous pouvez faire le choix de continuer à tester avec EasyMock ou de faire les tests en créant les bouchons etc.
  
 ===== Pièce numérique "​intelligente"​ ===== ===== Pièce numérique "​intelligente"​ =====
  
-L'​objectif est à présent de définir des pièces intelligentes ​comme contenant des capteurs passifs et des capteurs passifs réactifs. Lorsque ​l'un de ces derniers ​capteurs a sa valeur modifiée, la pièce est notifiée du changement et le update consiste à ré-afficher les valeurs de tous les capteurs.+L'​objectif est à présent de définir des pièces intelligentes ​qui lorsque ​l'un de ses capteurs ​"​Observable" ​a sa valeur modifiée, la pièce est notifiée du changement et le update consiste à ré-afficher les valeurs de tous les capteurs.
  
  
-Question ​: Vous devez définir une "​SmartPiece"​ sans modifier une Piece.+QUESTION (10mn) ​ 
 +    * Vous devez définir une "​SmartPiece"​ sans modifier une Piece.
  
  
Line 183: Line 189:
 Lorsque l'on ajoute un capteur à une pièce de la maison on veut que le tableau de bord de la maison prenne automatiquement en compte cette évolution.  ​ Lorsque l'on ajoute un capteur à une pièce de la maison on veut que le tableau de bord de la maison prenne automatiquement en compte cette évolution.  ​
  
-Question ​: Modifier vos classes pour prendre en compte cette nouvelle exigence, si vous ne l'​aviez pas déjà fait. +QUESTION ​ 
 +    * Modifier vos classes pour prendre en compte cette nouvelle exigence, si vous ne l'​aviez pas déjà fait. 
 Si vous le voulez, vous êtes autorisé à cette étape à utiliser les classes java ''​java.util.Observable''​ et ''​java.util.Observer''​. Si vous le voulez, vous êtes autorisé à cette étape à utiliser les classes java ''​java.util.Observable''​ et ''​java.util.Observer''​.
  
-===== Capteurs ​Réactifs ​=====+===== Capteurs ​actifs ​=====
  
 Un capteur actif est associé à un capteur physique. Il scrute régulièrement la valeur physique du capteur physique qui lui est associé et notifie ses observeurs chaque fois qu'il détecte un changement. Un capteur actif est associé à un capteur physique. Il scrute régulièrement la valeur physique du capteur physique qui lui est associé et notifie ses observeurs chaque fois qu'il détecte un changement.
Line 193: Line 200:
 Voici les éléments de code dont vous avez besoin pour le définir :  Voici les éléments de code dont vous avez besoin pour le définir : 
    ​* ​ Ce code vous permet de le déclarer comme pouvant s'​exécuter "dans une thread à part" : <code Java>    ​* ​ Ce code vous permet de le déclarer comme pouvant s'​exécuter "dans une thread à part" : <code Java>
-public class CapteurReactif ​ ... implements... Runnable{+public class CapteurActif ​ ... implements... Runnable{
 </​code>​ </​code>​
  
Line 219: Line 226:
  
  
-QUESTION (15mn) :   +QUESTION (30mn) :   
-     * Définir les capteurs ​réactifs+     * Définir les capteurs ​actifs 
 + 
 + 
 +===== Refactoring et Pattern Composite ===== 
 + 
 +On vient de réaliser que des dispositifs peuvent être associés directement à la maison et pas forcément aux pièces. 
 + 
 +Proposer une modélisation qui préserve l'​ensemble de vos "​tests"​ mais vous permet de prendre en compte cet aspect. 
 + 
 + 
 + 
 + 
 + 
 +<box round rgb(150,​290,​190) rgb(198,​226,​150) 75%|Rendu en fonction du groupe de TD Pour le Groupe S3A le 23/01/2015 à 23h59 >  
 +  * Mettez un mail à votre encadreur avec soit l'​adresse où récupérer le TD soit le TD lui-même 
 +  * Dans votre répertoire de projet se trouvent :  
 +       - Un document contenant  
 +             * votre modèle final (Tout le monde n'​aboutit pas au même modèle, c'est certain) (merci de l'​intégrer dans un document pour que nous n'​ayons pas à ouvrir différents modèles dans différentes versions de l'​outil). 
 +             * des explications sur les raisons de ce modèle (dont vous êtes très fiers) et les leçons apprises. 
 +       - Les codes et les tests.  
 +</​box>​ 
 + 
  
  
Line 368: Line 397:
 Si maintenant on veut que tout message dans la boite SNAPCHAT soit ephemere ? Si maintenant on veut que tout message dans la boite SNAPCHAT soit ephemere ?
  
- 
-===== Estimation de performance ===== 
- 
- 
-Une route est définie par des Tronçons. Un tronçon est défini par deux Positions et une longueur. Une Position est définie par un nom. 
- 
-Calculer le plus cours chemin entre deux positions. 
-Déterminer la complexité de votre algorithme. 
  
  
-=> Outils de recherche de code dupliqué? 
  
  
2014_2015/s3/concprogobjet/td/td6.txt · Last modified: 2015/03/23 15:49 by blay