User Tools

Site Tools


2017_2018:s3:concprogobjet:td:td7

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
2017_2018:s3:concprogobjet:td:td7 [2017/11/24 09:10]
blay [Capteurs logiciels à état]
2017_2018:s3:concprogobjet:td:td7 [2017/12/06 08:12]
blay [Capteurs logiciels à état]
Line 3: Line 3:
  
 ====== Digital Home : application des DP ====== ====== Digital Home : application des DP ======
-<note warning>​DRAFT</​note>​+
 Objectifs de ce TD :  Objectifs de ce TD : 
   - Appréhender une petite application dans sa totalité   - Appréhender une petite application dans sa totalité
Line 59: Line 59:
  
 QUESTION (5 mn):  QUESTION (5 mn): 
-  * Récupérer le code "​bouchon"​ du capteur Physique. **VOUS n'avez pas le droit de le modifier !!** +  * Récupérer le code "​bouchon"​ du {{:​2017_2018:​s3:​concprogobjet:​td:​physicalsensor.jar|capteur Physique}}. **VOUS n'avez pas le droit de le modifier !!** ; vérifiez que les tests passent bien avant de passer à la suite.
 <note tip>​Attention de manière générale on ne fait pas des tests sur des "​string"​ pour tester l'​état des objets. ​ <note tip>​Attention de manière générale on ne fait pas des tests sur des "​string"​ pour tester l'​état des objets. ​
  
Line 76: Line 76:
    - Tester vos capteurs logiciels.    - Tester vos capteurs logiciels.
  
- 
- 
-Voici le diagramme de classe concernant cette partie, pour vous aider éventuellement. 
- 
-{{ :​2015_2016:​s3:​concprogobjet:​td:​iut.capteurs.jpg?​direct&​300 |}} 
  
 ===== Capteurs logiciels à état ===== ===== Capteurs logiciels à état =====
Line 103: Line 98:
  
  StateLazy sl;  StateLazy sl;
- PhysicalSensor ​ps = new PhysicalSensor("​mySensorLux"​);+ Sensor ​ps = ....;
   
  @Before  @Before
Line 124: Line 119:
  
 QUESTION (15 mn):  QUESTION (15 mn): 
-   - Mettez à jour votre diagramme de classe si besoin.+   - Mettez à jour votre diagramme de classe si besoin ​en identifiant bien les éléments de design pattern.
    - Définissez la classe ''​CapteurOnOffLazy''​    - Définissez la classe ''​CapteurOnOffLazy''​
    - Testez votre classe, voici des exemples si cela peut vous aider.    - Testez votre classe, voici des exemples si cela peut vous aider.
Line 180: Line 175:
    * On veut définir des capteurs à un seul bouton (appel de la méthode press).    * On veut définir des capteurs à un seul bouton (appel de la méthode press).
       * L'​état de départ est off.        * L'​état de départ est off. 
-      * Dans l'​état //Off//, si on appuie une fois, on est //On//.  +      * Dans l'​état //Off//, si on appuie une fois (2 appels à off), on est //On//.  
-      * Dans l'​état //On// si on appuie 2 fois on est //Lazy//.  +      * Dans l'​état //On// si on appuie 2 fois (2 appels à on) on est //Lazy//.  
-      * Dans l'​état //Lazy// si on appuie 2 fois on est //Off//.+      * Dans l'​état //Lazy// si on appuie 2 fois (2 appels à lasy) on est //Off//.
    - Mettez à jour votre diagramme de classe si besoin.    - Mettez à jour votre diagramme de classe si besoin.
    - Définir la classe ''​CapteurOneButton''​    - Définir la classe ''​CapteurOneButton''​
Line 195: Line 190:
  
 QUESTION (10 mn):  QUESTION (10 mn): 
-   ​- ​Compléter ​ou corriger ​si besoin votre diagramme de classe ​**sur cette partie**+   ​- ​Complétez ​ou corrigez ​si besoin votre diagramme de classe. 
-   ​- ​Définir ​la classe ''​Piece''​ +   ​- ​Implémentez ​la classe ''​Piece''​ 
-   ​- ​Créer ​un jeu de tests vous permettant de tester votre classe ''​Piece''​. ​+   ​- ​Créez ​un jeu de tests vous permettant de tester votre classe ''​Piece''​. ​
  
-Exemple de trace :+Exemple de l'​appel d'​affichage suite à l'​appel à ''​toString''​ sur une pièce:
 <​code>​ <​code>​
 Salon Salon
Line 207: Line 202:
 ===== Maison numérique ===== ===== Maison numérique =====
  
