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:19]
blay [Test d'intégration et Capteur Passif Réactif]
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 175: Line 178:
 ===== 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 185: 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 195: 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 221: 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 370: 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