-Une maison numérique est une composition de lieux dont certaines ​parties sont des composions ​de lieux (l'​étage est composé de la partie enfant et du bureau) et d'​autres sont des pièces (bureaux, chambres, ..).+Une maison numérique est une composition de parties ​dont certains ​parties sont elles-même ​des compositions ​de parties ​(l'​étage est composé de la partie enfant et du bureau) et d'​autres sont des pièces (bureaux, chambres, ..).
  
-Il doit être possible d'​interroger une partie de la maison pour connaitre tous les capteurs qu'​elle contient : Pour une pièce, les capteurs qui lui sont associés, pour une partie, ses propres capteurs (par exemple, le thermostat de l'​étage) + les capteurs des parties qui la compose.+Il doit être possible d'​interroger une partie de la maison pour connaitre tous les capteurs qu'​elle contient : Pour une pièce, les capteurs qui lui sont associés, pour une partie ​composite, ses propres capteurs (par exemple, le thermostat de l'​étage) + les capteurs des parties qui la compose.
  
  
  
 +Voici la maison que vous devez modéliser : 
 +  - Un RDC, un étage et un extérieur.
 +  - Un étage avec 2 chambres, chacune avec son thermometre et un thermostat global à l'​étage ​
 +  - etc.
 +{{ :​2015_2016:​s3:​concprogobjet:​td:​maisonnumerique.png?​direct&​300 |}}
  
 QUESTION (25 mn):  QUESTION (25 mn): 
-  * Modéliser ​la classe ''​MaisonNumerique''​ et **tout** ce qui est nécessaire pour répondre aux exigences.+  * Modélisez ​la classe ''​MaisonNumerique''​ et **tout** ce qui est nécessaire pour répondre aux exigences.
   * Avez-vous utilisé un ou des DP? Si oui, annotez vos classes avec des "​stéréotypes"​ permettant d'​identifier les différents rôles joués par vos classes.   * Avez-vous utilisé un ou des DP? Si oui, annotez vos classes avec des "​stéréotypes"​ permettant d'​identifier les différents rôles joués par vos classes.
-  * Implémenter ​et tester ​la.+  * Implémentez ​et testez ​la
 +  * Implémentez la maison donnée ci-après, et vérifiez que vous êtes bien capable de la représenter.
  
 <note tip>Oui oui, l'​énoncé n'est pas mâché... Il est possible que vous deviez réécrire des codes, mais maintenant ce n'est plus un problème n'​est-ce pas?  <note tip>Oui oui, l'​énoncé n'est pas mâché... Il est possible que vous deviez réécrire des codes, mais maintenant ce n'est plus un problème n'​est-ce pas? 
Line 225: Line 226:
  
  
-Voici la maison ​que vous devez modéliser :  + 
-  - Un RDCUn étage et un extérieur+Voici une nouvelle ​maison, ​décrite ​un peu différemment
-  - Un étage avec 2 chambres, chacune avec son thermometre et un thermostat global à l'​étage ​ + 
-  - etc+<​code>​ 
-{{ :​2015_2016:​s3:​concprogobjet:​td:​maisonnumerique.png?​direct&​300 |}}+maison = new Maison(); 
 +rdc = new PartieMaison("​RDC"​);​ 
 +cuisine = new Piece("​Cusine"​);​ 
 +sam = new Piece("​Salle e manger"​);​ 
 + 
 +parentalPart = new PartieMaison("​Partie Parentale"​);​ 
 +chambreParents = new Piece("​parents"​);​ 
 +sdbParent = new Piece("​salle de bain des parents"​);​ 
 +parentalPart.addLieu(chambreParents);​ 
 +parentalPart.addLieu(sdbParent);​ 
 +parentalPart.addSensor(thermostatParental);​ 
 + 
 +rdc.addLieu(cuisine);​ 
 +rdc.addLieu(sam);​ 
 +rdc.addLieu(parentalPart);​ 
 + 
 + 
 +etage = new PartieMaison("​Etage"​);​ 
 +chambre1 = new Piece("​Chambre1"​);​ 
 +chambre2 = new Piece("​Chambre2"​);​ 
 +etage.addLieu(chambre2);​ 
 +etage.addLieu(chambre1);​ 
 + 
 +exterieur = new PartieMaison("​Exterieur"​);​ 
 +exterieur.addSensor(externeDetecteurLumiere);​ 
 +maison.addLieu(rdc);​ 
 +maison.addLieu(etage);​ 
 +maison.addLieu(exterieur);​ 
 + 
 +</​code>​
 ===== Tableaux de Contrôle ===== ===== Tableaux de Contrôle =====
  
Line 445: Line 475:
  
 <box round rgb(150,​290,​190) rgb(198,​226,​150) 75%|Rendu en fonction du groupe de TD >  <box round rgb(150,​290,​190) rgb(198,​226,​150) 75%|Rendu en fonction du groupe de TD > 
-  * Mettez un mail à votre encadreur pour Mme Lecat ou [[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20150930110548/​BoiteDepot-blay-20151205174816497430?​mode_etudiant=false|par dépôt ​sur Jalon]] pour Mme Blay-Fornarino avec une archive à vos Noms, qui contient : +  *  [[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20150930110548/​BoiteDepot-blay-20161122213044309075?​mode_etudiant=true&​tab=deposit|Dépôt ​sur Jalon]] pour Mme Blay-Fornarino avec une archive à vos Noms, qui contient : 
   * Un document contenant ​   * Un document contenant ​
-             * votre modèle de classe final intégré dans un document pour que nous n'​ayons pas à ouvrir différents modèles dans différentes versions de l'​outil,​ +             * votre **modèle de classe final** intégré dans un document pour que nous n'​ayons pas à ouvrir différents modèles dans différentes versions de l'​outil,​
-             * les évolutions du modèle+
              * des explications sur les raisons de ce modèle (dont vous êtes très fiers) et les leçons apprises.              * 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. ​   * Les codes et les tests. ​
2017_2018/s3/concprogobjet/td/td7.txt · Last modified: 2017/12/06 10:42 by blay